Tool not unequipping

For some reason, the code fully runs but the actual unequipping of the tool does not happen. Does anyone know why?

--//SERVICES
local Players = game:GetService("Players")

--//REFRENCES

local Service = {}

function Service.Init()
	Players.PlayerAdded:Connect(function(plr)
		plr.CharacterAdded:Connect(function(char)
			StealingAttributeChange(plr)
		end)
	end)
end

function StealingAttributeChange(plr: Player)
	plr:GetAttributeChangedSignal("IsStealing"):Connect(function()
		local isStealing = plr:GetAttribute("IsStealing")
		if isStealing == true then
			print("IS STEALING")
			local char = plr.Character
			if not char then return end
			forceUnEquip(char)
			print("UNEQUIPPED")
		end
	end)
	
end

function forceUnEquip(char)
	local hum = char:FindFirstChild("Humanoid")
	if not hum then return end
	hum:UnequipTools()
	print("foreced unequip")
end

return Service

Are any of the print statements being reached? i’m not sure how to go about helping you without more information. It seems that you’re using a module script to unequip the tools, but that shouldn’t necessarily be an issue as Humanoid:UnequipTools() should replicate from the client.

this is a server script. Is that why? and yes all the prints are reached

I’m gonna go attempt to replicate this in studio, give me a couple minutes

have you tried moving the tool to the players backpack instead of using :UnequipTools

Alright let me know the results

will try that. Thank you for that suggestion

something like this?

--//SERVICES
local Players = game:GetService("Players")

--//REFRENCES

local Service = {}

function Service.Init()
	Players.PlayerAdded:Connect(function(plr)
		plr.CharacterAdded:Connect(function(char)
			StealingAttributeChange(plr)
		end)
	end)
end

function StealingAttributeChange(plr: Player)
	plr:GetAttributeChangedSignal("IsStealing"):Connect(function()
		local isStealing = plr:GetAttribute("IsStealing")
		if isStealing == true then
			print("IS STEALING")
			local char = plr.Character
			if not char then return end
			reParentTool(plr)
			print("UNEQUIPPED")
		end
	end)
	
end

function reParentTool(plr)
	local tool = plr.Character:FindFirstChildOfClass("Tool")
	if not tool then return end
	tool.Parent = plr.Backpack
end

return Service

yeah

yep that worked. Just added a childAdded event function to the char and unequipped tool if my condition was met. Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.