trowel = Instance.new("Tool",owner.Backpack) trowel.Name = "ClassicTrowel" trowel.TextureId = "rbxasset://Textures/Wall.png" mouse = Instance.new("RemoteFunction",trowel) mouse.Name = "MouseLoc" handle = Instance.new("Part",trowel) handle.Name = "Handle" handle.Size = Vector3.new(1, 4.4, 1) handlemesh = Instance.new("FileMesh",handle) handlemesh.MeshId = "rbxasset://fonts/trowel.mesh" handlemesh.TextureId = "rbxasset://textures/TrowelTexture.png" buildsound = Instance.new("Sound",handle) buildsound.SoundId = "rbxasset://sounds//bass.wav" buildsound.Name = "BuildSound" trowel.GripUp = Vector3.new(0, 1, 0) trowel.GripRight = Vector3.new(1, 0, 0) trowel.GripPos = Vector3.new(0, -1.3, 0) trowel.GripForward = Vector3.new(-0, -0, -1) NLS([[ local Tool = script.Parent local MouseLoc = Tool:WaitForChild("MouseLoc",10) function MouseLoc.OnClientInvoke() return game:GetService("Players").LocalPlayer:GetMouse().Hit.p end ]],trowel) local Tool = trowel local wallHeight = 40 local brickSpeed = 0.01 local wallWidth = 80 local MouseLoc = Tool:WaitForChild("MouseLoc",10) -- places a brick at pos and returns the position of the brick's opposite corner function placeBrick(cf, pos, color) local brick = Instance.new("Part") brick.BrickColor = color brick.Size = Vector3.new(2,2,2) brick.Anchored = true brick.CFrame = cf * CFrame.new(pos + brick.Size / 2) brick.Parent = workspace brick:MakeJoints() return brick, pos + brick.Size end function buildWall(cf) local color = BrickColor.Random() local bricks = {} assert(wallWidth>0) local y = 0 while y < wallHeight do local p local x = -wallWidth/2 while x < wallWidth/2 do local brick brick, p = placeBrick(cf, Vector3.new(x, y, 0), color) x = p.x table.insert(bricks, brick) wait(brickSpeed) end y = p.y end return bricks end function snap(v) if math.abs(v.x)>math.abs(v.z) then if v.x>0 then return Vector3.new(1,0,0) else return Vector3.new(-1,0,0) end else if v.z>0 then return Vector3.new(0,0,1) else return Vector3.new(0,0,-1) end end end Tool.Enabled = true function onActivated() if not Tool.Enabled then return end Tool.Enabled = false local character = Tool.Parent; local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return end local targetPos = MouseLoc:InvokeClient(game:GetService("Players"):GetPlayerFromCharacter(character)) local lookAt = snap( (targetPos - character.Head.Position).unit ) local cf = CFrame.new(targetPos, targetPos + lookAt) Tool.Handle.BuildSound:Play() buildWall(cf) wait(1) Tool.Enabled = true end Tool.Activated:Connect(onActivated)