Admin Panel
Open with /decals_admin (configurable). Access requires the ace permission command or an entry in cfg.adminList.
Managing decals
Two tabs, Stickers and Graffiti, each with search, pagination, and a thumbnail per row:
Teleport to any graffiti's position.
Delete: removes a single decal, live for every player.
Delete all by creator: bulk-removes everything one player ever placed, with a confirmation step.
Permanent: permanent decals survive the inactivity prune and only admins can clear them. Admins can also flip the Permanent switch while placing a decal.
Growing the catalog
Three import flows live in the panel header; each ends with a ready-to-paste decals.lua snippet (details):
Add from URL: validates and downloads an https image (3 MB cap, webp/png/jpg).
Add GIF: animated decals behind
cfg.enableGifDecals, with an admin-only recommendation baked into the dialog.Decal editor: full-screen canvas with text layers (27 runtime-loaded fonts), outline/shadow controls, catalog and URL image layers, drag/resize/rotate handles, alignment tools, undo/redo, and 256/512/1024 export.
Debug overlay
/decals_debug toggles a diagnostics overlay (also a button in the panel); /decals_debug <serverId> flips it on another player's screen so they can read values out during a support case. It shows:
Catalog: whether the client received the decal catalog.
decals.dat probe: whether the decal types from
rm_decalv_assetsregistered in this session. This is the first thing to check when decals don't render: a failed probe means the player joined whilerm_decalv_assetswasn't running, or another resource overrode the level meta.gta5.meta owners: which resource owns the level meta (expected:
rm_decalv_assets).Decal type slots: how many of the 280 patchable decal types this session is using.
Runtime texture pool: locked/capacity per bucket (256²/512²/1024²) for image-file decals.
GIF DUI browsers: active browser instances vs the
cfg.maxGifDuiscap.Rendering: tracked/rendered vehicles, loaded graffiti cells/rows, rendered graffiti.
While the overlay is open, Alt grabs the cursor (and Alt/Esc releases it). During placement, a small preview sprite in the bottom-right corner shows the raw texture: if the sprite renders but the decal doesn't, the texture is fine and the decal types simply didn't register in this session (a join-order or level-meta condition, see Troubleshooting).
The card-by-card diagnosis flow for "decals aren't showing" lives on Troubleshooting.
Last updated