Making NPC Head Bigger

So I was making a script where It’d scale the NPC head. Sadly it doesn’t work. I currently want it to work in a Local-Script. I’ve tried to use the Value of the Humanoid “HeadScale” but it appears it only works on Server-Scripts.

Here is the code:

local targetSize = Character:WaitForChild("Head").Size * 2
local tween = TweenService:Create(Character:WaitForChild("Head"),, {Size = targetSize})


Thanks in advanced.

1 Like

This might help:

1 Like

I’m tweening the head not scaling in-game. I’ve also tried this in the code and it doesn’t work which you can view above.

1 Like

then idk how to help, sorry, i’ve never tried doing something similar.

1 Like

Any help would be appreciated…

1 Like

I do not know If It helps you, but I will still try:
In your case, the code you have would actually work in a ServerScript, if you wanted to scale a part not associated with a player character:

local Character = workspace:WaitForChild("PartName") -- Replace with the part's name.
local TweenService = game:GetService("TweenService")

local targetSize = Character.Size * 2
local tween = TweenService:Create(Character,, {Size = targetSize}) -- Change the length to the desired duration in seconds.


But if you want to scale a player character’s head, it would be better to use a ServerScript and the Humanoid’s “HeadScale” property:

local Character = game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait()
local humanoid = Character:WaitForChild("Humanoid")

humanoid.HeadScale = 2

This code should be placed in a server-side script, as changes made in a LocalScript will not be seen by others due to FilteringEnabled.

1 Like

Hi! I did use this code using HeadScale before but sadly I need it to work on the client. Is there anyway to disable FilteringEnabled?

I’ve looked over on workspace (If I remember correctly it is there) but couldn’t find it.

1 Like

Try using a HumanoidDescription to adjust the size

Cold you give me a code example?

If anyone could help it would be really appreciated…

local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Head = Character:WaitForChild("Head")

local finalSize =, 3, 3) -- End size
local animSpeed = 5 -- Time it takes to finish head growth
local loops = 60 -- Think of in context of frames
local increment = (finalSize - Head.Size) / loops

for i = 1, loops do 
	Head.Size = Head.Size + increment

Messed around with this and the body and come to the conclusion this is never going to be perfect with a R6 body. However, I can change the R15 body’s everything to any size you wish perfectly and everything will always line up and work as intended.

I’ve tried this, it just scales up as it collides with me but I only see the old head mesh size. Not sure why.

It’s R15

Any help would be deeply appreciated.

Change mass (the 1.5) to whatever you wish. Lower than 1 = smaller. Higher than 1 = larger.
Set this up on touch so you can quickly test it. Mark sure setting are set to R15 in game options.

--Inside a part on the workspace with CanTouch
local db, mass = true, 1.5
local Depth, Height, Width = mass, mass, mass
local Vector =, Height, Depth)
	local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
	if Player == nil then return end
	if db == true then db = false
		local Humanoid = Player.Character.Humanoid
		Player.Character:SetAttribute("Scaled", true)
		if Humanoid.RigType == Enum.HumanoidRigType.R15 then
			local HD = Humanoid:GetAppliedDescription()
			HD.DepthScale *= Depth
			HD.HeightScale *= Height
			HD.WidthScale *= Width
			HD.HeadScale *= math.max(Width, Depth)
		end	task.wait(3) db = true

Hi, just letting you know that you can’t disable FE now since it was forced long time back in 2018.

1 Like
Humanoid::ApplyDescription() can only be called by the backend server