I scripted guns that use a RemoteEvent to get the player's mouse so the bullet can be aimed. However when playing the game when someone shot it made all other player's guns fire at the same spot. What is the error with my code? Local script:
local tool = script.Parent local player = game.Players.LocalPlayer local mouse = player:GetMouse() local function onEquip() tool.GUI2.Parent = game.Players.LocalPlayer.PlayerGui mouse.Icon = "http://www.roblox.com/asset/?id=5110080608" end tool.Unequipped:Connect(function() game.Players.LocalPlayer.PlayerGui.GUI2.Parent = tool mouse.Icon = "" end) function onActivate() mouse = player:GetMouse() game.ReplicatedStorage.Shoot:FireServer(mouse.Hit) end tool.Activated:Connect(onActivate) tool.Equipped:Connect(onEquip)
Server script:
local tool = script.Parent local debounce = false local remoteEvent = game.ReplicatedStorage.Shoot local function onEquip() tool.Barrel.Equip:Play() end local function onActivate(player, mouse) if debounce == false then debounce = true if script.Parent.Ammo.Value ~= 0 then local Fire = Instance.new("Fire") Fire.Parent = tool.Muzzle Fire.Size = 2 Fire.Color = Color3.new(255, 176, 0) Fire.SecondaryColor = Color3.new(255, 176, 0) local missile = game.Lighting.Pellet:Clone() missile.CFrame = script.Parent.Parent.HumanoidRootPart.CFrame + script.Parent.Parent.HumanoidRootPart.CFrame.LookVector * 10 missile.Parent = tool.Parent missile.BodyPosition.Position = mouse.Position tool.Muzzle.Fire:Play() tool.Ammo.Value = tool.Ammo.Value - 1 wait(.3) Fire:Destroy() wait(.22) debounce = false else tool.Barrel.Reload:Play() wait(1.5) tool.Ammo.Value = 7 wait(.22) debounce = false end end end tool.Equipped:Connect(onEquip) tool.Activated:Connect(onActivate) remoteEvent.OnServerEvent:Connect(onActivate)