Character resizer


  • I had an idea for a pretty simple way to change the size of your character, and it worked, for both R6 and R15.

    function resize(character, ratio)
    	character.Parent = nil
    	local function recurse(x)
    		local R6 = character.Humanoid.RigType == Enum.HumanoidRigType.R6
    		for k, v in pairs(x:GetChildren()) do
    			if v:IsA("Attachment") and (v.Parent.Name == "Handle" or R6) then
    				v.Position = v.Position * ratio
    			elseif v.ClassName == "SpecialMesh" and v.MeshType == Enum.MeshType.FileMesh then
    				v.Scale = v.Scale * ratio
    			elseif R6 then
    				if v:IsA("BasePart") then
    					v.Size = v.Size * ratio
    				elseif v:IsA("JointInstance") then
    					local c0, c1 = v.C0, v.C1
    					c0 = c0-c0.p + c0.p*ratio
    					c1 = c1-c1.p + c1.p*ratio
    					v.C0, v.C1 = c0, c1
    				end
    			elseif v:IsA("Humanoid") then
    				v.BodyDepthScale.Value = v.BodyDepthScale.Value * ratio
    				v.BodyHeightScale.Value = v.BodyHeightScale.Value * ratio
    				v.BodyWidthScale.Value = v.BodyWidthScale.Value * ratio
    				v.HeadScale.Value = v.HeadScale.Value * ratio
    			end
    			recurse(v)
    		end
    	end
    	recurse(character)
    	character.Parent = workspace
    end
    

    Animations will still be slightly off because positional offsets do not scale with size, so there's no getting around that.

    0_1486746880433_upload-ffe97e74-edea-4d85-bece-ebb20785f998


  • Roblox already allows you to do that with R15 characters without bugs, but it is cool that you did it with R6.

Log in to reply
 

Looks like your connection to Scripting Helpers was lost, please wait while we try to reconnect.