game.Players.PlayerAdded:Connect(function(Player)
local AddGolf = Instance.new("Part") do
AddGolf.Shape = "Ball"
AddGolf.Size = Vector3.new(1,1,1)
AddGolf.Position = Vector3.new(0, 5, 0)
AddGolf.Name = Player.name
AddGolf.Anchored = false
AddGolf.Parent = workspace.GolfFolder
end
local GolfCam = Instance.new("Part") do
GolfCam.Name = Player.name
GolfCam.Anchored = true
GolfCam.Transparency = 1
GolfCam.CanCollide = false
GolfCam.Parent = workspace.CamFolder
end
local GolfPlayer = Instance.new("StringValue") do
GolfPlayer.Value = Player.name
GolfPlayer.Name = "Name"
GolfPlayer.Parent = AddGolf
end
local GolfPos = Instance.new("IntValue", AddGolf) do
GolfPos.Name = "Pos"
GolfPos.Parent = AddGolf
end
end)
local RemoteEvent = game.ReplicatedStorage:WaitForChild("FireEvent")
RemoteEvent.OnServerEvent:Connect(function(Player, Mouse)
local PlayerName = Player.name
workspace.GolfFolder[PlayerName]:SetNetworkOwner(Player)
workspace.GolfFolder[Player].CFrame = CFrame.new(workspace.GolfFolder[Player].Position, Mouse)
workspace.GolfFolder[Player].Velocity = workspace.GolfFolder[Player].CFrame.lookVector * 50
end)
An improvement you could make in the future, is to set the parent of objects last;