All documentation

Paid scripts

Poggy Scenes

Roleplay text for RedM: coloured scene text and painted wooden sign boards placed in the world, status tags, /me and /do, and a /me box that collects nearby actions.

  • poggy_scenes_2v2.0.1
  • poggy_scene_propsv1.0.0
  • FrameworksVORP Core, RSG Core, QBCore RedM
  • Updated5 Oct 2026

Overview#

Poggy Scenes lets players leave words in the world. A scene is either coloured floating text or a real wooden sign board with painted letters. Scenes stay through reconnects and server restarts until someone removes them.

It also gives players a status tag that floats above their head, the /me and /do roleplay commands, and a see-through box at the top of the screen that collects nearby /me messages so nobody misses them.

Poggy Scenes 2.0 comes as a pack of two resources: poggy_scenes_2 (the script) and poggy_scene_props (the sign props). It replaces Poggy Scenes 1.x and keeps every scene placed with it (see Upgrading from Scenes 1.x).

  • Scene text: coloured, sized text fixed to a spot. Everyone nearby can read it.
  • Sign boards: five carved board shapes in light or dark wood, two letterings, eight paints, thirty-five painted symbols and three flourishes, a painted border, mounts (a hanging bracket, one post or two posts) and lights (a lamp or bulbs) that light the sign after dark. Signs can be double-sided.
  • Change your own scenes: stand by one and press 4 to open it in the editor again, move it, change it or remove it.
  • Status tags with saved presets per character.
  • /me, /do, /id, /cash: short text above your character.
  • The /me box: nearby /me messages in one tidy, scrollable box. Each player picks how it behaves.
  • A Scenes panel in /poggy: every placed scene in one table. Fix text, delete one scene, everything one player placed, or everything older than a number of days.

Requirements#

NeedsWhy
poggy_core 0.13.0 or newerCharacters, jobs, groups, cash and notifications on VORP, RSG or QBCore RedM.
oxmysqlStores scenes and status presets.
poggy_scene_propsThe sign props. It is in the download, in the same pack folder. Without it everything else works and the editor simply offers no sign board.
A RedM server build with asset packsThe script lists /assetpacks and /assetpacks-redm as dependencies. Those are built into the server; there is nothing to install. A very old server build may not have them.

RedM only.

Installation#

Coming from Poggy Scenes 1.x? Read Upgrading from Scenes 1.x first. Never run the two at once.

  1. Download Poggy Scenes 2.0. It is one folder, [poggy_scenes_pack], holding poggy_scenes_2 and poggy_scene_props.
  2. Put the [poggy_scenes_pack] folder in your server's resources folder.
  3. Add it to server.cfg after poggy_core and oxmysql, with the props first:
    ensure oxmysql
    ensure poggy_core
    ensure poggy_scene_props
    ensure poggy_scenes_2
  4. Restart the server.

The database tables (playerscenes and playerstatuses) are created for you when the script starts. There is nothing to import.

You can restart poggy_scenes_2 whenever you like. The props never need restarting: leave poggy_scene_props running and do not stop it while players are online.

Configuration#

Every setting can be changed in game in /poggy β†’ Poggy Scenes 2.0, or by hand in poggy_scenes_2/config.lua. Restart the script after a change. The defaults below are the ones the script ships with.

Scenes

SettingDefaultWhat it does
Config.scenevisabilitydistance5How close (metres) a player must be to read scene text and other players' status tags. Larger shows more text on screen at once.
Config.denysceneinhideoutfalseWhen on, /scene is refused within 100 metres of one fixed spot (1785, -821, 191). The spot cannot be changed.

Who may place and remove

SettingDefaultWhat it does
Config.joblockfalseWhen on, only the jobs in Config.allowjobs may place scenes (plus the remove jobs and the admin group). With the list empty, everyone still can.
Config.allowjobs{}Jobs that may place scenes while Job lock is on.
Config.removejobspolice, sheriff, marshalJobs that may remove anyone's scene. They can always place scenes too.

Job names are exact and case-sensitive: Sheriff is not sheriff.

Sign boards

SettingDefaultWhat it does
Config.signs.enabledtrueSign boards in the Scene Editor. false switches the whole feature off.
Config.signs.jobs{}Jobs that may put up a sign. Empty means everyone who can place a scene. The admin group always may.
Config.signs.maxLetters60Most letters and symbols on one sign. Each one is its own prop in the game, so a lower number keeps busy streets light.
Config.signs.maxPerCharacter5Most signs one character may have up at once. 0 means no limit. The admin group is not limited.
Config.signs.viewDistance40.0How near (metres) a sign must be before it is put up on a player's screen. Further signs are not drawn at all.
Config.signs.maxNearby12Most signs shown at once. When more are in range, each player sees the nearest ones.
Config.signs.collisiontrueA placed sign and its posts are solid. false lets players walk through them, so a sign cannot block a doorway.
Config.signs.lightstrueA sign with a lamp or bulbs lights its own face from 19:00 to 06:00. Off: the lamp and bulbs are still there but throw no light.
Config.signs.preloadtrueOnce a character has loaded, the sign props are fetched quietly in the background, so the first sign a player sees or makes appears at once. Off: each is fetched when first needed, which can show a sign a moment late.
Config.signs = {
    enabled         = true,
    jobs            = {},
    maxLetters      = 60,
    maxPerCharacter = 5,
    viewDistance    = 40.0,
    maxNearby       = 12,
    collision       = true,
    lights          = true,
    preload         = true,
}

Overhead text (/me, /do, /id, /cash)

SettingDefaultWhat it does
Config.meoverheadduration10Seconds the text floats above a character.
Config.meoverheadradius20How far away (metres) it can be seen.

Status tags and scene text use Config.scenevisabilitydistance instead.

The /me box

SettingDefaultWhat it does
Config.meboxdistance6How close (metres) another player must be for their /me to reach your box. Your own always appears.
Config.meboxtimeout30In auto mode, the box fades this many seconds after the last message.
Config.meboxmaxlines7Lines shown before the box scrolls.
Config.meboxhistory50Messages kept for scrolling back.
Config.meboxdissipateafter300Seconds before each message is removed for good (300 is 5 minutes).
Config.meboxDefaultNameColor"#eeebe4"Sender's name colour when their job has no colour of its own.
Config.meboxJobColorspolice, sheriff, marshal, doctorA name colour per job (exact job name, then a hex colour).

Commands

Every command name can be changed. Write it without the slash.

SettingDefault
Config.scenecommand"scene"
Config.mecommand"me"
Config.ooccommand"do"
Config.statuscommand"status"
Config.stopdisplay"cstatus"
Config.id"id"
Config.cash"cash"
Config.meboxcommand"mebox"

Look and text

SettingDefaultWhat it does
Config.sceneColors19 coloursThe colour squares in the Scene and Status editors, in order. Each has a title, a hex colour for the square and a game colour code (for example ~e~ for red). The game code is what colours the text in the world; the square is only a preview.
Config.uitheme"amber-frontier"Colour scheme of the Scene and Status editors: amber-frontier, steel-blue, ivory-noir, lavender-dusk, crimson-dusk or emerald-ridge. The /me box is not themed.
Config.LanguageEnglishEvery message players see, and the prefixes put in front of /do, status, /cash and /id text.
Config.keyssee fileOnly "4" is used: the key pressed beside a scene to change or remove it. Change its hash only to one you know works.

Config.webhook is in the file but not used: nothing is sent to Discord.

Commands#

CommandWhoWhat it does
/sceneEveryone (or the allowed jobs, with Job lock on)Opens the Scene Editor to place coloured text or a sign board.
/me <action>EveryoneAn in-character action. Floats above you and lands in nearby players' /me box. Example: /me tips his hat.
/do <description>EveryoneA description of the scene, in red above you. Not added to the /me box.
/status [text]EveryoneWith text, sets a plain status tag at once. Alone, opens the Status Editor with colours and saved presets.
/cstatusEveryoneClears your status tag.
/idEveryoneShows your server ID above you for a few seconds.
/cashEveryoneShows your cash above you for a few seconds. The amount is read on the server.
/mebox <option>EveryoneYour own /me box: auto, persist, off, move, small, normal or large. See Using it in game.

Keys

KeyWhereWhat it does
4Standing close to a sceneYour own scene: opens it in the Scene Editor. Someone else's: removes it, if you are allowed to.
TAnywhereOpening chat brings back a faded /me box with its messages.
EscAfter /mebox moveSaves where you dragged the box.

Permissions#

No ACE permissions are needed. Access comes from jobs and the admin group.

WhoPlace scenesChange or remove ownRemove anyone'sChange anyone's
Everyone (Job lock off)YesYesNoNo
Everyone (Job lock on, Allowed jobs set)Only the allowed jobsYesNoNo
Jobs in Config.removejobsYesYesYesNo
The admin groupYesYesYesYes
  • The admin group name is fixed. poggy_core checks both the player's account group and their character's group.
  • Sign boards have their own job list (Config.signs.jobs) and a limit per character (Config.signs.maxPerCharacter). The admin group passes both.
  • Every change and removal, and the sign board rules, are checked again on the server.
  • The Scenes panel in /poggy is for people who may edit settings in /poggy. Who that is is set in poggy_core (see Poggy Core).

Limit placing to some jobs

  1. Open /poggy β†’ Poggy Scenes 2.0 β†’ Access & permissions.
  2. Turn on Job lock.
  3. Add the jobs that may place scenes to Allowed jobs.
  4. Save and restart the script.

Using it in game#

Placing scene text

  1. Type /scene. The Scene Editor opens in the bottom-right corner.
  2. Type your text. Step through sizes with the β—„ β–Ί switcher. Click a colour square, and what you type next is that colour. Select text you already typed, then click a colour or size, to change just that part.
  3. Click Confirm β†’. The text now floats in the world.
  4. Move it with the β—„ β–Ί arrows on X (left/right), Y (forward/back) and Z (up/down), scroll the mouse wheel over a value, or type a number and press Enter. Click and hold outside the panel to look around.
  5. Click βœ“ Place. βœ• Cancel goes back to the text without losing it.

Text in the world is shown in capitals. That is how the game draws it.

Putting up a sign board

  1. Type /scene and click Sign board at the top of the editor. The sign stands in front of you and changes as you go.
  2. Pick the board with β—„ β–Ί (Plank, Crowned, Oval, Tall, or an Arrow pointing right or left) and its colour (Light or Dark).
  3. Pick the lettering (Rocks or Serif) and whether the words run Across or Down.
  4. Type the words. Enter starts a new line. Select part of the words and pick a size (Large, Medium, Small) or one of the eight paints to change just that part.
  5. Optional: click a symbol to write it in like a letter, and add a painted border, a mount and a light. Set Sides to Both for a sign read from either side.
  6. Move and turn it with the sliders: left / right, near / far, down / up, turn, tilt and lean. Hold Shift while scrolling on a slider for bigger steps.
  7. Click βœ“ Place.
  • Signs use capitals, numbers and & . , ' ! ? - $ : / #. Anything else is left out.
  • Nothing you type is refused for its size. Words that are too long run past the frame, and the line under the box says so. Use the Line spacing and Words up / down sliders under the box to fit them.
  • The limits are the letters and symbols per sign (60 by default) and fourteen lines.
  • Posts reach about two metres below the sign: lower the sign until they meet the ground. For a double-sided sign use the bracket or two posts; a single post sits behind the sign.
  • Paints: Dark, Light, Red, Green, Blue, Cyan, Magenta and Yellow.

Changing or removing a scene

Stand close to a scene and press 4.

  • Your own scene (any scene, for the admin group) opens in the Scene Editor where it is. Change it and save, click Remove twice to take it away, or cancel to leave it as it was.
  • Someone else's scene is removed if your job is one of the remove jobs. Anyone else sees no prompt beside it.

Status tags

  • /status Injured, left arm sets a plain tag at once.
  • /status alone opens the Status Editor: type, pick colours, and optionally type a preset name and click πŸ’Ύ to save it. Click β–Ά Apply.
  • Saved presets are listed at the bottom: click a name to load it, β–Ά to apply, βœ• to delete. Presets are kept per character.
  • Clear the tag with β–  Clear in the editor, or /cstatus.

The /me box

A see-through box near the top of the screen collects /me messages from players near you. Your own always appear.

/mebox optionEffect
autoShows when a /me arrives and fades after 30 seconds. The default.
persistStays on screen while it has messages.
offHidden.
small / normal / largeBox width.
moveDrag the box anywhere, then press Esc to save the spot.

Each player's choice is remembered on their own PC. Scroll with the mouse wheel over the box to read older messages. Each message is deleted after 5 minutes.

Managing scenes in /poggy

Open /poggy β†’ Poggy Scenes 2.0 β†’ Scenes. It lists every scene with its ID, text, who placed it (character name and id), where and when.

Do thisHow
Fix a scene's textClick the text and edit it. Colour codes such as ~e~ work as in the editor. A sign board's words cannot be changed here: remove it and place it again.
Delete one sceneThe row's Delete button.
Delete everything one player placedThe row's Delete all by this player, then type to confirm.
Clean up old scenesDelete all older than… at the top: give a number of days, choose whether scenes with no date go too, then type to confirm.

Every change shows for every player at once and is printed to the server console with who made it. Scenes never expire on their own. Scenes placed before Poggy Scenes 1.3.2 have no date.

Upgrading from Scenes 1.x#

Poggy Scenes 2.0 (poggy_scenes_2) replaces Poggy Scenes 1.x (poggy_scene). It is a separate resource, so the poggy_core updater does not switch you over by itself.

What carries over

  • Every placed scene. 2.0 uses the same playerscenes table, with the same owners and placing dates. On its first start it only adds one new column (sign) for sign boards. There is no import and no migration to run.
  • Status presets. Same playerstatuses table, still per character.
  • Commands. The same names and the same behaviour.

What does not

  • Your settings. 2.0 starts with its own config.lua at the defaults. Every 1.x setting still exists with the same name, so copy your values across (or set them again in /poggy β†’ Poggy Scenes 2.0). Do not drop the old config.lua in: 2.0's file has new sign board settings and new player messages that the old one lacks.
  • Players' /me box choices (mode, size and position) are saved per resource, so players set them again once.

How to switch

  1. Note any settings you changed in 1.x.
  2. Stop the server, remove ensure poggy_scene from server.cfg and delete the poggy_scene folder. Keep the database tables.
  3. Install 2.0 as in Installation.
  4. Start the server and put your settings back.

Never run 1.x and 2.0 at once. They share the same commands, events and tables, so every scene and every command would be doubled. If both are started, 2.0 prints a red warning in the server console naming the 1.x resource.

If you ever go back to 1.x, scenes placed as sign boards show as plain floating text of their words, because 1.x does not know about signs.

Troubleshooting#

There is no Sign board button in the editor.

The props are missing or sign boards are switched off. Check that poggy_scene_props is in server.cfg and started, and that Config.signs.enabled is true.

"Cant place scene in hideout", but I am nowhere near a hideout.

The same message is shown when Job lock blocks a player. Check Config.joblock and Config.allowjobs. You can change the wording under Text & language in /poggy.

"You Dont Have The Right Job" when placing a sign.

Config.signs.jobs has jobs in it and the player's job is not one of them. Leave the list empty to let everyone who can place a scene put up a sign.

"You already have 5 signs up. Remove one first".

The character has reached Config.signs.maxPerCharacter. Raise it, or set 0 for no limit.

I pressed 4 by someone else's scene and nothing happened.

Only the remove jobs and the admin group can remove other players' scenes. The server checks every removal. Job names are case-sensitive. Staff can also delete any scene from the Scenes panel in /poggy.

Signs are blocking a doorway.

Set Config.signs.collision to false so players walk through signs, or remove the sign from the Scenes panel.

A sign appears a moment late, or far signs do not show.

Keep Config.signs.preload on so the props are fetched in the background. Signs further than Config.signs.viewDistance are not drawn, and only the nearest Config.signs.maxNearby are shown.

Scenes vanished after a restart.

Scenes are loaded from the database when the script starts. Check that oxmysql is running and look for loaded N scene(s) from DB in the server console.

Colours look different in the world than in the editor.

The world uses the game's own colour codes; the square in the editor is only a close match. Adjust the hex of that colour in Config.sceneColors.

A red warning says Poggy Scenes 1.x is running too.

Stop the 1.x resource and remove it from server.cfg. See Upgrading from Scenes 1.x.

Updating#

Both resources update through poggy_core's updater like any Poggy script (see Poggy Core: updates). Your config values are kept and new settings arrive with their defaults.

  • poggy_scenes_2 can be restarted after an update at any time.
  • Do not restart or stop poggy_scene_props while players are online. Let a new props version take effect at the next server restart.
Join the Discord Discord