> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/scenes-draw-everywhere.md).

# Scenes: Draw everywhere

{% hint style="warning" %}
**Pre-Installation Note**

This guide assumes you already know how to manage a FiveM server (start resources, edit configs). Following the steps out of order is the most common cause of errors.

**Support**

If something isn't working after you've followed every step, run through [Troubleshooting](/resources/scenes-draw-everywhere/troubleshooting.md) first, then open a ticket in our [Discord](https://discord.gg/rainmad) with your server console output. Don't skip the [Installation](/resources/scenes-draw-everywhere/installation.md) and [Dependencies](/resources/scenes-draw-everywhere/dependencies.md) pages.
{% endhint %}

Scenes lets players draw directly onto the world. Select any surface (a wall, the ground, a slope, even a prop), compose a drawing in a full in-game editor, and place it for everyone to see. Scenes persist in the database, stream to players around them, and expire on a timer the creator picks.

It works on QBCore/Qbox and ESX (auto-detected) and also runs standalone; notifications bridge to whatever UI resource you already use.

## Features

* **Draw on any surface:** drag corner-to-corner across walls, floors and inclined surfaces with a live suitability preview, resize the selection with the scroll wheel (per-axis with modifiers), then fine-tune how deep the drawing sits before saving.
* **Object attachment:** a scene placed on a prop can be linked to it so it follows the object and only renders while it exists; unlinked scenes stay pinned in place. Detach a linked scene later from the list.
* **Full scene editor:** layered canvas with brush (smoothed strokes), shapes, a fill-canvas background tool, text, emojis and images; undo/redo, duplicate, flip, align, per-layer opacity and outline, keyboard shortcuts throughout.
* **Custom fonts:** ship extra web fonts to the editor's text tool straight from `cfg.lua`: Google Fonts embed URLs or direct font files.
* **Image layers from a URL:** players add any https image; it's downloaded server-side with strict validation (size cap, real image bytes, no animated sources, SSRF-guarded).
* **Re-edit, move & copy:** reopen a placed scene's drawing in the editor, move it somewhere else at the same size, or copy it to a second spot, all from the scene list.
* **Merge:** drawing over your existing scenes offers to absorb them. Their drawings open as editor layers and the old scenes are replaced on save, so one render does the work of many.
* **Scene list:** a live-updating list where players manage their own scenes (edit, move, copy, expiry updates, GPS marking, delete), with badges showing which scenes render near you and which are object-attached; admins see every scene with teleport and bulk delete on top.
* **Expiry & cleanup:** every scene carries a creator-picked duration, and scenes nobody has rendered for a configurable number of days are pruned automatically.
* **Permissions:** open to everyone, or gated by identifier allow-list, jobs/gangs with grade and location restrictions, or your own `customCheck` function. Admins come from an identifier list or the `command` ace.
* **Performance-minded:** nothing is pushed at join; scene geometry syncs per grid cell around each player and images stream on demand behind a flood guard. Texture memory is pooled and bounded, occlusion culling skips hidden scenes, and the render tick goes fully idle when nothing is visible.
* **Server-authoritative:** every save, edit, move and copy is re-validated server-side, authorization, job zones, image bytes and rate limits included.
* **Discord logging:** scene creations log through a customer-editable file with the drawing attached to the embed.

## Dependencies

A framework, `ox_lib` and `oxmysql` are required. See the full list on the [Dependencies](/resources/scenes-draw-everywhere/dependencies.md) page before installing.

## Next steps

1. [Dependencies](/resources/scenes-draw-everywhere/dependencies.md)
2. [Installation](/resources/scenes-draw-everywhere/installation.md)
3. [Configuration](/resources/scenes-draw-everywhere/configuration.md)
