barsKit: one kit, lots of looks
Health and resource bars for any world. Pick a look and say what the bar shows. Switching the look later is a one-word change, made live.
Open this world to see the gallery. Every look sits side by side and follows one value that drains and refills, next to a training dummy with a bar over its head and a boss with a boss bar. On a desktop-sized window all 20 looks and their labels are on screen at once, with no scrolling, and every label is readable from where you spawn. Your own health bar flips through every look with [ / ] or the ◀ ▶ buttons, and G hides or shows the gallery.
What's in it
- 20 looks of its own, plus Lifeline's 13 as
lifeline:<style>:- thin line, segmented, radial ring
- heart containers (full, half and empty)
- boss bar with phase marks, over-head bar, ghost bar, shield on health
- crosshair arc, glass mana orb, vertical gauge, pips
- pixel art, sci-fi hologram, ornate fantasy frame, bubbly cartoon
- blood vial, heart monitor, stitched felt, tick column
- 8 theme families: sci-fi, fantasy, cartoon, pixel, minimal, realistic, horror and cozy.
- Every look says what it is: its shape, whether it's a screen or a world bar, and its size. You can pick one without trying them all, and filter by family, use, shape, placement or size.
- Works with the SecondWind health kit (formerly healthKit) out of the box: your health, shield, armour, hearts and lives, plus any enemy's or prop's health.
- Not tied to health: stamina, mana, XP, energy, or any number your game keeps.
BK.resourcegives you a pool that drains and refills. - Feels good: smooth changes, a lingering ghost chunk, a low-health pulse, optional numbers that stay readable over the ghost trail, and colours for each kind of resource.
- Fits any screen: bars stay readable on phones and desktops, never leave the screen, and step clear of touch buttons. The gallery and your own panels never cover the HUD.
- Multiplayer: your HUD shows your own body. Bars over other players and shared targets read synced health, so everyone sees the same value.
- Leaves nothing behind: removing a bar, unbinding it or closing the gallery cleans up every entity and screen it made.
Install and use
Install the barsKit package (search ZeroMind for "barsKit"). SecondWind 1.2.0 (the health kit) and Lifeline 1.0.1 come with it, under deps/.
Give your player health first. A health bar on a body without health is hidden. In your scene's build.luau, inside content() after the default player setup:
local VITALS = asset.resolve("deps.7a497fbf-1b4e-4655-8abf-e588fa7caa5c.SecondWind.Vitals", "component")
body.component.add(VITALS, { maxHealth = 100 }) -- and the same for enemies that get bars
Then:
local BK = require("barsKit.api")
local hp = BK.bar({ look = "ghost", show = "health" }) -- your health, top-left
BK.bar(enemy, { look = "overhead" }) -- over an enemy's head
BK.bar({ look = "orb", show = "mana", anchor = "bottomRight" }) -- any resource
BK.setLook(hp, "pixel") -- one word, live
BK.looks({ family = "horror", placement = "screen" }) -- ask the catalog
BK.remove(hp) -- gone, entity and all
From game code, SecondWind's API is require("deps.7a497fbf-1b4e-4655-8abf-e588fa7caa5c.SecondWind.api"). A short name such as healthKit.api doesn't reach into deps/.
Known limits
Checked on 2026-10-18 in the desktop app, on a fresh install and with two people in the world:
- #19201: some avatars show the literal text "{PlayerName}" as their name tag. That is the engine's tag, not a barsKit bar.
- #19260: a fresh install leaves older single-module copies of two dependencies in
versions/folders: Lifeline'sapimodule andHealthcomponent underdeps/45f92606-…/versions/, and MatchFlow'srulesmodule underdeps/40bc9b7f-…/versions/. The health kit's own folder has none. The log warning comes from the copied LifelineHealthcomponent, which can't find itsapimodule ("module~.api… has no root to resolve against"). barsKit doesn't use these copies: bars, the gallery and bars saved in a scene load and survive a reload. Nothing needs deleting. - #19449: a second
Resourceon one body (say mana beside stamina) reaches other players mixed into the first, so another player's view of your stamina follows your mana. Your own bars are right. Keep pools other players must see on separate entities until it's fixed. - #19169: a second session that joins a game someone is already playing doesn't fully get its player. In the web browser version the joining player got no player view and none of the world's screens (no bars, no gallery). In the desktop app their bars over bodies sat at ankle height. The first player in a game is not affected, and barsKit's code ran in both sessions.
- Web browser version, one player: a fresh install of 1.3.0 works (gallery, health, boss and over-head bars,
G,[/]). Two people in the web version can't be checked until #19169 is fixed.
Version 1.3.0, MIT licence, with 68 tests in barsKit.testSuite. The full guide is in the package README.
Comments · 0
Open discussion, no rating attached. Ask questions, swap notes, follow threads.