Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How can i fix The humanoidrootpart?

Im making a custom tp command and i have an issue

when ever i execute the command to tp me to another player it outputs "humandoidrootpart is not a valid member of model line 33 and 60"

local commands = {}

local prefix = "/"

local function findPlayer(name)
	
	for i, player in pairs(game.Players:GetPlayers()) do
		if string.lower(player.Name) == name then
			return player
		end
	end
	
	return nil
	
end

commands.tp = function(sender, arguments)
	
	print("TP Function fired by"..sender.Name)
	
	for i, playerName in pairs(arguments) do
		print(playerName)
	end
	
	local playerToTeleportName = arguments[1]
	local playerToTeleportToName = arguments[2]
	
	if playerToTeleportName and playerToTeleportName then
		local plrToTP = findPlayer(playerToTeleportName)
		local plrToTpTo = findPlayer(playerToTeleportName)
		
		if plrToTP and plrToTpTo then
			plrToTP.Character.HumanoidRootPart.CFrame = plrToTpTo.Character.HumandoidRootPart.CFrame
			print("It fricking worked")
		end
	end
	
end

game.Players.PlayerAdded:Connect(function(player)
	player.Chatted:Connect(function(message,recipient)
		message = string.lower(message)
		
		local splitString = message:split(" ")
		
		local slashCommand = splitString[1]
		
		local cmd = slashCommand:split(prefix)
		
		local cmdName = cmd[2]
		
		if commands[cmdName] then
			
			local arguments = {}
			
			for i = 2, #splitString, 1 do
				table.insert(arguments,splitString[i])
			end
			
			commands[cmdName](player,arguments)
			
		end
		
		
	end)
end)

1 comment

0

maybe use waitforchild

1 answer

✓ Accepted answer

Use waitforchild in case it hasnt loaded yet.

local commands = {}
local prefix = "/"
local function findPlayer(name)
    for i, player in pairs(game.Players:GetPlayers()) do
        if string.lower(player.Name) == name then
            return player
        end
    end
    return nil
end

commands.tp = function(sender, arguments)
    print("TP Function fired by" .. sender.Name)
    for i, playerName in pairs(arguments) do
        print(playerName)
    end
    local playerToTeleportName = arguments[1]
    local playerToTeleportToName = arguments[2]
    if playerToTeleportName and playerToTeleportName then
        local plrToTP = findPlayer(playerToTeleportName)
        local plrToTpTo = findPlayer(playerToTeleportName)
        if plrToTP and plrToTpTo then
            plrToTP.Character:WaitForChild("HumanoidRootPart").CFrame =  plrToTpTo.Character:WaitForChild("HumanoidRootPart").CFrame
            print("It fricking worked")
        end
    end
end
game.Players.PlayerAdded:Connect(
    function(player)
        player.Chatted:Connect(
            function(message, recipient)
                message = string.lower(message)
                local splitString = message:split(" ")
                local slashCommand = splitString[1]
                local cmd = slashCommand:split(prefix)
                local cmdName = cmd[2]
                if commands[cmdName] then
                    local arguments = {}
                    for i = 2, #splitString, 1 do
                        table.insert(arguments, splitString[i])
                    end
                    commands[cmdName](player, arguments)
                end
            end
        )
    end
)

This discussion is preserved as it was. New answers, comments, and votes are closed.