What is the ID for block limbs?

I’m trying to force player’s to have block limbs with their character.
I would like to do this in the game settings.

I don’t think block limbs have an ID because when you change your avatar, the way you wear block limbs is by having no limbs equipped. But then again, it is its own mesh and must be set to some ID.
All I need is the ID.

13 Likes

I may be wrong but I believe it’s 1?

2 Likes

Says “could not save game settings.” Thanks for the quick response.

1 Like

I have found a method. Get the player’s Humanoid description, change the id of the limbs and then load it.

– Stop automatic spawning so it can be done in the “PlayerAdded” callback

game.Players.CharacterAutoLoads = false

local function onPlayerAdded(player)

local humanoidDescriptionForOutfit = game.Players:GetHumanoidDescriptionFromOutfitId(480059254)

– Spawn character with the HumanoidDescription

player:LoadCharacterWithHumanoidDescription(humanoidDescriptionForOutfit)

end

– Connect “PlayerAdded” event to “onPlayerAdded()” function

game.Players.PlayerAdded:Connect(onPlayerAdded)

1 Like

@XAXA made a script that removes bundles.

local function removeBundles(character)
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	if not humanoid then
		error("Character has no humanoid.")
	end
	
	local descriptionClone = humanoid:GetAppliedDescription()
	descriptionClone.Head = 0
	descriptionClone.LeftArm = 0
	descriptionClone.RightArm = 0
	descriptionClone.LeftLeg = 0
	descriptionClone.RightLeg = 0
	descriptionClone.Torso = 0
	humanoid:ApplyDescription(descriptionClone)
end
26 Likes

I think thats a much easier method. TY

1 Like

Where do I put this script?
–hfjewkfhkewhfkewhfkwjehfekwjhfkjwhgfjkweghewjghewkjghjewhjkfhjfhhfhffhfhfhfhfhfhfhfhffhf

2 Likes

Using a server script, you can execute that function upon a character.
Here is an example:

-- Creates a variable to reference a character.
local someCharacter = game:GetService("Workspace").Character

-- Makes use of the variable to remove a bundle from the character.
removeBundles(someCharacter)
5 Likes

For those who are still unsure on how to force block limbs for all players, try this:

local Players = game:GetService("Players")

function SetHumanoidToBlockLimbs(Humanoid:Humanoid)
	local HumanoidDescription = Humanoid:GetAppliedDescription()
	HumanoidDescription.Head = 0
	HumanoidDescription.LeftArm = 0
	HumanoidDescription.RightArm = 0
	HumanoidDescription.LeftLeg = 0
	HumanoidDescription.RightLeg = 0
	HumanoidDescription.Torso = 0
	Humanoid:ApplyDescription(HumanoidDescription)
end

Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)
		local Humanoid = Character:WaitForChild("Humanoid")
		SetHumanoidToBlockLimbs(Humanoid) -- This function will make player body type to block limbs
	end)
end)

And you put that code into a server script like this:
image

4 Likes

The function is called before any IDs get loaded, so I added a wait(0.4) before the function so it actually works, but it doesn’t feel efficient and I imagine in certain particularly laggy conditions it might fail. Though I did add a wait(1) after the function and called the function again as a safeguard. If anyone has any idea how to call the function while any HumanoidDescription parts aren’t 0 that would be appreciated.

I’m not sure what Ids you’re waiting for but the function should not need to wait for anything. You can use it as soon as someone’s character loads. I recommend at least having Character:WaitForChild("Humanoid") as your safeguard but I tested it myself and it works even without that.

In regards to your usage:

You may as well just wait 1.4 seconds and call it once because calling it twice consecutively does nothing helpful. Also wait() is deprecated. You can upgrade your scripts to use task.wait() instead.

The 0.4 seconds makes it look instant, and the 1 second is again a safeguard if the 0.4 was too quick giving it some time. Any longer than 0.4 seconds it looks bad.

It’s the same exact code you’re using, in my testing, the IDs take a tiny amount of time to update from roblox. I don’t know if this is only an issue on my end for some reason but the issue is there.

I came across this which does exactly what is needed:

Updated the code to use it, and it’s flawless.

Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)
		local Humanoid = Character:WaitForChild("Humanoid")
		Player.CharacterAppearanceLoaded:Wait()
		SetHumanoidToBlockLimbs(Humanoid)
	end)
end)
1 Like

I apologize, I didn’t realize you added a wait for visual purposes. Although, I don’t understand why that would be better than using the function as soon as possible, but that’s okay.

I’m still unsure on what you mean by ‘waiting for an Id to load’. My understanding is an Id is just an integer which represents a Roblox asset.

That’s great to hear.

Looks like you’re displaying players’ original avatars before changing the assets. Is this intentional? You don’t need to wait for clothing or accoutrements. You only need the rig to be loaded to use the function.

It’s completely imperceptible. Ideally I wouldn’t have to do this, but your code simply does not work for me. I have no idea why, so I assume it’s some sort of latency issue. This change makes it work though, and it doesn’t seem to have any problems.

That’s unusual. What problems do you notice when you use it? If you have an error message or a video please show me.

Your script:


No errors.

I tested my version just to compare and it actually is visible like you brought up with your concern which further leads me to believe it is some sort of latency issue as earlier it really was instant and imperceptible.

Okay I’ve found the issue. It looks like Roblox loads R6 characters differently to R15 which would explain why it works for me and not you.
I did a test with this:
image
And I saw the same issues you were having.
What you did with CharacterAppearanceLoaded is definitely a good solution.

Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAppearanceLoaded:Connect(function(Character)
		SetHumanoidToBlockLimbs(Character.Humanoid)
	end)
end)
1 Like

Well, that explains that then. Strange that the two are different in that regard but it is what it is.

1 Like

here are the id-s that u could use for blocky avatar if you use r6 avatars
ngl it looks kinda ugly on r15
I dont suggest using the script as it takes time to morph your avatar.

Oh cool, are these the standard Roblox block limbs or are they from a UGC body package?