How do I tween the size of a model? (Fixed it)

I want to tween a models size like when you change the scale in the properties but you can’t tween the scale property. Does anybody know how to tween it if so please let me know.

Well I forgot if this works or not, but if you look into the Properties of a Model you can see something with Size. By changing that, it will change its size from the original scale with the multiplication of your number. So x * y = Size, x = the size model when you grouped them and y = the input. Well I guess you already know what I mean, but let me know if this worked.

The model doesn’t have a size property, and you can’t tween the scale property either as roblox doesn’t allow it. I think the only possible way @gamincwc can do this is if he gets the meshparts + basepart(HRP) in the model and then tweens all of them.

Ah, now I see. Well yes, I meant the scale property. But I see, you right it doesn’t allow. Well sorry for this wrong answer!

local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")

local model = workspace.Model -- put your model path here
local tweenInfo = TweenInfo.new(3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) -- put your tween info here

local startScale = 1 -- start scale of the model, or you can just replace it with model:GetScale()
local endScale = 3 -- end scale of the model

--[[
	So function below just creates an another function, which runs every frame for N seconds (to the last second of tween animation)
	This another function just calculating everything
]]

local function tweenScale(startScale : number, endScale : number, tweenInfo : TweenInfo, model : Model)
	local elapsed = 0
	local scale = 0
	local tweenConnection

	local function onStep(deltaTime : number)
		elapsed = math.min(elapsed + deltaTime, tweenInfo.Time)

		local alpha = TweenService:GetValue(elapsed / tweenInfo.Time, tweenInfo.EasingStyle, tweenInfo.EasingDirection)

		scale = startScale + alpha * (endScale - startScale)

		model:ScaleTo(scale)

		if elapsed == tweenInfo.Time then
			tweenConnection:Disconnect()
		end
	end

	tweenConnection = RunService.Heartbeat:Connect(onStep)
end

tweenScale(startScale, endScale, tweenInfo, model) -- put all arguments here

Here is the code I made on a quick hand

This code works perfectly for me, if you have any questions - feel free to ask

It’s okay, I have my fair share of wrong answers too.

Yeah this works, but its sort of bittersweet I guess. I thought OP wanted to tween instead, it’s like tweening but you know. By the way is this server-side or client-sided?

Yeah thanks, this works on server and on clients

Its pretty good, I’m pretty sure its the only way to do what OP wants.

You can’t tween the scale of a model but what i do is something like this:

local Model = …
for i = 1, 1.1, 0.01 do
Model:ScaleTo(i)
task.wait(0.0001)
end