From Heavy Iron Modding

UI Font
Base Type0x21
Games usedNight of 100 Frights
Battle for Bikini Bottom
Source codezUIFont.h

A UI Font is a text element that is drawn to the screen, on top of everything else in the scene. It can accept user input.


UI Fonts are based on UI assets, which are based on entity assets. Some notes on the 0x54 byte header:

  • The rotation, scale, and color are all ignored. By default, the rotation is (0,0,0), scale is (1,1,1), and color is (1,1,1,1).
  • The position is measured in screen space. The XY coordinates are measured in pixels, (0,0) being the top left corner of the screen. The Z coordinate represents depth and is used to determine the draw order (a UI Font with a higher depth will be drawn behind one with a lower depth).
  • The four asset IDs (0x0C, 0x10, 0x4C, 0x50) are always null. UI Fonts do not use models.

Notes on the UI data:

  • All known possible values for uiFlags: 44, 48, 52, 54, 55, and 60.

Following the placeable header and the UI data:

Offset Type Variable Description
0x80 short uiFontFlags
0x82 byte mode
0x83 byte fontID maybe the same as Font in game_object:text_box?
0x84 AssetID (Text) textAssetID
0x88 Color bcolor
0x8C Color color
0x90 short[4] inset
0x98 short[2] space
0x9C short[2] cdim
0xA0 int max_height
0xA4 Event[numberOfEvents] Events


  • PadPressX
  • PadPressSquare
  • PadPressO
  • PadPressTriangle
  • PadPressL1
  • PadPressL2
  • PadPressR1
  • PadPressR2
  • PadPressStart
  • PadPressSelect
  • PadPressUp
  • PadPressDown
  • PadPressRight
  • PadPressLeft
  • FontBackdropOn
  • FontBackdropOff
  • UI Select
  • UI Unselect
  • UI Focus On
  • UI Focus Off
  • UI Focus On+Select
  • UI Focus Off+Unselect