RX Scenes Configuration

RX Scenes keeps its behaviour in config.lua, and the text inside its menus in config.js. Permissions are identifier-based, so most servers only need to add their admins and adjust the five permission actions.

Restart ripex-scenes after changing the configuration so every client receives the same values.

Scene defaults

Config.Scenes sets the values a new scene starts from and how far scenes remain visible.

SettingDefaultBehaviour
maxViewDistance50.0Maximum distance at which a scene is drawn.
defaultDuration0Default scene lifetime. 0 keeps the scene permanent.
defaultFont0Default font index.
defaultFontSize1.0Default text size.
defaultColor'white'Default text colour.
Config.Scenes = {
    maxViewDistance = 50.0,
    defaultDuration = 0,
    defaultFont = 0,
    defaultFontSize = 1.0,
    defaultColor = 'white'
}

defaultDuration only sets the starting value in the creation menu; players can still choose a different lifetime per scene. Keep maxViewDistance moderate, since every scene within range is drawn.

Fonts

RedM only supports its built-in fonts. Custom font files cannot be loaded, so the available options are limited to the fonts the game already ships.

The resource exposes seven font choices, mapped internally to the font IDs RedM actually renders. Anything outside that range falls back rather than displaying a custom typeface.

Do not point defaultFont at an arbitrary number expecting a new font. If text renders in an unexpected style, the value is being remapped to the nearest working font.

Admin identifiers

Admin access is granted by listing player identifiers directly. This works even where ACE permissions do not, which is a common problem on txAdmin-managed servers.

Config.AdminIdentifiers = {
    'license:abc123def456789'
}

Any identifier prefix your server issues can be used:

PrefixExample
license:license:abc123def456789
steam:steam:1100001a2b3c4d5
discord:discord:123456789012345678

Add the full identifier including its prefix. To find yours, join the server and read it from the server console.

Treat this list as sensitive. Anyone who can read your config.lua can see exactly which accounts hold admin access, so keep the file out of public repositories and screenshots.

No server.cfg entry or ACE permission is needed. Adding the identifier here is the entire setup.

Permissions

Config.Permissions controls five actions independently. Each one takes a mode.

ActionDefault modeControls
CreateScene'everyone'Who may create new scenes.
DeleteScene'owner_only'Who may delete scenes.
ManageScene'owner_only'Who may edit existing scenes.
ViewScenes'everyone'Who may open the scene list.
AdminCommands'restricted'Who may use admin commands such as clearing all scenes.
Config.Permissions = {
    CreateScene = { mode = 'everyone' },
    DeleteScene = { mode = 'owner_only' },
    ManageScene = { mode = 'owner_only' },
    ViewScenes  = { mode = 'everyone' },
    AdminCommands = { mode = 'restricted' }
}

Modes

ModeBehaviour
'everyone'Every player may perform the action.
'owner_only'Players may act on their own scenes only. Admins may act on any scene.
'restricted'Only identifiers listed in Config.AdminIdentifiers may perform the action.

'owner_only' applies to DeleteScene and ManageScene. CreateScene and ViewScenes accept 'everyone' or 'restricted' only, since there is no owner to check before a scene exists.

Leave AdminCommands at 'restricted'. These commands affect every scene on the server at once.

The defaults let any player create and view scenes while keeping edits and deletions with the person who made them. Set CreateScene to 'restricted' if scenes should be staff-placed decoration rather than a player tool.

Keybinds

Three menus are opened by key. Players can change these in game.

MenuDefault keyOpens
sceneStyleUIF4Scene style menu.
sceneCreationUIDELETEScene creation menu.
adminPanelF6Admin panel.
Config.Keybinds = {
    UseRegisterKeyMapping = false,

    sceneStyleUI = {
        key = 'F4',
        description = 'Open Scene Style Menu'
    },

    sceneCreationUI = {
        key = 'DELETE',
        description = 'Open Scene Creation Menu'
    },

    adminPanel = {
        key = 'F6',
        description = 'Open Admin Panel'
    }
}

F2 does not work in RedM. Use F6, F7, F10, F11, or F12 instead. The admin panel defaults to F6 for this reason.

UseRegisterKeyMapping switches the binding method. Left at false, the resource handles the keys itself. Set to true, it registers them through Cfx RegisterKeyMapping, which is event-driven instead of polled but limits players to the key set in this config.

description is the label shown for the bind. Keep it short and descriptive.

Interface text

Menu labels, titles, placeholders, and button text live in config.js. Every line ships commented out, so the resource uses its built-in English text by default.

/* title.textContent = 'test' */
/* FontSelectionTitle.textContent = 'test' */
/* ColorSelectionTitle.textContent = 'test' */
/* SceneDurationtitle.textContent = 'test' */
/* ViewDistanceTitle.textContent = 'test' */
/* PreviewTitle.textContent = 'test' */
/* PreviewText.textContent = 'test' */

/* SaveButton.textContent = 'test' */
/* CancelButton.textContent = 'test' */

/* InputCreateTitle.textContent = 'test' */
/* InputPlaceHolderTitle.placeholder = 'test' */
/* createSceneButton.textContent = 'test' */
/* cancelSceneButton.textContent = 'test' */

To translate a label, uncomment the line and replace the value:

SaveButton.textContent = 'Kaydet';
CancelButton.textContent = 'İptal';

Uncomment only the lines you want to change. Leaving the rest commented keeps the built-in text, so a partial translation is fine.

Note that InputPlaceHolderTitle sets a placeholder rather than textContent, since it targets an input field.

Debug mode

Config.Debug = false

Enable it temporarily to see permission check logs in the console. That is the fastest way to find out why a player was refused an action, since it shows which mode was evaluated and whether the identifier matched. Turn it off again afterwards.