Troubleshooting

Diagnose startup, permission, creation, membership, base, garage, territory, turf map, war, treasury, radio, and settings issues in Oxide Gangs.

Common problems and how to fix them. Each one lists what you would see, then the fixes in the order worth trying. If nothing here helps, see Getting Help at the bottom.

Startup Issues

The resource does not start

Symptoms:

  • /gangs does nothing in chat.
  • Red text in the server console when the server boots.

Solutions:

  1. Read the console message. It names the problem directly:

    [ERROR] oxide-gangs requires o-link but it is not running (state: missing). Ensure it is started before oxide-gangs.
    [ERROR] oxide-gangs cannot start due to missing dependencies listed above.

    state: missing means the resource is not in your resources folder at all. state: stopped means it is there but never started.

  2. Fix the load order. ox_lib, oxmysql, and o-link must all be running before oxide-gangs. Open your server.cfg and check the ensure lines are in this order:

    server.cfg
    ensure ox_lib
    ensure oxmysql
    ensure qb-core            # or qbx_core / es_extended
    ensure o-link
    ensure oxide-gangs

    See Installation → Load Order for the full explanation.

  3. If you use an [oxide] folder, o-link inside it starts before oxide-gangs on its own because folders start alphabetically. Just make sure ensure [oxide] comes after your framework.

  4. Check the folder name. It must be exactly oxide-gangs. A folder called oxide-gangs-main or oxide-gangs (1) — which is what you get from some download tools — will not work.

On a clean start with everything present, oxide-gangs prints a handful of [INFO] lines — "loaded N gangs from database" and "oxide-gangs initialized" among them. [INFO] lines are normal; only [WARN]/[ERROR] lines need attention.

The database tables were not created

Symptoms:

  • Errors mentioning gang_gangs or another gang_* table in the console.
  • The admin panel opens but shows nothing and nothing can be saved.

Solutions:

  1. Check oxmysql is connected. Look for oxmysql errors earlier in the console. If oxmysql cannot reach your database, nothing else will work either. Check the set mysql_connection_string line in your server.cfg.

  2. Check your database user can create tables. Some shared hosts restrict this. If yours does, import sql/install.sql by hand using your database tool (HeidiSQL, phpMyAdmin, DBeaver, or your host's panel) and restart.

  3. Check your database version. The schema uses JSON columns, which need MySQL 5.7+ or MariaDB 10.2+. Run this in your database tool:

    SELECT VERSION();

    If you are below those versions the JSON columns fail to create — ask your host to upgrade your database.

Permission Issues

"You do not have permission to do that" on a staff command

Symptoms:

  • /gangs admin or /gangs settings refuses to open for an admin.

Solutions:

  1. Check your server.cfg grants the permission. oxide-gangs accepts either the command ACE or the admin ACE. Most stock configs already have this line:

    server.cfg
    add_ace group.admin command allow
  2. If you do not have that line, add both of these:

    server.cfg
    add_principal identifier.license:YOUR_LICENSE_HERE group.admin
    add_ace       group.admin                          admin allow

    Being a member of group.admin is not enough by itself. The add_ace line is what actually grants the permission.

  3. Restart the server after editing server.cfg. Permission lines are read at startup.

  4. Test from the console instead. The server console is always treated as staff. If /gangs create testgang works from the console but not in game, the problem is definitely your ACE setup and not the resource.

On ESX, a player your framework already treats as an admin passes even without either ACE. Denied attempts are written to your server log with the player's identifier, so you can confirm the command was reaching the resource at all.

Gang Creation Issues

/gangs request says requests are disabled

Symptoms:

  • Players see "Gang creation requests are disabled on this server."

Solution: open /gangs settingsCreationCreation mode and set it to Player requests, admin approves. It is probably set to Admins only.

A gang name is rejected

Symptoms:

  • "Names must be 3-40 characters: lowercase letters, numbers and underscores, starting with a letter."
  • "That name is not allowed."
  • "That name is already taken."

Solutions:

  1. Use the right format for the internal name. Lowercase only, no spaces, no punctuation other than _, and it must start with a letter. ballas is fine. The Ballas, Ballas, and 4ballas are not. The display name — the one with capitals and spaces — is a separate field.

  2. "Not allowed" means it is on the blocklist. The name is in Config.NameBlocklist (/gangs settingsCreationBlocked names). Remove it there if you want it allowed, or add more names (job names, slurs, whatever you like) to block them. Gang money is safe regardless of the name — gang bank accounts use a gang_ prefix, so they can never collide with a job's account.

  3. "Already taken" means an active gang has it. Disbanded gangs release their name immediately, so this always means a live gang.

Approving a request fails

Symptoms:

  • "The requester must be online to pay the creation fee."
  • "The requester cannot afford the creation fee."
  • "The requester has since joined a gang; request rejected."

Solutions:

  1. For the fee messages, either wait until the requester is online with enough money in their bank account, or set the fee to 0 in /gangs settingsCreationCreation fee.

  2. "Has since joined a gang" is not an error to fix — the player was recruited while their request sat in the queue. The request is closed automatically. Nothing further is needed.

Membership Issues

A player's gang is wrong, or missing, on another script

Symptoms:

  • Another resource that reads the framework's gang data sees the wrong gang, or none.

Solutions:

  1. Have the player reconnect. Their gang is re-applied from the database when they load in, which corrects any drift.

  2. Restart oxide-gangs. The full gang list is pushed into QBCore or QBX every time the resource starts, and every online player is reconciled at the same time.

  3. On ESX this is expected. ESX has no gang system of its own, so a script reading ESX's gang data directly will always find nothing. Scripts must ask o-link instead — see the API Reference.

oxide-gangs never reads gang data back from your framework, only writes to it. If another script changes a player's gang directly, oxide-gangs will overwrite that change on their next login. This is deliberate — one system has to be in charge, and it is this one.

A player kicked while offline is still in the gang

Symptoms:

  • A member removed from the admin panel while offline still appears in a framework menu.

Solution: this is expected until they reconnect. The removal is stored immediately and applied to their character the next time they load in. Their framework-side gang is cleared at that point.

The last boss cannot leave

Symptoms:

  • "Promote another boss before leaving, or disband the gang."

Solutions:

  1. Promote someone else to a boss rank first, then leave.
  2. Or disband the gang — from /gangs admin, or with /gangs disband <name>.

A gang cannot be left leaderless. The one exception is a boss who is the gang's only member: leaving in that case disbands the gang.

Base and Stash Issues

No base blip on the map

Symptoms:

  • A member cannot see their gang base on the map.

Solutions:

  1. Check the gang actually has a base. /gangs admin → select the gang → Base. If the base position is unset, place it.
  2. Check blips are on. /gangs settingsBases & StashBase blips. Also check the per-base blip toggle in the admin panel.
  3. Check the member's rank. If the base has a minimum rank set and the member is below it, they see nothing at all.
  4. Confirm they are actually in the gang/gangs info tells them.

Nothing happens at the stash or garage point

Symptoms:

  • Standing on the spot, no interaction prompt appears.

Solutions:

  1. Check you have a target resource installed and running. The stash and garage points are interaction points, and they need one. ox_target, qb-target, tgiann-target, and other targeting resources all work through o-link.
  2. Check the point is actually placed. /gangs admin → select the gang → Base. A stash point and a garage point are separate from the base position; placing the base does not place them.
  3. Stand closer. The distance comes from Config.Bases.interactDistance (2 metres by default) and Config.Garage.interactDistance (5 metres). Raise them in /gangs settings if your placement is awkward.
  4. Have the player rejoin. The base is drawn when they load in and when their gang changes.

"The stash is unavailable right now."

Symptoms:

  • The stash prompt appears but opening it fails with this message.

Solutions:

  1. Check an inventory resource is installed and running. The gang stash needs one. Any inventory o-link supports works — ox_inventory, qb-inventory, qs-inventory, ps-inventory, and others.
  2. Check o-link is up to date. Older versions may not have an adapter for your inventory.
  3. Restart oxide-gangs after installing an inventory. Stashes are registered at boot.

"Your gang has no stash."

The base exists but no stash point has been placed on it. /gangs admin → select the gang → Base → place the stash point.

"Too far away."

The server checks distance itself, and it is deliberately a little more generous than the visible prompt. If you get this while standing right on the point, the point is probably placed somewhere other than where you think — re-place it from the admin panel.

Garage and Vehicle Issues

"All garage bays are blocked."

Symptoms:

  • A member cannot take a vehicle out.

Solutions:

  1. Clear the bays. Every spawn bay has a car parked within about 3 metres of it. Move or return them.
  2. Add more bays. /gangs admin → select the gang → BaseAdd bay. A gang with several members wants several bays.
  3. Check bays exist at all. A base with a garage point but no spawn bays has nowhere to put a car.

"You already have a vehicle out."

Each player may have one gang vehicle out at a time. Return the current one first. Any member with the garage permission can return it, so a colleague can do it for them.

A vehicle is stuck marked as "out"

Symptoms:

  • A vehicle shows as out in the fleet list but nobody can find it, or it fell through the map.

Solution: /gangs admin → select the gang → FleetRecover next to the vehicle. This deletes whatever is left of it and puts the row back to stored.

Restarting the server also clears every stuck vehicle — any car still marked out at boot is returned to the garage.

"The vehicle could not be spawned."

Symptoms:

  • Taking a vehicle out fails immediately.

Solutions:

  1. Check the vehicle model exists on your server. A typo, or an add-on car that is not installed, produces this. Check the model name in /gangs adminFleet.
  2. For add-on vehicles, make sure the vehicle resource is started before oxide-gangs.
  3. Check the spawn bay is somewhere a car can physically exist — not inside a wall or under the map.

A gang car lost its modifications or plate

Symptoms:

  • A car spawns in stock colours, or with the wrong plate.

Solutions:

  1. Give it a moment. Gang cars are created by the server, and the first nearby player's game applies the paint, mods, plate, fuel, and damage a moment later. It is not instant.
  2. Check the car was returned properly. A car's condition is saved when it is returned, not continuously. A car abandoned in the street and recovered by staff keeps whatever it had when it was last returned.

Gang cars stay in the world after the player who took them out leaves. That is intentional — a car left in the street is meant to still be there.

Territory Issues

No territories exist

Symptoms:

  • /gangs adminTerritories is empty. The dashboard says "No territories are active on this server."

Solutions:

  1. Check the territory table. The shipped 34 districts are seeded on any boot where the gang_territories table is empty — so if someone deleted them all, a restart brings them back. If the table has even one row (for example a single custom zone), nothing is seeded.
  2. To restore the shipped map, empty the gang_territories table in your database and restart the resource. This also clears all influence and ownership.
  3. Or draw your own. /gangs adminTerritoriesNew territory.

Influence never goes up

Symptoms:

  • Gangs play in a district for hours and their influence stays at zero.

Solutions:

  1. Check territories are switched on. /gangs settingsTerritoryTerritories enabled.
  2. Check the players are actually inside a zone. Open /gangs adminTerritories and confirm the zone covers where they are playing. Zones drawn on the in-panel map cover all heights; zones walked in the world may have recorded height bounds.
  3. Check the gain values are not zero. /gangs settingsTerritory. If Presence gain is 0, standing in a zone earns nothing.
  4. Check the hourly caps are not zero. A cap of 0 for a source disables that source completely.
  5. Wait for the presence check. Presence only awards influence when the check runs, every Presence tick minutes (5 by default). Nothing happens in between.
  6. For drug sales, confirm the drug resource actually reports them. Only Oxide drug resources and scripts written against the API do — see the API Reference.

Influence goes up then falls back down

This is decay, and it is meant to happen. Every gang loses Decay per hour influence in every zone, every hour, and each territory a gang already owns makes that faster (Decay per holding).

If turf feels too hard to hold, lower Decay per hour or Decay per holding in /gangs settingsTerritory. If it feels too easy, raise them.

A territory will not change hands

Symptoms:

  • A gang has more influence than the owner but the zone stays put.

Solutions:

  1. This is the contest window doing its job. Overtaking the owner opens a window lasting Contest window real hours (6 by default). The zone only changes hands when that window closes, and only if the challenger is still ahead. Check the dashboard's Territory screen — it shows the countdown.
  2. Check the challenger is above the threshold. They need at least Ownership threshold influence (100 by default), not just more than the owner.
  3. Check the cooldown. After a contest settles, no new contest can open on that zone for Contest cooldown hours (12 by default).
  4. To make flips faster, lower Contest window and Contest cooldown in /gangs settingsTerritory.

Kills are not winning turf

They are not supposed to. Kill influence only counts during an active war, and even then it is capped at Kill influence share (25% by default) of the influence the gang has already earned there through activity. A gang with no footprint in a district earns nothing there no matter how many people it kills.

Turf Map Issues

No filled areas on the minimap or pause map

Symptoms:

  • Territory blips show but there is no coloured fill.

Solutions:

  1. Check the player is in a gang. The turf fill is members-only by design. Someone with no gang sees nothing.

  2. Check it is switched on. /gangs settingsTerritoryMember turf mapEnabled.

  3. Look for this in the player's F8 console (the client console, opened in game with F8 — these messages never appear in the server console):

    [oxide-gangs] territory fill disabled: MINIMAP_LOADER.gfx is missing from the resource

    The file MINIMAP_LOADER.gfx must be in the oxide-gangs folder. Restore it from your download. See Installation → The Minimap File.

  4. Or this one:

    [oxide-gangs] territory fill disabled: the turf atlas texture never became available

    The map image did not finish loading. This usually clears on a rejoin. If it happens every time on every player, contact Oxide Studios support.

  5. Check the zones have at least three points. A zone with fewer is skipped.

The fill is too strong or too faint

/gangs settingsTerritoryMember turf map:

  • Owned fill opacity — how solid claimed zones look (0–255, default 110)
  • Unclaimed fill opacity — how solid unclaimed zones look (0–255, default 70)

War Issues

"Wars are disabled on this server."

/gangs settingsWarsWars enabled → on.

A war cannot be declared

Symptoms:

  • One of: "Your gang is already at war", "Your gang already has an outgoing declaration. Withdraw it first.", "That gang is already at war.", "Too soon — these gangs fought recently.", "Invalid stake.", "The treasury does not have enough money."

Solutions:

  1. One war at a time. A gang can be in one active war and have one outgoing declaration. Withdraw the outgoing one from the Wars screen first.
  2. "Too soon" is the rematch cooldown. Lower or disable it: /gangs settingsWarsRematch cooldown (set 0 to turn it off).
  3. "Invalid stake" means the stake is above Max stake or is a negative number. Raise the limit in settings, or set it to 0 for unlimited.
  4. "The treasury does not have enough money" means the declaring gang cannot currently cover its own stake. Fund it, or declare with a smaller one.

Kills are not scoring

Symptoms:

  • Members are killing each other but the scoreboard does not move.

Solutions:

  1. Both players must be in the two warring gangs. A kill on an uninvolved player scores nothing.
  2. Check the distance limit. Kills where the two players are more than Max kill distance apart (300 m by default) are rejected as implausible. Raise it, or set it to 0 to turn the check off, in /gangs settingsWars.
  3. Check the repeat-kill cooldown. Killing the same victim again within Repeat-kill cooldown seconds (180 by default) scores nothing. This is deliberate — it stops kill trading. Lower it if it is too strict for your server.
  4. A gang cannot score on itself. Killing your own gang member never counts.

Capture points never appear

Symptoms:

  • A war is running but no capture points spawn.

Solutions:

  1. Check they are on. /gangs settingsWarsCapture objectivesObjectives enabled.
  2. Wait. The first point spawns Spawn interval minutes (20 by default) after the war starts, not immediately.
  3. Check at least one side has a territorial footprint. Points spawn inside a warring gang's territory. If neither gang owns any zone and neither has influence anywhere, no point can spawn and the war runs on kills only. Lower the ownership threshold, or let the gangs build some influence first.

A war did not end when it should have

Symptoms:

  • The clock ran out but the war is still showing as active.

Solutions:

  1. Give it a minute. The settle check runs once a minute.
  2. Force it. /gangs admin → select either gang → WarsForce end. It settles as a draw and both stakes are refunded in full.

Wars settle on their stored clock, so a war whose end time passed while the server was down settles as soon as the server comes back up.

Treasury Issues

"The treasury does not have enough money."

The gang does not have the amount being withdrawn or spent. Check the balance on the dashboard Treasury screen, or top it up with /gangs fund <gang> <amount>.

Deposits fail with "You do not have enough in your bank account."

Deposits come from the member's bank account, not their cash. Have them deposit their cash at a bank first.

Treasury balances are all zero after switching to banking accounts

Symptoms:

  • You turned on Use banking accounts and every gang now shows $0.

Solutions:

  1. This is expected. The two storage modes are separate. Balances held in oxide-gangs' own ledger are not migrated into your banking resource.
  2. Turn the setting back off to see the original balances again, or use /gangs fund to set up the new accounts with the right amounts.
  3. Check you actually run a banking resource o-link supports. Without one, the accounts do not exist and every balance reads as 0.

Gang bank accounts are named gang_<name> — for example gang_ballas.

Radio Issues

Gangs have no radio channel

Symptoms:

  • Members cannot find their gang channel.

Solutions:

  1. Check oxide-radio is installed and running. Without it, nothing is registered and the radio settings do nothing.

  2. Check gang channels are on. /gangs settingsRadioGang channels.

  3. Work out the frequency. It is Frequency base plus the gang's numeric ID. With the default base of 900, gang #1 is on 901. The ID is the id column of the gang_gangs table in your database (gangs are numbered in the order they were created).

  4. Look in your server console for a frequency clash:

    gang channel frequency held by another resource

    Another resource already owns that frequency, so the gang's channel was skipped. Change Frequency base to a clear range.

Members are not tuned in automatically

  1. Check Auto-tune members in /gangs settingsRadio.
  2. Check auto-tune in oxide-radio too. Both have to be on. oxide-radio's own setting is Config.AutoJoinDefault.
  3. Players already on a channel are never moved. They have to leave their current channel first.

Settings Issues

A setting change did nothing

Symptoms:

  • You changed something in /gangs settings but nothing happened in game.

Solutions:

  1. Make sure you clicked Save Changes. Nothing applies until you do.
  2. Check for a partial save. "Some settings were rejected — check the highlighted fields" means part of your save did not apply. The rejected fields are marked in the panel.
  3. Do not edit the config files. After the first boot, the database is what the resource reads. Editing shared/config.lua has no effect on an existing install — use the settings panel.
  4. Check you are looking at the right setting. Some things are per gang or per base, not global. Base blips, territory blips, and vehicle minimum ranks all have per-item overrides in the admin panel that beat the global setting.

Something in the game still uses the old value

Most settings apply instantly. Two exceptions:

  • War duration is locked in when a war is accepted. Changing it only affects wars accepted afterwards.
  • Gang rank templates (shared/config/grades.lua) only apply to gangs created after the change. Existing gangs keep their ranks.

The console warns a setting is too large

Symptoms:

setting is large enough that clients may not receive it

Solution: one setting has grown big enough that it may not reach players' games reliably. In practice this only happens with an unusually long request form or blocked-names list. Trim it down. If you need it that size, contact Oxide Studios support.

The F8 console says a config value was corrupt

Symptoms (in a player's F8 client console):

[oxide-gangs] ignored corrupt config for <name> (... is not a finite number) — keeping previous value

Solution: a stored number went bad. The resource ignores it and keeps the last good value, so nothing is broken. Open /gangs settings, find that setting, use Reset to default, and set it again.

Turning On Detailed Logging

oxide-gangs has no debug toggle of its own. Detailed logging comes from oxide-logger, a free Oxide resource that collects logs from every Oxide resource in one place.

  1. Install oxide-logger. It works wherever it starts in your load order; if you also want it to catch the boot messages, give it its own ensure oxide-logger line above the line that starts oxide-gangs.

  2. Turn up the detail for this resource, from the server console or in game as an admin:

    /oxlog level oxide-gangs debug
  3. Reproduce your problem.

  4. Read the output in your server console, or in oxide-logger's log files.

To go back to normal:

/oxlog level oxide-gangs info

Without oxide-logger installed, oxide-gangs still prints errors and warnings to your server console — you just get less detail.

Getting Help

If none of the above fixes your issue:

  1. Turn on detailed logging as described above and reproduce the problem.
  2. Copy your server console output from around the moment it happens — the whole block, not one line.
  3. Note exactly what you did, what you expected, and what happened instead.
  4. Note your setup: which framework (QBCore / QBX / ESX), which inventory, which target resource, and the versions of ox_lib, oxmysql, and o-link.
  5. Check the player's F8 console too if the problem is something they see on screen. Press F8 in game to open it.
  6. Contact Oxide Studios support with all of the above.

Do not edit the resource's script files

Only the settings files, locale files, and SQL files are yours to change — everything else is encrypted, and a change there will be overwritten by the next update. If a fix needs a code change, we will ship it in an update.

Next Steps

On this page

Startup IssuesThe resource does not startThe database tables were not createdPermission Issues"You do not have permission to do that" on a staff commandGang Creation Issues/gangs request says requests are disabledA gang name is rejectedApproving a request failsMembership IssuesA player's gang is wrong, or missing, on another scriptA player kicked while offline is still in the gangThe last boss cannot leaveBase and Stash IssuesNo base blip on the mapNothing happens at the stash or garage point"The stash is unavailable right now.""Your gang has no stash.""Too far away."Garage and Vehicle Issues"All garage bays are blocked.""You already have a vehicle out."A vehicle is stuck marked as "out""The vehicle could not be spawned."A gang car lost its modifications or plateTerritory IssuesNo territories existInfluence never goes upInfluence goes up then falls back downA territory will not change handsKills are not winning turfTurf Map IssuesNo filled areas on the minimap or pause mapThe fill is too strong or too faintWar Issues"Wars are disabled on this server."A war cannot be declaredKills are not scoringCapture points never appearA war did not end when it should haveTreasury Issues"The treasury does not have enough money."Deposits fail with "You do not have enough in your bank account."Treasury balances are all zero after switching to banking accountsRadio IssuesGangs have no radio channelMembers are not tuned in automaticallySettings IssuesA setting change did nothingSomething in the game still uses the old valueThe console warns a setting is too largeThe F8 console says a config value was corruptTurning On Detailed LoggingGetting HelpNext Steps