Thanks for any help I get.
Just make the tool's parent the character, because the tools you are holding belong to the character. You can use the Unequipped function so it changes the tools parent automatically. This can reduce lag because you are using an event instead of a loop. You need to add a wait because when you unequip a tool and set the parent back to the character it will error.
This is an event that fires when a tool is... Unequipped.
local tool = script.Parent tool.Unequipped:connect(function() print("Tool is unequipped") end)
This script is your answer, the other script is an extra.
Tool.Parent = char --Make tool a variable and same with char.
or
char.Humanoid:EquipTool(tool)
Link to Variable
This script will make it so the script will never be able to be removed or unequipped.
--Local Script local tool = script.Parent local char = game:GetService("Players").LocalPlayer.Character game:GetService("RunService").RenderStepped:wait() --Really fast wait. 2x faster than wait(). char.Humanoid:EquipTool(tool) tool.Unequipped:connect(function() game:GetService("RunService").RenderStepped:wait() char.Humanoid:EquipTool(tool) end)
Hope it helps!
Well if you are using a giver, which I assume you are you can use this script!
local debounce = false function onTouch(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) -- getting the player from his character if player.Character and not debounce then -- checking if the player's character exists and the debounce == false local char = player.Character -- defining character for later use debounce = true local weapon = game.Lighting.GEARNAME:clone() weapon.Parent = char -- parenting the weapon to character wait(5) debounce = false end end script.Parent.Touched:connect(onTouch)
Make sure you put this following script inside a Part called "Giver" and put the tool in Lighting, then change the "GEARNAME" part to the name of the gear you want them to have.. Also if you want them to be unable to drop it go to the gear click on it, and un-check the "CanBeDropped" part! This script will automatically equip the weapon when it is give to them.
All you have to do is set the Equipped value to true whenever the player tries to Unequip it like this
function WhatEverYouWantToNameIt () script.Parent.Equipped = true end script.Parent.Unequipped:connect(WhatEverYouNamedTheFunction)