Most optimal way to update life bar?

you can improve your code a bit.

first dont use bar.x = whateverX, use translate(whateverX, whateverY). it’s faster.

second don’t use scale to reduce your bar. just reduce the imagesheet 30%.

third, your creating 30/60 images per second depending on your config.lua. i would never use this approach. I would only update the function if anything will happen to the value directly linked to the bar. I don’t think a runtime is needed for a health progress bar.

forth, i would never create 30/60 images per second for a progress bar. i would prefer a method of filling or creating a custom bar using rectangle with a mask if you want that “custom” feel. @roaminggamer was a better approach regarding of speed.