Tool player click detection printing multiple times exponentially

(wrong reply sorry)

There is also a much cleaner way of determining whether a basepart belongs to a player’s character using certain API methods (GetPlayerFromCharacter and FindFirstAncestorOfClass):

local plrs = game:GetService'Players';

local function getPlayerFromBasePart(obj: BasePart)
    return plrs:GetPlayerFromCharacter(obj:FindFirstAncestorOfClass'Model'); -- returns the player whos character possesses the basepart, otherwise returns nil (similar to false in luau boolean logic)
end