RX Murals Installation

RX Murals lets players paint freehand on any wall in the world. A painter marks out an area with two corners, then paints straight onto the surface with their aim, refilling the brush from a bucket set down beside them. Finished murals are synchronized to every player and kept between restarts.

Administrators manage every mural from the Wall Ledger, and decide which players may place pictures instead of painting by hand.

Requirements

RequirementWhy it is needed
A RedM serverRX Murals draws its artwork with RedM’s native polygon drawing and uses RedM input hashes.
RSG or VORPOptional. Needed for item mode, where painting starts by using an inventory item, and for character-based identities.
A paint item and a cloth itemOptional. Only needed when item mode is enabled.

No database is required. Murals are saved to data/murals.json inside the resource, so there is no SQL to import.

1. Place the resource

Extract the complete resource into your server’s resources directory. Keep the folder intact: murals are written back into its data folder, so the resource folder must stay writable.

The default extracted folder name is rx_murals.

2. Add it to server.cfg

Start your framework first when using RSG or VORP. On a standalone server, order does not matter.

cfg
ensure rsg-core
ensure rx_murals

If you renamed the resource folder, replace rx_murals with that exact folder name.

3. Grant administrator permission

The Wall Ledger and picture permissions are gated behind the ACE set in Config.Admin.ace. Add it to server.cfg for the groups that should manage murals:

add_ace group.admin rx_murals.admin allow

Config.Admin.groups and Config.Admin.identifiers are the framework-side alternatives, and allowCommandAce also counts anyone who may run server commands. Any one of them is enough, so use whichever matches how your staff are already identified.

Confirm it worked by opening the ledger in game:

/muraladmin

4. Register the items

Item mode is enabled by default. Painting starts by using paintkit and the stand-alone cloth by using rag, so both items must exist in your inventory before players can paint.

lua
-- rsg-core/shared/items.lua
paintkit = { name = 'paintkit', label = 'Paint Kit', weight = 500, type = 'item', image = 'paintkit.png', unique = false, useable = true, shouldClose = true, description = 'Brushes and paint for a wall mural.' },
rag = { name = 'rag', label = 'Rag', weight = 100, type = 'item', image = 'rag.png', unique = false, useable = true, shouldClose = true, description = 'Wipes paint off a wall.' },

If your server already has a suitable item, point Config.Items.paint.name or Config.Items.cloth.name at it instead of adding a new one. The item names must match exactly.

On a standalone server there is no inventory, so item mode cannot work. The commands stay available and the console says so on start.

5. Paint your first mural

With admin permission and the items in place, test the full flow:

  1. Stand in front of a wall and use the paint kit, or run /mural paint.
  2. Aim at the wall and press Enter or left click to set the first corner, then pick the opposite corner on the same wall.
  3. Hold attack to paint. When the brush runs dry, look at the bucket beside you and hold attack or R to dip it.
  4. Press Enter to finish and confirm the Mural finished message appears.
  5. Check the mural from a second account to confirm it is synchronized.
  6. Open /muraladmin and confirm the mural is listed with your name.

Painting controls

ActionDefault
PaintHold attack
Draw a straight lineHold Shift
Switch between brush and clothE
Dip the brush in the bucketLook at the bucket, hold attack or R
Cycle the paletteLeft / Right arrows
Show the cursor to use the panelAlt
Finish the muralEnter
CancelEsc

6. Grant picture permission

Placing a picture is locked by default. Open /muraladmin, go to Players, select a player, and turn on Pictures. Their panel’s Picture button unlocks immediately. Administrators can always place pictures.

See Configuration to open pictures to everyone, change mural limits, or tune rendering distances.