legacy-bossmenu
Installation
Dependencies and setup steps.
Installation
Dependencies
Install and start these before legacy-bossmenu in server.cfg:
legacy-lib— provides the framework/banking/inventory bridges (Framework,Banking,Inventory),Target, branding (GetAccentColor,GetAccentGradient,GetLogo), locale loading, and theStorepersistence helper used fordata/locations.json.ox_lib— used forlib.callback,lib.notify, and NUI callback plumbing.oxmysql— used for the SQL tables described below (and, if present, queried directly for chart data fromlegacy-banking/legacy-billing).
Steps
- Ensure
legacy-lib,ox_libandoxmysqlare installed and started before this resource. - Import the SQL schema to create the required tables:
mysql -u youruser -p yourdatabase < sql/schema.sql
This creates:
legacy_bossmenu_locations— legacy storage for boss menu zones (only used for one-time migration intodata/locations.json; not written to afterward).legacy_bossmenu_audit— action log (hire/fire/promote/demote/deposit/withdraw/stash_open/etc).legacy_bossmenu_hours— per-employee duty-time buckets, populated from thelegacy-bossmenu:dutyHeartbeatevent.
⚠️ Re-running
sql/schema.sqlon a live server drops and recreates all three tables, wiping audit history, tracked hours, and any legacy zone rows. Back up first if needed.
- Review
config.luaand setConfig.Locale,Config.AdminGroups,Config.AdminCommand,Config.Stash,Config.WithdrawDestinationandConfig.Webhooksas needed. - Optionally adjust
Config.SeedDefaultLocations/Config.DefaultLocationsto control which boss menu zones are seeded on first start (only applies when there is no existingdata/locations.jsonand nothing to import from the legacy SQL table). - Build the NUI frontend:
cd web
npm install
npm run build
# outputs to web/dist, loaded via nui://legacy-bossmenu/web/dist/
- Add
ensure legacy-bossmenutoserver.cfgafter its dependencies.
Getting players into a boss menu
There is no direct player command to open the boss menu. Access is only via:
- Walking up to a placed
ox_targetzone (created viaConfig.AdminCommand, default/bossmenu_admin), or - Another resource calling the
OpenBossMenuexport / triggeringlegacy-bossmenu:openClient.
If Config.SeedDefaultLocations is false and no admin has placed a zone yet, no one can open any boss menu until one exists.