I want to change the default characters limbs size (e.g. make them really tall) but still have it work and function properly.
I don’t know the most about rigging and motor6ds. How could I resize various limbs independently while making sure the joints are connected correctly and the character doesn’t fall apart?
I want to be able to make something like this (video is jailbreak)
You can easily attain this by using HumanoidDescription. Change its HeightScale property to something else to scale the character.
Here’s an example code I wrote:
ServerScriptService
local changeScale = game:GetService("ReplicatedStorage").ChangeScale;
local offset = 0.25;
changeScale.OnServerEvent:Connect(function(player, dir)
local character = player.Character;
if not character then return; end
local humanoid = character:WaitForChild("Humanoid");
if not humanoid then return; end
local desc = humanoid:GetAppliedDescription();
desc.HeightScale += dir * offset;
humanoid:ApplyDescription(desc);
end)
StarterCharacterScripts
local userInputService = game:GetService("UserInputService");
local changeScale = game:GetService("ReplicatedStorage").ChangeScale;
userInputService.InputBegan:Connect(function(input, processed)
if processed then return; end
if (input.KeyCode == Enum.KeyCode.Q) then
changeScale:FireServer(-1);
elseif (input.KeyCode == Enum.KeyCode.E) then
changeScale:FireServer(1);
end
end);
And add a RemoteEvent called “ChangeScale” in ReplicatedStorage.
Additionally, you can change more properties too. For example, the scaling section itself has 6 properties:
TL;DR: You can not use :ApplyDescription() on the client, hence I’m using RemoteEvents here.