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

What is the best way to handle raycasting for a gun tool?

What is the best way to handle raycasting for guns so remote events aren't spammed and raycast is visible to everyone? The chunk of code I have made regarding firing the gun is below. Please read bottom of post before answering!

Vulcan.Equipped:Connect(function(mouse) -- Equipping Vulcan (Hold animation)
	UserInputService.InputBegan:Connect(function(ShootKey)
		if ShootKey.UserInputType == Enum.UserInputType.MouseButton1 then
			GunFire:FireServer(true)
		end
	end)
	UserInputService.InputEnded:Connect(function(StopShootKey)
		if StopShootKey.UserInputType == Enum.UserInputType.MouseButton1 then
			GunFire:FireServer(false)
		end
	end)
	
	ConnectM6D:FireServer(Vulcan.BodyAttach)
	char["Right Arm"].GunMotor6D.Part0 = char["Right Arm"]
	char["Right Arm"].GunMotor6D.Part1 = Vulcan.BodyAttach
	HoldTrack:Play()
end)

Above is my current code in localscript. Below is my server script.

VulcanEvent:WaitForChild("GunFire").OnServerEvent:Connect(function(plr, CanFire)
	print(CanFire)
end)

Neither gives an error and both are doing what they should. This would work fine for singleplayer, but in multiplayer, everyone hold-clicking will be able to fire the event therefore messing up the trues and falses for everyone. How would you handle raycasts for a gun while keeping remote event spamming to a minimum and with minimal chances of messing up the true/false for each player? For context, this is for a gun clan fort and most likely, everyone in the server will be using said guns most of the time. Apologies if my explanations are unclear, let me know if I don't make sense and I'll rephrase.

1 answer

2 comments

0

Apologies if I'm mistaken, but isn't it not FE? I have looked there before posting and it seems like the entire thing is in a localscript with no remote events...will rays replicate to server if I follow said article?

0

No, you'll need to make a remote event for casting the ray.

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