I am trying to create a script that will remove the players limbs when they join, but when I tried to remove a limb I get the error message that says "tempNameHolder is not a valid part of workspace"
local players = game.Players local tempNameHolder function onPlayerJoin(player) tempNameHolder = player.Name game.Workspace.tempNameHolder.Left Leg:Destroy() -- removes left leg end players.PlayerAdded:connect(onPlayerJoin, player)
First of all, connect
only takes one parameter. player
isn't defined anyway, so that wouldn't accomplish anything.
Now, the next problem is the way you are indexing children.
When you do Workspace.tempNameHolder
, you ask for the object named "tempNameHolder" -- not the object name with the value that that variable holds.
To ask for the child with the name of that value, we can use the square braces to index:
game.Workspace[tempNameHolder]
You have a similar problem with "Leg Leg". Since "Left Leg" isn't a valid identifier, you can't index it using .
(the space is the problem). Instead we use a string literal and the square braces again:
game.Workspace[tempNameHolder]["Left Leg"]:Destroy()
You can think of .
in terms of []
(which is how Lua does it!):
-- These two are the same thing: game.Workspace -- and game["Workspace"] -- (using "Workspace" as a string)
One final problem -- your script will try to remove a leg the moment the player joins, even though their character won't be spawned yet.
We can add a wait
of some kind to make sure they have a player, and that will work -- but remember it will only work on the first spawn.
You can use the player's CharacterAdded
event to delete it on all future spawns.