[Trigger] Progress bar tied to the player's screen using UI frames

Warcraft 3 has progess bars as one can see with unit training.
It is possible with the UI frame api, when your version of the game has such. V1.31+ or current version have it built in. Old versions need memhack or a 3rd party "upgrade"/"hack" like ujapi (tool section). GUI does not have the frame api, need jass/Lua for it or a GUI mod.
Frame types that do such would be either SIMPLESTATUSBAR or STATUSBAR.
The video either displays the HP vs Max HP or remaining seconds of a timer to a UI progress bar.

An Lua example from my tutorial to create a progressbar that auto fills over time.
Lua:
function MakeBar()
    local bar = BlzCreateFrameByType("STATUSBAR", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)        
    BlzFrameSetAbsPoint(bar, FRAMEPOINT_TOPLEFT, 0.4, 0.3)
    -- Screen Size does not matter but has to be there
    BlzFrameSetSize(bar, 0.00001, 0.00001)
    
    -- Models don't care about Frame Size, But world Object Models are huge . To use them in the UI one has to scale them down alot.
    BlzFrameSetScale(bar, 1)
    
-- suggested models for a progressbar
    --BlzFrameSetModel(bar, "ui/feedback/cooldown/ui-cooldown-indicator.mdx", 0)
    --BlzFrameSetModel(bar, "ui/feedback/XpBar/XpBarConsole.mdx", 0)        
    BlzFrameSetModel(bar, "ui/feedback/progressbar/timerbar.mdx", 0)
    --BlzFrameSetModel(bar, "ui/feedback/buildprogressbar/buildprogressbar.mdx", 0)

    --BlzFrameSetMinMaxValue(bar, 0, 100)
    local i = 0
    TimerStart(CreateTimer(), 0.1, true, function()
        BlzFrameSetValue(bar, i)
        i = i + 1
        print(BlzFrameGetValue(bar))
    end)

    print("done")
end
The big tutorial and lookup with examples.
 
Top