JRS COREДокументация
Скрипты

Character

16 скриптов в папке [CHARACTER]

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#
text
# 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_basemenu

JRS Core base menu - a simple player menu: who you are, your money, your jobs and the server links

Resource jrs_basemenu
Folder [CHARACTER]
Version 1.0.0
Author JRS TEAM
Depends on jrs_core
Interface No
Code size 925 строк Lua
config.lua - 5 опций#

General

Setting Default What it does
Language "en" 'en' or 'ar'
Command "menu" /menu opens the base menu
Key 0xA8E3F467 F1 opens it too. false = command only
ServerName "JRS Core" title of the menu
Links table Extra lines at the bottom of the menu (rules, discord, website ...). Leave empty for none. Picking a line shows its text as a notification.

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#
text
# 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 starte

Free (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#
text
# 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#
text
# 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

shared/config.lua - 34 опций#

General

Setting Default What it does
Framework "jrs_core" Standalone resource. It does not read or write jrs_barber data.
CommandEnabled true Переключатель для command enabled: true = вкл., false = выкл. (по умолчанию true).
Command "tattoo" Настройка для command.
UseShopPrompts true Optional world prompt. The command still works when this is false.
PromptControl 0x760A9C6F G
PromptDistance 1.6 Расстояние в игровых единицах для prompt distance.
DrawDistance 12.0 Расстояние в игровых единицах для draw distance.
Shops table two G prompts stacked on the chairs and the tattoo group hid the barber one. They now sit elsewhere inside the same shop, 5m+ away from the barber point (barber prompt 2.2m + tattoo prompt 1.6m never overlap).
AvoidPoints table Safety net: never show the tattoo prompt inside these barber prompt areas, even if a shop point above is moved back near the chairs later. Local copy of the jrs_barber points (no cross-resource read).
Prices table Tattoo is style-only. No palette/tint/opacity controls are exposed.
  ↳ tattooPart1 1.0 Число для tattoo part1 (по умолчанию 1.0).
  ↳ tattooPart2 1.0 Число для tattoo part2 (по умолчанию 1.0).
  ↳ tattooChest 1.0 Число для tattoo chest (по умолчанию 1.0).
  ↳ tattooBack 1.0 Число для tattoo back (по умолчанию 1.0).
  ↳ tattooLeftArm 1.0 Число для tattoo left arm (по умолчанию 1.0).
  ↳ tattooRightArm 1.0 Число для tattoo right arm (по умолчанию 1.0).
  ↳ tattooLeftLeg 1.0 Число для tattoo left leg (по умолчанию 1.0).
  ↳ tattooRightLeg 1.0 Число для tattoo right leg (по умолчанию 1.0).
FullBody table components as a fallback. Their actual placement is determined by the UV baked into each texture; for precise custom placement replace the per-zone options in shared/tattoos.lua with body-UV-authored textures.
  ↳ Enabled true Включает или выключает enabled (по умолчанию true).
  ↳ ReuseIncludedTattooTextures true Переключатель для reuse included tattoo textures: true = вкл., false = выкл. (по умолчанию true).
PreviewUndress false We intentionally do NOT strip clothing automatically. jrs_tattoo remains independent and does not call jrs_character/jrs_barber to restore outfits.
AutoLoadDelay 800 Persistent loading after reconnect / character selection.
AutoLoadAttempts 20 Число для auto load attempts (по умолчанию 20).
AutoLoadRetryDelay 600 Настройка времени для auto load retry delay. Единица (секунды, минуты или миллисекунды) обычно указана в имени опции или в комментарии соседних опций.
PersistentReapplyDelays table Таблица записей persistent reapply delays. Добавляйте, удаляйте или меняйте записи по примерам в файле.
ReapplyAfterRevive true Переключатель для reapply after revive: true = вкл., false = выкл. (по умолчанию true).
CharacterAppearanceSettleMs 23000 Число для character appearance settle ms (по умолчанию 23000).
Debug false Debug output for debug: true = да, false = нет (по умолчанию false).
Camera table Base manual camera settings. Zone presets in shared/tattoos.lua override distance/height/rotation when the player changes tattoo region.
  ↳ distance 0.72 Расстояние в игровых единицах для distance.
  ↳ height 0.00 Число для height (по умолчанию 0.00).
  ↳ fov 40.0 Число для fov (по умолчанию 40.0).
  ↳ rotation 180.0 Число для rotation (по умолчанию 180.0).
Notes from the README#
text
# 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.
JRS Core · Бесплатный фреймворк RedM с открытым кодом · JRS TEAM