Character creation, clothing, barber, metabolism, animations and everything that changes the player ped.
В этой папке 16 скриптов. Выберите скрипт во вкладках ниже.
Free (included in JRS Core) jrs_3dme
JRS Core /me - roleplay text above your head
| Resource | jrs_3dme |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core |
| Interface | No |
| Code size | 906 строк Lua |
config.lua - 8 опций#
General
| Setting | Default | What it does |
|---|---|---|
Language |
"en" |
'en' or 'ar' |
Command |
"me" |
Настройка для command. |
Color |
table |
Таблица записей color. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
Duration |
6000 |
ms the text stays |
DisplayDistance |
20.0 |
Расстояние в игровых единицах для display distance. |
MaxLength |
120 |
Верхний предел для max length. |
Cooldown |
2 |
seconds between two /me |
ChatCopy |
true |
also write it in the chat of nearby players |
Free (included in JRS Core) jrs_animations
A tool to define animations and use them in your scripts with an export
| Resource | jrs_animations |
| Folder | [CHARACTER] |
| Version | 1.0 |
| Author | JRS TEAM |
| Interface | Yes (NUI) |
| Code size | 504 строк Lua |
Commands
/endanimation/focus/printcoords/startanimation/testanimation
Exports
initiate
config.lua - 16 опций#
General
| Setting | Default | What it does |
|---|---|---|
DevTools |
false |
Переключатель для dev tools: true = вкл., false = выкл. (по умолчанию false). |
Animations |
table |
If you add new animations here, please consider raising a PR and sharing it with the community! :) Read through the README to see how to add new animations. |
↳ craft |
table |
Default Animation |
↳ spindlecook |
table |
Таблица записей spindlecook. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ knifecooking |
table |
Таблица записей knifecooking. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ campfire |
table |
Таблица записей campfire. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ riverwash |
table |
Таблица записей riverwash. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ hoeing |
table |
Таблица записей hoeing. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ readnewspaper |
table |
Таблица записей readnewspaper. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ gravedigging |
table |
Таблица записей gravedigging. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ carry_box |
table |
Таблица записей carry box. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ carry_sugar |
table |
Таблица записей carry sugar. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ sweeping |
table |
Таблица записей sweeping. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ carry_barrel |
table |
Таблица записей carry barrel. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ carry_moonshine |
table |
Таблица записей carry moonshine. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ carry_moonshine2 |
table |
Таблица записей carry moonshine2. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
Free (included in JRS Core) jrs_attached_objects
JRS Core attached objects - wearable props from items (shield, arrow pouch, miner lamp)
| Resource | jrs_attached_objects |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core, jrs_inventory |
| Interface | No |
| Code size | 1,139 Lua lines |
config.lua - 9 опций#
General
| Setting | Default | What it does |
|---|---|---|
Debug |
false |
Debug output for debug: true = да, false = нет (по умолчанию false). |
DeleteAllAttached |
table |
Таблица записей delete all attached. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ Command |
"deleteallattachedprops" |
Настройка для command. |
↳ Description |
'Execute this command to rem... |
Текст, который видит игрок для description. Измените для перевода или ребрендинга. |
DeleteAllOnPlayerRespawn |
true |
Clear all player ped attached objects - props if the player has been respawned (not revived). |
AttachedItemSets |
table |
Предметы инвентаря для attached item sets. Имена должны быть в таблице jrs_items. |
↳ natives_backshield |
table |
ITEM NAME |
↳ natives_arrow_pouch_bag |
table |
ITEM NAME |
↳ miner_hat |
table |
ITEM NAME |
Free (included in JRS Core) jrs_barber
jrs core Barber - standalone barber and grooming system
| Resource | jrs_barber |
| Folder | [CHARACTER] |
| Version | 3.7.2 |
| Author | jrs team |
| Depends on | /assetpacks, /assetpacks-redm, jrs_core, jrs_inventory |
| Interface | Yes (NUI) |
| Languages | ar, en |
| Code size | 11,078 Lua lines |
Exports
CaptureCurrentBarber, GetCharacterBarber, IsBarberBusy, OpenBarber, SetCharacterBarber
Database tables
jrs_appearance_legacy_backup, jrs_appearance_onboarding, jrs_barber, jrs_barber_preset
Notes from the README#
# jrs_barber 3.1.2
Standalone REDEMPIRE barber/grooming resource for RedM.
## Dependencies
- jrs_core
- jrs_inventory
- oxmysql
## Start order
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_inventory
ensure jrs_barber
'''
## Barber flow
1. The world prompt is shown only while the barber session is idle.
2. Holding the configured key hides the prompt immediately.
3. The resource finds the closest Rockstar barber-seat scenario.
4. If the chair has no scenario, a barber-seat scenario is attached to the closest supported barber-chair prop.
5. The player must finish sitting before any NUI/camera opens.
6. The chair scenario remains authoritative until Save/Close. Back navigation does not stand the player up.
7. No hairstyle is removed before the editor data is ready, so a failed callback can never leave the player bald.
## Main config
'''lua
BarberConfig.PromptKey = 0x760A9C6F
BarberConfig.PromptDistance = 2.2
BarberConfig.ChairAnimation = true
BarberConfig.RequireChairBeforeOpen = true
BarberConfig.ChairTimeout = 8000
BarberConfig.ChairSettleDelay = 700
'''
Run `sql/install.sql` once if the tables do not already exist.
## 3.1.1 paired release
- Barber logic is unchanged from 3.1.0; version aligned with the clothing weapon-layer fix package.
## 3.1.2 prompt description fix
- Native prompt title now follows the nearest configured barber shop.
- Prompt description is explicit and stable: Hair, beard & grooming.
- jrs_interactions receives the same description when used.
- Prompt remains hidden for the whole chair/editor session.Free (included in JRS Core) jrs_canteen
JRS Core canteen - drink and refill at rivers and lakes
| Resource | jrs_canteen |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core, jrs_inventory |
| Interface | No |
| Code size | 258 строк Lua |
config.lua - 38 опций#
General
| Setting | Default | What it does |
|---|---|---|
Language |
"en" |
'en' or 'ar' |
DrinkThirst |
250 |
thirst gained per sip |
RefillThirst |
1000 |
thirst set to full when drinking straight from fresh water |
DrinkTime |
5000 |
ms the drinking animation lasts |
RefillTime |
8000 |
ms kneeling at the water to refill |
CanteenItems |
table |
every canteen item (all usable) |
Canteens |
table |
canteen item -> what it becomes after one sip (missing = empty, cannot drink) |
↳ canteen100 |
"canteen75" |
Настройка для canteen100. |
↳ canteen75 |
"canteen50" |
Настройка для canteen75. |
↳ canteen50 |
"canteen25" |
Настройка для canteen50. |
↳ canteen25 |
"canteen0" |
Настройка для canteen25. |
FullCanteen |
"canteen100" |
Настройка для full canteen. |
EmptyCanteen |
"canteen0" |
Настройка для empty canteen. |
FreshWater |
table |
Fresh water you can refill from (salt water is excluded on purpose) |
↳ -1504425495 |
"San Luis River" |
Настройка для 1504425495. |
↳ -1369817450 |
"Lake Don Julio" |
Настройка для 1369817450. |
↳ -1356490953 |
"Flat Iron Lake" |
Настройка для 1356490953. |
↳ -1781130443 |
"Upper Montana River" |
Настройка для 1781130443. |
↳ -1300497193 |
"Owanjila" |
Настройка для 1300497193. |
↳ -1276586360 |
"HawkEye Creek" |
Настройка для 1276586360. |
↳ -1410384421 |
"Little Creek River" |
Настройка для 1410384421. |
↳ 370072007 |
"Dakota River" |
Настройка для 370072007. |
↳ 650214731 |
"Beartooth Beck" |
Настройка для 650214731. |
↳ 592454541 |
"Lake Isabella" |
Настройка для 592454541. |
↳ -804804953 |
"Cattail Pond" |
Настройка для 804804953. |
↳ 1245451421 |
"Deadboot Creek" |
Настройка для 1245451421. |
↳ -218679770 |
"Spider Gorge" |
Настройка для 218679770. |
↳ -1817904483 |
"O'Creagh's Run" |
Настройка для 1817904483. |
↳ -811730579 |
"Moonstone Pond" |
Настройка для 811730579. |
↳ -1229593481 |
"Roanoke Valley" |
Настройка для 1229593481. |
↳ -105598602 |
"Elysian Pool" |
Настройка для 105598602. |
↳ -2040708515 |
"Lannahechee River" |
Настройка для 2040708515. |
↳ 231313522 |
"Creek" |
Настройка для 231313522. |
↳ 2005774838 |
"Creek" |
Настройка для 2005774838. |
↳ -1287619521 |
"Creek" |
Настройка для 1287619521. |
↳ -1308233316 |
"Creek" |
Настройка для 1308233316. |
↳ -196675805 |
"Creek" |
Настройка для 196675805. |
↳ -49694339 |
"Arroyo De La Vibora" |
Настройка для 49694339. |
Free (included in JRS Core) jrs_character
jrs core Character System
| Resource | jrs_character |
| Folder | [CHARACTER] |
| Version | 4.2.52-jrs-service |
| Author | jrs team |
| Depends on | jrs_barber, jrs_clothing, jrs_core, jrs_inventory, oxmysql |
| Interface | Yes (NUI) |
| Languages | ar, en |
| Code size | 25,558 Lua lines |
Commands
/fixheight/fixscale/rc/scale
Exports
AdminDeleteActiveCharacter, AdminOpenCharacterEditor, AdminOpenCharacterSelector, ApplyCachedPlayerScale, ApplyCharacterExpressions, ApplyNuiFocus, GetCachedExpressions, GetCachedPlayerScale, GetCharacterAge, GetCharacterAgeById, GetCurrentCharacterAge, IsCharacterGateActive, IsCharacterReady, IsReloadingCurrentCharacter, ReloadCurrentCharacter, RestoreCharacterAppearance, loading
Database tables
jrs_character_creator
config/config.lua - 90 опций#
General
| Setting | Default | What it does |
|---|---|---|
Debug |
false |
Debug output for debug: true = да, false = нет (по умолчанию false). |
AgingMode |
"playtime" |
In playtime mode, the character keeps the age calculated from the date of birth when it is created. Every HoursPerYear hours played with that specific character adds one year. Time is saved per character in the database. |
HoursPerYear |
24 |
reachable over a real character's active lifetime instead of never showing up. The previous value (100) needed 1200+ hours just to see the first grey hair. |
AgingSaveIntervalMinutes |
5 |
Настройка времени для aging save interval minutes. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
MinimumAge |
18 |
No character may be created younger than this. Enforced both client-side (immediate feedback in the creator) and server-side (authoritative). |
Changing the year re-dates the whole server: every age is (WorldDate.year -
| Setting | Default | What it does |
|---|---|---|
WorldDate |
table |
birth year), so raising it ages everyone by the difference. Birth years are stored as entered and are never rewritten. |
↳ year |
1899 |
Число для year (по умолчанию 1899). |
↳ month |
6 |
Число для month (по умолчанию 6). |
↳ day |
1 |
Число для day (по умолчанию 1). |
EarliestBirthYear |
1790 |
Nobody may claim to have been born before this. Purely a sanity bound for the creator's date picker and the server's validation; it also stops a birth year of 0001 producing an 1898-year-old character. |
SpawnVitals |
table |
Character vitals applied after selecting or respawning a character. The creator changes the player model while loading appearance, and RedM can leave the new ped with the temporary selector ped's low health/stamina. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ FillHealth |
true |
Fill both the outer bars and the inner cores. |
↳ FillHealthCore |
true |
Переключатель для fill health core: true = вкл., false = выкл. (по умолчанию true). |
↳ FillStamina |
true |
Переключатель для fill stamina: true = вкл., false = выкл. (по умолчанию true). |
↳ FillStaminaCore |
true |
Переключатель для fill stamina core: true = вкл., false = выкл. (по умолчанию true). |
↳ Health |
600 |
Число для health (по умолчанию 600). |
↳ HealthCore |
100 |
Число для health core (по умолчанию 100). |
↳ Stamina |
100.0 |
Число для stamina (по умолчанию 100.0). |
↳ StaminaCore |
100 |
Число для stamina core (по умолчанию 100). |
↳ ReapplyDelaysMs |
table |
Repeat briefly because appearance/metabolism resources may finish loading during the first second after the ready event. |
↳ ApplyOnCharacterSelect |
true |
Переключатель для apply on character select: true = вкл., false = выкл. (по умолчанию true). |
↳ ApplyAfterDeathRespawn |
true |
Переключатель для apply after death respawn: true = вкл., false = выкл. (по умолчанию true). |
↳ DeathRespawnAliveWaitMs |
15000 |
Some death scripts fire their respawn event just before the replacement ped becomes alive. Wait only for a real living ped; never revive a corpse. |
↳ DeathRespawnPollMs |
100 |
Настройка времени для death respawn poll ms. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
SpawnAnimation |
table |
Wake-up animation played when a living character enters the game world. It is skipped for characters that are still dead. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ Dictionary |
"script_rc@bch2@leadout@rsc_6" |
Настройка для dictionary. |
↳ Name |
"wakeup_slow_charles" |
Текст, который видит игрок для name. Измените для перевода или ребрендинга. |
↳ Duration |
-1 |
Настройка времени для duration. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
↳ Flag |
0 |
Число для flag (по умолчанию 0). |
↳ BlendInSpeed |
1.0 |
Число для blend in speed (по умолчанию 1.0). |
↳ BlendOutSpeed |
1.0 |
Число для blend out speed (по умолчанию 1.0). |
↳ LoadTimeoutMs |
10000 |
Настройка времени для load timeout ms. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
↳ ApplyOnCharacterSelect |
true |
Existing and newly-created characters both use the same final spawn path. |
↳ ApplyAfterDeathRespawn |
true |
The built-in REDEMPIRE revive routes already use this wake-up animation too. |
↳ WakeUpTimeMs |
7000 |
Time the character spends in the sleeping/wake-up animation before controls are returned. Gives ample time for low-end PCs (slow HDDs/CPUs) to stream all textures, face and clothes. |
↳ FadeInDelayMs |
2000 |
Настройка времени для fade in delay ms. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
↳ EnsureComponentsTimeoutMs |
12000 |
Настройка времени для ensure components timeout ms. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
SpawnBook |
table |
New-character city selection book. Each city can be enabled or disabled independently with Enabled = true/false. Keep at least one city enabled so a new character always has a valid spawn. |
↳ Title |
"Choose Your Beginning" |
Текст, который видит игрок для title. Измените для перевода или ребрендинга. |
↳ Subtitle |
"Every trail begins somewhere." |
Настройка для subtitle. |
↳ SelectLabel |
"Begin in %s" |
Текст, который видит игрок для select label. Измените для перевода или ребрендинга. |
↳ PageLabel |
"Page %s of %s" |
Текст, который видит игрок для page label. Измените для перевода или ребрендинга. |
↳ Ar |
table |
Arabic copy for the book. Any field left out falls back to the English. Each city below carries its own Ar block the same way. |
↳ PreviewWorld |
false |
The book already contains a city image for every page. Enable this only when you also want the game camera to move to the city while browsing. |
↳ Cities |
table |
Таблица записей cities. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
AgingEffects |
table |
Optional automatic visual and movement effects based on the character's playtime age. These effects are runtime-only: the player's original hair, beard and face selections are never overwritten in the database. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ PreviewInCharacterSelector |
true |
Show the automatic grey hair / wrinkles on selector preview peds too. |
↳ RuntimeEnforcement |
table |
Some dependent resources reload the saved barber appearance immediately after the character-ready event. During this short window, verify the equipped hair tint and repair it without waiting for the playtime save. |
↳ Hair |
table |
Each effect can be disabled independently. |
↳ Beard |
table |
Таблица записей beard. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ Wrinkles |
table |
Таблица записей wrinkles. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ Movement |
table |
Таблица записей movement. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ Stages |
table |
160 = Aged Gray / Silver-White (رمادي مسنّ مشيب) 161 = Pure White (أبيض ناصع) Characters below age 50 keep their 100% natural chosen hair and beard color. |
startScale |
true |
Переключатель для start scale: true = вкл., false = выкл. (по умолчанию true). |
CharacterSwitch |
table |
Character re-selection is intentionally admin-only. Normal players have no command or keybind that can unload the active character. |
↳ enabled |
false |
Включает или выключает enabled (по умолчанию false). |
↳ command |
nil |
Настройка для command. |
↳ 1 |
table |
Таблица записей 1. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
spawnGroups |
table |
Мировые координаты (x, y, z) для spawn groups. |
TimeToRespawn |
50 |
Second |
RespawnCoords |
table |
Настройка времени для respawn coords. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
↳ 1 |
table |
Valentine |
↳ 2 |
table |
Saint Denis |
↳ 3 |
table |
Annesburg |
↳ 4 |
table |
Strawberry |
↳ 5 |
table |
Blackwater |
↳ 6 |
table |
Armandillo |
↳ 7 |
table |
Rhodes |
↳ 8 |
table |
SnowLoc |
↳ 9 |
table |
Guarma |
↳ 10 |
table |
Fort Wallace |
ModelNames |
table |
Игровая модель или сущность для model names. |
↳ male |
"mp_male" |
Настройка для male. |
↳ female |
"mp_female" |
Настройка для female. |
CreatorCam |
table |
Таблица записей creator cam. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ heading |
-83.32 |
Число для heading (по умолчанию -83.32). |
↳ z |
121.305 |
Число для z (по умолчанию 121.305). |
↳ zoom |
50.0 |
Число для zoom (по умолчанию 50.0). |
↳ start |
table |
Таблица записей start. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pitch |
-10.0 |
Число для pitch (по умолчанию -10.0). |
↳ rotateStep |
6.0 |
Число для rotate step (по умолчанию 6.0). |
↳ zoomStep |
5.0 |
Число для zoom step (по умолчанию 5.0). |
↳ zMin |
119.100 |
Минимум или требуемый уровень для z min. |
↳ zMax |
123.300 |
Верхний предел для z max. |
↳ zStep |
0.05 |
Число для z step (по умолчанию 0.05). |
Creator |
table |
Integrated creator and selector settings. |
UseCharSelectRoom |
true |
When true, uses the modern Moonshine Saloon interior (interior 78337) with preconfigured ped slots & lighting instead of outdoor spawnGroups |
Notes from the README#
# jrs_character 3.1.2
Clean REDEMPIRE character lifecycle, selector, creator, clothing, barber, respawn, and playtime-aging resource.
This build contains the city spawn book and wake-up animation only; the experimental identity-card system is not included.
## Structure
'''text
jrs_character/
├── client/client.lua # all client runtime logic
├── server/server.lua # all server runtime logic
├── config.lua # all editable configuration
├── data/client.lua # large client-only asset tables
├── data/shared.lua # shared character appearance defaults
├── ui/ # NUI outside the old creator directory
├── sql/install.sql # database installation / upgrades
└── fxmanifest.lua
'''
## Installation
1. Replace the previous `jrs_character` folder completely. Do not merge the old and new folders.
2. Import `sql/install.sql` once.
3. Ensure resources start in this order: `oxmysql`, `jrs_core`, `jrs_inventory`, `jrs_clothing`, `jrs_barber`, `jrs_character`.
4. Perform a full server restart.
## Compatibility
Event names and exports remain unchanged so existing REDEMPIRE resources continue to call the same APIs.
## New-character spawn book
New characters choose their first city from an open-book UI after finishing appearance and clothing.
Configure pages in `Config.SpawnBook.Cities`. Every city has an independent `Enabled = true/false` toggle, image, description, details, preview camera and final
Included pages: Valentine, Rhodes, Saint Denis, Blackwater, Armadillo and Strawberry.
## Spawn wake-up animation
Living characters play `wakeup_slow_charles` when they enter the game world. Configure or disable it under `Config.SpawnAnimation` in `config.lua`.
## Character Ready Gate (v3.1.4)
The character resource now owns a pre-character gate. While the selector, new-character creator, or final character spawn is still active:
- gameplay controls and the pause/ESC menu are blocked;
- HUD/radar are kept hidden;
- `LocalPlayer.state.jrsCharacterGate` is `true`;
- `LocalPlayer.state.jrsCharacterReady` is `false`.
Only after the selected/created character has finished model, body, clothing, barber, position and final spawn initialization does the resource publish:
- `LocalPlayer.state.jrsCharacterGate = false`
- `LocalPlayer.state.jrsCharacterReady = true`
- event: `jrs_character:gateChanged`
- export: `exports.jrs_character:IsCharacterReady()`
- export: `exports.jrs_character:IsCharacterGateActive()`
Other gameplay/UI resources should defer player-facing initialization until `jrsCharacterReady == true`. Required character dependencies still need to be starteFree (included in JRS Core) jrs_clothing
jrs core Clothing - standalone clothing and outfit system
| Resource | jrs_clothing |
| Folder | [CHARACTER] |
| Version | 3.10.8 |
| Author | jrs team |
| Depends on | /assetpacks, /assetpacks-redm, jrs_core, jrs_inventory |
| Interface | Yes (NUI) |
| Languages | ar, en |
| Code size | 18,055 Lua lines |
Commands
/bodyfitdebug/getnaked/temptest/testclothes/undress
Exports
ApplyFallbackOutfit, CaptureCurrentClothes, EquipMultipleClothes, GetCharacterClothes, GetClothingInfo, GetEquippedCategories, GetEquippedClothing, GetInventoryClothingState, GetTemperatureProtection, IsBandanaEquipped, IsClothingBusy, IsClothingCategoryEquipped, IsPlayerNaked, NativeHasPedComponentLoaded, NativeUpdatePedVariation, OpenClothing, RemoveAllClothesExceptEssentials, RepairWeaponClothing, ResolveUniformClothes, RestorePlayerBodyMeshes, SetCharacterClothes, SetDoorLocksEnabled, SetMetaPedTag, SetNaked, SmartBodyFitPed, ToggleDoorLock, ToggleInventoryClothing, ToggleNaked, UpdateCustomClothes
Database tables
jrs_appearance_legacy_backup, jrs_appearance_onboarding, jrs_clothing_current, jrs_clothing_outfits, jrs_clothing_wearables
Notes from the README#
# REDEMPIRE update 3.1.3
Inventory integration casing + save-to-book-position flow.
# Jrs_clothing
Standalone clothing/outfit resource split from the unified appearance package.
Start order:
1. oxmysql
2. jrs_core
3. jrs_inventory
4. Jrs_clothing
Compatibility: provides `jrs_clothing` for resources that use the legacy lowercase dependency name.
## 2.5.0 category isolation + control layout
- Deterministic NUI/server callbacks (no busy-wait database callbacks).
- Strict tab/category isolation and duplicate-row protection.
- Final responsive layout override for 1080p/2K/4K.
- Split onboarding/database ownership and safer resource cleanup.
## 3.0.0 F1 wearable rebuild + stable compact layout
- F1 opens immediately with a loading row and never waits on SQL.
- Equipped clothing is refreshed from the server with a 650ms local fallback.
- F1 height now follows content; no large empty black panel.
- Wearable sliders send only on committed change to prevent NUI spam.
- Camera/context panels are always disabled in F1.
## 2.8.0 native color swatches + F1 camera cleanup
- Native Red Dead MetaPed tint picker uses exact 0-254 tint indices; 255 disables a channel.
- Components without a valid tint palette stay fixed and expose no color picker.
- Color selection is click-only (no continuous NUI slider spam).
- F1 wearable menu never creates or retains the shop camera/View Controls.
## 2.7.0 native colors + law clothing switch
- Native MetaPed tint controls use the equipped Red Dead palette/tint data instead of synthetic web colors.
- Items with no native tint palette stay fixed and do not expose color controls.
- Law-enforcement clothing is disabled by default through `ClothingConfig.LawClothing.Enabled = false`.
- Set `ClothingConfig.LawClothing.Enabled = true` and restart the resource to make law clothing available again.
- Law assets are filtered before the NUI list is built and blocked again on equip/save paths.
## 3.0.0 exact per-item Red Dead colors + smooth catalogue transition
- Removed the synthetic NUI rainbow completely.
- Color choices now come only from the selected model's real `assets.lua` variants.
- Items with one/no real variant do not show a color picker.
- Color chips are intentionally neutral; the game character is the authoritative live color preview.
- Catalogue transition fades while the book is visibly open, cleans the scene while black, then settles the fitting room before fading in.
## 3.0.2 clean release
- Clothing behavior from 3.0.0 retained unchanged in this clean paired release.
## 3.0.3 paired clean release
- Clothing logic is unchanged from the previous clean release; version aligned with Jrs_barber 3.0.3 for the paired package.
## 3.1.1 weapon-clothing / MetaPed layering fix
- Fixed `_REFRESH_META_PED_SHOP_ITEMS`: refresh mode is now always `1` instead of passing a category hash.
- Full outfits are rebuilt in deterministic layer order; weapon clothing is always applied last.Paid (server only) jrs_key
Radar peek key, horse sprint zones, and RDO-style loading screen
| Resource | jrs_key |
| Folder | [CHARACTER] |
| Version | 1.1.0 |
| Author | jrs team |
| Interface | No |
| Languages | ar, en |
| Code size | 495 строк Lua |
Exports
OpenAdmin
Database tables
IF
config/config.lua - 20 опций#
Everything this resource does is switched from here. Nothing is
| Setting | Default | What it does |
|---|---|---|
Enabled |
true |
Master switch. False leaves the resource loaded but completely inert. |
Hides the minimap while the peek key is held, so the key that opens the
| Setting | Default | What it does |
|---|---|---|
Radar |
table |
jrs_core level display (TAB) does not fight the radar for screen space. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ ControlHash |
0xAC4BD4F1 |
TAB / weapon wheel. Same hash jrs_core uses for its level peek, so the two stay in sync; change both together if you rebind. |
↳ PollMs |
50 |
How often the key is sampled, in ms. This is a radar toggle, not aiming: 50ms is imperceptible and costs a fraction of a per-frame loop. |
The behaviour this resource is named for. Inside any zone below the player
| Setting | Default | What it does |
|---|---|---|
HorseSprint |
table |
cannot spur their horse into a sprint - useful for towns and camps. Zones are added at runtime from the admin menu and persisted server-side, so this list is only the built-in defaults. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ IdlePollMs |
500 |
Sampling rate while OUTSIDE every zone. Raised deliberately: a player who is nowhere near a zone does not need a per-frame check. |
↳ ActivePollMs |
0 |
Sampling rate while INSIDE a zone, where the block has to be re-applied. |
↳ Notify |
true |
Shown once when a player enters a zone. |
↳ NotifyTextKey |
"notify_cannot_gallop" |
locale key, resolved with _U() at usage |
↳ Zones |
table |
{ x, y, z, radius, label } |
Title/Subtitle/Footer are locale keys, resolved with _U() at usage.
| Setting | Default | What it does |
|---|---|---|
LoadingCommand |
table |
Таблица записей loading command. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ Enabled |
true |
Включает или выключает enabled (по умолчанию true). |
↳ Command |
"rdo_loading" |
Настройка для command. |
↳ TitleKey |
"loading_title" |
Клавиша или элемент управления для title key. Управление задаётся hash-значениями из списка ввода игры. |
↳ SubtitleKey |
"loading_subtitle" |
Клавиша или элемент управления для subtitle key. Управление задаётся hash-значениями из списка ввода игры. |
↳ FooterKey |
"loading_footer" |
Клавиша или элемент управления для footer key. Управление задаётся hash-значениями из списка ввода игры. |
↳ HoldMs |
5000 |
Число для hold ms (по умолчанию 5000). |
AdminKey |
"key" |
Admin menu key inside jrs_scriptadmin. |
Paid (server only) jrs_npc_outfits
jrs core NPC Outfits - copy NPC clothing into reusable inventory outfits
| Resource | jrs_npc_outfits |
| Folder | [CHARACTER] |
| Version | 1.1.0 |
| Author | jrs team |
| Depends on | jrs_core, jrs_inventory |
| Interface | Yes (NUI) |
| Languages | ar, en |
| Code size | 2,445 Lua lines |
Commands
/npcexit/npcoutfit/npcoutfits/npcoutfitsexit
Database tables
jrs_npc_outfit_catalog, jrs_npc_outfits
config/config.lua - 43 опций#
General
| Setting | Default | What it does |
|---|---|---|
Command |
"npcoutfits" |
Настройка для command. |
AllowAnyAdmin |
true |
When true, anyone who has permission in the admin menu can use it. |
AllowedGroups |
table |
Кому разрешено: работы, группы или права для allowed groups. |
↳ admin |
true |
Переключатель для admin: true = вкл., false = выкл. (по умолчанию true). |
↳ superadmin |
true |
Переключатель для superadmin: true = вкл., false = выкл. (по умолчанию true). |
↳ owner |
true |
Переключатель для owner: true = вкл., false = выкл. (по умолчанию true). |
↳ god |
true |
Переключатель для god: true = вкл., false = выкл. (по умолчанию true). |
↳ dev |
true |
Переключатель для dev: true = вкл., false = выкл. (по умолчанию true). |
↳ developer |
true |
Переключатель для developer: true = вкл., false = выкл. (по умолчанию true). |
↳ headadmin |
true |
Переключатель для headadmin: true = вкл., false = выкл. (по умолчанию true). |
↳ management |
true |
Переключатель для management: true = вкл., false = выкл. (по умолчанию true). |
↳ highaccess |
true |
Переключатель для highaccess: true = вкл., false = выкл. (по умолчанию true). |
↳ moderator |
true |
Переключатель для moderator: true = вкл., false = выкл. (по умолчанию true). |
↳ mod |
true |
Переключатель для mod: true = вкл., false = выкл. (по умолчанию true). |
↳ helper |
true |
Переключатель для helper: true = вкл., false = выкл. (по умолчанию true). |
↳ support |
true |
Переключатель для support: true = вкл., false = выкл. (по умолчанию true). |
↳ server_owner |
true |
Переключатель для server owner: true = вкл., false = выкл. (по умолчанию true). |
↳ full_access |
true |
Переключатель для full access: true = вкл., false = выкл. (по умолчанию true). |
↳ medium |
true |
Переключатель для medium: true = вкл., false = выкл. (по умолчанию true). |
↳ few |
true |
Переключатель для few: true = вкл., false = выкл. (по умолчанию true). |
PermissionDeniedMessage |
'You do not have permission ... |
Кому разрешено: работы, группы или права для permission denied message. |
PermissionCacheMs |
3000 |
Short cache only to avoid a database lookup for every NUI action. |
ItemName |
"npc_outfit" |
Предметы инвентаря для item name. Имена должны быть в таблице jrs_items. |
ItemLabel |
"Copied NPC Outfit" |
Предметы инвентаря для item label. Имена должны быть в таблице jrs_items. |
ItemWeight |
0.10 |
Верхний предел для item weight. |
ItemCategory |
"clothes" |
Предметы инвентаря для item category. Имена должны быть в таблице jrs_items. |
MaxSavedOutfits |
100 |
Верхний предел для max saved outfits. |
MaxComponentsPerOutfit |
64 |
Верхний предел для max components per outfit. |
MaxPayloadBytes |
48000 |
Верхний предел для max payload bytes. |
CopyCooldownMs |
1500 |
Настройка времени для copy cooldown ms. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций. |
NearbyRadius |
80.0 |
Расстояние в игровых единицах для nearby radius. |
MaxNearbyPeds |
80 |
Верхний предел для max nearby peds. |
PreviewDistance |
2.25 |
Расстояние в игровых единицах для preview distance. |
PreviewPresetMin |
0 |
Минимум или требуемый уровень для preview preset min. |
PreviewPresetMax |
30 |
Верхний предел для preview preset max. |
RequireSameGender |
true |
NPC clothing assets are gender-specific in many cases. Keeping this enabled prevents a male NPC outfit from damaging a female MP ped, and vice versa. |
ConsumeOnUse |
false |
Saved outfits stay reusable. Using the inventory item does NOT consume it. |
AutoInstallDatabase |
true |
Automatically creates/upgrades the resource tables and the inventory item row. |
AutoInstallInventoryItem |
true |
Automatically handles install inventory item: true = да, false = нет (по умолчанию true). |
SeedCatalog |
table |
Таблица записей seed catalog. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
ClothingCategories |
table |
Only clothing categories are copied. Head/body/hair/beard/eyes/teeth are intentionally excluded so the player's identity is not replaced by the NPC. |
FitBodyMesh |
false |
NPC body meshes are intentionally never copied. Their UV/skin layout is model-specific and corrupts the character's hands and arms on MP peds. |
BlockedCategories |
table |
Identity categories that must NEVER be copied or overwritten. |
Notes from the README#
# jrs_npc_outfits
NPC clothing copier for `jrs_core` + `jrs_inventory`.
## What it does
- `/npcoutfits` opens the menu.
- **Nearby NPCs** shows every streamed human NPC in range and copies the exact outfit currently on that ped.
- **NPC Catalog** stores/displays discovered ped model names and lets you spawn a local preview.
- Preview outfit presets can be changed with `+ / -` before saving.
- The copier stores the NPC's MetaPed clothing asset data: drawable, albedo, normal, material, palette and tints.
- Head, body, hair, beard, eyes and teeth are intentionally excluded.
- Each captured outfit is saved in SQL and immediately creates one `npc_outfit` inventory item.
- The item is reusable and does not disappear when worn by default.
- **Saved Outfits** can make additional bag copies at any time.
- Existing bag copies keep working even if the owner removes the outfit from the Saved Outfits menu.
- Male/female mismatch is blocked by default with `Config.RequireSameGender = true`.
## Install
1. Put `jrs_npc_outfits` in your resources folder.
2. Add `ensure jrs_npc_outfits` after both `jrs_core` and `jrs_inventory`.
3. The script auto-creates its tables and item row by default.
4. If auto install is disabled or the item table insert fails, run `sql/install.sql` manually.
5. Restart `jrs_inventory`/server after first item install if your item table is cached at resource start.
## Inventory item
Item: `npc_outfit`
Metadata contains:
- `outfitId`
- `outfitName`
- `pedModel`
- `gender`
- `copiedNpcOutfit = true`
The full clothing payload stays in `jrs_npc_outfits`, so inventory metadata remains small.
## Catalog behavior
The resource does not need a giant hard-coded ped list. When the menu is opened it scans the currently streamed human NPCs, reads their archetype/model names, a
You can also add permanent seed models in `Config.SeedCatalog` or type any valid model name in the Manual Ped Model field.
## Notes
NPC-only clothing assets are not guaranteed by the game to fit every multiplayer body shape. The script avoids the largest source of broken characters by never
## Admin-only access
The resource is protected server-side using the player's `jrs_core` permission group.
By default only the `admin` group can open the menu, copy NPC clothing, manage saved outfits, create bag copies, wear saved outfits, or use the `npc_outfit` inv
Configure allowed groups in `config.lua`:
'''lua
Config.AllowedGroups = {
admin = true,
}
'''
## v1.0.2
- Fixed fullscreen black NUI on resource start/restart.Free (included in JRS Core) jrs_passports
JRS Core passports - register, renew and show identity papers
| Resource | jrs_passports |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core, jrs_inventory, oxmysql |
| Interface | Yes (NUI) |
| Code size | 1,932 Lua lines |
Exports
IsBusy, OpenManagement
config.lua - 22 опций#
General
| Setting | Default | What it does |
|---|---|---|
DevMode |
false |
Переключатель для dev mode: true = вкл., false = выкл. (по умолчанию false). |
Debug |
false |
Debug output for debug: true = да, false = нет (по умолчанию false). |
PromptKeys |
table |
Клавиша или элемент управления для prompt keys. Управление задаётся hash-значениями из списка ввода игры. |
↳ REGISTER |
table |
Таблица записей register. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ RETRIEVE |
table |
Таблица записей retrieve. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ RENEW |
table |
Таблица записей renew. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
Year |
1890 |
Число для year (по умолчанию 1890). |
NPCRenderingSpawnDistance |
20.0 |
The rendering distance for spawning / despawning the npcs. |
PassportExpirationDays |
90 |
@ExpirationDays : (time in days) - every 3 months by default, a passport will be expired automatically by the system. |
PassportCosts |
table |
@param Retrieve : When player lost the passport and has to get it back by paying a cost. @param Renewal : To renew into a new expiring date your existing passport. |
PassportItem |
"passport" |
To display the passport to yourself or the closest players by the @Distance parameter. |
DisplayPassportCardDistance |
2.0 |
Расстояние в игровых единицах для display passport card distance. |
AutomaticallyClosePassportDelayDuration |
20 |
Time in seconds. |
Society |
table |
(!) jrs_society IS REQUIRED IF YOU WANT THE REGISTRATION OR RETRIEVE COST MONEY TO BE ADDED ON A SOCIETY LEDGER ACCOUNT. |
EnableRegistrationLocations |
true |
Set to false if you don't want the players to register a passport on locations. |
Locations |
table |
Мировые координаты (x, y, z) для locations. |
↳ VALENTINE |
table |
Таблица записей valentine. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ RHODES |
table |
Таблица записей rhodes. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ BLACKWATER |
table |
Таблица записей blackwater. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ CREATED_PASSPORT |
table |
When a passport has been created. |
↳ RETRIEVED_PASSPORT |
table |
When a passport has been retrieved. |
↳ RENEWED_PASSPORT |
table |
When a passport has been renewed. |
Free (included in JRS Core) jrs_playerinfo
JRS Core player info - /info shows your character, job and money
| Resource | jrs_playerinfo |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core, oxmysql |
| Interface | No |
| Code size | 164 строк Lua |
config.lua - 12 опций#
General
| Setting | Default | What it does |
|---|---|---|
Language |
"en" |
'en' or 'ar' |
Command |
"info" |
Настройка для command. |
Align |
"top-right" |
Настройка для align. |
Cooldown |
3 |
seconds between two /info |
Show |
table |
rows shown in the menu |
↳ job |
true |
Переключатель для job: true = вкл., false = выкл. (по умолчанию true). |
↳ cash |
true |
Переключатель для cash: true = вкл., false = выкл. (по умолчанию true). |
↳ gold |
true |
Переключатель для gold: true = вкл., false = выкл. (по умолчанию true). |
↳ dirtyMoney |
true |
Переключатель для dirty money: true = вкл., false = выкл. (по умолчанию true). |
↳ banks |
true |
one row per bank account (jrs_banking) |
↳ charId |
true |
Переключатель для char id: true = вкл., false = выкл. (по умолчанию true). |
↳ serverId |
true |
Переключатель для server id: true = вкл., false = выкл. (по умолчанию true). |
Paid (server only) jrs_tattoo
Standalone jrs core Tattoo - independent tattoo resource with jrs core barber-style UI
| Resource | jrs_tattoo |
| Folder | [CHARACTER] |
| Version | 2.1.2 |
| Author | jrs team |
| Depends on | jrs_core, oxmysql |
| Interface | Yes (NUI) |
| Languages | ar, en |
| Code size | 1,192 Lua lines |
Exports
GetCharacterTattoos, GetCurrentTattoos, GetHeadTattoos, ReapplyTattoos, SetCharacterTattoos
Database tables
jrs_tattoo_characters
Notes from the README#
# jrs_tattoo 2.1.0 - Standalone Full Body
Standalone RedM tattoo resource for REDEMPIRE.
## Independence
- No `jrs_barber` dependency or database access.
- Own table: `jrs_tattoo_characters`.
- Own UI, stream, config, client/server logic.
- Uses `jrs_core` only for active character ID/money and `oxmysql` for the tattoo table.
## Tattoo regions
The barber-style tattoo menu now has eight independent regions:
- Head
- Neck
- Chest
- Back
- Left Arm
- Right Arm
- Left Leg
- Right Leg
Each region is saved separately in the same JSON row for the active character. Camera focus changes automatically with the selected region. There are no palette
## Included textures
The 30 existing RedM-compatible tattoo textures are kept. Head and neck keep their original sets. Body regions expose the same included texture library as a fal
The broken converted FiveM pack that produced shirt/checker textures is not included.
## Persistence
All eight region values are stored in `jrs_tattoo_characters.tattoos` and reapplied after reconnect, character selection, appearance rebuilds, and revive. Exist
## Clothing preview
Automatic undressing is disabled by default (`Config.PreviewUndress = false`) to keep this resource independent and avoid modifying the player's saved outfit.
## Open
- `/tattoo`
- or G at configured tattoo shops.Free (included in JRS Core) jrs_usable_items
JRS Core usable items - pipes, cigars, cigarettes and pocket watches with animations
| Resource | jrs_usable_items |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core, jrs_inventory |
| Interface | No |
| Code size | 2,005 Lua lines |
config.lua - 12 опций#
General
| Setting | Default | What it does |
|---|---|---|
Debug |
false |
Debug output for debug: true = да, false = нет (по умолчанию false). |
UsableItems |
table |
Предметы инвентаря для usable items. Имена должны быть в таблице jrs_items. |
↳ pipe |
table |
Таблица записей pipe. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pipepeace |
table |
Таблица записей pipepeace. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ cigar |
table |
Таблица записей cigar. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ cigarette |
table |
Таблица записей cigarette. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pocket_watch |
table |
[ POCKET WATCHES ] -- |
↳ pocket_watch_silver |
table |
Таблица записей pocket watch silver. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pocket_watch_gold |
table |
Сумма денег для pocket watch gold. Награды проходят через экономический множитель jrs_core. |
↳ pocket_watch_platinum |
table |
Таблица записей pocket watch platinum. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pocket_watch_antique |
table |
Таблица записей pocket watch antique. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ pocket_watch_reutlinger |
table |
Таблица записей pocket watch reutlinger. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
Free (included in JRS Core) jrs_walkanim
A Menu to set walkstyles for jrs core framework
| Resource | jrs_walkanim |
| Folder | [CHARACTER] |
| Version | 1.3 |
| Author | JRS TEAM |
| Interface | No |
| Code size | 349 строк Lua |
config.lua - 6 опций#
General
| Setting | Default | What it does |
|---|---|---|
Align |
"top-left" |
Настройка для align. |
defaultlang |
"en_lang" |
Настройка для defaultlang. |
slowcommandSuggestion |
"JRSWalk style command to op... |
Настройка для slowcommand suggestion. |
slowWalkCommand |
"walkSlow" |
command for users to be able to walk slow. they cant run only jump |
command |
"walkanim" |
command to open menu |
walkanimsuggestion |
" JRSWalk style command to o... |
Настройка для walkanimsuggestion. |
Free (included in JRS Core) jrs_water_actions
JRS Core water actions - wash and drink in rivers and lakes
| Resource | jrs_water_actions |
| Folder | [CHARACTER] |
| Version | 1.0.0 |
| Author | JRS TEAM |
| Depends on | jrs_core |
| Interface | No |
| Code size | 914 строк Lua |
config.lua - 17 опций#
General
| Setting | Default | What it does |
|---|---|---|
Language |
"en" |
'en' or 'ar' |
WashKey |
0x760A9C6F |
G (hold) |
DrinkKey |
0xC7B5340A |
ENTER (hold) |
Thirst |
150 |
jrs_metabolism thirst gained per drink (0 - 1000) |
DrinkTime |
8000 |
Число для drink time (по умолчанию 8000). |
WashTime |
7000 |
Число для wash time (по умолчанию 7000). |
ToggleCommand |
"toggleriver" |
hide / show the river prompts |
SwampSickChance |
60 |
Swamp water is dirty: chance to get sick when drinking it |
SwampDamage |
40 |
Число для swamp damage (по умолчанию 40). |
WaterTypes |
table |
Таблица записей water types. Добавляйте, удаляйте или меняйте записи по примерам в файле. |
↳ -247856387 |
'lake', [-1504425495] = 'ri... |
Настройка для 247856387. |
↳ -1781130443 |
'river', [-1300497193] = 'ri... |
Настройка для 1781130443. |
↳ 370072007 |
'river', [650214731] = 'ri... |
Настройка для 370072007. |
↳ 1245451421 |
'river', [-218679770] = 'ri... |
Настройка для 1245451421. |
↳ -1229593481 |
'river', [-105598602] = 'la... |
Настройка для 1229593481. |
↳ -2040708515 |
'river', [231313522] = 'ri... |
Настройка для 2040708515. |
↳ -1308233316 |
'river', [-196675805] = 'ri... |
Настройка для 1308233316. |