Using bool values are unnecessary to see if a tool is equipped or not.
Unless you’re using your own tool system.
But for Roblox’s tools, when a tool is equipped it will be parented to the player character/model
When a tool is unequipped it will be parented to the player’s backpack
And since you want to drop the player’s currently equipped tool.
You may shorten the code to something like this instead:
local dropEvent = game.ReplicatedStorage.dropEvent
dropEvent.OnServerEvent:Connect(function(plr, mousePos)
local limit = 10 -- You can change it to your liking.
--Check for the current equipped tool
local character = plr.Character
local tool = character:FindFirstChildOfClass("Tool")
if not tool then return end
--Check distance
local checkDistance = plr:DistanceFromCharacter(mousePos)
if checkDistance > limit then return end
--Drop tool
tool.Parent = workspace
tool.Handle.Position = mousePos + Vector3.new(0,1,0)
end)