Bablo ResourcesDocs

Status Icons

Every status (health, armor, hunger, thirst, stress, stamina, oxygen, nitro, voice) ships with a built-in icon. You can swap any of them from config.lua without rebuilding the UI — the icon you pick is used by all six status designs and by the previews in the settings menu.

Add an icons block inside Config.DefaultSettings.status, alongside colors and visibility:

LUA
Config.DefaultSettings.status = {
    -- ...
    icons = {
        health  = "heartbeat",
        armor   = "lucide:ShieldHalf",
        stress  = "brain",
        oxygen  = "lucide:Wind",
        thirst  = "assets/water.png",
    },
}

Anything you leave out keeps its built-in icon, so an existing config needs no changes.

What you can put there

ValueMeaning
"heartbeat"a name from the built-in list
"hud:armor"one of the HUD’s own glyphs — hud:health, hud:armor, hud:hunger, hud:thirst, hud:stress, hud:stamina, hud:oxygen, hud:voice
"lucide:ShieldHalf"any icon from lucide.dev, by its PascalCase name — around 1600 of them
"assets/radiation.png"your own image, from the resource’s assets folder
"https://…"an image from a URL

Two longer forms are available when you need more control:

LUA
-- keep an image's own colours instead of tinting it to the status colour
nitro = { image = "assets/nitro.png", tint = false },
 
-- raw SVG path data, straight from any icon site
stress = { path = "M12 2 L22 20 H2 Z", viewBox = "0 0 24 24" },
 
-- outline-style icons (Lucide/Feather paths) need stroke mode
oxygen = { path = { "M4 4 L20 20" }, mode = "stroke", strokeWidth = 2 },

Images are recoloured to match the status colour by default, so a plain white or black PNG works best. Use tint = false for full-colour artwork.

An unknown name, a missing file or a broken path never leaves a blank slot — the built-in icon is used instead.

Lucide icons

Because the whole Lucide set is already bundled with the HUD, using one costs nothing extra and needs no rebuild. Find an icon on lucide.dev, take its name, and write it in PascalCase after lucide::

LUA
icons = {
    health  = "lucide:HeartPulse",
    armor   = "lucide:ShieldHalf",
    hunger  = "lucide:Beef",
    thirst  = "lucide:CupSoda",
    stress  = "lucide:BrainCircuit",
    stamina = "lucide:Footprints",
    oxygen  = "lucide:Wind",
    nitro   = "lucide:Zap",
    voice   = "lucide:Mic",
}

Using your own images

Drop the file in the resource’s assets folder and name it:

LUA
icons = {
    thirst = "assets/water.png",
    nitro  = { image = "assets/nitro.png", tint = false },
}

A bare filename also works and is read from assets"water.png" is the same as "assets/water.png". Keep images in assets: files placed inside web/dist are replaced every time you update the HUD.

Custom statuses and pills

Config.CustomStatuses and Config.CustomPills accept exactly the same values in their own icon field:

LUA
Config.CustomStatuses = {
    { id = "radiation", label = "Radiation", icon = "lucide:Radiation", color = "120 90% 55%" },
}

Setting icons.radiation overrides whatever that definition asked for.

Built-in icon names

radiation, biohazard, heartbeat, brain, lungs, virus, skull, fire, snowflake, bolt, droplet, shield, gas, gauge, gauge-high, temperature, battery, signal, wifi, star, crown, coins, money, key, wrench, gear, eye, bone, pills, syringe, bandage, wind, running, food, heart