For the complete documentation index, see llms.txt. This page is also available as Markdown.

Installation

Coming from v2? Follow Migrate from v2 instead; it wraps these steps and carries your data and edits over.

1

Install the dependencies

Make sure everything on the Dependencies page is installed and starting before this resource. OneSync must be enabled.

2

Add both resources

Download the package from Portal, unzip it, and put both folders in your server's resources directory:

  • rm_decalv: the script

  • rm_decalv_assets: decal types (decals.dat), streamed textures

3

Start the resources

Add both to your server.cfg, below oxmysql, ox_lib and your framework so the dependencies are already running:

ensure oxmysql
ensure ox_lib
ensure qb-core # your framework

ensure rm_decalv_assets
ensure rm_decalv

Keep rm_decalv_assets above rm_decalv; the script checks for rm_decalv_assets at start and warns when it cannot find it. Neither needs to sit at the top of the file: anywhere below the dependencies works, as long as both are running before players connect.

4

Database

No SQL to run. The tables are created (and older installs migrated) automatically on first start:

  • rm_decalv_stickers

  • rm_decalv_graffities

5

Items (optional)

Commands work out of the box. If you also want item entry points, set cfg.disableItems = false and register the items. Ready-made definitions ship in the resource's [items]/ folder:

  • items - ox_inventory.lua: paste into ox_inventory's data/items.lua. The entries route their use through the resource directly, so this works even without a qb/esx bridge.

  • items - qb shared.lua: paste into qb-core's shared/items.lua (bring your own inventory images).

  • items.sql: run against the ESX items table.

The defaults are paint_spray (opens the catalog), scraper (vehicle clearing mode) and white_spray (graffiti clearing). Item names are yours to change in cfg.items. Set cfg.deleteItemInUse = true to consume the item on use.

6

Grant admin access

Admins manage the panel, place permanent decals, and bypass zones, limits and ownership checks. Anyone with the ace permission command (txAdmin admins) already counts; everyone else goes into cfg.adminList:

cfg.adminList = {
    ['license:0aa00a00a00aa000a000000a00000a00a00aa000'] = true,
    ['XWJ4Q354'] = true, -- citizenid (qb/qbox)
}
7

Configure

Open the catalog in-game with /decals. Then head to Configuration to tune permissions, limits and features.

Last updated