”You are not authorized.” on /bossmenu_admin | You’re not group.admin / group.superadmin, not in the framework permission list (esxGroups / qbGroups), and not ACE-allowed for any path in Config.Admin.acePermissions. Most txAdmin admins are group.admin by default — double-check your permissions.cfg. See Commands → Permissions. |
| ”You are not the boss of this society.” | Your job grade isn’t a configured boss grade. Either set isboss = true on the grade in your framework’s shared jobs config (QB / Qbox), or add your grade’s name to Config.BossGradeNames (any framework). |
| Hire fails with “esx setJob did not stick” | The target job or grade 0 doesn’t exist in ESX.Jobs at runtime. Check your jobs / job_grades tables actually have a grade = 0 row for that job. ESX’s setJob silently warns and refuses to mutate otherwise — the bridge does a readback so this surfaces as an error instead of looking like a success. |
| ”Society account write failed.” on QB / Qbox | Your society backend (Renewed-Banking / qb-management) isn’t started, or doesn’t recognise the job. Make sure the banking resource starts before nex_bossmenu — the export check happens at the first balance call, not at boot. |
| Markers don’t appear after promoting someone mid-session | The client polls the server-side job every Config.JobPollMs (2s default). Lower it for faster reaction. |
| Hire button greys out the moment I click it | The candidate moved out of Config.HireDistance (5m default) between menu open and click. Walk closer and try again. The check is re-run server-side at click time. |
| ”Insufficient funds” but the player clearly has the money | Config.PlayerAccount is set to bank and the player only has cash, or vice versa. Pick the account your framework actually credits payday into. |
Marker draws but no [E] prompt appears | Config.Interaction.mode = 'target' but neither ox_target nor qb-target is running — the resource falls back to textui automatically, but you might be outside Config.InteractDistance (1.6m default). Walk closer. |
| Eye-target option doesn’t show | Same as above — target script not running, or the marker job doesn’t match your job. The option is gated by both. |
| Money disappeared on a failed transaction | Should never happen — every society write has a refund-on-failure path. If you can reproduce this, file a ticket with the server console log. Bridge AddSociety / RemoveSociety must return false on failure for the refund path to fire — relevant for custom frameworks. |
| Society balance shows 0 for an existing job | On ESX, the society_<jobname> row didn’t exist before this resource was installed. The bridge auto-seeds it the first time the balance is read — open the menu once, the row is created, balance updates. |
| Migration warning on first boot | Working as intended. The schema bootstrap atomically renames boss_menu_locations → nex_bossmenu and adds the label column if missing. Your placed markers carry over with no manual SQL. |