Hi,
The mouse variable is somehow shared between scripts. I dont know what causes that, but i think i got an solution that should work (I have no idea if it works i wrote it on mobile).
local viewpointRay = camera:ViewportPoinyToRay(mouse.X, mouse.Y,)
local params = raycastParams.new()
params.FilterdescendantInstances = {workspace} -- same as targetFilter
params.FilterType = Enum.RaycastFilterType.Exclude
local results = workspace:Raycast(viewpointRay.Origin, viewpointRay.Direction, params)
i fixed by making it when the bow is equipped to set the targetfilter to workspace and when unequipped set it to nil so when you swap to the block tool it still picks up on workspace