Hello, I Want to start by saying I am new to raycasting
The script is working for the most point as it wont run unless I am within 10 units. However if I click with or without the tool equipped it adds to a queue and then when I click on the humanoid it apply 30dmg or 50 dmg (how ever many times I click) instead of 1
I would like this script to only apply 1 dmg to the humanoid when I am within the 10 units and do nothing when I am farther away
Local Script
local mouse = game.Players.LocalPlayer:GetMouse() local tool = script.Parent local Gun = false mouse.Button1Down:Connect(function() local function onSelected() -- Player Starts Using The Tool script.Parent.Fire:FireServer(mouse.Hit.p) end local function onDeselected() -- Player Stops Using The Tool end tool.Unequipped:Connect(function() Gun = false end) tool.Activated:Connect(onSelected) tool.Deactivated:Connect(onDeselected) end)
Server Script
script.Parent.Fire.OnServerEvent:Connect(function(player, mousePos) local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {player.Character} raycastParams.FilterType = Enum.RaycastFilterType.Blacklist local raycastResult = workspace:Raycast(script.Parent.Handle.Position, (mousePos - script.Parent.Handle.Position)*100,raycastParams) if raycastResult then local hitPart = raycastResult.Instance local model = hitPart:FindFirstAncestorOfClass("Model") if model then if model:FindFirstChild("Humanoid") then if (model.HumanoidRootPart.Position - script.Parent.Handle.Position).magnitude < 10 then model.Humanoid:TakeDamage(1) print("Gott EEMM") else print("To Far Away") end else print("Not Vaild Target") end end end end)