A have a placement script and it lets you place on objects that the mouse.Target.Name == "Baseplate" so what I am trying to do since i only call the function once, it update the mouse target over and over so that the script knows what you can place on.
Heres the script and again I am trying to update the Mouse.Target
wait(5)
print("PlacementStarted")
local PlacementHanlder = require(script:WaitForChild("PlacementModule"))
local RunService = game:GetService("RunService")
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local CraftingGui = Player.PlayerGui.ScreenGui:WaitForChild("PlayerCrafting")
local Items = game:GetService("ReplicatedStorage").Items
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Model
local Signal
local CurrentItemName
local function UpdateTarget()
Base = Mouse.Target
end
Mouse.Move:Connect(UpdateTarget)
Mouse.Idle:Connect(UpdateTarget)
function BeginPlacement()
local ItemName = CraftingGui.Info.ItemName.Text
if script.Parent.EnablePlacement.Value == true then
RunService:BindToRenderStep("Placement", Enum.RenderPriority.Camera.Value, function()
if Mouse.Target and Mouse.Target.Name == "Baseplate" then
Plane = PlacementHanlder.new(Base, workspace.Base.ItemHolder, 1)
CancelPlacement()
Model = Items[ItemName]:Clone()
CurrentItemName = ItemName
for _, object in pairs(Model:GetChildren()) do
if object:IsA("BasePart") then
object.CanCollide = false
end
end
Model.Parent = workspace.CurrentlyPlacing
local Signal = Plane:enable(Model)
Signal:Connect(function(Location, _)
game:GetService("ReplicatedStorage").ClientPlaced:FireServer(CurrentItemName, Location[1])
CancelPlacement()
end)
end
end)
end
end
function CancelPlacement()
script.Parent.EnablePlacement.Value = false
if (CurrentItemName) then
Plane:disable()
if (Model.Parent) then
Model:Destroy()
end
RunService:UnbindFromRenderStep("Placement")
Model = nil
Signal = nil
CurrentItemName = nil
end
end
script.Parent.EnablePlacement.Changed:Connect(BeginPlacement)
Most of the important info is at the top.
Let me add that sometimes it works but most of the time it doesnt so I am confused.
Thank you for your time :)
