Troubleshooting
The problems people actually hit, roughly in the order they hit them.
A change to a file did nothing
Section titled “A change to a file did nothing”restart does not re-read fxmanifest.lua. If you added a file — a new locale, for instance — type refresh in the server console first, then restart mic_shopcreator.
Errors about es_extended or qb-core on start
Section titled “Errors about es_extended or qb-core on start”Config.Framework is not detected on its own. Set 'esx' or 'qbcore' to match your server, and start mic_shopcreator after your framework in server.cfg.
On QBox, the value is 'qbcore' — QBox runs QBCore resources through its compatibility layer — and qbx_core must start before mic_shopcreator.
/shopcreator says I have no permission
Section titled “/shopcreator says I have no permission”The ACE is mic_shop.open — not mic_shopcreator.open. Check the spelling in your add_ace line, and that it uses an identifier you actually connect with, or a group you are really in.
Everything says “Translation not found”
Section titled “Everything says “Translation not found””Config.Locale names a file that is not in locales/, or not in shared_scripts in fxmanifest.lua. The console says Locale file not found for … when this happens.
The shopkeeper is not there
Section titled “The shopkeeper is not there”- You are too far. Shopkeepers only exist within
Config.PedSpawnDistance(20 metres by default). - The location was robbed. A robbed location closes for its cooldown: shopkeeper and blip disappear for everyone until it ends. See below.
Config.SpawnNPCis off. Then there is no shopkeeper by design, only a marker or a target spot.- The model is invalid. A location’s model that will not load is swapped for
Config.DefaultPed, and the console saysUsing default.If the default will not load either, you getCRITICAL: Could not load default ped modeland no shopkeeper — put a valid model inConfig.DefaultPed.
I can see the shopkeeper but cannot open the shop
Section titled “I can see the shopkeeper but cannot open the shop”Config.Interaction does not match what you run. It ships as 'ox_target'. Set 'qb-target' for qb-target, or 'default' to walk up and press E within Config.RadiusInteract.
On QBCore with 'default', the prompt is not shown — ShowHelpNotification in bridge/client.lua is empty for QBCore. E still works; fill that function with your own help-text call to show the prompt.
“This shop is currently on cooldown” / a robbed shop stays closed for hours
Section titled ““This shop is currently on cooldown” / a robbed shop stays closed for hours”A robbed location stays closed for the shop’s Cooldown (minutes). If a shop has no cooldown saved, the fallback is Config.RobberyCooldown — which is also read as minutes, so the shipped 300 is five hours. Set a cooldown on every robbable shop in the panel, or lower the fallback.
Product pictures are missing
Section titled “Product pictures are missing”The shop window looks for <item name>.png in each folder of Config.InventoryImagePath, in order. It ships pointing at ox_inventory’s folder. On another inventory, put that inventory’s image folder there as a nui:// path. If the item name and the image file name differ, there is no picture.
Buying with black money fails on QBCore
Section titled “Buying with black money fails on QBCore”Black money is paid from an account called black_money. QBCore has no such account out of the box, so use Cash, Bank or All (Cash + Bank) for products on QBCore — or add the account and adjust GetAccount in bridge/server.lua to however your server handles dirty money.
An owner opens the shop and has no gear button
Section titled “An owner opens the shop and has no gear button”The owner list must hold the identifier Config.IdentifierType uses:
Config.IdentifierType | What to type as the owner |
|---|---|
'discord' | The Discord ID number only, without discord: |
'license' | The full licence, including license: |
'esx' | The ESX identifier as stored in users, including any char1: prefix |
'citizenid' | The QBCore citizen ID |
If you changed Config.IdentifierType after owners were added, add them again.
Players cannot be hired
Section titled “Players cannot be hired”- With
'discord', the player must have Discord linked; otherwise they are told to link it. - They must be within 10 metres of the owner when the owner opens the list.
- They must press Y when asked. On QBCore the question is shown through
ShowHelpNotificationinbridge/client.lua, which is empty for QBCore — fill it, or tell the player to press Y.
Robbery does not start
Section titled “Robbery does not start”Robbery must be enabled on that shop, and the player must be aiming a weapon — not bare hands — at the shopkeeper from within 5 metres. A location that is already being robbed, or still on cooldown, refuses.
Discord logs never arrive
Section titled “Discord logs never arrive”- Webhooks must be on for that shop, with a valid Discord webhook URL.
Config.Screenshotis on butscreenshot-basicis not running. The log is sent through the screenshot, so without that resource nothing goes out. Startscreenshot-basicbefore this resource, or setConfig.Screenshot = false.
Police get no alert
Section titled “Police get no alert”Config.PoliceAlert = "default" notifies players whose job is in Config.RobberyNotifyJobs, by job name. With "custom", nothing is sent until you write your dispatch call in TriggerPoliceAlert in bridge/server.lua — it ships empty.