Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Why is this gun not damaging other players?

I was trying to create a gun that would damage the other team's players. I created a SMGLocalScript inside the gun:

local remoteEvent = ReplicatedStorage:WaitForChild('FiringSMGEvent')
local shooting = false
local equipped = false
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local mouseConnection
gun.Equipped:Connect(function()
	equipped = true
	mouse.Icon = 'rbxassetid://117431027'
	mouseConnection = mouse.Button1Down:Connect(function()
		shooting = true
		while shooting and equipped do
			remoteEvent:FireServer(player.TeamColor, gun.Handle.Position, gun.Handle.Orientation, mouse.Hit.p)
			mouse.Button1Up:Connect(function()
				shooting = false
			end)
			wait(0.1)
		end
	end)
end)



gun.Unequipped:Connect(function()
	equipped = false
	mouseConnection:Disconnect()
end)

And created a BulletMaker ServerScript inside ServerScriptService:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FiringEvent = ReplicatedStorage:WaitForChild("FiringSMGEvent")
FiringEvent.OnServerEvent:Connect(function(Player, TeamColor, GunPosition, GunOrientation, MousePosition)
	local Bullet = Instance.new("Part")
	Bullet.CanCollide=false
	Bullet.Name="Bullet"
	Bullet.Parent=game.Workspace
	Bullet.Shape=Enum.PartType.Ball
	Bullet.Size = Vector3.new(0.5,0.5,0.5)
	Bullet.BrickColor = BrickColor.new("Smoky grey")
	Bullet.CFrame = CFrame.new(GunPosition,MousePosition)
	local Speed = 500
	Bullet.Velocity=Bullet.CFrame.lookVector*Speed
	Bullet.Touched:Connect(function(Hit)
		local Humanoid = Hit.Parent:FindFirstChild("Humanoid")
		if Humanoid and Humanoid.Parent.Name~=Player.Name and game:GetService(Players).GetPlayersFromCharacters(Hit).Parent.TeamColor~=TeamColor then
			Humanoid.Health-=10
		end
	end)
	game:GetService("Debris"):AddItem(Bullet,2)
end)

When I tested the game the BulletMaker ServerScript raised an error: Argument 1 missing or nil

1 comment

1

Did it mention the lines?

1 answer

✓ Accepted answer

Try this for your Server Script:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FiringEvent = ReplicatedStorage:WaitForChild("FiringSMGEvent")
FiringEvent.OnServerEvent:Connect(function(Player, TeamColor, GunPosition, GunOrientation, MousePosition)
	local Bullet = Instance.new("Part")
	Bullet.CanCollide=false
	Bullet.Name="Bullet"
	Bullet.Parent=game.Workspace
	Bullet.Shape=Enum.PartType.Ball
	Bullet.Size = Vector3.new(0.5,0.5,0.5)
	Bullet.BrickColor = BrickColor.new("Smoky grey")
	Bullet.CFrame = CFrame.new(GunPosition,MousePosition)
	local Speed = 500
	Bullet.Velocity=Bullet.CFrame.lookVector*Speed
	Bullet.Touched:Connect(function(Hit)
		local Humanoid = Hit.Parent:FindFirstChild("Humanoid")
		if Humanoid and Humanoid.Parent.Name~=Player.Name then
			Humanoid.Health-=10
		end
	end)
	game:GetService("Debris"):AddItem(Bullet,2)
end)

2 comments

0

Alright, Thank You!

0

You're very welcome!

This discussion is preserved as it was. New answers, comments, and votes are closed.