What is the best way to make multicoloured damage counter based on damage on NPC's?

what do i even write here bruh

I mean in 3d space not on ui
Like do i use billboards but how to make them look like they are falling

Billboards + tween attachment worldcframe down

How to I tween it like that?
Need example…

To set up the Billboard, use a Billboard GUI and then parent it to the NPC or object. Set the adornee to the character if you need to. Also make sure AlwaysOnTop is on.

Since it’s a damage counter, add a TextLabel to the BillboardGUI, and put some kind of text like “1234567890” (this is to test how the different fonts look at numbers and how your BillboardGUI handles big numbers). Once the damage counter looks about right, place the BillBoardGUI into ReplicatedStorage so you can clone it later.

I assume you have your own system to calculate damage. Make it so that whenever the NPC takes damage, it clones the BillboardGUI into the NPC, changes the TextLabel to show the damage amount, and then plays a tween that will make it do the fall animation.

To make the fall animation, you should use TweenService and tween the “ExtentsOffset” property so that you can animate it moving up and down. You might have to change the EasingStyle and EasingDirection to make it look like it is falling. (Probably like Cubic Out direction or something idk)

For the color-changing part of this, just make it change the TextColor3 of the cloned BillboardGUI’s Textlabel if the damage reaches a certain point.

local tweenService = game:GetService("TweenService")

local attachment = Instance.new("Attachment")
attachment.Parent = workspace

local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut)

local tween = tweenService:Create(attachment, tweenInfo, {WorldCFrame = attachment.WorldCFrame - Vector3.new(0, 5, 0)})

tween:Play()