local remoteEvent = game.ReplicatedStorage.RemoteEvent
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
mouse.Button1Down:Connect(function()
local pos = mouse.Hit.Position
remoteEvent:FireServer(pos)
end)
Serverside code:
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(pos)
local part = game.ReplicatedStorage.ball:Clone()
part.Parent = game.Workspace
part.Position = pos
end)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player, pos) -- First return in the player, then any passed values
local part = game.ReplicatedStorage.ball:Clone()
part.Parent = game.Workspace
part.Position = pos
end)
To prove it, print pos without changing the script:
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(pos)
print(pos) -- Your player
end)