What goes wrong most often, what it actually means, and what to do about it. Most problems are explained by the server console: at every start the startup checks print each failure with a ✗ and the fix, and the diagnostic commands in Commands and Exports go further.
Installation and Access#
The console keeps printing "server.cfg is missing required permissions"
The five add_ace lines are not in server.cfg. Add them as shown in Installation — or paste them into the server console to apply them right away. Skins work without them, but addon weapons cannot be added or removed until they are in, and admins see the same warning when they open the panel.
Players are held at the join screen with "Please restart the server"
The shell pool or the data resource cannot be used by a new session — missing, incomplete, or replaced while the server was running. Letting players in would give them a session where no skin works, so they are held. The console says why every 20 seconds.
Restart the server. If it comes back, reinstall qs-weaponskin-pool from the download and check that qs-weaponskin-data is writable. Settings → Shell pool → Hold players out when stale turns the guard off, at the cost of those broken sessions.
"Couldn't find resource qs-weaponskin-data" on the first start
Expected. The folder has no manifest until the creator writes one during that first start, then launches it. From the second start on it is found normally. If the startup checks still report the data resource after a second restart, add the add_ace lines.
"You don't have permission" on /weaponskincreator
On ESX the player's group must be in Config.AdminGroups; on QBCore and Qbox they need the god or admin permission or the command ace; standalone needs the command ace. See Claiming Admin Access.
The framework or the inventory is not detected
It starts after Weapon Skin Creator, and detection only sees what is already running. Move it above ensure qs-weaponskin-creator. The console confirms the framework at start with Successfully loaded the framework. — or pin it by hand in config/config.lua.
The studio does not open with my inventory
ox_inventory and qs-inventory ship with adapters. Any other inventory that the script detects needs one too — a small file, described in Adding an inventory. Copying the standalone adapter under your inventory's name is enough to make it work, with skins per weapon type.
I set Config.Debug = true and nothing changed
Debug output is a setting: Settings → General → Debug logging. The line in config/config.lua is replaced by it at start.
Skins#
A skin does not show on my weapon
Run weaponskin_debug in F8 with the weapon in hand. It walks the chain in the order it can break and stops at what is wrong. Then weaponskin_testskin paints the weapon magenta directly: if it turns magenta, the game side works and the fault is in the skin or its delivery; if it does not, the pool is not loaded on that client.
Other players see the stock weapon
They are outside the Show radius (60 m by default), or every slot for that weapon is busy in a crowd and When the pool is full is set to show the stock weapon. weaponskin_slots shows how slots are used. Both settings are in Settings → Skins.
Animated skins show only one frame on other players
Correct behaviour. Other players' animations are limited to a radius (25 m) and a number at once (2), so a crowd of them never costs frame rate; the rest show the first frame. Both are in Settings → Animation.
"That skin is still waiting for approval"
Moderation is set to Before. An admin approves it in the Moderation tab, and it goes on the weapon at once.
"Your skin inventory is full"
Buy a slot from the inventory, delete a skin, or raise Free slots in Settings → Skin inventory. Skins waiting for approval count too.
An image link is refused
Every screen loads a linked image straight from its host, so the host must allow other sites to read its images — many do not. Use a direct link from imgur, a Discord attachment or Fivemanage. With Allow any host off, the host must also be in Config.Images.AllowedHosts.
The skin goes on every copy, not on the gun in my hand
Skins per gun need an inventory that gives weapons a serial — ox_inventory or qs-inventory — and Equipped per must not be set to Per weapon type.
Shops and Painters#
The studio says the shop is closed, out of supplies, or needs a painter
The shop is set to Closed; its supplies ran out — order more in the management menu's Supplies tab; or Self service is off in Settings → Shops, so customers need a painter.
A painter cannot invite anyone
The painter must clock in first in the management menu, and their rank needs Paint customers' weapons. The customer must stand within 4 m, and the workbench must be free. weaponskin_shop lists what each shop is missing — no workbench, nobody who can paint, nobody on duty.
Apprentices can never clock in
The default Apprentice rank cannot open the management menu, which is where clocking in happens. Give that rank Open the management menu, or turn off Clock in to paint in Settings → Shops.
A supply order is refused, or never arrives
The till cannot pay for it — every order is paid up front — or the shop has no Supply delivery point. Set one in the shop form. The crate appears there when it arrives, and any member of staff collects it.
"The till could not cover your wage"
Payroll is paid from the shop's till. Deposit money in the Finance tab, lower the rank wages, or turn Payroll off in Settings → Shops.
Nothing spawns at a shop
The NPC, the workbench and the prompts only exist while a player is inside the shop's area. Check that the area covers the counter — Settings → General → Draw zones outlines every shop — and that the shop has an NPC position if it is an NPC shop.
Addon Weapons and Tebex#
An addon weapon is missing from the scan, or cannot be added
The pack must be running and declare its weapon in a WEAPONINFO_FILE. When a weapon is listed with a status instead of Ready, the status is the reason: a missing model or texture, textures embedded in the model, no paintable material, or a model too big for the budget.
"Built — restart to activate"
The weapon was built but could not be brought online live. Restart the server with nobody online, and it activates on start.
Tebex: "does not know that transaction", "not complete" or "already redeemed"
The id does not exist, the payment has not completed yet, or it was already used — each transaction works once. If the server's secret is rejected instead, check the convar named in Settings → Tebex.
Tebex: "That package is not sold on this server"
The package name is not in Config.Tebex.Packages and no catalog skin uses it. The name must match Tebex exactly, including case and spaces. The transaction is not used up, so the player can redeem it again once it is mapped.
Error Keys#
Callbacks and exports return keys rather than sentences, so the same failure reads in every player's language. The ones you will meet most:
Key | Means |
|---|---|
| The player cannot pay from the chosen account. |
| No free skin slot. |
| The catalog skin has no copies left. |
| The skin is waiting for approval. |
| Not an admin / the shop rank lacks that right. |
| Not standing at the shop, or not inside a shop's area. |
| The shop is closed, ran out of supplies, or needs a painter. |
| The painter has not clocked in / the workbench is in use. |
| The shop's till does not hold that much. |
| Every slot for that weapon is in use right now; the skin comes back when one frees up. |
| The image host blocks other sites, or is not on the allowlist. |
| The add_ace lines are missing from server.cfg. |
| Too many requests of one kind. The limits sit far above what the interface does, so this points to a modified client. |
| The server did not answer in time — usually a slow database. |
Still stuck? Open a ticket and include the startup checks from the server console, the output of
weaponskin_debug, and theensureorder in your server.cfg.



