Buff/debuff overlay editor for Age of Conan — design icon grids and bars that show your active effects on top of the game, then compile and install them in one click. It also ships live combat HUDs and a handful of in-game extras: a cast timer, a stopwatch, a target inspect panel, leaner damage numbers, a real-time deeps meter, and the Ethram-Fal seed timer.
Most of what KazBars builds is set up once and runs on its own after you close the app. Only the two live combat overlays — the deeps meter and the Ethram-Fal seed timer — keep working while KazBars is open.
Upgrading from Kaz Grids? Install over it — no uninstall needed. Your settings and game folder carry over automatically.
KazBars — custom icon overlays arranged in bars or grids that show only the buffs and debuffs you choose to track.
- Player and Target grids — track effects on you and your current target
- Dynamic or Static slots — auto-fill as buffs activate, or pin specific buffs to specific slots
- Buff database — map numeric buff IDs to readable names and classify them as Buff, Debuff, or Misc
Cast Timer — an on-screen readout of your and your target's current cast time, ready to sit over the game's cast bars. Off by default
Stopwatch — a draggable Start / Pause / Reset count-up timer that works in fullscreen and never steals focus from the game. Off by default
Target Inspect Panel — an in-game combat sheet for whatever you have targeted: armor and protections with their mitigation percentages, crit, critigation, heal rating, bonus spell damage, and combat damage increase. Player targets add a PvP section; clear your target and the panel hides. Off by default
Damage Numbers — a leaner, faster rewrite of the game's floating combat numbers, with new layout and behavior settings. It replaces one stock game file; if the game ever patches, rebuild once to put it back. Off by default
Deeps by Veni — a real-time meter that reads your combat log for DPS out, DPS in, HPS out, HPS in, and ΔHP in.
Ethram-Fal Seed Timer — tracks the Viscous Seed / Lotus Fixation / Syphon cycle so the raid can time scorpion kills.
Default Buff Bars editor — tune the game's own buff-bar HUD from one place: on/off, icon size, spacing, columns, friendly/hostile filter — no XML editing.
Damage number colors — recolor every damage source and pick where each one lands: above the head, in a fixed column, or in the zig-zag stack.
Backup & restore — save your full Age of Conan config plus your KazBars profiles and settings to one portable zip, and restore it after a reformat or on a new PC.
-
Download
KazBars.zipfrom the latest release and extract it anywhere. Upgrading from 3.0.1 or earlier? Extract it over your existing KazBars folder instead — profiles and settings survive. That's the last manual update: from then on KazBars offers new versions itself, one click to download and one to restart. -
Run
KazBars.exeas Administrator. -
The first-run setup window opens. Point it at your Age of Conan folder.
-
Choose Use Defaults — ready-made grids for common raid buffs and debuffs, sized to your screen. (Or Start Empty to build your own from scratch.)
-
Click
Build & Install. Close the game and the patcher for your first build — it registers KazBars with the game permanently. After that, rebuild anytime and type/reloaduiin-game. -
Launch the game from its own executable — KazBars offers to create a desktop shortcut (DX10 or DX9) after the first build. Launching this way skips the patcher, which is what keeps your setup registered.
Positioning happens in-game: press Ctrl+Shift+Alt for preview mode and drag grids and panels where you want them. The game remembers positions, collapse states, and the control panel's switches across relogs and full restarts — like any other game window.
If the game ever patches (it hasn't in years), run the official patcher once, then Game ▸ Repair game install — KazBars re-registers itself and restores your saved positions.
Once you know the flow, make it yours: + Add Grid for your own layouts, then Tracked Buffs... to pick what each one watches. Up to 64 slots total across all your grids.
Sharing a layout: File ▸ Export profile… writes one .kazbars.json file, with any custom buffs it references baked in — the recipient doesn't need those buffs in their own database first. File ▸ Import profile… reads one back.
SmartScreen warning: Windows may flag the
.exeas unrecognized on first launch. Click More info → Run anyway. Updates KazBars installs on its own don't trigger it. KazBars is unsigned because code signing certificates aren't justified for a hobby project.
Questions, bug reports, and release news live on Discord. Join the Discord.
- Windows 10 or 11
- Age of Conan installed
- No Python install needed — ships as a standalone executable
KazBars does not read game memory or inject anything into the game process. Installing writes to the game's UI folder and registers KazBars in two clearly marked blocks in the game's own config files, with pristine .bak backups beside them. It also drops IgnorePatcher.enable — Funcom's own engine flag, whose filename ships inside the game client itself — so launching the game executable directly skips the patcher. This is the same persistence path the community's Aoc.exe launcher has provided for some fifteen years, done less invasively: no registry hooks, no process interception, and everything KazBars adds to the game folder is inspectable. Uninstall restores every changed file byte-for-byte.
Developer setup. End users should download a release.
# 1. Clone
git clone https://github.com/kazour/Kazbars.git
cd Kazbars
# 2. Install + enable git hooks (uv recommended; pip works too)
uv sync --extra dev --extra build
# or: pip install -e ".[dev,build]"
uv run pre-commit install # one-time per clone (pip users: drop "uv run"); runs ruff lint + pytest on every commit
# 3. Run from source
uv run python -m kazbars
# 4. Tests
uv run pytest
# 5. Lint (formatting is intentionally not enforced — see .pre-commit-config.yaml)
uv run ruff check src tests
# 6. Build a distributable .exe
uv run pyinstaller kazbars.spec
# Output: dist/KazBars/KazBars.exe + bundled assetsThe PyInstaller build is reproducible from the checked-in kazbars.spec and the committed uv.lock (CI installs with uv sync --locked). CI builds the same artifact on every tagged release via .github/workflows/release.yml.
See docs/README.md for the full doc map — every doc with its audience and when to update it (changelog, architecture, flows, database changelog, inspect panel stat reference).
The project follows a src/ layout — entry point is python -m kazbars, which loads KazBarsApp from src/kazbars/app.py.
Patch and minor releases cut themselves. release-train.yml runs every second Monday at 00:01 UTC (first run 31 August 2026; a manual run ignores the schedule); when main carries code changes since the last tag (under src/ or kazbars.spec) and docs/CHANGELOG.md has entries under [Unreleased], it runs scripts/cut_release.py, commits Release vX.Y.Z, tags it, and release.yml builds and publishes KazBars.zip + SHA256 checksum from the tag. The script reads [Unreleased], picks the bump (### Added present means minor, otherwise patch), dates the changelog section, bumps __version__ in src/kazbars/__init__.py, and writes the What's New block into .github/release-notes.md. --dry-run prints the plan and writes nothing; setting the repository variable RELEASE_HOLD pauses the train.
A major release, or one whose notes deserve a polish, is the same script by hand:
python scripts/cut_release.py --version X.Y.Z
# review the What's New block in .github/release-notes.md, then:
git commit -am "Release vX.Y.Z"
git tag -a vX.Y.Z -m "KazBars vX.Y.Z"
git push origin main
git push origin vX.Y.ZGPL-2.0-or-later — see LICENSE. Some bundled parts keep their own terms: as2c (a port of MTASC), Funcom's game files, and the Deeps parsers. See THIRD_PARTY.md for the full list.