I found this code for a placement system and I would like someone to break it down and explain it to me. Copying this code and adding --
tags to explain each section would be really useful. Thanks in advance.
local player = game.Players.LocalPlayer local mouse = player:GetMouse() local moves = false local i = .5 for _,buttons in pairs(script.Parent:GetChildren()) do if buttons:IsA("TextButton") then buttons.MouseButton1Click:connect(function() moves = true if mouse.TargetFilter ~= nil then return end local typeOf = game.ReplicatedStorage:FindFirstChild(buttons.Name) if not typeOf then return end print'test1' if script.Parent.Money.Gross.Value >= typeOf.Cost.Value then script.Parent.Money.Gross.Value = script.Parent.Money.Profit.Value - typeOf.Cost.Value buttons.Text = 'Left Click to Place' local building = typeOf:Clone() building.Parent = workspace mouse.TargetFilter = building building:MakeJoints() local money = building.Cost script.Parent.Money.Gross.Value = script.Parent.Money.Gross.Value+money.Value script.Parent.Money.Profit.Value = script.Parent.Money.Profit.Value+(money.Value*2) print'test2' local move = mouse.Move:connect(function() local base = workspace:FindFirstChild(player.Name..'base') if mouse.Target.Name ~= base.Name then error('error') return end if moves == true then local x = math.floor(mouse.Hit.x)+1 local y = math.floor(mouse.Hit.y)+.5 local z = math.floor(mouse.Hit.z)+1 building:SetPrimaryPartCFrame(CFrame.new(x,y,z)) building:SetPrimaryPartCFrame(CFrame.new(x,y,z)*CFrame.Angles(0,math.pi*i,0)) local key, gpe = game:getService('UserInputService').InputBegan:wait() if not gpe then if key.KeyCode == Enum.KeyCode.R then building:SetPrimaryPartCFrame(CFrame.new(x,y,z)*CFrame.Angles(0,math.pi*i,0)) i = i +.5 if i==2.5 then i = .5 end end end print 'test3' end end) end end) mouse.Button1Down:connect(function() if mouse.Target == nil then return end if moves == true then buttons.Text = buttons.Name mouse.TargetFilter = nil script.Disabled = true wait() script.Disabled = false moves = false elseif not moves then return end print 'test4' end) end end