JRS COREDocs
Scripts

Interface

27 scripts in the [INTERFACE] folder

HUD, menus, notifications and other on-screen systems.

This folder has 27 scripts. Pick a script in the tabs below.

Paid (server only)   jrs-Radio

jrs core Radio with persistent physical towers and maintenance jobs

Resource jrs-Radio
Folder [INTERFACE]
Version 3.25.3-jrs-radio-optional-strawberry
Author jrs team
Depends on jrs_core, jrs_inventory, oxmysql, pma-voice
Interface Yes (NUI)
Languages ar, en
Code size 6,161 Lua lines

Commands

  • /radiotowerstatus

Exports

GetRadioSignal, HasRadioSignal

Database tables

jrs_radio_towers

config/config.lua - 98 options#

General

Setting Default What it does
CoreResource "jrs_core" REDEMPIRE resources
InventoryResource "jrs_inventory" Setting for inventory resource.
RadioItem "radio" Inventory items used by radio item. Names must exist in the jrs_items table.
RequireRadioItem true Requires radio item: true = yes, false = no (default true).
Debug false Debug output for debug: true = yes, false = no (default false).
VoiceChat "pma" Voice system: "pma" or "saltychat"
VoiceResource "pma-voice" Setting for voice resource.
Language "ar" Interface language of this script (en or ar).
CheckItemInterval 2500 Time setting for check item interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
MinFrequency 0 Minimum or level requirement for min frequency.
MaxFrequency 999.99 Upper limit for max frequency.
SOSCooldown 10000 Time setting for sos cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
JoinCooldown 750 Time setting for join cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
AutoReconnect table Restore the player's previous radio channel after this resource restarts.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ DelayMs 3500 Time setting for delay ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ RetryDelayMs 2500 Time setting for retry delay ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ MaxAttempts 2 Upper limit for max attempts.
TowerSystem table Radio tower / signal system.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ DefaultRadius 1000.0 Default coverage settings. Each tower can override these values.
  ↳ StrongSignalDistance 400.0 Distance in game units that applies to strong signal distance.
  ↳ ClientCheckInterval 400 How often the local client recalculates its signal.
  ↳ SignalReportInterval 1000 How often the server receives an authoritative position/signal refresh.
  ↳ SignalReportCooldown 500 Time setting for signal report cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ BroadcastStep 4 Only rebroadcast player-list signal changes when strength changes by this amount.
  ↳ NoSignalDisableBit 64 A dedicated pma-voice disable bit used while outside all tower coverage. Existing pma-voice bits currently occupy lower values, so 64 is reserved here.
  ↳ NotifyOnSignalLost true Switch for notify on signal lost: true = on, false = off (default true).
  ↳ NotifyOnSignalRestored true Switch for notify on signal restored: true = on, false = off (default true).
  ↳ Interference table Table of interference entries. Add, remove or edit entries following the examples in the file.

يمكنك تعديل الأبراج الحالية أو إضافة أبراج جديدة من عندك بكل سهولة!

Setting Default What it does
RadioTowers table radius : [float] أقصى مدى لتغطية الإشارة بالأمتار (Coverage radius) strongDistance : [float] مدى الإشارة القوية والممتازة (Strong signal radius) enabled : [boolean] true لتفعيل البرج، false لتعطيله
TowerBlip table Map blip settings for radio towers.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Sprite -1018697504 -1018697504 (blip_bolt) = Lightning bolt / electric power transmission (recommended) 877823184 (blip_rc_crackpot) = Marko Dragic Tesla laboratory tower -1962480616 (blip_rc_lightning) = Stranger lightning bolt
  ↳ Scale 0.75 Rate or multiplier for scale.
  ↳ Color "BLIP_MODIFIER_MP_COLOR_21" Bright Cyan / Electric Blue
  ↳ DisabledColor "BLIP_MODIFIER_MP_COLOR_2" Red
  ↳ Display 2 Always show on radar and map
CustomTower table Dynamic beacon used by the streamed custom towers.
  ↳ Enabled true فعّل true لإظهار برج الستريم في فلنتاين فقط، ثم أعد تشغيل jrs-Radio. false keeps the existing native poles and all maintenance missions.
  ↳ SpawnAllOnSync false false = each tower prop is created only when a player is within SpawnDistance. Spawning all 10 towers across the whole map at login (true) stalled client model streaming (every RequestModel timed out).
  ↳ ModelLoadTimeoutMs 10000 Time setting for model load timeout ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ SpawnDistance 550.0 Used only when SpawnAllOnSync is false.
  ↳ DespawnDistance 700.0 Distance in game units that applies to despawn distance.
  ↳ Lamp table Table of lamp entries. Add, remove or edit entries following the examples in the file.
  ↳ Variants table Table of variants entries. Add, remove or edit entries following the examples in the file.
TowerManagement table Persistent physical tower management.
  ↳ NativePoles table position is saved (anchor_* columns), so the prompt, signal and repair all sit on that pole. The prompt only shows when that pole is really there. Moving a tower's coords in this file re-resolves it on restart.
  ↳ Placement table Table of placement entries. Add, remove or edit entries following the examples in the file.
  ↳ Interaction table Table of interaction entries. Add, remove or edit entries following the examples in the file.
  ↳ Admin table Who is allowed: jobs, groups or permissions for admin.
  ↳ Repair table Table of repair entries. Add, remove or edit entries following the examples in the file.
  ↳ Mission table Field repair mission dispatched to technicians (RDO Stranger / Bounty scale)
  ↳ Store table Supply prompt (G) next to "Tower Control" at every tower pole. Sells the kit Repair.RequiredItems consumes. Paid in cash through jrs_core.
  ↳ Maintenance table Table of maintenance entries. Add, remove or edit entries following the examples in the file.

Radio Tower Sabotage Configuration / إعدادات تخريب أبراج الراديو

Setting Default What it does
TowerSabotage table Table of tower sabotage entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ AllowEveryone true Who can sabotage: true allows all players (outlaws, civilians), false restricts to AllowedJobs
  ↳ AllowedJobs table Who is allowed: jobs, groups or permissions for allowed jobs.
  ↳ BlockedJobs table Disallow law enforcement and certified technicians from sabotaging towers
  ↳ RequiredItem nil e.g. "lockpick" or nil
  ↳ CooldownSeconds 180 Cooldown in seconds before the same tower can be sabotaged again
  ↳ FineAmount 35.0 Financial fine automatically deducted/issued against the vandal
  ↳ BountyReward 25.0 Bounty registered in police wanted board
  ↳ BlipDurationSeconds 120 Duration in seconds that the live tracking blip stays active on the vandal (visible ONLY to Sheriff & Mayor)
  ↳ AllowLawEmergencyRepair false Allow town sheriff, deputies and mayor to perform emergency repairs on sabotaged towers
  ↳ Control 0x8AAA0AE4 Prompt control: [X] = 0x8AAA0AE4 (INPUT_INTERACTION_SECONDARY)
  ↳ PromptLabel "Sabotage Tower" Text shown to the player for prompt label. Change it to translate or rebrand.
  ↳ Minigame table Minigame settings for sabotage
TowerTownLaw table Mapping of Radio Towers to their governing Town Law and Government City
  ↳ valentine table Table of valentine entries. Add, remove or edit entries following the examples in the file.
  ↳ rhodes table Table of rhodes entries. Add, remove or edit entries following the examples in the file.
  ↳ saint_denis table Table of saint denis entries. Add, remove or edit entries following the examples in the file.
  ↳ blackwater table Table of blackwater entries. Add, remove or edit entries following the examples in the file.
  ↳ strawberry table Table of strawberry entries. Add, remove or edit entries following the examples in the file.
  ↳ armadillo table Table of armadillo entries. Add, remove or edit entries following the examples in the file.
  ↳ tumbleweed table Table of tumbleweed entries. Add, remove or edit entries following the examples in the file.
  ↳ annesburg table Table of annesburg entries. Add, remove or edit entries following the examples in the file.
  ↳ van_horn table Table of van horn entries. Add, remove or edit entries following the examples in the file.
  ↳ emerald_ranch table Table of emerald ranch entries. Add, remove or edit entries following the examples in the file.
Locale table Interface language of this script (en or ar).
  ↳ en table Table of en entries. Add, remove or edit entries following the examples in the file.
  ↳ ar table Table of ar entries. Add, remove or edit entries following the examples in the file.
ProtectedFrequenciesEnabled true Job names are compared without case sensitivity. Enable this only when you want specific frequencies restricted by job. When false, every valid frequency is open to every job.
Whitelisted table Table of whitelisted entries. Add, remove or edit entries following the examples in the file.
  ↳ 1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ 2 table Table of 2 entries. Add, remove or edit entries following the examples in the file.
  ↳ 3 table Table of 3 entries. Add, remove or edit entries following the examples in the file.
  ↳ 4 table Table of 4 entries. Add, remove or edit entries following the examples in the file.
  ↳ 5 table Table of 5 entries. Add, remove or edit entries following the examples in the file.
  ↳ 6 table Table of 6 entries. Add, remove or edit entries following the examples in the file.
  ↳ 7 table Table of 7 entries. Add, remove or edit entries following the examples in the file.
  ↳ 8 table Table of 8 entries. Add, remove or edit entries following the examples in the file.
  ↳ 9 table Table of 9 entries. Add, remove or edit entries following the examples in the file.
  ↳ 10 table Table of 10 entries. Add, remove or edit entries following the examples in the file.
  ↳ 11 table Table of 11 entries. Add, remove or edit entries following the examples in the file.
SOS table Table of sos entries. Add, remove or edit entries following the examples in the file.
  ↳ blip table Map blip or icon settings for blip.

Paid (server only)   jrs_alert

Resource jrs_alert
Folder [INTERFACE]
Version 1.0.0
Author jrs team
Depends on jrs_core, jrs_inventory
Interface No
Languages ar, en
Code size 339 Lua lines
config/config.lua - 15 options#

General

Setting Default What it does
cooldown 120 2m -- times
jrs_Notify true Switch for jrs notify: true = on, false = off (default true).
Image "police" Setting for image.
Image_2 "doctor" Setting for image 2.
lang table Interface language of this script (en or ar).
  ↳ 1 "police_help_needed" Setting for 1.
  ↳ 2 "doctor_way" Setting for 2.
  ↳ 3 "no_doctors" Setting for 3.
alerts table Table of alerts entries. Add, remove or edit entries following the examples in the file.
  ↳ police table job name
  ↳ medic table Table of medic entries. Add, remove or edit entries following the examples in the file.
  ↳ doctor table Table of doctor entries. Add, remove or edit entries following the examples in the file.
medicresponse "resp" Setting for medicresponse.
cancelblipcommand "calert" removes alert
alertcooldown 10 seconds

Paid (server only)   jrs_animmenu

jrs core Animation Menu for jrs_core

Resource jrs_animmenu
Folder [INTERFACE]
Version 1.10.0
Author jrs team
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 7,077 Lua lines

Commands

  • /-jrs_anim_fav_
  • /-jrs_animmenu_open
  • /-jrs_quick_handsup
  • /-jrs_quick_point
  • /cancelanim
  • /crawl
  • /prone
  • /stopanim

Exports

ForceStandUp, IsPlayingAnimation, IsProne, OpenSeatsMenu, ToggleProne

Database tables

IF

config/config.lua - 330 options#

General

Setting Default What it does
CoreResource "jrs_core" Setting for core resource.
PetsResource "jrs_pets" Optional Pets-tab integration. Keep this as the actual resource folder name; it lets servers that rename the pets resource retain the integration without editing client code.
StoreThemeResource "jrs_stores" documentation for the shared theme source only; jrs_animmenu deliberately does not depend on jrs_stores, so animations keep working while stores are stopped or restarted.
DatabaseTable "jrs_animmenu" Setting for database table.
SharedAnimationDistance 3.0 Distance in game units that applies to shared animation distance.
SharedAnimationCooldown 750 Time setting for shared animation cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
SharedRequestCooldown 8000 ms between requests from one player
SharedRequestTimeout 12000 ms the target has to answer
SharedRequestKeys table Key or control used for shared request keys. Controls are hash values from the game input list.
  ↳ Accept 0xC7B5340A ENTER
  ↳ Decline 0x156F7119 BACKSPACE
Debug false Debug output for debug: true = yes, false = no (default false).
AnimCallCommand "a" Animation settings for anim call command.
QuickEmoteKeys table B = finger point. Press B once to point, press B again to put the hand down. Always points straight ahead relative to the ped's own facing -- it does not track the camera/mouse at all.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ RaiseHands 0x8CC9CD42 X
  ↳ Point 0x4CC0E2FE B
  ↳ PointHold false false = press B to point, press B again to stop (default). true = FiveM behaviour, hold B to point and release to stop.
  ↳ NotifyHandsUpLevel false Show a small notification with the active hands up level.
PointingAnim table B pointing animation: always the forward (000) clip from this dict.
  ↳ dict "ai_react@point@witness" Animation settings for dict.
  ↳ directions table Table of directions entries. Add, remove or edit entries following the examples in the file.
  ↳ enterSuffix "_enter" Setting for enter suffix.
  ↳ loopSuffix "_loop" Setting for loop suffix.
  ↳ exitSuffix "_exit" Setting for exit suffix.
  ↳ HoldStill true pressed again (default). false = keep playing the clip's own natural motion (_loop clip) instead.
  ↳ holdFlag 30 earlier ones. Deliberately does NOT include 32 (player control): on this specific clip set, combining that bit with hold-last-frame (2) is what caused the player's own movement to freeze in earlier attempts.
  ↳ loopFlag 49 1 (loop) + 16 (upper body) + 32 (player keeps control) = used only when HoldStill is false, to keep the clip's natural moving loop going.
HandsUpLevels table Tap X to raise one level; tapping past the last level lowers the hands. flag: 31 keeps the player standing still, 49 lets the player walk with the hands up (1 loop + 16 upper body + 32 player control).
  ↳ 1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ 2 table Table of 2 entries. Add, remove or edit entries following the examples in the file.
  ↳ 3 table Table of 3 entries. Add, remove or edit entries following the examples in the file.
NotHoldKeye true Switch for not hold keye: true = on, false = off (default true).
AnimMenuKeyPress true Switch for anim menu key press: true = on, false = off (default true).
AnimMenuKey 0x80F28E95 Key or control used for anim menu key. Controls are hash values from the game input list.
OpenMenuCommandEnable true Switch for open menu command enable: true = on, false = off (default true).
OpenMenuCommand "animmenu" Setting for open menu command.

Keys 1..5 (INPUT_SELECT_QUICKSELECT_*) belong to the jrs_inventory quick

Setting Default What it does
AllowKeybind true every frame, so a number press fired a favourite emote instead of using the item sitting in that quick slot. The inventory owns 1..5; favourites keep 6, 7 and 8, and favourites 1..5 stay available from the anim menu itself.
Keybind table Table of keybind entries. Add, remove or edit entries following the examples in the file.
  ↳ 6 0xA1FDE2A6 [3] = 0x4F49CC4C, -- reserved: jrs_inventory quick slot 3 [4] = 0x8F9F9E58, -- reserved: jrs_inventory quick slot 4 [5] = 0xAB62E997, -- reserved: jrs_inventory quick slot 5
  ↳ 7 0xB03A913B Setting for 7.
  ↳ 8 0x42385422 Setting for 8.
Prop table Game model or entity used for prop.
  ↳ 1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ 2 table Table of 2 entries. Add, remove or edit entries following the examples in the file.
  ↳ 3 table Table of 3 entries. Add, remove or edit entries following the examples in the file.
  ↳ 4 table Table of 4 entries. Add, remove or edit entries following the examples in the file.
  ↳ 5 table Table of 5 entries. Add, remove or edit entries following the examples in the file.
  ↳ 6 table Table of 6 entries. Add, remove or edit entries following the examples in the file.
  ↳ 7 table Table of 7 entries. Add, remove or edit entries following the examples in the file.
  ↳ 8 table Table of 8 entries. Add, remove or edit entries following the examples in the file.
  ↳ 9 table Table of 9 entries. Add, remove or edit entries following the examples in the file.
  ↳ 10 table Table of 10 entries. Add, remove or edit entries following the examples in the file.
  ↳ 11 table Table of 11 entries. Add, remove or edit entries following the examples in the file.
  ↳ 12 table Table of 12 entries. Add, remove or edit entries following the examples in the file.
  ↳ 13 table Table of 13 entries. Add, remove or edit entries following the examples in the file.
  ↳ 14 table Table of 14 entries. Add, remove or edit entries following the examples in the file.
  ↳ 15 table Table of 15 entries. Add, remove or edit entries following the examples in the file.
Anim table Animation settings for anim.
  ↳ 8 table [5] = {female=true, name="Camp Management", itsAnimation="command", command="camp_manage"}, [6] = {female=true, name="Load Camp", itsAnimation="command", command="camp_load"}, [7] = {female=true, name="Ranch Man
  ↳ 100 table Table of 100 entries. Add, remove or edit entries following the examples in the file.
  ↳ 101 table Table of 101 entries. Add, remove or edit entries following the examples in the file.
  ↳ 103 table Table of 103 entries. Add, remove or edit entries following the examples in the file.
  ↳ 104 table Table of 104 entries. Add, remove or edit entries following the examples in the file.
  ↳ 105 table Table of 105 entries. Add, remove or edit entries following the examples in the file.
  ↳ 106 table Table of 106 entries. Add, remove or edit entries following the examples in the file.
  ↳ 107 table Table of 107 entries. Add, remove or edit entries following the examples in the file.
  ↳ 108 table Table of 108 entries. Add, remove or edit entries following the examples in the file.
  ↳ 109 table Table of 109 entries. Add, remove or edit entries following the examples in the file.
  ↳ 110 table Table of 110 entries. Add, remove or edit entries following the examples in the file.
  ↳ 111 table Table of 111 entries. Add, remove or edit entries following the examples in the file.
  ↳ 112 table Table of 112 entries. Add, remove or edit entries following the examples in the file.
  ↳ 113 table Table of 113 entries. Add, remove or edit entries following the examples in the file.
  ↳ 114 table Table of 114 entries. Add, remove or edit entries following the examples in the file.
  ↳ 115 table Table of 115 entries. Add, remove or edit entries following the examples in the file.
  ↳ 116 table Table of 116 entries. Add, remove or edit entries following the examples in the file.
  ↳ 117 table Table of 117 entries. Add, remove or edit entries following the examples in the file.
  ↳ 118 table Table of 118 entries. Add, remove or edit entries following the examples in the file.
  ↳ 119 table Table of 119 entries. Add, remove or edit entries following the examples in the file.
  ↳ 120 table Table of 120 entries. Add, remove or edit entries following the examples in the file.
  ↳ 121 table Table of 121 entries. Add, remove or edit entries following the examples in the file.
  ↳ 122 table Table of 122 entries. Add, remove or edit entries following the examples in the file.
  ↳ 123 table Table of 123 entries. Add, remove or edit entries following the examples in the file.
  ↳ 124 table Table of 124 entries. Add, remove or edit entries following the examples in the file.
  ↳ 125 table Table of 125 entries. Add, remove or edit entries following the examples in the file.
  ↳ 126 table Table of 126 entries. Add, remove or edit entries following the examples in the file.
  ↳ 127 table Table of 127 entries. Add, remove or edit entries following the examples in the file.
  ↳ 128 table Table of 128 entries. Add, remove or edit entries following the examples in the file.
  ↳ 129 table Table of 129 entries. Add, remove or edit entries following the examples in the file.
  ↳ 130 table Table of 130 entries. Add, remove or edit entries following the examples in the file.
  ↳ 131 table Table of 131 entries. Add, remove or edit entries following the examples in the file.
  ↳ 132 table Table of 132 entries. Add, remove or edit entries following the examples in the file.
  ↳ 134 table Table of 134 entries. Add, remove or edit entries following the examples in the file.
  ↳ 135 table Table of 135 entries. Add, remove or edit entries following the examples in the file.
  ↳ 136 table Table of 136 entries. Add, remove or edit entries following the examples in the file.
  ↳ 137 table Table of 137 entries. Add, remove or edit entries following the examples in the file.
  ↳ 138 table Table of 138 entries. Add, remove or edit entries following the examples in the file.
  ↳ 139 table Table of 139 entries. Add, remove or edit entries following the examples in the file.
  ↳ 140 table Table of 140 entries. Add, remove or edit entries following the examples in the file.
  ↳ 141 table Table of 141 entries. Add, remove or edit entries following the examples in the file.
  ↳ 142 table Table of 142 entries. Add, remove or edit entries following the examples in the file.
  ↳ 143 table Table of 143 entries. Add, remove or edit entries following the examples in the file.
  ↳ 144 table Table of 144 entries. Add, remove or edit entries following the examples in the file.
  ↳ 145 table Table of 145 entries. Add, remove or edit entries following the examples in the file.
  ↳ 150 table Table of 150 entries. Add, remove or edit entries following the examples in the file.
  ↳ 151 table Table of 151 entries. Add, remove or edit entries following the examples in the file.
  ↳ 152 table Table of 152 entries. Add, remove or edit entries following the examples in the file.
  ↳ 153 table Table of 153 entries. Add, remove or edit entries following the examples in the file.
  ↳ 154 table Table of 154 entries. Add, remove or edit entries following the examples in the file.
  ↳ 155 table Table of 155 entries. Add, remove or edit entries following the examples in the file.
  ↳ 156 table Table of 156 entries. Add, remove or edit entries following the examples in the file.
  ↳ 157 table Table of 157 entries. Add, remove or edit entries following the examples in the file.
  ↳ 158 table Table of 158 entries. Add, remove or edit entries following the examples in the file.
  ↳ 159 table Table of 159 entries. Add, remove or edit entries following the examples in the file.
  ↳ 160 table Table of 160 entries. Add, remove or edit entries following the examples in the file.
  ↳ 161 table Table of 161 entries. Add, remove or edit entries following the examples in the file.
  ↳ 162 table Table of 162 entries. Add, remove or edit entries following the examples in the file.
  ↳ 163 table Table of 163 entries. Add, remove or edit entries following the examples in the file.
  ↳ 164 table Table of 164 entries. Add, remove or edit entries following the examples in the file.
  ↳ 165 table Table of 165 entries. Add, remove or edit entries following the examples in the file.
  ↳ 167 table Table of 167 entries. Add, remove or edit entries following the examples in the file.
  ↳ 168 table Table of 168 entries. Add, remove or edit entries following the examples in the file.
  ↳ 169 table Table of 169 entries. Add, remove or edit entries following the examples in the file.
  ↳ 170 table Table of 170 entries. Add, remove or edit entries following the examples in the file.
  ↳ 171 table Table of 171 entries. Add, remove or edit entries following the examples in the file.
  ↳ 172 table Table of 172 entries. Add, remove or edit entries following the examples in the file.
  ↳ 173 table Table of 173 entries. Add, remove or edit entries following the examples in the file.
  ↳ 174 table Table of 174 entries. Add, remove or edit entries following the examples in the file.
  ↳ 176 table Table of 176 entries. Add, remove or edit entries following the examples in the file.
  ↳ 177 table Table of 177 entries. Add, remove or edit entries following the examples in the file.
  ↳ 178 table Table of 178 entries. Add, remove or edit entries following the examples in the file.
  ↳ 179 table Table of 179 entries. Add, remove or edit entries following the examples in the file.
  ↳ 181 table Table of 181 entries. Add, remove or edit entries following the examples in the file.
  ↳ 182 table Table of 182 entries. Add, remove or edit entries following the examples in the file.
  ↳ 183 table Table of 183 entries. Add, remove or edit entries following the examples in the file.
  ↳ 184 table Table of 184 entries. Add, remove or edit entries following the examples in the file.
  ↳ 186 table Table of 186 entries. Add, remove or edit entries following the examples in the file.
  ↳ 187 table Table of 187 entries. Add, remove or edit entries following the examples in the file.
  ↳ 188 table Table of 188 entries. Add, remove or edit entries following the examples in the file.
  ↳ 189 table Table of 189 entries. Add, remove or edit entries following the examples in the file.
  ↳ 190 table Table of 190 entries. Add, remove or edit entries following the examples in the file.
  ↳ 191 table Table of 191 entries. Add, remove or edit entries following the examples in the file.
  ↳ 192 table Table of 192 entries. Add, remove or edit entries following the examples in the file.
  ↳ 193 table Table of 193 entries. Add, remove or edit entries following the examples in the file.
  ↳ 194 table Table of 194 entries. Add, remove or edit entries following the examples in the file.
  ↳ 195 table Table of 195 entries. Add, remove or edit entries following the examples in the file.
  ↳ 196 table Table of 196 entries. Add, remove or edit entries following the examples in the file.
  ↳ 197 table Table of 197 entries. Add, remove or edit entries following the examples in the file.
  ↳ 198 table Table of 198 entries. Add, remove or edit entries following the examples in the file.
  ↳ 199 table Table of 199 entries. Add, remove or edit entries following the examples in the file.
  ↳ 200 table Table of 200 entries. Add, remove or edit entries following the examples in the file.
  ↳ 201 table Table of 201 entries. Add, remove or edit entries following the examples in the file.
  ↳ 202 table Table of 202 entries. Add, remove or edit entries following the examples in the file.
  ↳ 203 table Table of 203 entries. Add, remove or edit entries following the examples in the file.
  ↳ 204 table Table of 204 entries. Add, remove or edit entries following the examples in the file.
  ↳ 205 table Table of 205 entries. Add, remove or edit entries following the examples in the file.
  ↳ 206 table Table of 206 entries. Add, remove or edit entries following the examples in the file.

Portable chairs (merged from jrs_chair). Placed from the "Chairs" tab in the

Setting Default What it does
Chairs table normal seat target (every model below is in FurnitureInteractions.ChairModels or has its own seat definition). Chairs are temporary: they are removed when the owner leaves / switches character, or the resource stops.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ MaxPerPlayer 2 placed at the same time, per player
  ↳ PlaceCooldown 3000 ms between two placements
  ↳ PlaceDistance 1.2 start distance in front of the player
  ↳ MinDistance 0.8 Distance in game units that applies to min distance.
  ↳ MaxDistance 3.0 arrow up/down moves the chair between Min and Max
  ↳ ServerMaxDistance 4.5 server check (player <-> placed chair)
  ↳ PickupDistance 1.8 hold-to-pick-up prompt range (own chairs only)
  ↳ PickupHoldMs 1000 Number for pickup hold ms (default 1000).
  ↳ ModelLoadTimeout 8000 Time setting for model load timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ Keys table Key or control used for keys. Controls are hash values from the game input list.
  ↳ Models table id = stable key (NUI label animmenu_chair_<id>), icon = Font Awesome name.
Notes from the README#
text
# JRS Animation Menu
Animation, dance, walking-style, prop, favorite and contextual furniture interaction menu for RedM using `jrs_core`.
## Requirements
- `jrs_core`
- `oxmysql`
Start order:
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_animmenu
'''
## Database
No manual SQL import is required. The resource automatically creates the table configured in:
'''lua
Config.DatabaseTable = "jrs_animmenu"
'''
Favorites and custom animation commands are stored per character using the active JRS character `identifier` and `charidentifier`.
## Core integration
The resource connects directly to `jrs_core`.
- Character loading uses the JRS character-ready API/events.
- Current job is read from the active JRS character.
- No external menu/input API is required.
- Shared animations are routed through the server and validated for nearby players.
## Menu categories
The NUI is English and separates content into four tabs:
- Animations
- Walking
- Dances
- Props
Dance emotes, looped dance animations and shared dance animations are routed to the Dances tab. Walking styles are kept out of the normal animation list.
### JRS interaction refresh
- Uses a native RedM contextual prompt on **E**.
- Uses a projected, animated proximity arrow over supported furniture.
- The translucent preview ped is created **only after Interact is completed**; proximity alone never spawns it.
- The old header image was removed from both the main menu and input dialog.
- The old ground marker is disabled by default; a subtle proximity light remains configurable.
- Furniture scan/update intervals were tightened while avoiding per-frame object scans.
## Expanded animation library
This build adds 207 additional entries that were not already present by their underlying animation/scenario/emote/walking-style data:
- 88 animations
- 59 scenarios
- 18 emotes
- 24 walking styles/reset entries
- 18 clothing-motion animations
When a new animation had the same visible name as an existing entry but used different animation data, it is kept as an alternate entry instead of replacing the

Paid (server only)   jrs_announce

JRS Announce - per-instance tribe newspapers for jrs_core / jrs_inventory

Resource jrs_announce
Folder [INTERFACE]
Version 2.7.0
Author jrs
Depends on jrs_core, jrs_inventory, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 1,570 Lua lines

Commands

  • /givenewspaper

Database tables

jrs_newspaper_publications, jrs_newspapers

config.lua - 18 options#

General

Setting Default What it does
CoreResource "jrs_core" Setting for core resource.
InventoryResource "jrs_inventory" Setting for inventory resource.
ItemName "newspaper" Inventory items used by item name. Names must exist in the jrs_items table.
AdminCommand "newspaperadmin" Who is allowed: jobs, groups or permissions for admin command.
AdminGroups table Admin groups are read directly from jrs_core User.group.
  ↳ owner true Switch for owner: true = on, false = off (default true).
  ↳ admin true Switch for admin: true = on, false = off (default true).
  ↳ support true Switch for support: true = on, false = off (default true).
MessageMaxLength 700 Upper limit for message max length.
NameMaxLength 80 Upper limit for name max length.
UrlMaxLength 2048 Upper limit for url max length.
PublishCooldownSeconds 60 Time setting for publish cooldown seconds. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
AnnouncementDurationMs 10000 Time setting for announcement duration ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
NotificationDurationMs 4500 Time setting for notification duration ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
GpsCommand "newsgps" Players type /newsgps to set a waypoint to the last announcement that shared its location (only newspapers whose design allows location sharing).
GpsWindowSeconds 300 Number for gps window seconds (default 300).
ImageHosts table Hosts a writer may attach a picture from (https only). Every player loads the picture, so an open list would let anyone log the IP of the whole server. Subdomains are allowed automatically. Empty table = any https host.
Debug false Debug output for debug: true = yes, false = no (default false).
Notes from the README#
text
# jrs_announce v2.0.0
Complete replacement for the old `jrs_announceV2` resource.
## What changed
- No VORP dependency.
- Uses `jrs_core`, `jrs_inventory`, and `oxmysql` only.
- One inventory item only: `newspaper`.
- Every item instance stores only `{ newspaper_id = <id> }` in JRS inventory metadata.
- Newspaper name, tribe name, logo and background are stored centrally in `jrs_newspapers`.
- Editing a newspaper updates every existing item immediately because items resolve the current database record when used.
- Deleting a newspaper invalidates every existing item linked to that ID.
- Server validates the exact `itemId` and `newspaper_id` before publishing.
- Admin UI supports create, edit, enable/disable, delete, refresh, and issuing another copy.
- Publications are saved in `jrs_newspaper_publications`.
## Installation
1. Import `install/jrs_announce.sql`.
2. Copy `install/item_images/newspaper.png` into the item-image directory used by your `jrs_inventory` UI if your inventory expects item images there.
3. Put the resource folder in your resources directory as `jrs_announce`.
4. Start in this order:
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_inventory
ensure jrs_announce
'''
5. In game, admins use:
'''text
/newspaperadmin
'''
Admin permission is read directly from `jrs_core` (`User.group`). No ACE permission or direct users-table lookup is used. Allowed JRS groups are configured in `
'''lua
Config.AdminGroups = {
    owner = true,
    admin = true,
    support = true,
}
'''
## Important item behavior
The `newspaper` definition's `items.metadata` column is a `varchar(1)` on this server - too narrow to ever hold real JSON, so `jrs_inventory`'s default-metadata
## Editing behavior
Editing does **not** create a new inventory item. An existing copy only keeps its stable `newspaper_id`, so a changed name/logo/background is read live from the
## v2.0.2
- Newspaper use now captures the exact `itemId` directly from the JRS inventory `jrs:use` event.
- No longer depends only on `jrsCore:getLastUsedId`, preventing false `missing valid data` errors when the inventory definition cache has not refreshed.
## v2.0.3 inventory compatibility
This build targets the current JRS Inventory API. The usable-item callback receives the exact `itemId` and `metaData` from `jrs_inventory`, so `jrs_announce` no

Paid (server only)   jrs_backpack

Unique wearable backpacks with persistent JRS Inventory storage

Resource jrs_backpack
Folder [INTERFACE]
Version 1.2.2
Author JRS
Depends on jrs_core, jrs_inventory, oxmysql
Interface No
Code size 1,037 Lua lines
config.lua - 40 options#

General

Setting Default What it does
Backpacks table Each backpack has its own inventory item, storage capacity and wearable object. The existing "backpack" item remains the large backpack for compatibility.
  ↳ small table Table of small entries. Add, remove or edit entries following the examples in the file.
  ↳ medium table Table of medium entries. Add, remove or edit entries following the examples in the file.
  ↳ large table Table of large entries. Add, remove or edit entries following the examples in the file.
AutoInstallItems true Automatically handles install items: true = yes, false = no (default true).
StoragePrefix "jrs_backpack_" Setting for storage prefix.
Ground table Ground placement and animation while a backpack storage is open.
  ↳ forwardOffset 0.90 Number for forward offset (default 0.90).
  ↳ groundOffset 0.0 Number for ground offset (default 0.0).
  ↳ headingOffset 180.0 Number for heading offset (default 180.0).
  ↳ rotation vector3(0.0, 0.0, 0.0) Setting for rotation.
  ↳ scenario "WORLD_HUMAN_CROUCH_INSPECT" Animation settings for scenario.
  ↳ openDelayMs 350 Time setting for open delay ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
ToggleCommand "bag" /bag toggles only the visible object. Using an inventory item opens its storage.
ToggleKey "" Example: 'B'. Leave empty to avoid a key conflict.
ToggleKeyDescription "Show or hide backpack" Key or control used for toggle key description. Controls are hash values from the game input list.
ModelLoadTimeoutMs 10000 Time setting for model load timeout ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
VisualRefreshMs 1000 Number for visual refresh ms (default 1000).
ServerValidationMs 3000 Number for server validation ms (default 3000).
RequestCooldownMs 600 Time setting for request cooldown ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
InventoryResource "jrs_inventory" Setting for inventory resource.
NotifyTitle "Backpack" Text shown to the player for notify title. Change it to translate or rebrand.
Admin table Admin: allows staff to inspect any player's backpack storage.
  ↳ AcePermission "command" ACE permission required (e.g. 'command', 'group.admin', 'admin')
  ↳ Command "viewbag" /viewbag <server_id>
Messages table Text shown to the player for messages. Change it to translate or rebrand.
  ↳ equipped 'The backpack is now visible... Setting for equipped.
  ↳ placed "The backpack is on the ground." Setting for placed.
  ↳ returned 'The backpack is back on you... Setting for returned.
  ↳ shown "Backpack shown." Setting for shown.
  ↳ hidden "Backpack hidden." Setting for hidden.
  ↳ closeStorageFirst 'Close the backpack storage ... Setting for close storage first.
  ↳ useFirst "Use a backpack item first." Setting for use first.
  ↳ noLongerOwned 'You no longer have this bac... Setting for no longer owned.
  ↳ notYourBag 'You cannot use the storage ... Setting for not your bag.
  ↳ storageFailed 'The backpack storage could ... Setting for storage failed.
  ↳ nestedBag 'You cannot place a backpack... Setting for nested bag.
  ↳ adminNoPlayer "Usage: /%s &lt;server_id&gt;" Who is allowed: jobs, groups or permissions for admin no player.
  ↳ adminNotFound 'That player has no equipped... Who is allowed: jobs, groups or permissions for admin not found.
  ↳ adminOpened "Opened backpack for player %s." Who is allowed: jobs, groups or permissions for admin opened.
Notes from the README#
text
# jrs_backpack
Three wearable backpacks built specifically for REDEMPIRE Core (`jrs_core` and `jrs_inventory`).
## Backpack types
| Item name | Label | Object | Capacity |
| --- | --- | --- | ---: |
| `backpack_small` | Small Backpack | `p_ambpack02x` | 15 kg |
| `backpack_medium` | Medium Backpack | `p_ambpack01x` | 25 kg |
| `backpack` | Large Backpack | `p_ambpack04x` | 40 kg |
The original `backpack` item is retained as the large backpack, so existing player items continue to work.
## Features
- Every physical backpack item has its own persistent storage.
- Storage capacity is selected from the backpack type.
- Storage follows the same item when it is given, dropped or picked up.
- Using a backpack places its matching object in front of the player and starts a crouched inspection animation.
- Closing the backpack storage removes the ground object and returns the backpack to the player's back.
- Equipping another backpack replaces the visible object immediately.
- `/bag` shows or hides the equipped backpack object.
- Backpack objects are synchronized for nearby players.
- No backpack type can be placed inside another backpack.
- The object is removed when the player no longer owns its item.
## Starting the resource
The resource is inside `[JRS_newscript]`, so an existing server configuration line such as:
'''cfg
ensure [JRS_newscript]
'''
starts it automatically. After updating the resource, run:
'''text
restart jrs_backpack
'''
Item definitions are installed and reloaded automatically. If the inventory does not show the two new items immediately, restart it once:
'''text
restart jrs_inventory
restart jrs_backpack
'''
## Configuration
Edit `Config.Backpacks` in `config.lua` to change:
- Item names, labels and descriptions.
- Backpack item weights.
- Storage capacities.
- Object models.
- Bone, position and rotation values for each wearable object.
- Ground placement distance, rotation and inspection animation in `Config.Ground`.
The default attachment values are individually tuned for the three included RedM objects.

Free (included in JRS Core)   jrs_bathing

Independent bathhouse and trough washing with metabolism integration

Resource jrs_bathing
Folder [INTERFACE]
Version 1.5.8
Author jrs team
Depends on jrs_character, jrs_core, jrs_metabolism
Interface No
Languages bathi
Code size 2,485 Lua lines

Commands

  • /exitbath
  • /safebathexit

Exports

GetClosestConsumer, IsBusy

config/bathing_client.cfg.lua - 18 options#

General

Setting Default What it does
EnableBlips true Turns blips on or off (default true).
BlipName "Bath House" Map blip or icon settings for blip name.
UndressCommand "undress" Setting for undress command.
DressCommand "rc" Setting for dress command.
BathExitAnimPhase 0.35 Exit (S): outro plays until this scene phase (0-1, player out of the tub), then the exit finishes like the D exit (placed outside the door, dressed).
BathingZones table Table of bathing zones entries. Add, remove or edit entries following the examples in the file.
  ↳ SaintDenis table Table of saint denis entries. Add, remove or edit entries following the examples in the file.
  ↳ Valentine table Table of valentine entries. Add, remove or edit entries following the examples in the file.
  ↳ Annesburg table Table of annesburg entries. Add, remove or edit entries following the examples in the file.
  ↳ Strawberry table Table of strawberry entries. Add, remove or edit entries following the examples in the file.
  ↳ Blackwater table Table of blackwater entries. Add, remove or edit entries following the examples in the file.
  ↳ Vanhorn table Table of vanhorn entries. Add, remove or edit entries following the examples in the file.
  ↳ Rhodes table Table of rhodes entries. Add, remove or edit entries following the examples in the file.
  ↳ Tumbleweed table Table of tumbleweed entries. Add, remove or edit entries following the examples in the file.
BathingModes table Table of bathing modes entries. Add, remove or edit entries following the examples in the file.

2026-09-12 correction: that claim was wrong for Q specifically - Q isn't in

Setting Default What it does
PromptDefs nil with 0xDE794E3E, Q's entry in jrs_utils/shared/keys.lua's canonical keyboard table - the same table whose E/G/X/R/D/S/W values already match what this file uses successfully for every other prompt here.
Prompts table Table of prompts entries. Add, remove or edit entries following the examples in the file.
CreatedEntries table Table of created entries entries. Add, remove or edit entries following the examples in the file.

Paid (server only)   jrs_camera

JRS Camera Pro - handheld, fixed/tripod and synchronized Rockstar studio camera for RedM.

Resource jrs_camera
Folder [INTERFACE]
Version 2.3.1
Author JRS Team
Depends on jrs_core
Interface No
Languages ar, en
Code size 2,615 Lua lines

Commands

  • /cameradebug
  • /cameradiag

Exports

IsCameraActive, IsCameraMode, OpenAlbum, OpenFixedCameraPlacement, OpenGallery, StartCamera, StopCamera, UseFixedCamera

config/config.lua - 116 options#

General

Setting Default What it does
Lang "ar" 'en' for English. Matches locales/<lang>.lua.
Debug table Diagnostic logging, off by default. Flip Enabled to true to re-trace with /cameradiag and /cameradebug.
  ↳ Enabled false Turns enabled on or off (default false).
  ↳ WeaponTraceIntervalMs 3000 Time setting for weapon trace interval ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
KeyCam 0xF84FA74F INPUT_AIM / MOUSE RIGHT CLICK (reliable camera activation)
KeyCamFallbacks table INPUT_INSPECT_ZOOM fallback
KeyPickUpCam 0xB28318C0 MOUSE LEFT CLICK / INPUT_ATTACK
KeyMoreZoom 0x911CB09E UP ARROW (INPUT_SNIPER_ZOOM_IN_ONLY)
KeyLessZoom 0x4403F97F DOWN ARROW (INPUT_SNIPER_ZOOM_OUT_ONLY)
KeyNextFilter 0x65F9EC5B RIGHT ARROW (INPUT_VEH_FLY_ROLL_RIGHT_ONLY)
KeyOldFilter 0x20190AB4 LEFT ARROW (INPUT_VEH_FLY_ROLL_LEFT_ONLY)
KeyTakePhoto 0x2CD5343E ENTER (INPUT_FRONTEND_ACCEPT)
KeyExitCamera 0x156F7119 BACKSPACE (INPUT_FRONTEND_CANCEL)
ChangeBackground table S / W (INPUT_MOVE_DOWN_ONLY, INPUT_MOVE_UP_ONLY)
ChangeBackgroundFallbacks table Fallback: Down Arrow / Up Arrow
KeyStudioPose 0xCEE12B50 E (INPUT_PICKUP)
KeyStudioPoseFallback 0x5415BE48 G (INPUT_INTERACT_LOCKON_DETACH)
KeyPoseNext 0xB4E465B4 D / Right (INPUT_MOVE_RIGHT_ONLY)
KeyPosePrev 0x7065027D A / Left (INPUT_MOVE_LEFT_ONLY)
TakePhotoTime 2000 HUD/prompt hide duration around capture
ItemFixedCamera "fixedcamera" Inventory items used by item fixed camera. Names must exist in the jrs_items table.
CommandsHUD table Table of commands hud entries. Add, remove or edit entries following the examples in the file.
SudioCameraJobs table Compatible with job checks
StudioCameraJobs Config.SudioCameraJobs Who is allowed: jobs, groups or permissions for studio camera jobs.
CommandGalleryPhotos "gallery" Rockstar Photo Mode album commands
CommandGalleryAliases table Table of command gallery aliases entries. Add, remove or edit entries following the examples in the file.
Zoom table Table of zoom entries. Add, remove or edit entries following the examples in the file.
Filters table Table of filters entries. Add, remove or edit entries following the examples in the file.
General table Table of general entries. Add, remove or edit entries following the examples in the file.
  ↳ RefreshRate 450 Rate or multiplier for refresh rate.
  ↳ FreezePlayer true Switch for freeze player: true = on, false = off (default true).
  ↳ HideRadar true Hides radar: true = yes, false = no (default true).
  ↳ HideHudDuringPhoto true Hides hud during photo: true = yes, false = no (default true).
  ↳ LookSensitivityX 4.5 Number for look sensitivity x (default 4.5).
  ↳ LookSensitivityY 4.5 Number for look sensitivity y (default 4.5).
  ↳ MinPitch -70.0 Minimum or level requirement for min pitch.
  ↳ MaxPitch 70.0 Upper limit for max pitch.
  ↳ PhotoCooldown 2000 Time setting for photo cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ SessionRequestTimeout 3500 Time setting for session request timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ CameraOffset vector3(0.0, 0.12, 1.58) Setting for camera offset.
  ↳ ViewfinderFX table Real RDR2 PostFX names for Viewfinder and Capture
  ↳ StudioViewfinderFX table Table of studio viewfinder fx entries. Add, remove or edit entries following the examples in the file.
  ↳ PhotoFX "CameraTakePicture" Setting for photo fx.
  ↳ StudioPhotoFX "CameraTakePicture" Setting for studio photo fx.
  ↳ ShowInfoOverlay true On-screen HUD showing active filter name and zoom level
  ↳ PhotoFlash table Vintage Screen Blur Flash with 3D Environmental Light & Smoke
  ↳ OperateAnim table Photographer pose when operating fixed/studio camera
Handheld table Table of handheld entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Cameras table Table of cameras entries. Add, remove or edit entries following the examples in the file.
FixedCamera table Table of fixed camera entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Model "p_camera01x" Game model or entity used for model.
  ↳ UseItem true Turns item on or off (default true).
  ↳ RemoveItemOnPlace true Removes 1 item when placed, returns 1 item when picked up
  ↳ EnableCommand true Turns command on or off (default true).
  ↳ CommandName "fixedcam" Text shown to the player for command name. Change it to translate or rebrand.
  ↳ PlacementDistance 1.10 Distance in game units that applies to placement distance.
  ↳ InteractionDistance 2.25 Distance in game units that applies to interaction distance.
  ↳ MaxPlacementDistanceFromPlayer 4.0 Distance in game units that applies to max placement distance from player.
  ↳ CameraHeightOffset 1.38 Number for camera height offset (default 1.38).
  ↳ CameraForwardOffset 0.38 Forward at the camera lens
  ↳ CameraHeadingOffset 0.0 Number for camera heading offset (default 0.0).
  ↳ MaxPanAngle 35.0 Authentic tripod pan swivel limit (+/- degrees left/right)
  ↳ MinPitch -20.0 Tripod tilt down limit
  ↳ MaxPitch 20.0 Tripod tilt up limit
  ↳ LookSensitivityX 2.0 Smooth tripod swivel sensitivity
  ↳ LookSensitivityY 2.0 Smooth tripod tilt sensitivity
  ↳ AllowZoom true Allows zoom: true = yes, false = no (default true).
  ↳ AllowFilters true Allows filters: true = yes, false = no (default true).
  ↳ OwnerOnlyPickup true Switch for owner only pickup: true = on, false = off (default true).
  ↳ RemoveOnPlayerDrop true Switch for remove on player drop: true = on, false = off (default true).
  ↳ OnePerPlayer true Switch for one per player: true = on, false = off (default true).
Studio table Table of studio entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ InteractionRadius 6.0 Distance in game units that applies to interaction radius.
  ↳ ValidationRadius 35.0 Distance in game units that applies to validation radius.
  ↳ BackdropSearchRadius 35.0 Distance in game units that applies to backdrop search radius.
  ↳ CameraPropSearchRadius 15.0 Distance in game units that applies to camera prop search radius.
  ↳ CameraModels table Game model or entity used for camera models.
  ↳ FlashModels table Game model or entity used for flash models.
  ↳ CameraHeightOffset 1.38 Number for camera height offset (default 1.38).
  ↳ CameraForwardOffset 0.38 Forward at the studio camera lens
  ↳ CameraHeadingOffset 0.0 Number for camera heading offset (default 0.0).
  ↳ MaxPanAngle 35.0 Authentic studio camera swivel limit (+/- degrees left/right)
  ↳ MinPitch -20.0 Studio camera tilt down limit
  ↳ MaxPitch 20.0 Studio camera tilt up limit
  ↳ LookSensitivityX 2.0 Number for look sensitivity x (default 2.0).
  ↳ LookSensitivityY 2.0 Number for look sensitivity y (default 2.0).
  ↳ AllowZoom true Allows zoom: true = yes, false = no (default true).
  ↳ AllowFilters true Allows filters: true = yes, false = no (default true).
  ↳ SpawnMissingProps true Ensures studio camera & flash stand exist in the studio
  ↳ ShowBlips true Studio map blips
  ↳ BlipStyle joaat('BLIP_STYLE_SHOP') Map blip or icon settings for blip style.
  ↳ BlipSprite 1364029453 blip_photo_studio
  ↳ BlipScale 0.22 Map blip or icon settings for blip scale.
  ↳ PosingRadius 4.0 Posing area radius for customers in front of backdrop
  ↳ Locations table Built-in RDR2 photo studios with exact camera & backdrop coordinates & headings
  ↳ BackdropModels table Backdrop models capable of the Canvas expression
  ↳ BackgroundValues table Values sent to the Canvas expression, cyclically wrapped
StudioPoses table Authentic Victorian / Wild West portrait poses for studio customers
Server table Table of server entries. Add, remove or edit entries following the examples in the file.
  ↳ CoreResource "jrs_core" Setting for core resource.
  ↳ InventoryResource "jrs_inventory" Setting for inventory resource.
  ↳ RequireCharacter true Requires character: true = yes, false = no (default true).
  ↳ RequireFixedCameraItem true Requires fixed camera item: true = yes, false = no (default true).
  ↳ StrictHandheldWeaponCheck false Switch for strict handheld weapon check: true = on, false = off (default false).
  ↳ VerifyHandheldWeapon false Switch for verify handheld weapon: true = on, false = off (default false).
  ↳ RequireStudioJob true If set to false, any player can use the studio camera
  ↳ AllowAceStudio true Allows ace studio: true = yes, false = no (default true).
  ↳ StudioAce "jrs_camera.studio" Setting for studio ace.
  ↳ SessionTimeoutMs 10 * 60 * 1000 Time setting for session timeout ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ RequestCooldownMs 750 Time setting for request cooldown ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ BackgroundCooldownMs 250 Time setting for background cooldown ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ PhotoAuditCooldownMs 1500 Time setting for photo audit cooldown ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ Debug false Debug output for debug: true = yes, false = no (default false).
Notes from the README#
text
# JRS Camera Pro (v2.3.0)
Authentic 1890s RedM photography suite with server-authorized sessions, handheld cameras, synchronized tripod cameras, period photo studios, vintage shutter ani
---
## Key Features
1. **Authentic 1890s Magnesium Flash & Screen Blur**
   - Implements full-screen optical lens defocus/depth blur via `OJDominoBlur` animpostfx.
   - Smooth quadratic exposure bloom fade recreating physical photographic plate exposure.
   - 3D environmental dynamic lighting (`DrawLightWithRange`) synchronized across all nearby players.
   - Magnesium flash powder particle smoke effect (`exp_grd_flashbang` on `scr_net_photographer`).
   - Authentic camera shutter audio cues.
2. **Vintage Shutter & Operating Animations**
   - Authentic photographer stance: photographer positions behind the tripod camera holding the bulb shutter cable.
   - Shutter action: triggers `script_rc@abi3@ig@stage_01@ig2_photopose` -> `idle_takepic_blwphotographer` upon capture.
   - Grounded placement and pickup: uses crouching inspection animations (`WORLD_HUMAN_CROUCH_INSPECT`).
3. **Photo Studios (Blackwater & Saint Denis)**
   - **Correct Real-World Headings**: Camera faces backdrop directly (Blackwater: Camera 268° -> Backdrop; Saint Denis: Camera 88° -> Backdrop).
   - **Synchronized Backdrops**: 8 native Rockstar studio backdrop variations, switchable via `[W]` and `[S]` keys.
   - **Customer Posing Mechanics**: When standing on the studio portrait marker, clients can press `[A]` and `[D]` to cycle through 8 period poses (Gentleman, T
4. **Fixed / Tripod Camera (`fixedcamera`)**
   - Placed in the world using the `fixedcamera` inventory item (via `jrs_inventory` or `/fixedcam` command).
   - Deducts item on placement and restores it when picked up by the owner.
   - Solid collision and ground alignment using `p_camera01x`.
5. **Security & Synchronization**
   - Server-side token validation and distance verification for all capture and studio operations.
   - Clean network event architecture with zero memory leaks.
---
## Configuration (`config/config.lua`)
| Setting | Default | Description |
| :--- | :--- | :--- |
| `Config.Lang` | `'en'` | Interface language (`'en'` or `'ar'`) |
| `Config.KeyTakePhoto` | `0x07CE1E09` | Capture key (`[ENTER]`) |
| `Config.KeyLeaveCam` | `0x156F7119` | Exit camera key (`[BACKSPACE]`) |
| `Config.ChangeBackground` | `{ prev = 0xD27782E3, next = 0x8FD015D8 }` | Backdrop navigation (`[S]` and `[W]`) |
| `Config.General.PhotoFlash.EnableBlur` | `true` | Enables `OJDominoBlur` screen defocus effect |
| `Config.General.PhotoFlash.DurationMs` | `450` | Flash bloom and blur duration in milliseconds |
| `Config.FixedCamera.ItemName` | `'fixedcamera'` | Database inventory item for the tripod camera |
| `Config.FixedCamera.RemoveItemOnPlace` | `true` | Consume item on placement and restore on pickup |
| `Config.Server.RequireStudioJob` | `false` | Set to `true` to restrict studio cameras to specific jobs |
---
## Commands
- `/fixedcam` - Place a tripod camera at your feet (requires `fixedcamera` item in inventory).
- `/camgallery` - Open the Rockstar Social Club photo gallery.
- `/camdiag` - Print diagnostic information to the F8 console.
---
## Dependencies

Free (included in JRS Core)   jrs_chat

JRS Chat - RedM roleplay chat, roleplay channels and personal/global music UI for jrs_core

Resource jrs_chat
Folder [INTERFACE]
Version 2.3.2-pad-guard
Author jrs team
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 2,810 Lua lines

Commands

  • /-jrs_chat_open
  • /sheriff
  • /sherrif

Exports

addMessage, addSuggestion, isChatOpen

Database tables

jrs_chat_mutes, jrs_chat_nicknames

config/config.lua - 188 options#

General

Setting Default What it does
OpenKey "T" Core chat
OpenControlHash 0x9720FCEE INPUT_MP_TEXT_CHAT_ALL (RedM default: T)
EnableKeyMappingFallback true Turns key mapping fallback on or off (default true).
AutoSuggestions true Automatically handles suggestions: true = yes, false = no (default true).
ShowChatWindowSeconds 5 Number for show chat window seconds (default 5).
DefaultChatEnabled true Switch for default chat enabled: true = on, false = off (default true).
DefaultChatGlobal true Switch for default chat global: true = on, false = off (default true).
DefaultChatDistance 10.0 Distance in game units that applies to default chat distance.
MaxMessageLength 300 Upper limit for max message length.
DateFormat "%H:%M" Setting for date format.
PrintToConsole true Switch for print to console: true = on, false = off (default true).
ShowConnectMessages false Shows connect messages: true = yes, false = no (default false).
StaffGroups table Staff permissions. jrs_core group is checked first, ACE is also supported.
  ↳ owner true Switch for owner: true = on, false = off (default true).
  ↳ god true Switch for god: true = on, false = off (default true).
  ↳ admin true Switch for admin: true = on, false = off (default true).
StaffAce "jrs.chat.staff" Setting for staff ace.
Music table Music system. /music = personal player UI (every player; audio is local to that player only) /musicall = server-wide player UI (staff only; permission is validated server-side)
  ↳ enabled true Turns enabled on or off (default true).
  ↳ allowPersonal true Allows personal: true = yes, false = no (default true).
  ↳ defaultVolume 65 Number for default volume (default 65).
  ↳ notifyPlayersOnGlobal true Switch for notify players on global: true = on, false = off (default true).
  ↳ cache table Table of cache entries. Add, remove or edit entries following the examples in the file.
  ↳ commands table Table of commands entries. Add, remove or edit entries following the examples in the file.
ServerMusic Config.Music Backward-compatible alias used internally by older integrations.
TextDistance 12.0 RP text
DrawTextDistance 12.0 Distance in game units that applies to draw text distance.
TextDuration 7 seconds
ShowTime true Shows time: true = yes, false = no (default true).
MeDoOverhead table Overhead behavior. /me /do /try stay 3D-only by default, can be toggled locally with /toggleoverhead, and respect line of sight.
  ↳ Only3D true Switch for only3 d: true = on, false = off (default true).
  ↳ UseLineOfSight true Turns line of sight on or off (default true).
Max3DTextLength 112 Text shown to the player for max3 d text length. Change it to translate or rebrand.
TextHeadBoneOffset 0.38 height above SKEL_Head bone (RedM 21030)
TextZOffset 1.95 fallback height above entity root coords
TextVerticalOffset -0.005 Text shown to the player for text vertical offset. Change it to translate or rebrand.
DistanceBetweenTexts 0.038 Distance in game units that applies to distance between texts.
TextRefreshRate 25 ms between screen position updates
TypingText true Switch for typing text: true = on, false = off (default true).
TypingLabel "[......]" fallback when animation is disabled
TypingAnimate true Switch for typing animate: true = on, false = off (default true).
TypingBaseDots 5 five fixed dots; the sixth dot blinks
TypingAnimationInterval 450 ms
TypingColor "#e7c56c" Setting for typing color.
TextColors table Text shown to the player for text colors. Change it to translate or rebrand.
  ↳ me "#e7c56c" Setting for me.
  ↳ do "#e57373" Setting for do.
  ↳ trypos "#7ad6a3" Setting for trypos.
  ↳ tryneg "#e57373" Setting for tryneg.
  ↳ ooc "#f4f0e7" Setting for ooc.
  ↳ typing "#e7c56c" Setting for typing.
Prefixes table Table of prefixes entries. Add, remove or edit entries following the examples in the file.
  ↳ me "ME:" Setting for me.
  ↳ do "DO:" Setting for do.
  ↳ trypos "" Setting for trypos.
  ↳ tryneg "" Setting for tryneg.
  ↳ ooc "OOC:" Setting for ooc.
  ↳ typing "" Setting for typing.
HtmlTemplate [[ Setting for html template.
Commands table Commands
  ↳ clear "clear" Setting for clear.
  ↳ clearAll "clearall" Setting for clear all.
  ↳ announce "announce" Setting for announce.
  ↳ staff "ac" Setting for staff.
  ↳ report "report" Setting for report.
  ↳ reportReply "reportr" Setting for report reply.
  ↳ toggleReports "togglereport" Setting for toggle reports.
  ↳ me "me" Setting for me.
  ↳ do "do" Setting for do.
  ↳ try "try" Setting for try.
  ↳ ooc "ooc" Setting for ooc.
  ↳ pm "pm" Setting for pm.
  ↳ help "help" Setting for help.
  ↳ medic "medic" Setting for medic.
  ↳ police "police" Setting for police.
  ↳ gossip "gossip" Setting for gossip.
  ↳ callPolice "callpolice" Setting for call police.
  ↳ callDoctor "calldoctor" Setting for call doctor.
  ↳ clearAlerts "calert" Setting for clear alerts.
  ↳ hideChat "hidechat" Setting for hide chat.
  ↳ nick "nick" Setting for nick.
  ↳ mute "mute" Setting for mute.
  ↳ unmute "unmute" Setting for unmute.
  ↳ muted "muted" Setting for muted.
  ↳ photo "photo" Setting for photo.
  ↳ global "global" Setting for global.
  ↳ say "say" Setting for say.
  ↳ whisper "whisper" Setting for whisper.
  ↳ reply "reply" Setting for reply.
  ↳ toggleChat "togglechat" Setting for toggle chat.
  ↳ toggleOverhead "toggleoverhead" Setting for toggle overhead.
Features table Table of features entries. Add, remove or edit entries following the examples in the file.
  ↳ clear true Switch for clear: true = on, false = off (default true).
  ↳ clearAll true Switch for clear all: true = on, false = off (default true).
  ↳ announce true Switch for announce: true = on, false = off (default true).
  ↳ staff true Switch for staff: true = on, false = off (default true).
  ↳ report true Switch for report: true = on, false = off (default true).
  ↳ me true Switch for me: true = on, false = off (default true).
  ↳ do true Switch for do: true = on, false = off (default true).
  ↳ try true Switch for try: true = on, false = off (default true).
  ↳ ooc true Switch for ooc: true = on, false = off (default true).
  ↳ pm true Switch for pm: true = on, false = off (default true).
  ↳ help true Switch for help: true = on, false = off (default true).
  ↳ jobChannels true Switch for job channels: true = on, false = off (default true).
  ↳ gossip true Switch for gossip: true = on, false = off (default true).
  ↳ policeAlert true Switch for police alert: true = on, false = off (default true).
  ↳ doctorAlert true Switch for doctor alert: true = on, false = off (default true).
  ↳ nick true Switch for nick: true = on, false = off (default true).
  ↳ mute true Switch for mute: true = on, false = off (default true).
  ↳ photo true Switch for photo: true = on, false = off (default true).
TryChance 50 Rate or multiplier for try chance.
RoleplayDistance 10.0 Distance in game units that applies to roleplay distance.
GlobalOOC false Switch for global ooc: true = on, false = off (default false).
WhisperDistance 10.0 Distance in game units that applies to whisper distance.
Channels table Local / Global / Staff channel tabs for the default (no-slash) chat box. When disabled, typed text falls back to Config.DefaultChatEnabled behaviour.
  ↳ enabled true Turns enabled on or off (default true).
  ↳ default "local" Setting for default.
  ↳ labels table Table of labels entries. Add, remove or edit entries following the examples in the file.
ChannelColors table Table of channel colors entries. Add, remove or edit entries following the examples in the file.
  ↳ local "#a9c9ef" Setting for local.
Notes from the README#
text
# jrs_chat 2.0.0
JRS Chat for RedM / `jrs_core`, rebuilt around the readable visual style and workflow ideas supplied in `JRS Chat` while keeping the JRS integrations open and e
## Requirements
- `jrs_core`
- `oxmysql`
- RedM / Cfx server
## Installation
1. Rename/use the resource folder as `jrs_chat`.
2. Disable the stock `chat` resource if it would create a second chat UI.
3. Start dependencies before this resource:
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_chat
'''
The manifest includes `provide 'chat'` for resources that depend on the standard chat resource.
## What was ported from the supplied JRS chat idea/theme
- Original readable JRS UI textures used by the chat (`bg_1`, `bg_2`, `bgorigin`, `box_bg`).
- JRS fonts used for tabs/header styling.
- Antique message-card visual style.
- Local / Global / Staff tabs.
- Me / Do / Try quick buttons.
- Emoji tab, categories and search.
- Message history and suggestions.
- Character-name chat header with optional badge and time.
- `/global`, `/say`, `/whisper`, `/reply`, `/togglechat`, `/toggleoverhead` compatibility aliases.
- `/staff` alias while the original JRS `/ac` command remains available.
- 3D-only `/me`, `/do`, `/try` by default with line-of-sight support.
- Optional chat console logging.
- Optional join/leave system messages.
- Photo, nickname and mute systems kept in JRS and styled with the same UI language.
No JRS encrypted Lua logic is required by this resource. The resulting JRS resource is independent.
## Music system
Music is command-first and then controlled through an in-game UI.
### Player music
`/music`
- Available to normal players when `Config.Music.allowPersonal = true`.
- Opens **Personal Music Player**.
- Accepts a YouTube URL or an 11-character YouTube video ID.
- Play / Pause / Stop / Volume controls.
- Audio stays completely local to that player; no server event broadcasts the personal track.
### Staff global music
`/musicall`
- Requests the **Global Music Control** UI.
- Permission is validated with `JRSChat.IsStaff()` on the server.

Paid (server only)   jrs_church_bells

JRS Church Bells - scheduled and job/admin controlled church bells for RedM

Resource jrs_church_bells
Folder [INTERFACE]
Version 1.0.1
Author jrs
Depends on jrs_core
Interface No
Code size 737 Lua lines
config.lua - 25 options#

General

Setting Default What it does
Debug false Debug output for debug: true = yes, false = no (default false).
CoreResource "jrs_core" Setting for core resource.
AutomaticSchedule true Uses the in-game RDR2 clock (GetClockHours/GetClockMinutes).
ScheduleCheckInterval 500 ms
Interaction table Native prompt. INPUT_DYNAMIC_SCENARIO is E on the default RedM keyboard layout.
  ↳ enabled true Turns enabled on or off (default true).
  ↳ control 0xCEFD9220 INPUT_CONTEXT (E)
  ↳ drawDistance 8.0 Distance in game units that applies to draw distance.
  ↳ useDistance 2.0 Distance in game units that applies to use distance.
  ↳ requestAccessEvery 3000 ms
  ↳ promptText "Ring Church Bell" Text shown to the player for prompt text. Change it to translate or rebrand.
  ↳ groupText "Church Bell" Who is allowed: jobs, groups or permissions for group text.
Security table Table of security entries. Add, remove or edit entries following the examples in the file.
  ↳ maxServerUseDistance 4.0 The server always checks job/admin permission and cooldown. When OneSync server-side entity coordinates are available, distance is also checked.
  ↳ requireServerDistanceCheck false Requires server distance check: true = yes, false = no (default false).
  ↳ maxManualTolls 12 Upper limit for max manual tolls.
ManualCooldownSeconds 12 Time setting for manual cooldown seconds. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
Command "churchbell" Setting for command.
Permissions table Who is allowed: jobs, groups or permissions for permissions.
  ↳ allowAdmins true Allows admins: true = yes, false = no (default true).
  ↳ adminGroups table JRS Core administration groups.
  ↳ jobs table No jobs allowed — admin groups only.
  ↳ ace "jrs.churchbells" Optional ACE permission: add_ace group.admin jrs.churchbells allow
Locations table World coordinates (x, y, z) used for locations.
  ↳ Valentine table Table of valentine entries. Add, remove or edit entries following the examples in the file.
Notes from the README#
text
# jrs_church_bells
Church bell resource for RedM using RDR2's native church bell sound set.
## Included
- Valentine church bell sound: `CHURCH_BELL_SOUNDS / VAL_SINGLE_TOLL`
- Automatic in-game schedule:
  - 06:00 = 6 tolls
  - 12:00 = 12 tolls
  - 18:00 = 6 tolls
- Manual native prompt near the Valentine church.
- JRS Core job/admin permission checks.
- Admin groups enabled by default: `owner`, `admin`, `support`.
- Allowed church jobs enabled by default: `priest`, `preacher`, `church`.
- Server-side cooldown and permission validation.
- Optional ACE permission: `jrs.churchbells`.
- Admin/job command: `/churchbell [location] [tolls]`.
## Install
1. Copy `jrs_church_bells` into your resources folder.
2. Make sure `jrs_core` starts first.
3. Add:
'''cfg
ensure jrs_core
ensure jrs_church_bells
'''
## Valentine coordinates
The sound origin is already set at the Valentine church bell:
'''lua
vector3(-230.11424, 797.50195, 135.25150)
'''
The default manual interaction point is:
'''lua
vector3(-231.75000, 796.38000, 124.63000)
'''
If your custom Valentine church interior places the bell rope/control somewhere else, only change
`interactionCoords` in `config.lua`.
## Job permission
Edit:
'''lua
Config.Permissions.jobs = {
    priest = 0,
    preacher = 0,
    church = 0
}
'''
The number is the minimum allowed job grade.
## Admin permission

Free (included in JRS Core)   jrs_city

jrs core native zone notifications for jrs_core

Resource jrs_city
Folder [INTERFACE]
Version 1.3.0
Author jrs team
Depends on jrs_core
Interface Yes (NUI)
Languages ar, en
Code size 3,128 Lua lines

Commands

  • /jrscitydebug
  • /jrscitytest

Exports

GetCurrentCity, GetCurrentZone, IsInCity, ShowMessage, ShowZoneCard

config/config.lua - 35 options#

General

Setting Default What it does
CoreResource "jrs_core" Setting for core resource.
Debug false Debug output for debug: true = yes, false = no (default false).
Detection table Detection mirrors RedM's own zone hierarchy. The UI is shown only when the resolved location actually changes.
  ↳ Interval 500 Time setting for interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ WaitForCharacter true Switch for wait for character: true = on, false = off (default true).
  ↳ CharacterReadyTimeout 10000 Time setting for character ready timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ NotifyOnInitialDetection true Switch for notify on initial detection: true = on, false = off (default true).
  ↳ PauseWhenDead true Switch for pause when dead: true = on, false = off (default true).
  ↳ PauseWhenPauseMenuOpen true Switch for pause when pause menu open: true = on, false = off (default true).
  ↳ Priority table Highest priority first.
Notification table Text shown to the player for notification. Change it to translate or rebrand.
  ↳ Duration 4000 Time setting for duration. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ Sound table Table of sound entries. Add, remove or edit entries following the examples in the file.
  ↳ UI table Table of ui entries. Add, remove or edit entries following the examples in the file.
Details table Table of details entries. Add, remove or edit entries following the examples in the file.
  ↳ ShowDistrict true Shows district: true = yes, false = no (default true).
  ↳ ShowState true Shows state: true = yes, false = no (default true).
  ↳ ShowDay false Shows day: true = yes, false = no (default false).
  ↳ ShowTime true Shows time: true = yes, false = no (default true).
  ↳ ShowTemperature true Shows temperature: true = yes, false = no (default true).
  ↳ ShowWind true Shows wind: true = yes, false = no (default true).
  ↳ Use24Hour false Switch for use24 hour: true = on, false = off (default false).
  ↳ TemperatureUnit "C" 'C' or 'F'
  ↳ WindUnit "auto" 'auto', 'kph', or 'mph'
Days table Table of days entries. Add, remove or edit entries following the examples in the file.
  ↳ 0 "SUN" Setting for 0.
  ↳ 1 "MON" Setting for 1.
  ↳ 2 "TUE" Setting for 2.
  ↳ 3 "WED" Setting for 3.
  ↳ 4 "THU" Setting for 4.
  ↳ 5 "FRI" Setting for 5.
  ↳ 6 "SAT" Setting for 6.
DisabledZoneHashes table Add a native zone hash here to disable it without editing the large zone table.
NameOverrides table Override any zone's display name by native hash.
CustomNativeZones table Extra custom native entries can be added here.
config/zones.lua - 321 options#

General

Setting Default What it does
NativeZoneData table Native RedM map zone metadata. Edit NameOverrides in config.lua for custom display names.
  ↳ -1004072985 table Table of 1004072985 entries. Add, remove or edit entries following the examples in the file.
  ↳ -103399754 table Table of 103399754 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1037423548 table Table of 1037423548 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1043500161 table Table of 1043500161 entries. Add, remove or edit entries following the examples in the file.
  ↳ -105598602 table Table of 105598602 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1073312073 table Table of 1073312073 entries. Add, remove or edit entries following the examples in the file.
  ↳ -108848014 table Table of 108848014 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1099073636 table Table of 1099073636 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1114958242 table Table of 1114958242 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1118608187 table Table of 1118608187 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1161186391 table Table of 1161186391 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1164281509 table Table of 1164281509 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1168459546 table Table of 1168459546 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1173672830 table Table of 1173672830 entries. Add, remove or edit entries following the examples in the file.
  ↳ -120156735 table Table of 120156735 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1203685470 table Table of 1203685470 entries. Add, remove or edit entries following the examples in the file.
  ↳ -120578354 table Table of 120578354 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1207133769 table Table of 1207133769 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1217490622 table Table of 1217490622 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1225359404 table Table of 1225359404 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1229593481 table Table of 1229593481 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1231793417 table Table of 1231793417 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1247148211 table Table of 1247148211 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1247294802 table Table of 1247294802 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1276586360 table Table of 1276586360 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1287619521 table Table of 1287619521 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1288973891 table Table of 1288973891 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1289136221 table Table of 1289136221 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1300497193 table Table of 1300497193 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1308233316 table Table of 1308233316 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1319956120 table Table of 1319956120 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1349514245 table Table of 1349514245 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1356490953 table Table of 1356490953 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1359523911 table Table of 1359523911 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1369817450 table Table of 1369817450 entries. Add, remove or edit entries following the examples in the file.
  ↳ -138648964 table Table of 138648964 entries. Add, remove or edit entries following the examples in the file.
  ↳ -139400310 table Table of 139400310 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1410384421 table Table of 1410384421 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1419869345 table Table of 1419869345 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1420336129 table Table of 1420336129 entries. Add, remove or edit entries following the examples in the file.
  ↳ -146460093 table Table of 146460093 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1472363892 table Table of 1472363892 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1496551068 table Table of 1496551068 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1504425495 table Table of 1504425495 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1521776363 table Table of 1521776363 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1524959147 table Table of 1524959147 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1532919875 table Table of 1532919875 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1539536559 table Table of 1539536559 entries. Add, remove or edit entries following the examples in the file.
  ↳ -154855189 table Table of 154855189 entries. Add, remove or edit entries following the examples in the file.
  ↳ -156397252 table Table of 156397252 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1592070727 table Table of 1592070727 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1622112934 table Table of 1622112934 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1633799162 table Table of 1633799162 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1657629123 table Table of 1657629123 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1660988219 table Table of 1660988219 entries. Add, remove or edit entries following the examples in the file.
  ↳ -166839571 table Table of 166839571 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1692509313 table Table of 1692509313 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1699818764 table Table of 1699818764 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1708386982 table Table of 1708386982 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1753216046 table Table of 1753216046 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1768736648 table Table of 1768736648 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1769528472 table Table of 1769528472 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1774142845 table Table of 1774142845 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1777630136 table Table of 1777630136 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1781130443 table Table of 1781130443 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1817904483 table Table of 1817904483 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1821194396 table Table of 1821194396 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1825355772 table Table of 1825355772 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1851305682 table Table of 1851305682 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1860484356 table Table of 1860484356 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1894004139 table Table of 1894004139 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1902025470 table Table of 1902025470 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1926488450 table Table of 1926488450 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1942169613 table Table of 1942169613 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1947415645 table Table of 1947415645 entries. Add, remove or edit entries following the examples in the file.
  ↳ -196675805 table Table of 196675805 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1973391500 table Table of 1973391500 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1988735197 table Table of 1988735197 entries. Add, remove or edit entries following the examples in the file.
  ↳ -1999797981 table Table of 1999797981 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2000021141 table Table of 2000021141 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2001518509 table Table of 2001518509 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2028095666 table Table of 2028095666 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2034338067 table Table of 2034338067 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2035208924 table Table of 2035208924 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2038495927 table Table of 2038495927 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2040708515 table Table of 2040708515 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2049654576 table Table of 2049654576 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2066240242 table Table of 2066240242 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2074284650 table Table of 2074284650 entries. Add, remove or edit entries following the examples in the file.
  ↳ -209915926 table Table of 209915926 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2126414432 table Table of 2126414432 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2133063188 table Table of 2133063188 entries. Add, remove or edit entries following the examples in the file.
  ↳ -2145992129 table Table of 2145992129 entries. Add, remove or edit entries following the examples in the file.
  ↳ -215175141 table Table of 215175141 entries. Add, remove or edit entries following the examples in the file.
  ↳ -218679770 table Table of 218679770 entries. Add, remove or edit entries following the examples in the file.
  ↳ -221059932 table Table of 221059932 entries. Add, remove or edit entries following the examples in the file.
  ↳ -247856387 table Table of 247856387 entries. Add, remove or edit entries following the examples in the file.
  ↳ -259784188 table Table of 259784188 entries. Add, remove or edit entries following the examples in the file.
  ↳ -261541730 table Table of 261541730 entries. Add, remove or edit entries following the examples in the file.
  ↳ -264897431 table Table of 264897431 entries. Add, remove or edit entries following the examples in the file.
  ↳ -291091669 table Table of 291091669 entries. Add, remove or edit entries following the examples in the file.
  ↳ -336631570 table Table of 336631570 entries. Add, remove or edit entries following the examples in the file.
  ↳ -346622837 table Table of 346622837 entries. Add, remove or edit entries following the examples in the file.
  ↳ -410208673 table Table of 410208673 entries. Add, remove or edit entries following the examples in the file.
  ↳ -419963911 table Table of 419963911 entries. Add, remove or edit entries following the examples in the file.
  ↳ -420810761 table Table of 420810761 entries. Add, remove or edit entries following the examples in the file.
  ↳ -425430549 table Table of 425430549 entries. Add, remove or edit entries following the examples in the file.
  ↳ -438809735 table Table of 438809735 entries. Add, remove or edit entries following the examples in the file.
  ↳ -473051294 table Table of 473051294 entries. Add, remove or edit entries following the examples in the file.
  ↳ -484064781 table Table of 484064781 entries. Add, remove or edit entries following the examples in the file.
  ↳ -493344856 table Table of 493344856 entries. Add, remove or edit entries following the examples in the file.
  ↳ -49694339 table Table of 49694339 entries. Add, remove or edit entries following the examples in the file.
  ↳ -504005310 table Table of 504005310 entries. Add, remove or edit entries following the examples in the file.
  ↳ -512529193 table Table of 512529193 entries. Add, remove or edit entries following the examples in the file.
  ↳ -545967610 table Table of 545967610 entries. Add, remove or edit entries following the examples in the file.
  ↳ -557290573 table Table of 557290573 entries. Add, remove or edit entries following the examples in the file.
  ↳ -576782619 table Table of 576782619 entries. Add, remove or edit entries following the examples in the file.
  ↳ -61172588 table Table of 61172588 entries. Add, remove or edit entries following the examples in the file.
  ↳ -619014970 table Table of 619014970 entries. Add, remove or edit entries following the examples in the file.
Notes from the README#
text
# jrs_city
Version 1.2.1
Native RedM location notifications for `jrs_core`.
## How it works
The client reads RedM native map-zone hashes and resolves the current location using this priority:
1. Town
2. Printed map location
3. Written map location
4. Water locations
5. District
6. State
The notification is a single transparent NUI element, so its background, title, district, state, time, temperature and wind always appear and disappear together
The bundled native zone metadata contains 320 mapped RedM zones.
## Install
'''cfg
ensure jrs_core
ensure jrs_city
'''
## Test
'''text
/jrscitytest
'''
With `Config.Debug = true`:
'''text
/jrscitydebug
'''
## Main settings
Edit `config.lua` to control notification size, position, duration, details and zone detection interval.
The default background is `html/assets/box_a_bg_1.png` and is rendered at 340px wide, smaller than its original 432px size.
## Exports
'''lua
local zone = exports.jrs_city:GetCurrentZone()
local city = exports.jrs_city:GetCurrentCity()
local inValentine = exports.jrs_city:IsInCity('Valentine')
'''
## Notification sound
The supplied MP3 is bundled as:
'''text
html/assets/zone_open.mp3
'''
Configure it in `config.lua`:
'''lua
Config.Notification.Sound = {
    Enabled = true,
    File = 'assets/zone_open.mp3',

Paid (server only)   jrs_freecam

Job-restricted standalone free camera for RedM

Resource jrs_freecam
Folder [INTERFACE]
Version 1.1.2-redm
Author jrs team
Depends on jrs_core, oxmysql
Interface No
Languages ar, en
Code size 1,071 Lua lines

Commands

  • /freecamfilter
  • /freecamhelpers
  • /freecamprevfilter

Exports

GrantFreecamAccess, HasFreecamAccess, IsActive, RevokeFreecamAccess, SetActive

Database tables

jrs_freecam_access

config/config.lua - 39 options#

General

Setting Default What it does
ActivationCommand "freecam" Command and optional key used to toggle the free camera.
ActivationKey "" Command-only activation: freecam opens ONLY via the /freecam command, with no keyboard bind. Leave empty to keep it command-only (set a key like 'F6' to also bind a key).
UseAcePermission false Optional ACE restriction. When enabled, add this to server.cfg: add_ace group.admin jrs.freecam allow
AcePermission "jrs.freecam" Who is allowed: jobs, groups or permissions for ace permission.
AdminOnly true permission database), NOT by job. Any admin rank (server_owner, full_access, medium, few) may use the free camera. Set to false to fall back to the legacy job restriction below for non-admins.
JobRequirement table Legacy job restriction through jrs_core (only used when Config.AdminOnly=false). The key is the job name and the value is the minimum required grade.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Jobs table Who is allowed: jobs, groups or permissions for jobs.
CameraRange 100.0 Maximum distance the camera may travel from its activation point. Set to 0.0 to remove the range limit.
MoveSpeed 6.0 Camera movement and rotation.
FastMoveMultiplier 4.0 Rate or multiplier for fast move multiplier.
MouseSensitivity 8.0 Number for mouse sensitivity (default 8.0).
RollSpeed 55.0 Number for roll speed (default 55.0).
ZoomSpeed 45.0 Number for zoom speed (default 45.0).
MinFov 20.0 Minimum or level requirement for min fov.
MaxFov 120.0 Upper limit for max fov.
FreezePlayer true Camera behavior.
HideGameHud true Hides game hud: true = yes, false = no (default true).
ShowHelpersByDefault true Shows helpers by default: true = yes, false = no (default true).
EnableFilters true Turns filters on or off (default true).
UseStreamingFocus true Turns streaming focus on or off (default true).
ControllerModel scriptedball Invisible RedM object used as a camera controller.
ModelLoadTimeout 5000 Time setting for model load timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
Filters table Photo mode filters copied from jrs_camera. These use Animpostfx, which is the same method used by the RedM camera resource.
Controls table RedM controls. Normal player controls are disabled while freecam is active.
  ↳ Forward 0x6319DB71 Arrow Up
  ↳ Backward 0x05CA7C52 Arrow Down
  ↳ Left 0xA65EBAB4 Arrow Left
  ↳ Right 0xDEB34313 Arrow Right
  ↳ Up INPUT_COVER Q
  ↳ Down INPUT_CONTEXT E
  ↳ Fast INPUT_SPRINT Left Shift
  ↳ ZoomIn 0xF78D7337 Mouse wheel up
  ↳ ZoomOut 0xD0842EDF Mouse wheel down
  ↳ RollLeft INPUT_MOVE_LEFT_ONLY A / D roll the camera because movement now uses the arrows.
  ↳ RollRight INPUT_MOVE_RIGHT_ONLY Setting for roll right.
  ↳ FilterPrevious INPUT_CREATOR_LT Page Up / Page Down switch the new photo-mode filters.
  ↳ FilterNext INPUT_CREATOR_RT Setting for filter next.
  ↳ Reset INPUT_OPEN_SATCHEL_MENU B
Notes from the README#
text
# REDEMPIRE FreeCam for RedM
Standalone RedM free camera with jrs_core job access and Red Dead photo-mode filters.
## Installation
1. Rename the folder to `jrs_freecam` and place it in your resources directory.
2. Make sure `jrs_core` starts first.
3. Add:
'''cfg
ensure jrs_core
ensure jrs_freecam
'''
## Job access
Edit `Config.JobRequirement.Jobs` in `config.lua`:
'''lua
Config.JobRequirement = {
    Enabled = true,
    Jobs = {
        photographer = 0, -- job name = minimum grade
    },
}
'''
To allow more than one job:
'''lua
Jobs = {
    photographer = 0,
    reporter = 2,
}
'''
## Controls
- `/freecam` or `F6` when key mapping is supported: open/close freecam
- Arrow Up/Down: forward/backward
- Arrow Left/Right: move left/right
- Q/E: move up/down
- Left Shift: faster movement
- Mouse: camera rotation
- Mouse wheel: zoom
- A/D: camera roll
- Page Up/Page Down: previous/next filter
- B: reset roll and zoom
- `/freecamfilter`: next filter
- `/freecamprevfilter`: previous filter
- `/freecamhelpers`: show/hide controls
## Filters
The filter list and application method were copied from `jrs_camera`:
- PhotoMode_FilterGame01-18
- PhotoMode_FilterModern01-10

Paid (server only)   jrs_gramophone

jrs core Gramophone - synchronized gramophone system for jrs_core

Resource jrs_gramophone
Folder [INTERFACE]
Version 1.1.0
Author jrs team
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 1,741 Lua lines

Database tables

jrs_gramophone_playlist_songs, jrs_gramophone_playlists, jrs_gramophones

config/config.lua - 75 options#

General

Setting Default What it does
CoreResource "jrs_core" Setting for core resource.
InventoryResource "jrs_inventory" Setting for inventory resource.
Locale "ar" Interface language of this script (en or ar).
Debug false Debug output for debug: true = yes, false = no (default false).
InteractionDistance 2.5 Distance in game units that applies to interaction distance.
StreamDistance 65.0 Distance in game units that applies to stream distance.
SyncInterval 5000 Time setting for sync interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
VolumeStep 0.10 Number for volume step (default 0.10).
SeekSeconds 10 Number for seek seconds (default 10).
DefaultRange 20.0 Distance in game units that applies to default range.
DefaultVolume 1.0 Number for default volume (default 1.0).
PlayCost 0.0 money charged when a new song is started; 0 disables charging
Prop table Game model or entity used for prop.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Model "p_phonograph01x" Game model or entity used for model.
Marker table Ground marker under gramophone stations. Fully disabled: the prompt already tells the player they can interact, so the marker was pure visual noise.
  ↳ Enabled false Turns enabled on or off (default false).
  ↳ Distance 8.0 Distance in game units that applies to distance.
  ↳ Scale 0.18 Rate or multiplier for scale.
  ↳ R 115 Number for r (default 115).
  ↳ G 72 Number for g (default 72).
  ↳ B 145 Number for b (default 145).
  ↳ A 170 Number for a (default 170).
Controls table Table of controls entries. Add, remove or edit entries following the examples in the file.
  ↳ Open 0xC7B5340A Setting for open.
  ↳ Place 0x07CE1E61 Setting for place.
  ↳ Cancel 0xF84FA74F Setting for cancel.
  ↳ Take 0xF3830D8E Setting for take.
  ↳ RotateLeft 0x7F8D09B8 Setting for rotate left.
  ↳ RotateRight 0x4CC0E2FE Setting for rotate right.
Portable table Table of portable entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Item "phonograph" Inventory items used by item. Names must exist in the jrs_items table.
  ↳ Model "p_phonograph01x" Game model or entity used for model.
  ↳ OwnerOnlyTake true Switch for owner only take: true = on, false = off (default true).
  ↳ OwnerOnlyUse true only the owner can open / control a placed phonograph
  ↳ MaxPerCharacter 3 Upper limit for max per character.
  ↳ Range table Owner can widen/narrow how far a placed phonograph is heard (metres), from its music panel.
  ↳ PlacementDistance 1.8 Distance in game units that applies to placement distance.
  ↳ RotationStep 4.0 Number for rotation step (default 4.0).
  ↳ RayDistance 10.0 Furniture-style placement (same keys/panel as house furniture): the ghost follows the crosshair up to RayDistance; G places it only while it is within MaxDistance of the player (server allows 4.5).
  ↳ MaxDistance 4.0 Distance in game units that applies to max distance.
  ↳ SaveToDatabase false Switch for save to database: true = on, false = off (default false).
  ↳ Blip table Map blip on the owner's own placed phonographs (owner only).
Playlists table Table of playlists entries. Add, remove or edit entries following the examples in the file.
  ↳ Shared true Switch for shared: true = on, false = off (default true).
  ↳ MaxPlaylists 20 Upper limit for max playlists.
  ↳ MaxSongsPerPlaylist 50 Upper limit for max songs per playlist.
  ↳ MaxNameLength 24 Upper limit for max name length.
Logs table Table of logs entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled false Turns enabled on or off (default false).
  ↳ BotName "REDEMPIRE Gramophone" Text shown to the player for bot name. Change it to translate or rebrand.
  ↳ ServerName "REDEMPIRE Server" Text shown to the player for server name. Change it to translate or rebrand.
  ↳ Color 7506394 Number for color (default 7506394).
Stations table One physical station = one entry. Use allowedJobs = false for public access.
Text table Text shown to the player for text. Change it to translate or rebrand.
  ↳ Open "Open Gramophone" Setting for open.
  ↳ Place "Place Gramophone" Setting for place.
  ↳ Cancel "Cancel" Setting for cancel.
  ↳ Take "Take Phonograph" Setting for take.
  ↳ RotateLeft "Rotate Left" Setting for rotate left.
  ↳ RotateRight "Rotate Right" Setting for rotate right.
  ↳ Group "Gramophone" Who is allowed: jobs, groups or permissions for group.
  ↳ NoAccess 'You do not have access to t... Setting for no access.
  ↳ InvalidLink 'Please enter a valid YouTub... Setting for invalid link.
  ↳ TooFar 'You are too far from the gr... Setting for too far.
  ↳ MaxVolume "Maximum volume reached." Upper limit for max volume.
  ↳ MinVolume "Minimum volume reached." Minimum or level requirement for min volume.
  ↳ NoMoney "You do not have enough money." Money value for no money. Rewards go through the economy multiplier of jrs_core.
  ↳ Placed "Phonograph placed." Setting for placed.
  ↳ Taken 'Phonograph returned to your... Setting for taken.
  ↳ MaxPortable 'You reached the maximum num... Upper limit for max portable.
  ↳ NotOwner 'Only the owner can take thi... Setting for not owner.
  ↳ InventoryMissing "jrs_inventory is not available." Setting for inventory missing.
  ↳ ItemMissing 'You do not have a phonograp... Inventory items used by item missing. Names must exist in the jrs_items table.
Notes from the README#
text
# REDEMPIRE Gramophone
A synchronized gramophone system built directly for `jrs_core`.
## Features
- Fixed gramophone stations with per-job access.
- YouTube link playback with synchronized play/pause and seek state.
- Distance-based volume attenuation.
- Volume up/down, rewind, forward, and timeline seek.
- Shared or per-character playlists.
- Song history in the UI.
- Optional portable gramophone item using `jrs_inventory`.
- Portable gramophones persist in the database and can be taken back by their owner.
- Optional play cost and Discord webhook logging.
- Automatic database table creation.
- No framework adapter file; the resource connects directly to `jrs_core`.
## Requirements
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_inventory
ensure jrs_gramophone
'''
`jrs_inventory` is only required when `Config.Portable.Enabled = true`.
## Portable item
If portable gramophones are enabled, add an item named `gramophone` to your REDEMPIRE items table and mark it usable.
Example:
'''sql
INSERT INTO `items`
(`item`, `label`, `limit`, `can_remove`, `type`, `usable`, `descriptions`, `metadata`, `category`)
VALUES
('gramophone', 'Gramophone', 2.00, 1, 'item_standard', 1, 'A portable gramophone', '0', 'tools')
ON DUPLICATE KEY UPDATE
`label` = VALUES(`label`),
`limit` = VALUES(`limit`),
`can_remove` = VALUES(`can_remove`),
`type` = VALUES(`type`),
`usable` = VALUES(`usable`),
`descriptions` = VALUES(`descriptions`),
`metadata` = VALUES(`metadata`),
`category` = VALUES(`category`);
'''
## Configuration
Edit `config.lua`.
Important sections:
- `Config.Stations` - fixed locations, allowed jobs, range and initial volume.
- `Config.Portable` - portable item and placement settings.

Paid (server only)   jrs_idcard

Routine status/diagnostic output is silenced by default so the server console stays clean on boot. Set Config.Debug = true to bring these messages back.

Resource jrs_idcard
Folder [INTERFACE]
Version 2.9.0
Author jrs team
Depends on jrs_core, jrs_inventory
Interface Yes (NUI)
Languages ar, en
Code size 5,000 Lua lines

Commands

  • /idcardphoto
  • /idphoto

Exports

OpenBinderCard, OpenDeed, ShowBinderCard, StartNewCharacterCreationSession, StartNewCharacterPhotoSession, StartPhotoUpdateSession

Database tables

does, jrs_id_numbers, jrs_idcard, jrs_idcard_fake, jrs_idcard_locations, never

config/config.lua - 81 options#

General

Setting Default What it does
Debug false Debug output for debug: true = yes, false = no (default false).

The item the registry hands out. It must exist in the live items table

Setting Default What it does
Item "idcard" (see items.sql) - jrs_inventory item names are case sensitive.
Price 1.0 Cost of a first registration.
ReissuePrice 2.0 Cost of extracting a replacement copy of an ID card that already exists. The record (and the permanent six digit identity number) is unchanged; only the physical item is reprinted.

The registry has a "License Binder" tab to take the full binder, and a

Setting Default What it does
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Price 0.0 cost of taking a binder from the registry tab
  ↳ GiveOnFirstId true free binder with the first ID card (once per character)
  ↳ GiveOnNewCharacter true free binder when the creator ID is finalized (once per character)
EnterNameAutomatic false Switch for enter name automatic: true = on, false = off (default false).

Turn this off to go back to the old behaviour where every field is typed.

Setting Default What it does
PullIdentityFromCharacter true Switch for pull identity from character: true = on, false = off (default true).
WorldDate table from here and not from the real-world clock. Keep this in step with jrs_character's Config.WorldDate - both must agree or the age printed on the card will not match the age the character system reports.
  ↳ year 1899 Number for year (default 1899).
  ↳ month 6 Number for month (default 6).
  ↳ day 1 Number for day (default 1).
MinimumAge 18 No card is issued below this age. Matches jrs_character's Config.MinimumAge.
MaximumAge 80 PullIdentityFromCharacter is on: that age is the character's real lived age (base age plus playtime) and a long-lived character must still be able to get their own card. Set to false to disable.
ShowDistance 1.5 How close another player must be for SHOW NEARBY to reach them.
ServerName "REDEMPIRE" Printed under the photo on the card.
UseAnim true Play the writing animation while the registry form is open.
ImageUploadUrl 'https://imgbb.com/' External image host opened by the UPLOAD IMAGE button. After uploading, copy the Direct Link and paste it into Photo URL.

These rows are only the FIRST-RUN seed. The live list lives in the SQL table

Setting Default What it does
DefaultPed "s_m_m_vhtdealer_01" added or removed from the Script Admin Hub survive a restart. Editing a row here after the seed has run changes nothing - move the office in-game instead (Add Registry Here / Remove Nearest Registry).
DefaultDistance 3.0 Distance in game units that applies to default distance.
InteractionDistance 3.0 Fallback interaction radius for rows that carry no distance of their own (older SQL rows, and admin-added offices).
ClerkZOffset table Hand height correction for one office's clerk, keyed by city, in metres (+ raises, - lowers). Client-side only - takes effect on resource restart, no re-seed needed.
  ↳ Strawberry 0.0 Number for strawberry (default 0.0).

Maps each office / city to its Country/State (البلد) and Origin (المنشأ).

Setting Default What it does
CityOrigins table When registering, the script directly populates nationality (country) and birth1 (place of birth / origin) based on the area.
  ↳ Valentine table Table of valentine entries. Add, remove or edit entries following the examples in the file.
  ↳ Blackwater table Table of blackwater entries. Add, remove or edit entries following the examples in the file.
  ↳ Rhodes table Table of rhodes entries. Add, remove or edit entries following the examples in the file.
  ↳ Saint Denis table Table of saint denis entries. Add, remove or edit entries following the examples in the file.
  ↳ Strawberry table Table of strawberry entries. Add, remove or edit entries following the examples in the file.
  ↳ Annesburg table Table of annesburg entries. Add, remove or edit entries following the examples in the file.
  ↳ Tumbleweed table Table of tumbleweed entries. Add, remove or edit entries following the examples in the file.
  ↳ Armadillo table Table of armadillo entries. Add, remove or edit entries following the examples in the file.
  ↳ Van Horn table Table of van horn entries. Add, remove or edit entries following the examples in the file.
  ↳ Colter table Table of colter entries. Add, remove or edit entries following the examples in the file.
  ↳ Wapiti table Table of wapiti entries. Add, remove or edit entries following the examples in the file.
  ↳ Emerald Ranch table Table of emerald ranch entries. Add, remove or edit entries following the examples in the file.
  ↳ MacFarlane table Table of mac farlane entries. Add, remove or edit entries following the examples in the file.
  ↳ Lagras table Table of lagras entries. Add, remove or edit entries following the examples in the file.
  ↳ Guarma table Table of guarma entries. Add, remove or edit entries following the examples in the file.
Locations table World coordinates (x, y, z) used for locations.

Clerks are created only while a player is near their office and deleted

Setting Default What it does
PedSpawnDistance 60.0 again on the way out, so nine offices do not hold nine peds in the pool for the whole session.
PedDespawnDistance 90.0 Distance in game units that applies to ped despawn distance.

**1869246576 is the official Government Seal / Senior Badge sprite (distinct from **

Setting Default What it does
BlipSprite 1869246576 Map blip or icon settings for blip sprite.
BlipColor "BLIP_MODIFIER_MP_COLOR_27" Royal Purple
BlipScale 0.7 Map blip or icon settings for blip scale.
Keys table Key or control used for keys. Controls are hash values from the game input list.
  ↳ enter "INPUT_FRONTEND_RB" Setting for enter.
  ↳ reissue "INPUT_FRONTEND_LB" Setting for reissue.

How it is caught: showing a card to an on-duty officer rolls DetectionChance

Setting Default What it does
FakeId table against jrs_police's own IsOnDutyOfficer check. Nothing else can tell the two cards apart - not the inventory label, not the item image, not the booklet.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Item "fakeid" jrs_inventory. A forgery that announces itself in a loot list is not a forgery. The owner can still tell which one they are holding: opening it shows a small mark only they can see.
  ↳ Label "ID Card" Text shown to the player for label. Change it to translate or rebrand.
  ↳ Description "Official citizen identity card." Text shown to the player for description. Change it to translate or rebrand.
  ↳ Price 15.0 forging a new identity
  ↳ CopyPrice 10.0 reprinting the forgery you already own
  ↳ DestroyPrice 0 burning the record so you can forge a different one
  ↳ DetectionChance 45 Chance (0-100) that an on-duty officer spots the forgery each time the card is shown to them. Every show is an independent roll, so flashing a forged card at the law repeatedly is a real risk, not a free retry.
  ↳ DetectionMinimumGrade 0 Minimum police grade that can spot a forgery at all. 0 = any officer.
  ↳ PoliceAlertChance 20 Chance (0-100) that buying a forgery is noticed and dispatched to police through jrs_theftsystem's own alert bridge.
  ↳ FollowBlackMarket true The forger standing next to the Black Market merchant.
  ↳ BlackMarketOffset 3.5 metres from the merchant
  ↳ Ped "a_m_m_unibtailor_01" Game model or entity used for ped.
  ↳ Distance 2.0 Distance in game units that applies to distance.
  ↳ Keys table Key or control used for keys. Controls are hash values from the game input list.
  ↳ Blip false Off by default: the forger is meant to be found, not routed to.
  ↳ BlipSprite 587827268 Map blip or icon settings for blip sprite.
  ↳ BlipScale 0.2 Map blip or icon settings for blip scale.

Off by default: nothing is sent anywhere until Enabled is set to true and a

Setting Default What it does
  ↳ Enabled false Turns enabled on or off (default false).
  ↳ Url "" Setting for url.
  ↳ Name "REDEMPIRE Registry" Text shown to the player for name. Change it to translate or rebrand.
  ↳ Colour 10038562 Number for colour (default 10038562).
  ↳ Registered 'HAS REGISTERED THEIR IDENTI... Setting for registered.
  ↳ Reissued 'HAS EXTRACTED A COPY OF THE... Setting for reissued.
  ↳ Forged 'HAS BOUGHT A FORGED IDENTIT... Setting for forged.
  ↳ Exposed 'WAS CAUGHT CARRYING A FORGE... Setting for exposed.

Integrated Portrait Photo Studio & ID upon Character Creation

Setting Default What it does
PortraitStudio table Table of portrait studio entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ DefaultPhoto "assets/img/default_portrait.jpg" Fallback photo URL if webhook is not set:
  ↳ CameraFov 32.0 Camera FOV for passport/portrait framing:

Paid (server only)   jrs_instruments

Play the piano at any piano and instruments anywhere (guitar, banjo, fiddle, harmonica, mandolin, concertina, trumpet, jaw harp) - game scenarios, heard by everyone near

Resource jrs_instruments
Folder [INTERFACE]
Version 1.0.0
Author jrs team
Depends on jrs_core
Interface Yes (NUI)
Languages ar, en
Code size 255 Lua lines
config.lua - 11 options#

General

Setting Default What it does
Command "play" opens the instrument list
StopKey 0x8CC9CD42 X stops playing
PianoKey 0x760A9C6F G at a piano
PianoStyleKey 0xCEFD9220 E cycles the piano style
PianoRadius 2.2 Distance in game units that applies to piano radius.
RequireItems false Optional: require an inventory item to play an instrument (item name or nil). Only 'guitar' exists in jrs_items right now.
Instruments table Table of instruments entries. Add, remove or edit entries following the examples in the file.
PianoModels table Pianos found in the world by model. Styles cycle with E.
PianoStyles table Table of piano styles entries. Add, remove or edit entries following the examples in the file.
PianoFemaleScenario "PROP_HUMAN_ABIGAIL_PIANO" Animation settings for piano female scenario.
PianoSeatOffset vector3(0.0, -0.78, 0.0) Where the player sits relative to the piano if the world has no piano scenario point there.

Paid (server only)   jrs_killcam

Client-side cinematic bullet kill camera for RedM

Resource jrs_killcam
Folder [INTERFACE]
Version 1.0.0
Author JRS
Interface No
Code size 776 Lua lines

Exports

IsActive, Play

config.lua - 49 options#

General

Setting Default What it does
Enabled true Turns enabled on or off (default true).
Debug false Debug output for debug: true = yes, false = no (default false).
Trigger table The production trigger stays close to RDR2's Dynamic Kill Cam: lethal hits.
  ↳ FatalHitsOnly true Switch for fatal hits only: true = on, false = off (default true).
  ↳ HeadshotsAlways false Switch for headshots always: true = on, false = off (default false).
  ↳ ChancePercent 100 Rate or multiplier for chance percent.
  ↳ MinimumDistance 3.0 Distance in game units that applies to minimum distance.
  ↳ MaximumDistance 250.0 Distance in game units that applies to maximum distance.
  ↳ CooldownSeconds 5.0 Time setting for cooldown seconds. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
Targets table Table of targets entries. Add, remove or edit entries following the examples in the file.
  ↳ Players true Switch for players: true = on, false = off (default true).
  ↳ HumanNPCs true Switch for human np cs: true = on, false = off (default true).
  ↳ Animals false Switch for animals: true = on, false = off (default false).
Detection table Table of detection entries. Add, remove or edit entries following the examples in the file.
  ↳ DamageEventWindowMs 900 Damage events select the exact victim. Aim/raycast checks are the fallback.
  ↳ ResolveWindowMs 900 Number for resolve window ms (default 900).
  ↳ RaycastDistance 300.0 Distance in game units that applies to raycast distance.
  ↳ RaycastRadius 0.12 Distance in game units that applies to raycast radius.
  ↳ RaycastFlags 511 Number for raycast flags (default 511).
  ↳ ImpactMaxDistanceFromTarget 4.0 Distance in game units that applies to impact max distance from target.
  ↳ ShotDebounceMs 45 Number for shot debounce ms (default 45).
Camera table Table of camera entries. Add, remove or edit entries following the examples in the file.
  ↳ TransitionInMs 90 Number for transition in ms (default 90).
  ↳ TransitionOutMs 130 Number for transition out ms (default 130).
  ↳ MinimumTravelMs 650 Minimum or level requirement for minimum travel ms.
  ↳ MaximumTravelMs 1250 Upper limit for maximum travel ms.
  ↳ TravelMsPerMeter 18.0 Number for travel ms per meter (default 18.0).
  ↳ EndHoldMs 260 Number for end hold ms (default 260).
  ↳ StartFov 48.0 Number for start fov (default 48.0).
  ↳ EndFov 28.0 Number for end fov (default 28.0).
  ↳ StartBehindMuzzle 0.55 Number for start behind muzzle (default 0.55).
  ↳ EndBeforeImpact 0.72 Number for end before impact (default 0.72).
  ↳ SideOffset 0.20 Number for side offset (default 0.20).
  ↳ ArcHeight 0.22 Number for arc height (default 0.22).
  ↳ LookAhead 0.09 Number for look ahead (default 0.09).
SlowMotion table Table of slow motion entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ TimeScale 0.22 Rate or multiplier for time scale.
Controls table Table of controls entries. Add, remove or edit entries following the examples in the file.
  ↳ DisableDuringCamera true Turns off during camera: true = yes, false = no (default true).
  ↳ AllowSkip true Allows skip: true = yes, false = no (default true).
  ↳ SkipControl 0x156F7119 INPUT_FRONTEND_CANCEL / Backspace on the default RedM mapping.
TestCommand table Client-only test command. Aim at a ped and run /jrs_killcam_test.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Name "jrs_killcam_test" Text shown to the player for name. Change it to translate or rebrand.
AllowedWeaponGroups table Firearm groups only. Add/remove groups without changing client/main.lua.
BlockedWeapons table Optional weapon names, for example: 'WEAPON_REPEATER_CARBINE'.
HeadBones table RDR skeleton bone IDs accepted as head hits.
  ↳ 0x796E true SKEL_HEAD
Notes from the README#
text
# jrs_killcam
Standalone client-side cinematic kill camera for RedM. It detects a confirmed
firearm hit, calculates a path from the shooter's hand/muzzle to the impact, and
plays a short local slow-motion camera. Damage, death and server ownership are
not replaced or delayed.
## Installation
1. Copy `jrs_killcam` into the server's resources directory.
2. Add `ensure jrs_killcam` to `server.cfg`.
3. Restart the resource or server.
No framework, inventory, database or server-side dependency is required.
## Default behaviour
- Activates for lethal firearm hits.
- Supports players and human NPCs.
- Runs only on the shooter's client.
- Does not freeze, revive, damage or make either player invincible.
- Restores the gameplay camera and time scale on completion, skip, player
  death, pause, error, resource stop or resource restart.
- Five-second cooldown prevents repeated cameras during rapid combat.
## Test
Aim at a player or human NPC and run:
'''text
/jrs_killcam_test
'''
This tests the camera without damaging the target. The test command can be
disabled in `config.lua` after setup.
For the real trigger, kill a supported target with a revolver, pistol, repeater,
rifle, sniper rifle or shotgun from at least the configured minimum distance.
## Important configuration
- `Config.Trigger.FatalHitsOnly`: use only lethal hits.
- `Config.Trigger.HeadshotsAlways`: allow non-lethal headshots too.
- `Config.Trigger.ChancePercent`: frequency from 0 to 100.
- `Config.Trigger.MinimumDistance`: prevents awkward point-blank cameras.
- `Config.SlowMotion.TimeScale`: local visual time scale.
- `Config.Camera`: travel time, FOV and offsets.
- `Config.Targets`: players, human NPCs and animals.
- `Config.BlockedWeapons`: weapon names that must never trigger the camera.
## Exports
'''lua
local started = exports.jrs_killcam:Play(targetPed, impactCoords)
local active = exports.jrs_killcam:IsActive()
'''
`impactCoords` may be omitted. `Play` intentionally bypasses the normal kill,
distance and cooldown checks so another trusted client resource can request a
cinematic directly.
## Technical note

Paid (server only)   jrs_license_book

Official Citizen License Binder & Registry - JRS_STORE Unified Theme

Resource jrs_license_book
Folder [INTERFACE]
Version 1.3.0
Author JRS TEAM
Depends on jrs_core, jrs_inventory, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 1,475 Lua lines

Exports

GetStoredLicenses, GiveBinder, HasLicense, OpenBinder, PlayerHasBinder

Database tables

jrs_license_binder, jrs_license_binder_issued

config.lua - 32 options#

General

Setting Default What it does
Locale "ar" اللغات المدعومة: 'ar' أو 'en'
Item "license_binder" اسم الآيتم في الحقيبة
AltItem "license_book" اسم بديل إضافي إن وجد
ItemLabel "دفتر الرخص" بيانات إنشاء الآيتم التلقائي في قاعدة البيانات (jrs_items)
ItemLabelEn "License Binder" Inventory items used by item label en. Names must exist in the jrs_items table.
ItemDescription 'دفتر جلدي رسمي لحفظ وتنظيم ... Inventory items used by item description. Names must exist in the jrs_items table.
ItemDescriptionEn 'An official leather binder ... Inventory items used by item description en. Names must exist in the jrs_items table.
ItemWeight 0.20 Upper limit for item weight.
ItemCategory "documents" Inventory items used by item category. Names must exist in the jrs_items table.
Command "licenses" الأوامر لفتح الدفتر (بالإضافة لاستخدامه كـ Item من الحقيبة)
CommandAliases table Table of command aliases entries. Add, remove or edit entries following the examples in the file.
RequireItem true هل يلزم وجود دفتر الرخص في الحقيبة لفتح القائمة؟
ShowDistance 3.5 المسافة القصوى بالأمتار لإظهار الرخصة أو الصك لشخص قريب
AutoCloseSharedSeconds 16 مدة إغلاق عرض الرخصة التلقائي عند الشخص المستقبل (بالثواني)
AutoInstallDatabase true التثبيت التلقائي لجدول قاعدة البيانات والآيتم
AutoRegisterItem true Automatically handles register item: true = yes, false = no (default true).
UseAnimation true رسائل التنبيه والأنيميشن
AnimDict nil Animation settings for anim dict.
Scenario "WORLD_HUMAN_WRITE_NOTEBOOK" أنيميشن دفتر الملاحظات الواقعي في RDR2
  ↳ Weaponlicence table 1. رخص الأسلحة والهوية
  ↳ idcard table Table of idcard entries. Add, remove or edit entries following the examples in the file.
  ↳ fakeid table Table of fakeid entries. Add, remove or edit entries following the examples in the file.
  ↳ house_deed table 2. صكوك المنازل والعقارات
  ↳ property_deed table Table of property deed entries. Add, remove or edit entries following the examples in the file.
  ↳ guarma_voucher table Table of guarma voucher entries. Add, remove or edit entries following the examples in the file.
  ↳ voucher_flame_shoes table Table of voucher flame shoes entries. Add, remove or edit entries following the examples in the file.
  ↳ jrs_store_deed table 3. صكوك المتاجر والشراء التجاري
  ↳ jrs_store_title table Text shown to the player for jrs store title. Change it to translate or rebrand.
  ↳ saloon_deed table Table of saloon deed entries. Add, remove or edit entries following the examples in the file.
  ↳ generalstore_deed table Table of generalstore deed entries. Add, remove or edit entries following the examples in the file.
  ↳ gunstore_deed table Table of gunstore deed entries. Add, remove or edit entries following the examples in the file.
  ↳ truckr table Table of truckr entries. Add, remove or edit entries following the examples in the file.

Paid (server only)   jrs_mapcolor

jrs core Map Color - synchronized admin-controlled map region colors

Resource jrs_mapcolor
Folder [INTERFACE]
Version 2.4.1
Author jrs team
Depends on jrs_core
Interface Yes (NUI)
Languages ar, en
Code size 1,578 Lua lines

Exports

GetAvailableStyles, GetRegionColor, GetState, IsAdmin, OpenAdminMenu, SetRegionColor

Database tables

IF, jrs_mapcolor

config/config.lua - 17 options#

General

Setting Default What it does
Debug false Debug output for debug: true = yes, false = no (default false).
REDEMPIRE table Table of redempire entries. Add, remove or edit entries following the examples in the file.
  ↳ CoreResource "jrs_core" Setting for core resource.
  ↳ MysqlResource "oxmysql" Setting for mysql resource.
GlobalEnabled true The server is authoritative. Players cannot toggle map colors locally. GlobalEnabled is true so Government/Admin can color specific zones, while all regions default to false (white map base).
Persistence table Persist admin changes in database (oxmysql) and local file backup.
  ↳ enabled true Turns enabled on or off (default true).
  ↳ type "database" Setting for type.
  ↳ table "jrs_mapcolor" Setting for table.
  ↳ file "mapcolor_state.json" Setting for file.
Admin table Who is allowed: jobs, groups or permissions for admin.
  ↳ command "mapcoloradmin" Setting for command.
  ↳ allowedGroups table REDEMPIRE groups allowed to use the menu.
  ↳ acePermission nil Optional ACE permission in addition to REDEMPIRE groups. Set nil to use REDEMPIRE groups only.
  ↳ identifiers table Optional identifiers that can always use the menu. Example: 'license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
AvailableStyles table Styles exposed in the admin UI. These are region/blip styles used by the RDR2 map-region native.
Regions table Stable IDs are used by the UI and persisted state.
Notes from the README#
text
# jrs_mapcolor
Server-synchronized RedM map region color controller with a dedicated admin NUI.
## Features
- Admin-only map color control menu.
- Enable/disable the complete map-color system for all players.
- Enable/disable individual regions for all players.
- Change each region to one of the configured available styles/colors.
- Changes synchronize instantly to connected players.
- New players receive the current server state automatically.
- Admin changes are persisted in `mapcolor_state.json` by default.
- No player-side E toggle and no public `/mapcolor` toggle.
- Server validates every admin action; NUI events cannot bypass permissions.
## Install
Add to `server.cfg`:
'''cfg
ensure jrs_mapcolor
'''
By default the menu reads the player group directly from `jrs_core` and allows:
- `admin`
- `superadmin`
- `owner`
Change them in `Config.Admin.allowedGroups`. No extra ACE setup is required for the default REDEMPIRE configuration.
ACE can still be enabled as an additional permission method by setting `Config.Admin.acePermission`, and exact identifiers can be whitelisted in `Config.Admin.i
## Admin menu
'''text
/mapcoloradmin
'''
The command only opens when the server confirms the player has permission.
## Configuration
- `Config.GlobalEnabled`: default global state.
- `Config.Persistence.enabled`: save admin changes across restarts.
- `Config.Admin.command`: admin menu command.
- `Config.Admin.allowedGroups`: REDEMPIRE groups allowed to use the menu.
- `Config.Admin.acePermission`: optional extra ACE permission.
- `Config.AvailableStyles`: colors/styles exposed to admins.
- `Config.Regions`: configured map regions and defaults.
## Persistent state
When an admin makes a change, `mapcolor_state.json` is generated inside the resource. Delete that file or press **Defaults** in the admin menu to return to valu
## Region Coverage
The admin menu includes 74 named map hashes grouped as States, Mexico / Nuevo Paraiso, Districts, Town & Local Regions, Town & Property Outlines, and Bounty & L
## Mexico / Nuevo Paraiso
A dedicated menu section exposes the native Mexico map regions:
- Nuevo Paraiso (`0x33F2D34F`)
- Diez Coronas (`0x8966022D`)
- Perdido (`0x27253ED3`)

Free (included in JRS Core)   jrs_metabolism

JRS Core Metabolism - BCC-style local mount horse HUD with robust jrs_stable lifecycle bridge and native core/live-meter sync

Resource jrs_metabolism
Folder [INTERFACE]
Version 1.50.5
Author jrs team
Depends on jrs_character, jrs_core, jrs_inventory
Interface Yes (NUI)
Languages ar, en
Code size 19,429 Lua lines

Commands

  • /eagleeye
  • /eagleeye_select
  • /edithud
  • /ee
  • /gotobath
  • /hudhide
  • /hudreload
  • /metahud
  • /pee
  • /setdirt
  • /setpee
  • /testcaneat
  • /urinate

Exports

AddPlayerDirtLevel, ClearPlayerDirtAfterBath, ClearPlayerDirtLevel, ClearStableHorse, CloseInv, GetArmourHud, GetDirtLevel, GetFixedDirtLevel, GetPvpState, GetStableHorse, GetStableHorseCondition, GetUrineLevel, IsCharacterTransitionActive, IsDirtSystemLoaded, Relieve, SetArmourHud, SetCharacterTransition, SetLastDirtyState, SetPlayerDirtLevel, SetPlayerUrineLevel, SetStableHorse, SyncPvpState, UpdatePlayerDirtLevel, addHunger, addMetabolism, addStress, addThirst, changeValue, getAlcohol, getDirt

Database tables

jrs_metabolism

config/armour.cfg.lua - 6 options#

General

Setting Default What it does
ArmourHUD table REDEMPIRE Armour HUD integration. This is optional: jrs_metabolism still starts normally when jrs_armour is not installed/running.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ SourceResource "jrs_armour" Setting for source resource.
  ↳ DefaultColor "#d7d7d7" Setting for default color.
  ↳ ActiveRefreshMs 1000 lightweight fallback sync while armor is equipped
  ↳ IdleRefreshMs 3000 slower check while no armor is equipped
config/main.cfg.lua - 233 options#

General

Setting Default What it does
ArmourHUD Config.ArmourHUD Setting for armour hud.
DevMode true Switch for dev mode: true = on, false = off (default true).
Debug false Debug output for debug: true = yes, false = no (default false).
HideNativeAmmo true true: hide RedM's original ammo numbers (the custom weapon HUD remains visible). false: keep RedM's original ammo display.
LowAmmoThreshold 5 Turn the loaded-ammo number red at this amount or lower.
HudAutoHide table Automatically hide every HUD icon while the player is dead or another UI/menu is open.
  ↳ OnDeath true Switch for on death: true = on, false = off (default true).
  ↳ OnNuiFocus true inventory and most NUI menus
  ↳ OnStateBagMenu true common inventory/menu state-bag flags
  ↳ OnPauseMenu true Switch for on pause menu: true = on, false = off (default true).
  ↳ OnMap true Switch for on map: true = on, false = off (default true).
  ↳ OnCinematic true Switch for on cinematic: true = on, false = off (default true).
  ↳ OnScreenFade true Switch for on screen fade: true = on, false = off (default true).
  ↳ CheckInterval 150 Time setting for check interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
Performance table Table of performance entries. Add, remove or edit entries following the examples in the file.
  ↳ CompassInterval 75 Time setting for compass interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ VoiceInterval 100 Time setting for voice interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ AdminMuteFallback 2000 Who is allowed: jobs, groups or permissions for admin mute fallback.
  ↳ NearbyPlayersInterval 2000 Time setting for nearby players interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ TelegramInterval 5000 Time setting for telegram interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ HouseRefreshInterval 60000 Time setting for house refresh interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ TemperatureInterval 2000 Time setting for temperature interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ StressShotInterval 150 Time setting for stress shot interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ StressShotCooldown 2500 Time setting for stress shot cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ PoisonIdleInterval 1000 Time setting for poison idle interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ PoisonRunCheck 500 Number for poison run check (default 500).
  ↳ WeaponInterval 300 Time setting for weapon interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
HorseHud table JRS metabolism remains the owner of the HUD. When jrs_stable is running, its active horse can be used as the horse source; native mount detection remains the safe fallback.
  ↳ ShowStatNumbers true true = show the stable horse level (1..100); trainer rank 1..4 is the fallback
  ↳ MountedInterval 250 live refresh while mounted
  ↳ UnmountedInterval 900 Time setting for unmounted interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ NotReadyInterval 1500 Time setting for not ready interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ UseStableIntegration true Turns stable integration on or off (default true).
  ↳ StableResource "jrs_stable" Setting for stable resource.
  ↳ StableMaxDistance 80.0 Distance in game units that applies to stable max distance.
  ↳ ShowStableHorseWhenUnmounted false Shows stable horse when unmounted: true = yes, false = no (default false).

2026-09-07: turned OFF by request - the horse HUD goes back to the

Setting Default What it does
  ↳ ShowHorseCondition false and persists horse hunger/thirst exactly as before; this only stops the two extra HUD cores from being drawn. Set back to true to show them again, no other change needed.
  ↳ ConditionInterval 1500 how often the condition state bag is read
DirtSystem table Integrated dirt system (merged from tp_dirtsystem). Dirt is stored inside jrs_metabolism meta, so no extra SQL column is required.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ MaxLevel 10000 Upper limit for max level.
  ↳ DirtyThreshold 6000 Number for dirty threshold (default 6000).
  ↳ TickInterval 1000 Time setting for tick interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ ServerSyncInterval 60000 Time setting for server sync interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ ParticleRenderingDistance 15.0 Distance in game units that applies to particle rendering distance.
  ↳ ParticleRefreshInterval 5000 Time setting for particle refresh interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ FliesEnabled false In RDO living players do not have cartoon flies swarming them
  ↳ Temperature table Table of temperature entries. Add, remove or edit entries following the examples in the file.
  ↳ PlayerActions table Red Dead Online physical dirt mechanics
  ↳ WaterWash table Red Dead Online natural water wash (rivers, lakes, creeks, swimming)
  ↳ RainWash table Red Dead Online natural rain wash
  ↳ Notifications table Table of notifications entries. Add, remove or edit entries following the examples in the file.
DrugEffect true Switch for drug effect: true = on, false = off (default true).
Start_stress true Switch for start stress: true = on, false = off (default true).
StressGainPerShot 2 Number for stress gain per shot (default 2).
DrugEffectTime 60000 drug effect time
InitialValues table Table of initial values entries. Add, remove or edit entries following the examples in the file.
  ↳ Thirst 100 Max 100.
  ↳ Hunger 100 Max 100.
RealisticSprintStaminaDescrease true The following is a realistic sprinting stamina decrease system, if you don't like it, set it to false.
SprintStaminaDrain table for a moment, stamina bottoms out, sprint is cut, and it reads as "running is slow". Amount/IntervalMs are now yours to set, and Enabled = false removes the drain entirely while keeping the rest of the sprint handling.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Amount 0.05 per tick (balanced drain rate while sprinting)
  ↳ IntervalMs 100 how often it is applied
AimStaminaFreeze table Aiming / scope zoom no longer burns stamina (native breath-hold). Enabled = false restores the vanilla drain.
  ↳ Enabled true Turns enabled on or off (default true).
ServerGuard table thirst up, stress/alcohol/poison/dirt down) are capped per player per rolling minute; anything above is clamped and the client is resynced. Server exports (exports.jrs_metabolism:addHunger etc.) are not limited.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ LogBlocked true Logs blocked: true = yes, false = no (default true).
  ↳ MaxGainPerMinute table Upper limit for max gain per minute.
DisablePlayerRunWhileDrunk true Set it to false if you wan't the players to be able to run while drunk.
AlcoholConsiderDrunk 50 The value when a player reaches while drinking to consider as being drunk.
AlcoholConsiderVeryDrunk 80 Number for alcohol consider very drunk (default 80).
AlcoholRemoveByTime 3 Time in seconds.
AlcoholRemoveByTimeValue 1 The alcohol value to be removed based on @AlcoholRemoveByTime (MAX ALCOHOL == 100)
HungerStripeValue 0 When hunger reaches 0, player slowly loses health from starvation.
ThirstStripeValue 0 When thirst reaches 0, player slowly loses health from dehydration.
HealthDamageValue 1 Number for health damage value (default 1).
StarvationMinHealthPercent 0.25 RDR2: empty cores never kill you - the outer bar just stops refilling. Our improvement keeps a slow starvation/dehydration bleed, but it stops at this share of max health instead of killing (0 = old lethal behaviour).
TimeRateRepeat 5 Time in seconds.
HungerDrainIdle 0.05 Standing / resting / riding: ~2h47 real (halved 10-04, players: too fast).
HungerDrainWalking 0.06 Walking: ~2h19 real.
HungerDrainRunning 0.08 Running / sprinting: ~1h44 real.
ThirstDrainIdle 0.05 Standing / resting / riding: ~2h47 real.
ThirstDrainWalking 0.08 Walking: ~1h44 real.
ThirstDrainRunning 0.15 Running / sprinting: ~56 real minutes.
SwimDrainThirst 0.08 Extra per tick while swimming (stamina core).
SwimDrainHunger 0.015 Number for swim drain hunger (default 0.015).
RDOCores table Red Dead Online Core System Parity
  ↳ SyncNativeCores true Sync Hunger -> ATTRIBUTE_CORE_HEALTH (0), Thirst -> ATTRIBUTE_CORE_STAMINA (1)
  ↳ HealthRegenEnabled true Health auto-recharges when well-fed (stops completely when Hunger = 0)
  ↳ HealthRegenCombatCooldownMs 6000 Cooldown in milliseconds after taking damage before health recharges
  ↳ StaminaRegenScaleWithThirst true Stamina recharges fast when hydrated, slow (0.35x) when dehydrated
  ↳ StarvationPulseEffect true Pulsing heartbeat vignette & audio when starving (hunger = 0)
  ↳ DehydrationFatigueEffect true Panting audio and fatigue camera vibration when running while dehydrated
  ↳ WeightSystemEnabled true RDO Weight system (Underweight, Average, Overweight damage & stamina scaling)
MinTemperature -4 If the player temperature is that low, it will start doing damage to your health.
MinTemperatureDamage 1 Set to false if you don't want to damage the player.
MinTemperatureDrainThirst 0 Set to 0 if you don't want to drain thirst in freezing cold.
MinTemperatureDrainHunger 0.04 Body burns extra calories (hunger) in freezing cold to stay warm (RDO parity).
MaxTemperature 42 If the player temperature is that high, it will start draining more water and hunger. (42°C As default)
MaxTemperatureDrainThirst 0.05 Perspiration in extreme desert/heat drains hydration faster (RDO parity).
MaxTemperatureDrainHunger 0.01 Slight extra fatigue in extreme heat.
ClothingExtraTemperature true Do not modify the hashes without knowledge.
ClothingListHashes table Table of clothing list hashes entries. Add, remove or edit entries following the examples in the file.
  ↳ hat table Table of hat entries. Add, remove or edit entries following the examples in the file.
  ↳ gloves table Table of gloves entries. Add, remove or edit entries following the examples in the file.
  ↳ shirt table Table of shirt entries. Add, remove or edit entries following the examples in the file.
  ↳ pants table Table of pants entries. Add, remove or edit entries following the examples in the file.
  ↳ boots table Table of boots entries. Add, remove or edit entries following the examples in the file.
  ↳ vest table Table of vest entries. Add, remove or edit entries following the examples in the file.
  ↳ coats table Table of coats entries. Add, remove or edit entries following the examples in the file.
  ↳ closed_coats table Table of closed coats entries. Add, remove or edit entries following the examples in the file.
  ↳ ponchos_1 table Table of ponchos 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ ponchos_2 table Table of ponchos 2 entries. Add, remove or edit entries following the examples in the file.
DrinkCupAnimDuration 60000 Determines how long the user will hold the coffee before throwing it away.
DrinkBottleAnimDuration 60000 Determines how long the user will hold a bottle before throwing it away.
EatBowlAnimDuration 60000 Determines how long the user will hold the bowl or plate before throwing it away.
Notifications table Table of notifications entries. Add, remove or edit entries following the examples in the file.
  ↳ NotificationWarningDelay 2 If the player is feeling hungry, thirsty or stressed, it will display him a message very X minutes as a warning.
  ↳ Hunger table Table of hunger entries. Add, remove or edit entries following the examples in the file.
  ↳ Thirst table Table of thirst entries. Add, remove or edit entries following the examples in the file.
  ↳ Stress table Table of stress entries. Add, remove or edit entries following the examples in the file.
  ↳ Temperature table Temperature Notification Values are equal to the configuration options above (MinTemperature & MaxTemperature).
  ↳ Alcohol table Fires once the player crosses Config.AlcoholConsiderDrunk (below).
SaltyChat true Switch for salty chat: true = on, false = off (default true).
DefaultMicRange 1 max 4
VoiceKey 0x4BC9DABB Push-to-talk (N). Uses the logical RedM control, so rebinding the key still works.
VoicePressingDelay 500 Time setting for voice pressing delay. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
UpdateHUDDelay 200 Live updates for metabolism HUD cores without delay.
TemperatureColors table You can use rgb, rgba & hashes.
  ↳ Default "rgba(0, 0, 0, 0.623)" Setting for default.
  ↳ Cold table Table of cold entries. Add, remove or edit entries following the examples in the file.
  ↳ Hot table Table of hot entries. Add, remove or edit entries following the examples in the file.
Population table This counts streamed/active players around the local JRS character, not the total server slot count. Values mirror the JRS HUD reference supplied with this resource migration.
  ↳ enabled true Turns enabled on or off (default true).
  ↳ detectDistance 50.0 Distance in game units that applies to detect distance.
  ↳ thresholds table Table of thresholds entries. Add, remove or edit entries following the examples in the file.
ChangingRangeData table Distance in game units that applies to changing range data.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ MarkerDisplayMs 1500 How long the voice-range ring stays on the ground after the range changes. 5000ms read as "stuck" in game, the ring outlived the change it announced.
  ↳ RGBA table Fallback, used only if a range below has no colour of its own.
  ↳ RangeColors table The ring on the ground now reads as the voice range itself, instead of being the same green at every distance. Indexes match pma-voice's voiceModes order: 1 whisper, 2 normal, 3 loud, 4 shouting.
  ↳ Alpha 60 Ring opacity (0-255).
Snakes table Table of snakes entries. Add, remove or edit entries following the examples in the file.
Prop table Game model or entity used for prop.

This file is a shared_script, so SendNotification runs on both sides -

Setting Default What it does
shake table Table of shake entries. Add, remove or edit entries following the examples in the file.
  ↳ 1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ 2 table Table of 2 entries. Add, remove or edit entries following the examples in the file.
  ↳ 3 table Table of 3 entries. Add, remove or edit entries following the examples in the file.
  ↳ 4 table Table of 4 entries. Add, remove or edit entries following the examples in the file.
  ↳ 5 table Table of 5 entries. Add, remove or edit entries following the examples in the file.

stress < RunOnlyStress -> full sprint

Setting Default What it does
1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
  ↳ min 30 Minimum or level requirement for min.
  ↳ max 60 Upper limit for max.
  ↳ timeout math.random(30000, 40000) Time setting for timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
2 table Table of 2 entries. Add, remove or edit entries following the examples in the file.
  ↳ min 60 Minimum or level requirement for min.
  ↳ max 70 Upper limit for max.
  ↳ timeout math.random(20000, 30000) Time setting for timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
3 table Table of 3 entries. Add, remove or edit entries following the examples in the file.
  ↳ min 70 Minimum or level requirement for min.
  ↳ max 80 Upper limit for max.
  ↳ timeout math.random(10000, 20000) Time setting for timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
4 table Table of 4 entries. Add, remove or edit entries following the examples in the file.
  ↳ min 80 Minimum or level requirement for min.
  ↳ max 90 Upper limit for max.
  ↳ timeout math.random(5000, 10000) Time setting for timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
5 table Table of 5 entries. Add, remove or edit entries following the examples in the file.
  ↳ min 90 Minimum or level requirement for min.
  ↳ max 100 Upper limit for max.
  ↳ timeout math.random(9000, 15000) Time setting for timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.

How often metabolism values are written to the database. The defaults

Setting Default What it does
SaveInterval 120000 background flush, 2 minutes
MinSaveInterval 30000 never save the same player more often than this
ForceSaveOnDisconnect true always flush when a player leaves

What happens to the meters when a player goes down. Reset values are only

Setting Default What it does
ResetHunger false Switch for reset hunger: true = on, false = off (default false).
ResetThirst false Switch for reset thirst: true = on, false = off (default false).
ResetStress true Switch for reset stress: true = on, false = off (default true).
ResetDirt false Switch for reset dirt: true = on, false = off (default false).
HungerOnRespawn 50 Time setting for hunger on respawn. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
ThirstOnRespawn 50 Time setting for thirst on respawn. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.

Rename any of these to avoid clashing with another resource. An empty

Setting Default What it does
HudEditor "hudsettings" open the HUD layout editor
SprintCheck "sprintcheck" report everything currently blocking sprint
SprintFix "sprintfix" emergency release of movement restrictions
HudExport "hudexport" admin: dump the current layout as config Lua

Set enabled = false if jrs_core is not on this server: the button then never

Setting Default What it does
enabled true Turns enabled on or off (default true).
resource "jrs_core" Setting for resource.
event "jrs_core:hud:openEditor" Setting for event.
label "Core HUD" Text shown to the player for label. Change it to translate or rebrand.
hint 'Saves these settings, close... Setting for hint.

RDR2-style tracking vision: hold/toggle to desaturate the screen and

Setting Default What it does
Enabled true Turns enabled on or off (default true).
ToggleControl 0 toggle) is gated to its own menu/vehicle context, so a plain on-foot toggle here does not fight any of them for the same keypress. Disabled: Z no longer toggles Eagle Eye (default = scroll-wheel click below).
SecondaryControls table Additional single controls that toggle Eagle Eye (Middle Mouse Click / Caps Lock / INPUT_SPECIAL_ABILITY).
DrainPerSecond 6.0 lost per second while active
RegenPerSecond 10.0 regained per second while off
MinToActivate 5 can't turn back on below this
HighlightRadius 60.0 How far around the player Eagle Eye reaches - both for this resource's own built-in corpse highlight, and as the radius handed to every jrs_metabolism:eagleEye:tick listener.
TickInterval 350 ms between highlight/broadcast passes
MaxMarkers 60 cap on highlight markers drawn per frame (performance)
DrawMarkers false Set to false so 3D yellow box markers do NOT appear over animals or connected scripts
LevelScaling table Level-scaling: higher level characters gain longer duration, faster recharge, and larger radius.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ MaxLevel 100 Upper limit for max level.
  ↳ MaxDrainReduction 0.60 Up to 60% slower drain at max level (lasts 2.5x longer)
  ↳ MaxRegenBonus 1.00 Up to +100% faster refill at max level (fills twice as fast)
  ↳ MaxRadiusBonus 30.0 Up to +30 meters radius at max level (reaches up to 90m)
  ↳ AwardXP true Grants character XP while actively using Eagle Eye
  ↳ XPAmount 5 XP granted per interval
  ↳ XPIntervalSeconds 15 Seconds of active vision per XP tick
  ↳ MaxXPAwardsPerHour 40 Server cap: at most this many XP ticks per player per hour
SelectableScripts table Selectable scripts and targets that can be toggled via command /ee [name] or /eagleeye_select
  ↳ herbs table Table of herbs entries. Add, remove or edit entries following the examples in the file.
  ↳ hunting table Table of hunting entries. Add, remove or edit entries following the examples in the file.
  ↳ mining table Table of mining entries. Add, remove or edit entries following the examples in the file.
  ↳ farming table Table of farming entries. Add, remove or edit entries following the examples in the file.
  ↳ lumberjack table Table of lumberjack entries. Add, remove or edit entries following the examples in the file.
  ↳ corpses table Table of corpses entries. Add, remove or edit entries following the examples in the file.
  ↳ persons table Table of persons entries. Add, remove or edit entries following the examples in the file.
  ↳ players table Table of players entries. Add, remove or edit entries following the examples in the file.
  ↳ animals table Game model or entity used for animals.
  ↳ vehicles table Table of vehicles entries. Add, remove or edit entries following the examples in the file.
CorpseOutlineColor table Nearby dead bodies, kills, downed game
PersonOutlineColor table Living NPCs / persons
PlayerOutlineColor table Other players
AnimalOutlineColor table Living wild/domestic animals
VehicleOutlineColor table Mounts, horses, wagons
ScreenTint table nothing at all. DrawRect is proven elsewhere in this codebase (jrs_camera, jrs_pets/target_hud, jrs_casino) so this always shows something even if the optional extras below are left blank.
PostFx "EagleEye" Optional extra polish: AnimpostfxPlay('EagleEye') is the authentic RDR2 vision effect.
TimecycleModifier "" Setting for timecycle modifier.
TimecycleStrength 1.0 Number for timecycle strength (default 1.0).
BlockWhileSwimming true The ability refuses to (re)activate, and force-deactivates if already on, while any of these are true.
BlockWhileRagdoll true Switch for block while ragdoll: true = on, false = off (default true).
BlockWhileAiming true Switch for block while aiming: true = on, false = off (default true).
config/smoking.cfg.lua - 1 options#

Scope of this pass: the 15 "hand to mouth" smoking items (cigars, pipes,

Setting Default What it does
Smoking table Table of smoking entries. Add, remove or edit entries following the examples in the file.
config/urine.cfg.lua - 22 options#

General

Setting Default What it does
Urine table Lightweight bladder system. Set Enabled to false to disable it completely. There is no health damage; the only gameplay effect is an optional, very small movement penalty at the critical stage.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Initial 0 Number for initial (default 0).
  ↳ Prompt table Only shown standing at a bathhouse door (asked from jrs_bathing through exports.jrs_bathing:GetClosestConsumer(); falls back to TownRestriction.Bathhouses within Radius when jrs_bathing is stopped).
  ↳ PeeDuration 5500 Time setting for pee duration. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ WarningAt 85 Number for warning at (default 85).
  ↳ CriticalAt 95 Number for critical at (default 95).
  ↳ NoticeCooldownMs 120000 Time setting for notice cooldown ms. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ CriticalMovementEnabled true Switch for critical movement enabled: true = on, false = off (default true).
  ↳ CriticalMoveRate 0.95 Rate or multiplier for critical move rate.
  ↳ Drain table { level added, interval in milliseconds }
  ↳ BlockOnMount true Switch for block on mount: true = on, false = off (default true).
  ↳ BlockInVehicle true Switch for block in vehicle: true = on, false = off (default true).
  ↳ BlockWhileArmed true Switch for block while armed: true = on, false = off (default true).
  ↳ MaleScenario "WORLD_HUMAN_PEE" Men use the native standing scenario. Women use a female crouching animation; set Enabled to false below to use the standing scenario for everyone instead, or replace Dict/Name with another tested female anim.
  ↳ FemaleAnimation table Animation settings for female animation.
  ↳ Messages table Text shown to the player for messages. Change it to translate or rebrand.
  ↳ SafezoneRestriction table Safe Zone restriction: In unsafe areas, peeing is allowed anywhere via command. In safe areas (towns / safe zones), peeing is only permitted via bathrooms.
  ↳ OuthouseModels table World Outhouse / Restroom prop models detected dynamically (including player home toilets)
  ↳ OuthouseRadius 1.8 Distance in game units that applies to outhouse radius.
  ↳ AdditionalBathrooms table Additional public toilets / outhouse locations across safezones and towns

Each entry is { centre, radius }. The radius covers the populated area

Setting Default What it does
  ↳ TownRestriction table generously - players just outside town limits can still use /pee freely.
config/water.cfg.lua - 16 options#

General

Setting Default What it does
WaterActions table Table of water actions entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ GroupTitle "River" Title displayed above the prompt group
  ↳ GroupTitleLocale "metabolism_water_prompt_title" Interface language of this script (en or ar).
  ↳ RequireRightClick true Right-click requirement: prompts only appear when holding or pressing right-click near water
  ↳ RightClickGraceMs 3500 Number for right click grace ms (default 3500).
  ↳ DetectShoreline true Detect river/lake when standing on the shore/bank facing water as well as standing in water
  ↳ Prompts table Locale is preferred over Label when the key resolves; Label is the fallback so an unlocalised prompt still reads correctly.
  ↳ AddDrinkThirstValue 30 Thirst restored after drinking directly from a supported water source.
  ↳ ChanceToBeDamaged table Chance for unsafe natural water to damage the player (disabled for Red Dead Online style).
  ↳ ToggleRiverActions table Table of toggle river actions entries. Add, remove or edit entries following the examples in the file.
  ↳ Dirt table Uses the DirtSystem already integrated into jrs_metabolism.
  ↳ WaterTypes table Table of water types entries. Add, remove or edit entries following the examples in the file.

To map the sea properly: stand in it, run /watertype, and add the hash

Setting Default What it does
  ↳ UnmappedWater table it prints to WaterTypes as "sea". Once every body is mapped, this can be turned off for strict matching.
  ↳ Bottle table server (server/server_water.lua): the empty bottle is taken and the full one granted as one step, and the empty one is put back if the grant fails, so a failed fill can never eat the bottle.
  ↳ DebugCommand "watertype" Prints the water-type hash the player is standing in, for filling in WaterTypes above. Admin-facing, harmless, client-side only.

Paid (server only)   jrs_microphone

jrs core Realistic Microphone and Megaphone

Resource jrs_microphone
Folder [INTERFACE]
Version 1.0.1
Author jrs team
Depends on PolyZone, jrs_core, jrs_inventory, pma-voice
Interface No
Languages ar, en
Code size 1,161 Lua lines

Commands

  • /micprop
  • /micpropadd
config/config.lua - 33 options#

General

Setting Default What it does
Debug false Debug output for debug: true = yes, false = no (default false).
ShowZone false Shows zone: true = yes, false = no (default false).
MegaphoneItem "megaphone" Usable inventory item.
MegaphoneRange 50.0 Distance in game units that applies to megaphone range.
AudioEffect table Requires in server.cfg: setr voice_useNativeAudio true setr voice_enableSubmix 1
  ↳ enabled true Turns enabled on or off (default true).
  ↳ submixName "jrs_amplified_voice" Text shown to the player for submix name. Change it to translate or rebrand.
  ↳ effectSlot 0 Number for effect slot (default 0).
  ↳ outputSlot 0 Number for output slot (default 0).
  ↳ lowFrequency 320.0 Megaphone / PA-style band pass. Raise lowFrequency and lower highFrequency for a harsher, older loudspeaker sound.
  ↳ highFrequency 4800.0 Number for high frequency (default 4800.0).
  ↳ ringModMix 0.08 Number for ring mod mix (default 0.08).
  ↳ fudge 0.0 Number for fudge (default 0.0).
StageMicrophoneControl 0xCEFD9220 Fixed microphone interaction. INPUT_CONTEXT / E on RedM.
StageMicrophoneRange 50.0 Distance in game units that applies to stage microphone range.
EnableMegaphoneProp true Handheld megaphone prop and animation. Bone offsets may need small adjustments for custom character models or clothing.
MegaphoneProp "p_cs_megaphone01x" Game model or entity used for megaphone prop.
MegaphoneBoneName "SKEL_R_HAND" Text shown to the player for megaphone bone name. Change it to translate or rebrand.
MegaphoneFallbackBone 1852930 Used only if the named bone cannot be resolved on a custom ped model.
MegaphoneOffset vector3(0.090, 0.015, -0.035... Attach to the main right-hand bone. The p_cs_megaphone01x model behaves more reliably on the hand bone than on the finger chain.
MegaphoneRotation vector3(-88.0, 18.0, -108.0) Setting for megaphone rotation.
EnableMegaphonePropCalibration true Development helper. Use /micprop with six values while holding the item: /micprop x y z rotX rotY rotZ Example: /micprop 0.090 0.015 -0.035 -88.0 18.0 -108.0
MegaphoneAnimation table Animation settings for megaphone animation.
  ↳ enabled true Turns enabled on or off (default true).
  ↳ dict "amb_rest@world_human_smokin... Animation settings for dict.
  ↳ name "wip_base" Text shown to the player for name. Change it to translate or rebrand.
  ↳ flag 31 Number for flag (default 31).
  ↳ blendInSpeed 1.0 Number for blend in speed (default 1.0).
  ↳ blendOutSpeed -1.0 Number for blend out speed (default -1.0).
  ↳ playbackRate 0.0 Rate or multiplier for playback rate.
MicrophoneProp "p_phonograph01x" Static microphone prop used by configured microphone zones.
PropSpawnDistance 150.0 Distance in game units that applies to prop spawn distance.
MicrophoneZones table Table of microphone zones entries. Add, remove or edit entries following the examples in the file.

Paid (server only)   jrs_minigames

Resource jrs_minigames
Folder [INTERFACE]
Version 2.0.0-unified-minigames
Author jrs team
Interface Yes (NUI)
Languages ar, en
Code size 558 Lua lines

Exports

CancelSafeCrackingMiniGame, IsSafeCrackingActive, StartSafeCrackingMiniGame, initiate, jrs_lockpick, jrs_lockpick_secure, lockpick

config/safecracking.lua - 9 options#

General

Setting Default What it does
CoreResource "jrs_core" REDEMPIRE
RequireCharacterReady true Requires character ready: true = yes, false = no (default true).
CharacterReadyTimeout 15000 Time setting for character ready timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
MinTumblers 1 Minigame limits
MaxTumblers 20 Upper limit for max tumblers.
ConfirmPrompt "Confirm" UI prompts
RotatePrompt "Rotate" Text shown to the player for rotate prompt. Change it to translate or rebrand.
CancelPrompt "Cancel" Text shown to the player for cancel prompt. Change it to translate or rebrand.
FreezePlayer false Player handling while the minigame is open.

Paid (server only)   jrs_orcabridge

Sends online player snapshots to the sector Discord bot

Resource jrs_orcabridge
Folder [INTERFACE]
Version 1.0.0
Interface No
Code size 336 Lua lines

Database tables

jrs_orcabridge_links

Paid (server only)   jrs_pausemenu

REDEMPIRE base menu: sidebar dashboard over jrs_core, with the Store Money shop, dual-track Battle Pass, dual-track loot crates, daily rewards, server events and town elections

Resource jrs_pausemenu
Folder [INTERFACE]
Version 6.42.5
Author jrs team
Depends on jrs_core, jrs_inventory, oxmysql
Interface Yes (NUI)
Languages ar, en, init
Code size 26,161 Lua lines

Commands

  • /cratepremium
  • /electionsreload
  • /givestoremoney
  • /jrs_givecoins
  • /logout
  • /safeexit
  • /sendpackage

Exports

AddBattlePassLevels, AddBattlePassXp, AddPlaytimeCoins, AddStoreMoney, CanOpen, Close, GetBattlePassSummary, GetCustomerSpending, GetPlayerPauseData, GetStoreMoney, GetWebCatalog, IsCharacterReady, IsOpen, Open, SetBattlePassPremium, SyncCustomerRoles, TakeStoreMoney, Toggle, WebPurchase

Database tables

IF, above, below, jrs_pausemenu_accounts, jrs_pausemenu_admin_log, jrs_pausemenu_battlepass, jrs_pausemenu_battlepass_claims, jrs_pausemenu_cart, jrs_pausemenu_character_height, jrs_pausemenu_crates, jrs_pausemenu_custom_products, jrs_pausemenu_daily_rewards, jrs_pausemenu_discounts, jrs_pausemenu_event_progress, jrs_pausemenu_event_winners, jrs_pausemenu_events, jrs_pausemenu_events_seeded, jrs_pausemenu_migrations, jrs_pausemenu_parcels, jrs_pausemenu_payments

config/avatar.lua - 5 options#

General

Setting Default What it does
Avatar table Table of avatar entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Provider 'steam_xml' Setting for provider.
  ↳ Fallback "default_avatar.jpg" Setting for fallback.
  ↳ CacheSeconds 21600 Number for cache seconds (default 21600).
config/basemenu.lua - 18 options#

EVERY TAB HERE IS BACKED BY A REAL SYSTEM.

Setting Default What it does
BaseMenu table Table of base menu entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ DefaultTab "home" Which tab the menu opens on. Must be one of the tab ids below and must be enabled, or 'home' is used.
  ↳ Keybind table Keyboard shortcut. RegisterKeyMapping publishes it to RedM's own key settings screen, so a player can rebind it there; this is only the default. Set Key = '' to register the command without a default binding.
  ↳ Scales table choice is stored against their character, so it follows them to any machine. The server clamps to this exact list - a value that is not here is rejected.
  ↳ DefaultScale 100 Rate or multiplier for default scale.
  ↳ Defaults table Defaults for a character that has never opened Settings.
  ↳ RateLimit table Per-player throttles, in milliseconds. These are the floor between two accepted requests of the same kind; anything faster is dropped.

requires names the resource that owns the tab's data. When that

Setting Default What it does
  ↳ Tabs table resource is not started the tab is not sent to the UI at all. Leave it nil for a tab that needs nothing but the core.
  ↳ Integrations table Integrations. Each one is optional: switch it off, or point it at a different resource, and the feature that depends on it disappears from the menu instead of failing when clicked.
  ↳ Levels table no entry here still shows - just under its own raw key - so a new job script never has to wait on a config update to appear. ACTIVITIES & ROLES LEVELS TREE (شجرة المهن والأنشطة العامة)
  ↳ BusinessLevels table BUSINESS & COMMERCIAL ENTERPRISES TREE (شجرة الأعمال والاستثمار)
  ↳ RanchLabels table instance id once a second owner takes the same location) rather than a label. Mirrors the comments in config/store/ranches.lua - if a location is renamed there, mirror it here too.
  ↳ RanchLabels_ar table Table of ranch labels ar entries. Add, remove or edit entries following the examples in the file.
  ↳ Help table HELP tab content. Plain data, shown as written. Anything that names a key here is a real binding registered by this resource or by the RedM client itself.
  ↳ Help_ar table Table of help ar entries. Add, remove or edit entries following the examples in the file.
  ↳ CommandGroups table on this server (verified against the resources' RegisterCommand calls), so each button runs something real. Group them freely; a button whose command is removed later just does nothing until it is edited here.
  ↳ AdminCommands table Who is allowed: jobs, groups or permissions for admin commands.
config/battlepass.lua - 13 options#

General

Setting Default What it does
BattlePass table REDEMPIRE Battle Pass. The 100 standard and 100 premium rewards below preserve the exact item IDs, quantities and reward types supplied by the server owner.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ SeasonId "pc_season_01" Setting for season id.
  ↳ SeasonName "BATTLE PASS" Text shown to the player for season name. Change it to translate or rebrand.
  ↳ MaxLevel 100 Upper limit for max level.

OutboundShare scales what the pass writes; 1.0 means "all of it".

Setting Default What it does
  ↳ CoreLink table Enabled = false stops the pass awarding core XP at all - the level still tracks the core, it just stops contributing to it.
  ↳ Table "jrs_pausemenu_battlepass" Setting for table.
  ↳ SaveInterval 60000 Time setting for save interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ ClaimCooldown 700 Time setting for claim cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ Premium table Table of premium entries. Add, remove or edit entries following the examples in the file.
  ↳ BuyLevel table Minimum or level requirement for buy level.
  ↳ Ui table Table of ui entries. Add, remove or edit entries following the examples in the file.
  ↳ Rewards table Table of rewards entries. Add, remove or edit entries following the examples in the file.
config/battlepass_pool.lua - 5 options#

LOAD ORDER MATTERS. This file must load AFTER battlepass.lua (the source) and

Setting Default What it does
BattlePassPool table Table of battle pass pool entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Off here and the three pools are exactly what their own files say.

Instead the whole injected block is given a total weight of

Setting Default What it does
  ↳ Share 1.0 Share x (what the pool already totals). At 1.0 a roll is a coin flip between the pool's own rewards and a battle-pass one, whatever pool it is. Set 0.5 for "a third of rolls", 2.0 for "two thirds".
  ↳ RarityWeights table How that block is split between the entries inside it. Relative only - the numbers are shares of the block, not weights in the final pool, so changing Share does not require touching these.
  ↳ Targets table Which systems receive them.
config/client.lua - 12 options#

General

Setting Default What it does
Controls table Table of controls entries. Add, remove or edit entries following the examples in the file.
  ↳ Pause 0xD82E0BD2 P / Controller Start
  ↳ PauseAlternate 0x4A903C11 ESC
PauseMenu table Table of pause menu entries. Add, remove or edit entries following the examples in the file.
  ↳ ReplaceNativeMenu true Switch for replace native menu: true = on, false = off (default true).
  ↳ ToggleCooldown 350 Time setting for toggle cooldown. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ CloseSuppression 950 Number for close suppression (default 950).
  ↳ DisablePlayerControlWhileOpen true Turns off player control while open: true = yes, false = no (default true).
UiApps table RedM UI applications opened by the Map and Settings cards.
  ↳ Map "map" Setting for map.
  ↳ Settings "settings_menu" Setting for settings.
  ↳ LaunchTimeout 3000 Time setting for launch timeout. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
config/crates.lua - 9 options#

WEIGHTS, NOT PERCENTAGES

Setting Default What it does
Crates table Table of crates entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Table "jrs_pausemenu_crates" Premium ownership and the per-character open counter.
  ↳ SaveInterval 60000 Time setting for save interval. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
  ↳ ClaimCooldown 900 Floor between two accepted openings from the same player, in ms.
  ↳ RevealMs 2600 How long the reveal reel spins. The result is already decided and already granted before it starts.
  ↳ Premium table PREMIUM. Same shape as Config.BattlePass.Premium: bought once, kept forever, priced in one of the character's real currencies.

Openings are TICKET-ONLY: every crate costs ticketCost x the

Setting Default What it does
  ↳ Payment table STORE tab (config/store/packages.lua, crate_ticket) with a FINITE stock that depletes per sale and auto-restocks - the scarcity is the point. To go back to cash openings: RequireTicket = false.
  ↳ List table The crates, in the order they are shown.
Notes from the README#
text
# REDEMPIRE Pause Menu 6.32.1
## "The server did not answer in time" - the rate limiter was eating the request
Reported against the LEVELS tab, but it could hit any of JOBS / LEVELS / ASSETS
/ EVENTS, and it had nothing to do with the database being slow. Every table
these sections read was checked on the live server: the biggest is
`jrs_properties` at 134 rows, `jrs_job_levels` has two, and each is indexed on
the column it is filtered by. The queries were never the problem.
`allow()` was. When a request arrived inside its rate-limit window the handler
did `return` - **answering nothing at all**. The page cannot tell "refused" from
"still coming", so its only way out was the 10-second timeout in
`requestSection()`, which is the SOMETHING WENT WRONG screen. Two separate
faults stacked up:
1. **One stamp covered every section.** `allow(src, 'Section')` used a single
   timestamp for all of them, so opening JOBS and then LEVELS within a second
   was treated as the same request repeated - when they are two different
   questions with two different answers. Clicking two tabs in a row was enough
   to kill the second one. Sections are now keyed individually
   (`Section:levels`), so a throttle can only ever delay a repeat of the *same*
   tab. `selectProfession` shared that stamp too, so pressing SELECT just after
   the JOBS tab loaded silently did nothing; it has its own key now.
2. **A throttled request was never served.** It is now **deferred** rather than
   dropped: `schedule()` runs the work immediately, or schedules it for the
   moment the window closes. A second request for the same key while one is
   already deferred is dropped - because the deferred one is about to answer it
   too. So a spam loop still cannot make the server build more than one payload
   per window per key, which is the entire point of the limit, and an honest
   click always gets its tab. Verified under a fake clock over five scenarios
   including a 21-request burst, which collapses to exactly one build.
`saveBaseSettings` keeps the old plain `allow()`, because it is the one caller
that already *answers* when it refuses ("Please wait a moment before saving
again"). Deferring a write would mean the next click lands on a form the server
is still storing.
## Two smaller things in the same pass
- **The section timeout is 5s with one silent retry**, not 10s and done. Ten
  seconds of blank panel reads as broken long before the error admits it, and
  with the server now able to defer a reply by up to its window, a first miss is
  far more likely to be timing than failure. The skeleton stays up through the
  retry rather than restarting, and the error only appears if the second attempt
  is ignored too - confirmed it retries exactly once and does not loop.
- **The query watchdog stopped parking a thread for 8 seconds per query.** It
  was one `Wait(8000)` after *every* query, including the ones that answered in
  a millisecond, so opening the menu left a couple of dozen threads sitting in
  the scheduler with nothing to do. It polls now and exits as soon as the query
  has answered.
## sql/jrs_pausemenu.sql is complete again

Paid (server only)   jrs_player_tags

Nearby player names, server IDs, and up to three purchasable tag names per character

Resource jrs_player_tags
Folder [INTERFACE]
Version 3.3.0
Author jrs team
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 1,226 Lua lines

Database tables

IF, jrs_player_tags

config/config.lua - 37 options#

General

Setting Default What it does
Enabled true Master switch for the nearby player name / ID overlay.
Command "tag" Open your own tag editor (requires granted access)
ManageCommand "tagmenu" Open the in-game permission manager
ManagementGroups table Only these jrs_core groups can grant/revoke tag access. Tag access itself is granted in-game and saved per character in MySQL.
  ↳ owner true Switch for owner: true = on, false = off (default true).
  ↳ admin true Switch for admin: true = on, false = off (default true).
AllowSelfEdit true Allows self edit: true = yes, false = no (default true).
HoldControl 0x8AAA0AD4 Nearby player overlay (name + server ID for everyone, optional special tag above it) Uses the key from the former jrs_playernames resource by default.
HoldToShow true Switch for hold to show: true = on, false = off (default true).
DrawDistance 30.0 Distance in game units that applies to draw distance.
TagDrawDistance 10.0 Distance in game units that applies to tag draw distance.
HeightOffset 0.22 Extra clearance above the SKEL_Head bone (not a root offset anymore - client.lua anchors to the actual head bone so this just decides how far the tag floats above the hair).
RefreshRate 50 Rate or multiplier for refresh rate.
ShowSelf true Shows self: true = yes, false = no (default true).
OnlyOnScreen true Switch for only on screen: true = on, false = off (default true).
ShowPlayerName true Shows player name: true = yes, false = no (default true).
ShowServerId true Shows server id: true = yes, false = no (default true).
ShowVoiceIndicator true Shows voice indicator: true = yes, false = no (default true).
MaxTagLength 32 Tag settings
DefaultTagText "TAG" Text shown to the player for default tag text. Change it to translate or rebrand.
DefaultTagColor "#ffffff" Setting for default tag color.

THE LIMIT IS ENFORCED ON THE SERVER, not by the interface. The editor draws

Setting Default What it does
MaxNames 3 this many cards, but server/server.lua clamps the saved list to the same number regardless of what a client sends, so a modified page cannot save a fourth name.
TagColors table Colour swatches offered in the editor. The player may also enter any hex colour by hand; these are only the quick picks, and the list can be any length. Names are shown under each swatch.

Turning this off does not take access away from anyone who already has it;

Setting Default What it does
Purchasable table it only stops the store's grant event from being honoured.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ GrantEvent "jrs_pausemenu:grant:GiveTagName" The grant event jrs_pausemenu's store delivery calls, and the event this resource answers on. Both are server-only; see server/server.lua.
  ↳ ResultEvent "jrs_pausemenu:grant:result" Setting for result event.
  ↳ StartingText "TAG" What a bought tag starts as, before the player edits it.
  ↳ StartingColor "#e7c56c" Setting for starting color.

Stack above every head, top to bottom:

Setting Default What it does
Level table [ name ] name + ID (unchanged) Nothing here is new data: everything is read from replicated state bags that jrs_core / jrs_servertag already publish, so the server is untouched.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ ShowBadges true Shows badges: true = yes, false = no (default true).
  ↳ ShowServerTag true jrs_servertag tier icon while the player wears the tag
  ↳ ShowDutyJob true police star / doctor cross, ONLY while on duty
  ↳ Ranks table Rank emblem by core level (1..100). shape is drawn by the NUI: circle | shield | star | sheriff | crown | diamond
  ↳ DutyJobs table On-duty job icon. A job matches when its name CONTAINS one of the words (so medicval / doctorsd / sheriffbw all match).
Debug false Debug output for debug: true = yes, false = no (default false).
Notes from the README#
text
# REDEMPIRE Player Tags
Nearby player identity overlay, plus the custom name tag shown above a
character's head.
## Nearby overlay
- Hold the configured key to show nearby character names and Server IDs.
- Uses the current `jrs_core` character name, with a RedM player-name fallback
  while identity is not ready.
- Optional voice/talking indicator.
- A character with tag access shows their custom tag above the name/ID line.
- Join-order safe: clients receive the current player/tag cache on character ready.
## Three names per character (3.1.0)
A character keeps up to **three** saved tag names, each with its own colour, and
picks which one is active. Only the active name is shown above their head.
- `Config.MaxNames` sets the limit. **It is enforced on the server**: whatever
  the page sends, `server/server.lua` clamps the saved list, so a modified
  interface cannot save a fourth name.
- `Config.TagColors` is the list of quick-pick swatches. A player can also enter
  any hex colour.
- The names live in the `slots` column (JSON) with `active_slot` beside it. The
  active name is *also* written to `tag_text` / `tag_color`, which is what the
  overlay broadcast and every drawing path already read - so nothing about how a
  tag reaches other screens changed, and a row written before this feature still
  works: it becomes slot one.
- The columns are added by an additive `ALTER TABLE ... ADD COLUMN IF NOT EXISTS`
  on boot. Nothing is backfilled and nothing is dropped.
## Buying a tag (3.1.0)
Tag access can now be bought from the REDEMPIRE store as **CUSTOM NAME TAG**
(`config/store/tagname.lua` in `jrs_pausemenu`), as well as granted by an admin.
- The store's delivery step triggers `Config.Purchasable.GrantEvent`
  (`jrs_pausemenu:grant:GiveTagName`) and waits for the answer on
  `Config.Purchasable.ResultEvent`. Both handlers here are **server-only**
  (`AddEventHandler`, never `RegisterNetEvent`), so no client can grant itself a
  tag without paying.
- The grant reads its own row back before reporting success, so a failure
  refunds instead of charging for a tag nobody got.
- **A second purchase is refused**: the three name slots come with the one
  unlock, so buying again would add nothing. The refusal arrives at the store as
  an ordinary delivery failure and is refunded with the reason shown.
- `Config.Purchasable.Enabled = false` stops the grant event being honoured. It
  does not take access away from anyone who already has it.
## Interface
The editor is built on `html/theme/unified-ui.css` - the same shared theme the
weather admin panel, `jrs_stores` and `jrs_farming`'s dashboards use - so it
matches the rest of the server's tooling rather than approximating it.
`html/panel.css` adds layout only.

Paid (server only)   jrs_rcboat

JRS remote-controlled RC boat rental and multiplayer racing for RedM

Resource jrs_rcboat
Folder [INTERFACE]
Version 1.5.3
Author JRS
Interface Yes (NUI)
Languages ar, en
Code size 2,816 Lua lines

Commands

  • /rcboatcp
  • /rcboatracetest
  • /rcboattest
config.lua - 103 options#

General

Setting Default What it does
Debug false Debug output for debug: true = yes, false = no (default false).
BoatModel "RCBOAT" Native RDR2 RC boat, hash 0x5E56769C
RentalPrice 10 Money value for rental price. Rewards go through the economy multiplier of jrs_core.
CurrencyType 0 jrs_core: 0 = Cash, 1 = Gold, 2 = rol, 3 = Dirty Money
PayFromBank false Set PayFromBank = true to charge/refund through jrs_banking's real bank ledger (the balance shown on the metabolism HUD) instead of cash.
BankName "SaintDenis" branch used for the debit/credit when PayFromBank is on
InteractDistance 2.2 Distance in game units that applies to interact distance.
DrawDistance 12.0 Distance in game units that applies to draw distance.
MaxBoatDistance 450.0 Distance in game units that applies to max boat distance.
MaxSessionSeconds 0 0 = unlimited until the player exits
RentalCooldownSeconds 3 Time setting for rental cooldown seconds. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
Controls table Table of controls entries. Add, remove or edit entries following the examples in the file.
  ↳ Forward 0x8FD015D8 W
  ↳ Backward 0xD27782E3 S
  ↳ Left 0x7065027D A
  ↳ Right 0xB4E465B4 D
  ↳ Exit 0x156F7119 BACKSPACE
Movement table Table of movement entries. Add, remove or edit entries following the examples in the file.
  ↳ MaxForwardSpeed 7.5 Upper limit for max forward speed.
  ↳ MaxReverseSpeed 3.0 Upper limit for max reverse speed.
  ↳ Acceleration 4.2 Number for acceleration (default 4.2).
  ↳ Deceleration 3.4 Number for deceleration (default 3.4).
  ↳ TurnSpeed 58.0 Number for turn speed (default 58.0).
  ↳ MinTurnMultiplier 0.28 Minimum or level requirement for min turn multiplier.
ShoreProtection table Table of shore protection entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ MinWaterDepth 0.18 Minimum water depth (meters) required to allow boat travel
  ↳ LookaheadDistance 1.4 Lookahead scan distance (meters) in front of the boat to detect banks/shore
  ↳ PushbackForce 1.4 Elastic repulsion impulse applied to bounce the boat back into water when it reaches the shore
  ↳ MaxSurfaceDelta 0.14 Maximum height (meters) the boat is permitted to rise above the water surface
  ↳ MinSurfaceClearance 0.12 Minimum or level requirement for min surface clearance.
  ↳ SafeReturnZOffset 0.04 Number for safe return z offset (default 0.04).
  ↳ ReturnToLastSafeWater true Switch for return to last safe water: true = on, false = off (default true).
  ↳ SafePositionUpdateMs 100 Breadcrumb history of deep-water positions for safe recovery
  ↳ SafeHistorySize 64 Number for safe history size (default 64).
  ↳ SafeHistoryMinDistance 0.50 Distance in game units that applies to safe history min distance.
  ↳ LandRecoveryDelayMs 80 Delay before recovering boat back to water if it somehow ends up on land
  ↳ ShoreBrakeMs 280 Number for shore brake ms (default 280).
Camera table Table of camera entries. Add, remove or edit entries following the examples in the file.
  ↳ Offset vector3(0.0, -4.2, 2.0) Setting for offset.
  ↳ LookAtOffset vector3(0.0, 0.8, 0.25) Setting for look at offset.
  ↳ Fov 55.0 Number for fov (default 55.0).
  ↳ TransitionMs 450 Number for transition ms (default 450).
  ↳ FollowSmoothness 9.0 Number for follow smoothness (default 9.0).
  ↳ KeepAboveWater true Switch for keep above water: true = on, false = off (default true).
  ↳ MinHeightAboveWater 1.15 Minimum or level requirement for min height above water.
  ↳ MinLookAtAboveWater 0.10 Minimum or level requirement for min look at above water.
UI table Table of ui entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
Prompt table Text shown to the player for prompt. Change it to translate or rebrand.
  ↳ Control 0xCEFD9220 E
  ↳ Title "RC Boat Rental" Text shown to the player for title. Change it to translate or rebrand.
  ↳ Text "Rent RC Boat" Text shown to the player for text. Change it to translate or rebrand.
Blip table Map blip so the rental station / bot can be found from a distance.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Sprite 2005921736 2005921736 = Canoe / Boat sprite (matches jrs_boats)
  ↳ Scale 0.2 Rate or multiplier for scale.
  ↳ Colour "BLIP_MODIFIER_MP_COLOR_32" White
BoatBlip table Map blip attached to the RC boat entity while driving
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ Sprite 2005921736 Map blip or icon settings for sprite.
  ↳ Scale 0.18 Rate or multiplier for scale.
  ↳ Colour "BLIP_MODIFIER_MP_COLOR_32" White
  ↳ Name table Text shown to the player for name. Change it to translate or rebrand.
Race table Multiplayer race settings.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ EntryFee 0 Race still uses the normal boat rental price above. This is an OPTIONAL additional race entry fee.
  ↳ Reward 5 Money value for reward. Rewards go through the economy multiplier of jrs_core.
  ↳ MinPlayers 2 Minimum or level requirement for min players.
  ↳ MaxPlayers 4 Upper limit for max players.
  ↳ LobbyCountdownSeconds 8 Once at least MinPlayers are queued, this lobby countdown begins.
  ↳ StartCountdownSeconds 3 Number for start countdown seconds (default 3).
  ↳ StartSpacing 1.65 Separation between RC boats on the starting line.
  ↳ CheckpointRadius 1.0 How close the boat must be to count a checkpoint.
  ↳ CircleSegments 40 Visual circle around the active checkpoint.
  ↳ CircleHeightAboveWater 0.18 Number for circle height above water (default 0.18).
  ↳ ShowNextCheckpoint true Shows next checkpoint: true = yes, false = no (default true).
  ↳ FinishHoldSeconds 5 Seconds after a winner is decided before every race boat is returned.
RentalScene table Table of rental scene entries. Add, remove or edit entries following the examples in the file.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ SpawnEntitiesOnStart true Switch for spawn entities on start: true = on, false = off (default true).
  ↳ PedModel "A_M_M_SDDockForeman_01" If the configured ped model fails to load on a specific build, the script will fall back to the current player's model so the seller NPC is never invisible.
  ↳ FallbackPedModels table Game model or entity used for fallback ped models.
  ↳ FallbackToPlayerModel true Switch for fallback to player model: true = on, false = off (default true).
  ↳ PedScenario "WORLD_HUMAN_STAND_WAITING" Game model or entity used for ped scenario.
  ↳ TableModel "p_table04x" Game model or entity used for table model.
  ↳ TableTopHeight 0.78 Number for table top height (default 0.78).
  ↳ TableZOffset 0.0 Number for table z offset (default 0.0).
  ↳ SnapTableToGround false Switch for snap table to ground: true = on, false = off (default false).
  ↳ DecorProps table Local offsets are relative to the table entity itself, so the props stay exactly on top of the table instead of floating in the air.
  ↳ DisplayBoat table Table of display boat entries. Add, remove or edit entries following the examples in the file.
PlayerControl table Key or control used for player control. Controls are hash values from the game input list.
  ↳ Enabled true Turns enabled on or off (default true).
  ↳ PropModel "RCBOAT" Use the exact same native RC boat model as the handheld prop. RCBOAT is a vehicle model, so the client creates a non-colliding display vehicle and attaches it to the player's hand for the control animation.
  ↳ PropEntityType "vehicle" Game model or entity used for prop entity type.
  ↳ PropBone "SKEL_R_Hand" Game model or entity used for prop bone.
  ↳ PropOffset vector3(0.12, 0.03, -0.04) Game model or entity used for prop offset.
  ↳ PropRotation vector3(5.0, 82.0, 95.0) Game model or entity used for prop rotation.
  ↳ Scenario "WORLD_HUMAN_CROUCH_INSPECT" Animation settings for scenario.
  ↳ FaceBoatOnStart true Switch for face boat on start: true = on, false = off (default true).
Rentals table raceCheckpoints MUST be in the order players have to pass them. Put the checkpoints on the water. Z can be approximate; the client snaps the visual circle to the actual water surface when possible.
  ↳ 1 table Table of 1 entries. Add, remove or edit entries following the examples in the file.
EnableTestCommand false Turns test command on or off (default false).
Notes from the README#
text
# jrs_rcboat
Version 1.5.3
## Water recovery
- Records a rolling history of confirmed water positions while the RC boat moves.
- If the boat leaves the lake or reaches dry land, it is moved back to the geographically closest recorded water point.
- Preserves the saved heading and keeps the existing camera/session active.
- No vehicle delete/recreate is needed, so recovery is immediate and smooth.

Paid (server only)   jrs_scenes

RP scenes: /scene pins a short text in the world for nearby players (Arabic-safe NUI rendering)

Resource jrs_scenes
Folder [INTERFACE]
Version 0.1.0
Author jrs team
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 301 Lua lines

Database tables

jrs_scenes

config.lua - 10 options#

General

Setting Default What it does
Command "scene" /scene <text>
RemoveCommand "scenedel" removes the nearest of your scenes (admins: anyone's)
MaxLength 180 Upper limit for max length.
MaxPerCharacter 3 Upper limit for max per character.
DurationMinutes 120 scenes expire on their own (kept across restarts until then)
CooldownSeconds 15 Time setting for cooldown seconds. The unit (seconds, minutes or milliseconds) is usually in the option name or the comment of the neighbouring options.
ViewDistance 9.0 how close you must be to read it
RemoveDistance 3.0 Distance in game units that applies to remove distance.
SyncRadius 120.0 server only sends scenes this close to you
AdminGroups table Who is allowed: jobs, groups or permissions for admin groups.

Paid (server only)   progressbar

Advanced Progress Bar

Resource progressbar
Folder [INTERFACE]
Version 1.0.0
Author jrs team
Interface Yes (NUI)
Languages ar, en
Code size 349 Lua lines

Commands

  • /testprog

Exports

Progress, ProgressWithStartAndTick, ProgressWithStartEvent, ProgressWithTickEvent, isDoingSomething

Notes from the README#
text
# Lv-ProgressBar
# 🕹️ FiveM Progress Bar
A dynamic, customizable progress bar for FiveM/QBCore. Perfect for immersive roleplay interactions!
## ✨ **Features**
- **Step Visualization**: Dynamic steps fill up as progress advances.
- **Real-Time Percentage**: Clean percentage display with smooth animations.
- **Cancel Support**: Actions can be interrupted, resetting the UI.
- **Easy Integration**: Designed for QB-Core but adaptable to any framework.
## 🛠️ **Installation**
1. Download the `progressbar` folder.
2. Add it to your FiveM server’s `resources` directory.
3. Add `ensure progressbar` to your `server.cfg`.
4. Trigger the progress bar in-game with:
'''lua
servar
TriggerClientEvent('progressbar:client:hud', _source ,label, duration)
claint
TriggerEvent('progressbar:client:hud' ,label, duration)
exports['progressbar']:Progress({
    label = "Repairing Vehicle",
    duration = 10000, -- 10 seconds
}, function(cancelled)
    if not cancelled then
        -- Action completed
    end
end)
Modification
.progress-step.active {
    background-color: #FF0000; /* Red progress steps */
    box-shadow: 0 0 15px rgba(255, 0, 0, 0.5); /* Glow effect */
}

Paid (server only)   radialmenu

Resource radialmenu
Folder [INTERFACE]
Version 1.0.0
Interface No
Code size 18 Lua lines
JRS Core · Free and open-source RedM framework · made by the JRS TEAM