JRS CORE문서
스크립트

Admin

[ADMIN] 폴더의 스크립트 12개

Administration tools, logging and anti-cheat.

이 폴더에는 스크립트 12개가 있습니다. 아래 탭에서 고르세요.

Free (included in JRS Core)   jrs_admin

jrs core Admin - admin menu, security and the JRS Discord bot

Resource jrs_admin
Folder [ADMIN]
Version 4.19.1
Author jrs team
Depends on /server:4890, jrs_character, jrs_core, jrs_inventory, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 19,484 Lua lines

Commands

  • /-jrsadminmenu
  • /adm
  • /adminmenu
  • /barber
  • /clearfx
  • /clothes
  • /clothing
  • /cure
  • /curedisease
  • /deletecharacter
  • /fixheight
  • /fixmouse
  • /fixscale
  • /playerscale
  • /setscale
  • /stts
  • /wardrobe

Exports

AllowEvent, ApplySavedPlayerScale, BankNotify, BankNotifyPlayer, CanUseScriptAdminAction, ExemptTeleport, FixPlayerScale, GetAdminGroup, GetAdminJobCatalog, GetAllPlayerSessions, GetDiscordServerTag, GetLegacySpoonerStorage, GetPlayerDiscordRoles, GetPlayerPlaytime, GetPlayerSavedScale, GetPlayerSessionInfo, HasAdminPermission, HasProtectedScriptAccess, HasScriptAdminAccess, IsAdmin, IsJRSAdmin, IsOwnerAdmin, IsScriptAdminOwner, IsServerOwner, IsUnsafeString, LogExternalAdminAction, Notify, NotifyPlayer, RequireAdminPermission, SetCharacterScale

Database tables

IF, jrs_admin_action_logs, jrs_admin_character_scale, jrs_admin_chat_messages, jrs_admin_custom_role_members, jrs_admin_custom_role_permissions, jrs_admin_custom_roles, jrs_admin_jail, jrs_admin_known_staff, jrs_admin_map_blips, jrs_admin_meta, jrs_admin_playtime, jrs_admin_report_messages, jrs_admin_reports, jrs_admin_security_alerts, jrs_admin_security_tokens, jrs_admin_server_state, jrs_admin_warn_history, jrs_admin_warns, jrs_player_bans

jail/config.lua - 옵션 6개#

General

Setting Default What it does
Jails table jails 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
ExitFromJail table exit from jail 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
jailed_player 'You have been imprisoned by... jailed player 설정입니다.
released_player "You were released from prison" released player 설정입니다.
query_error "A database error occurred." query error 설정입니다.
increase_time "Jail time increased by " increase time 설정입니다.
Notes from the README#
text
# jrs_admin
RedM admin menu, security suite and Discord bot for JRS-framework servers.
## Requirements
- FXServer artifact `/server:4890` or newer (RedM)
- [oxmysql](https://github.com/overextended/oxmysql)
- `jrs_core`
- `jrs_character`
- `jrs_inventory`
- Node.js dependencies for the bundled Discord bot are already vendored under
  `node_modules/`. If you ever need to reinstall them, run `yarn install`
  (or `npm install`) inside this resource's folder — the only real npm
  dependency is `discord.js`.
## Features
- Player admin actions (teleport, heal, freeze, spectate, kick/ban, warn,
  inventory tools, job/level tools) with permission-gated tabs.
- Reports desk, staff chat, direct messages.
- Live Map with persistent admin blips and live player/security overlays.
- Security dashboard / anti-cheat alerts (movement, economy anomalies).
- Server Control (resource start/stop, console command relay, action logs).
- Role manager: DB-managed custom roles on top of the base Discord tiers,
  optionally linked to a live Discord role.
- Discord bot: slash-command panel, per-category audit webhooks, boot report.
- noclip / spooner / jail / TX integration.
## Installation
1. Import `[SQL]/jrs_admin.sql` into your database.
2. Drop this folder into `resources/[ADMIN]/jrs_admin` (or any resources
   folder) and add `ensure jrs_admin` to `server.cfg`, after `jrs_core`,
   `jrs_character`, `jrs_inventory` and `oxmysql`.
3. Restart the resource (or the server).
## First-run configuration (do this before going live)
These files are intentionally left editable (not encrypted by Cfx escrow),
because every server needs its own values here:
- **`config/permissions.lua` -> `DirectAdmins`**: put **your own** Steam
  identifier(s) here as `server_owner`. Remove any example/placeholder value
  that ships with the resource — leaving someone else's identifier in this
  table gives that identifier full owner access on your server.
- **`config/server_private.lua` -> `Discord.BotToken`**: create your own
  Discord application/bot in the
  [Discord Developer Portal](https://discord.com/developers/applications)
  and paste **your own** bot token here. Never reuse a token that shipped
  with the resource or that you've shared anywhere else — rotate it
  immediately if you're unsure whether it's still private.
- **`config/server_private.lua` -> `Webhooks`**: optional, per-category
  Discord audit webhook URLs.
- **`config/main.lua` / `config/permissions.lua`**: rank names, tab access,

Paid (server only)   jrs_anticheat

JRS Anti-Cheat: server-authoritative event and network abuse protection

Resource jrs_anticheat
Folder [ADMIN]
Version 2.2.0-jrs
Author ramelgaming (original); repaired edition
Interface No
Code size 2,199 Lua lines

Commands

  • /anti_entity_bans
  • /anti_entity_spawns
  • /anti_entity_unban

Exports

CheckRate, RegisterProtectedEvent, ReportViolation

Notes from the README#
text
# JRS Anti-Cheat — RedM Edition 2.1.1-jrs
## JRS changes (2026-10-02)
- Integrity challenges, resource-stop kicks and heartbeat audit start only after
  the client's first heartbeat (download finished) — first-time players are no
  longer kicked while downloading. `NeverLoadedKickMs` (15 min, counted from
  `playerJoining`) kicks an in-world client that never starts jrs_anticheat.
- Resource-stop reports are re-checked after 4 s; players who simply quit are not
  logged or kicked.
- `removeAllWeaponsEvent` is blocked only when the target is another player's
  ped (scripts may strip NPC/bot weapons).
- Invincibility telemetry off by default (`ReportInvincibility`) and skipped in
  safezones / while dead (state bags `inSafeZone`, `isDead`).
- `DiscordIgnoreCodes`: teleport and unknown-origin signals stay console-only.
- Unknown-entity auto-ban disabled; console spam off; MaxActive raised;
  restart grace 180 s. Original zip: `_jrs/_backups/jrs_anticheat_2.1.0_orig_2026-10-02`.
JRS Anti-Cheat is a framework-independent security resource for RedM. It can
run alongside `jrs_core`, `jrs_inventory`, and other resources without changing
their database or framework APIs.
## Installation
1. Remove or disable the old `Anti-Injection` resource.
2. Copy this folder to the server and keep its exact name: `jrs_anticheat`.
3. Add the following lines to `server.cfg` before `ensure jrs_anticheat`:
'''cfg
add_ace group.admin jrs_anticheat.bypass allow
add_ace group.admin jrs_anticheat.inspect allow
add_ace group.admin jrs_anticheat.manage allow
ensure jrs_anticheat
'''
The ACE permissions provide the following access:
- `jrs_anticheat.bypass`: exempts trusted administrators from applicable
  anti-cheat checks.
- `jrs_anticheat.inspect`: allows administrators to inspect entity-spawn logs.
- `jrs_anticheat.manage`: allows administrators to view and remove persistent
  entity-spawn bans.
The administrator identifiers must already inherit `group.admin`. Restart the
entire server after installing or updating the resource.
No SQL installation or `screenshot-basic` dependency is required.
## Main Protection Layers
The resource includes server-side protection against:
- Ped, animal, prop, and vehicle spawn flooding.
- Excessive active scripted entities per player.
- Entities created too far away from their network owner.
- Explicitly denied entity models.
- Particle, projectile, and explosion flooding.
- Amplified explosion damage and camera shake.

Free (included in JRS Core)   jrs_death_logs

JRS Core death logs - who died, how and by whom, to the console and Discord

Resource jrs_death_logs
Folder [ADMIN]
Version 1.0.0
Author JRS TEAM
Depends on jrs_core
Interface No
Code size Lua 957줄

Free (included in JRS Core)   jrs_doorlocks

jrs core Doorlocks 6.2.0 - Native RedM prompts for door use AND door registration + jrs core access + restart-safe door state

Resource jrs_doorlocks
Folder [ADMIN]
Version 6.2.1
Author jrs team
Depends on jrs_character, jrs_core, jrs_inventory, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 9,914 Lua lines

Commands

  • /-jrs_door_lockpick
  • /-jrs_door_toggle
  • /canceld
  • /canceldoor
  • /cancelselect
  • /testjob

Exports

CancelSelection, ClosestDoor, CreateDoor, GetAPI, GetDoorId, IsPlayerRestricted, Notify, SetPlayerRestricted

Database tables

does, jrs_doorlock_audit, jrs_doorlock_characters, jrs_doorlock_items, jrs_doorlock_jobs, jrs_doorlock_parts, jrs_doorlocks

config/main.lua - 옵션 217개#

General

Setting Default What it does
Version "6.2.0" version 설정입니다.
Locale "ar" 이 스크립트의 인터페이스 언어(en 또는 ar)입니다.
EnableDev false dev을(를) 켜거나 끕니다(기본값 false).

Framework

Setting Default What it does
Framework table framework 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ CoreResource "jrs_core" core resource 설정입니다.
  ↳ CharacterResource "jrs_character" character resource 설정입니다.
  ↳ InventoryResource "jrs_inventory" inventory resource 설정입니다.
  ↳ RequireCharacterReady true Requires character ready: true = 예, false = 아니요(기본값 true).
  ↳ SyncRetryDelaysMs table Rehydrate the authoritative REDEMPIRE character/job after resource restarts and job changes.
  ↳ InteractionRetryDelaysMs table interaction retry delays ms 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ RefreshIntervalMs 15000 refresh interval ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ PreferDatabaseJob true Job authorization is resolved server-side from the selected REDEMPIRE character and canonical characters.job/jobgrade row. This survives doorlocks/core restarts.
  ↳ CharacterTableCandidates table Support both the canonical REDEMPIRE table and older server installs that still use the historical jrs_chrachter table name. Values are server-owned only.
  ↳ JobCacheMs 650 허용 대상: job cache ms의 직업, 그룹 또는 권한입니다.
  ↳ LoadDoorsBeforeCharacterReady true Door world state must load before character selection finishes.

Database

Setting Default What it does
Database table database 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ AutoCreateSchema true Automatically handles create schema: true = 예, false = 아니요(기본값 true).
  ↳ PersistRuntimeState true persist runtime state 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ ApplyStartStateOnBoot true On resource/server start restore the configured BASIC state (locked_on_start). Runtime lock/unlock is intentionally temporary and is not resumed after a restart.
  ↳ MainTable "jrs_doorlocks" main table 설정입니다.
  ↳ InitRetries 10 init retries의 숫자(기본값 10).
  ↳ InitRetryMs 2000 init retry ms의 숫자(기본값 2000).
  ↳ PushAfterDatabaseReady true push after database ready 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ LegacyAutoImport true If this REDEMPIRE table set is empty, import a compatible normalized legacy doorlock table set automatically before the bundled seed is considered.
  ↳ AutoSeedBundledSqlIfEmpty true Automatically handles seed bundled sql if empty: true = 예, false = 아니요(기본값 true).
  ↳ BundledSqlPath "sql/jrs_doorlocks.sql" bundled sql path 설정입니다.

Full access / management

Setting Default What it does
FullAccessIdentifiers table full access identifiers 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
FullAccess table full access 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ BypassDoorAccess true bypass door access 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ AllowAllManagement true Allows all management: true = 예, false = 아니요(기본값 true).
  ↳ ManagementAdminBypass true management admin bypass 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ ShowPromptForEveryDoor true Shows prompt for every door: true = 예, false = 아니요(기본값 true).
  ↳ BypassInteractionDistance false Full Access bypasses permissions, never physical proximity. Even an administrator must stand beside the registered door to toggle it.
Management table management 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Create table create 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Edit table edit 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Admin table 허용 대상: admin의 직업, 그룹 또는 권한입니다.
  ↳ OpenAll table open all 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.

The player must be physically beside the nearest registered door part.

Setting Default What it does
DoorDistance 1.50 door distance에 적용되는 게임 단위 거리입니다.
StreamDistance 55.0 stream distance에 적용되는 게임 단위 거리입니다.
EnableDrawSprite true draw sprite을(를) 켜거나 끕니다(기본값 true).
Locking table locking 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ MaintainPhysicalState true maintain physical state 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ VerifyIntervalMs 5000 verify interval ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ VerifyNativeState true verify native state 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ GroupResyncOnMismatch true group resync on mismatch 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ LockedRatioTolerance 0.015 locked ratio tolerance의 숫자(기본값 0.015).
  ↳ ForceClosedOnLock true Custom MLO/YMAP fallback only when a real DoorSystem binding is unavailable. Calibrate the actual CLOSED pose once from /dooradmin for stubborn/custom doors.
  ↳ FreezeEntityFallback true freeze entity fallback 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ RequestEntityControl true request entity control 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ EntityLookupFallback true entity lookup fallback 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ EntityLookupRadius 2.25 entity lookup radius에 적용되는 게임 단위 거리입니다.
  ↳ EntityCacheMaxDrift 1.35 A cached handle is accepted only while it is still an OBJECT with the exact door model and remains close to the SQL part position. This prevents stale door cache entries from freezing/rotating NPCs, horses or unrelated props.
  ↳ EntityFallbackMaxDrift 1.35 entity fallback max drift의 상한입니다.
  ↳ PhysicsReadyFallbackGraceMs 5200 Restart safety: while an already-registered DoorSystem hash is waiting for its streamed physics binding, do not treat the visible object as a custom fallback. After this grace a true custom door may use the fallback path.
  ↳ DoorSystemBindingGraceMs 2200 door system binding grace ms의 숫자(기본값 2200).
  ↳ RestartAdoptionSettleMs 900 Restart settle window. Existing YMAP/Rockstar registrations can survive a resource restart while their object/physics transform is still settling. Do not write state, ratio or heading during this short adoption window.
  ↳ NewRegistrationSettleMs 500 new registration settle ms의 숫자(기본값 500).
  ↳ CustomMapFallback true custom map fallback 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ CustomHashPrefix "jrs_custom_door" custom hash prefix에 쓰는 게임 모델 또는 엔티티입니다.
  ↳ FallbackHeadingToleranceDegrees 4.0 fallback heading tolerance degrees의 숫자(기본값 4.0).
  ↳ EntityControlTimeoutMs 180 entity control timeout ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ ForceShutNative true One-shot recovery for a real DoorSystem door only if forceUpdate still reports it open. It is never run continuously, so normal door animation remains natural.
  ↳ DisableOpenRatioWhileLocked true Turns off open ratio while locked: true = 예, false = 아니요(기본값 true).
  ↳ ForceShutOnInitialLock true Forces shut on initial lock: true = 예, false = 아니요(기본값 true).
  ↳ MicroCloseCorrection true Some map doors report ratio 0 but remain visually ajar by a few degrees. This correction is intentionally tiny; large heading differences are never touched.
  ↳ MicroCloseMinDegrees 0.20 micro close min degrees의 최소값 또는 필요 레벨입니다.
  ↳ MicroCloseMaxDegrees 8.0 micro close max degrees의 상한입니다.
  ↳ BoundFailureLegacyPoseFallback true but whose streamed MLO object does not visibly rotate. Legacy heading is considered only after native movement is proven ineffective, never as the normal closed pose for a bound door.
  ↳ BoundFailureMinStartRatio 0.08 bound failure min start ratio의 최소값 또는 필요 레벨입니다.
  ↳ BoundFailureMaxObservedMovementDegrees 0.75 bound failure max observed movement degrees의 상한입니다.
  ↳ BoundFailureMaxLegacyCorrectionDegrees 120.0 bound failure max legacy correction degrees의 상한입니다.
  ↳ BoundFailureRescueDurationMs 420 bound failure rescue duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ UseStartHeadingForBaseLockedClose true DoorSystem/MLO reports ratio=0 without moving the rendered object, REDEMPIRE may use this start pose as a bounded visual target. 135 degrees accepts a normal ~90-degree swing but still rejects a dangerous 180-degree reversal.
  ↳ BaseLockedCloseMaxCorrectionDegrees 135.0 base locked close max correction degrees의 상한입니다.
  ↳ HardPhysicalLock true Hard physical lock: once a door reaches the closed frame it is made immovable until an authoritative unlock is received. This applies to both Rockstar DoorSystem doors and custom-map physical fallbacks.
  ↳ FreezeBoundEntityWhileLocked true freeze bound entity while locked 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ DisableEntityDynamicWhileLocked true Turns off entity dynamic while locked: true = 예, false = 아니요(기본값 true).
  ↳ EnforceHardLockWhileNearby true enforce hard lock while nearby 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ TakeScriptOwnership false take script ownership 스위치: true = 켜짐, false = 꺼짐(기본값 false).
  ↳ DisableAutomaticState false Turns off automatic state: true = 예, false = 아니요(기본값 false).
  ↳ SmoothMovement true Lock closes toward DoorSystem ratio 0 before committing LOCKED. Unlock only releases the lock/physics; it never forces an old open pose. This prevents imported headings/ratio signs from visually reversing state.
  ↳ SmoothCloseOnLock true smooth close on lock 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ AutoCloseOnLock true AutoClose is authoritative whenever SQL/server state is LOCKED. A door that streams in open is driven to the frame before hard-freezing.
  ↳ AutoCloseOnStream true Automatically handles close on stream: true = 예, false = 아니요(기본값 true).
  ↳ AutoCloseRetryCooldownMs 900 auto close retry cooldown ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ AutoCloseSettlePasses 7 auto close settle passes의 숫자(기본값 7).
  ↳ AutoCloseSettleIntervalMs 55 auto close settle interval ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ LockMoveDurationMs 900 lock move duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ TransitionTickMs 0 transition tick ms의 숫자(기본값 0).
  ↳ LockRetryDelaysMs table lock retry delays ms 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ UnlockRetryDelaysMs table Keep reasserting UNLOCK beyond restart/binding settle windows. The release operation is idempotent and also repairs a freeze left by an older instance.
  ↳ UnlockStabilizeMs 900 unlock stabilize ms의 숫자(기본값 900).
  ↳ UnlockStabilizeIntervalMs 250 unlock stabilize interval ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.

Per-door values are stored in SQL and editable from /dooradmin.

Setting Default What it does
AutoClose table Existing doors inherit these defaults when the migration columns are added.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ DefaultEnabled true default enabled 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ DefaultDelayMs 15000 default delay ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ DefaultAutoLockAfterClose false default auto lock after close 스위치: true = 켜짐, false = 꺼짐(기본값 false).
  ↳ MinDelayMs 750 min delay ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ MaxDelayMs 30000 max delay ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ OpenRatioThreshold 0.08 open ratio threshold의 숫자(기본값 0.08).
  ↳ HeadingOpenThresholdDegrees 5.0 heading open threshold degrees의 숫자(기본값 5.0).
  ↳ BlockWhilePlayerNear true Safety: do not swing a door through a player standing in the doorway.
  ↳ PlayerBlockRadius 0.38 player block radius에 적용되는 게임 단위 거리입니다.
  ↳ RetryWhileBlockedMs 600 retry while blocked ms의 숫자(기본값 600).
  ↳ MaxBlockedWaitMs 8000 max blocked wait ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ MoveDurationMs 900 Physical close movement while the door remains logically UNLOCKED.
  ↳ TransitionTickMs 0 transition tick ms의 숫자(기본값 0).
  ↳ DetectIntervalMs 300 detect interval ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ StateMaintainDistance 24.0 state maintain distance에 적용되는 게임 단위 거리입니다.
  ↳ Notify false Automatic close/re-lock feedback is intentionally silent. Door movement/state still works normally; only the toast is suppressed.
  ↳ ServerRequestDistance 7.0 A client may request the configured auto-lock only while near the door.

When a LOCKED door is successfully unlocked by a player, the server stores

Setting Default What it does
AutoRelock table a persistent deadline in SQL. When the deadline expires the authoritative state becomes LOCKED again; clients then run the normal full-close convergence before applying the hard physical lock. This survives resource/server restart
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ DelaySeconds 30 Player-forgotten door safety: exactly 30 seconds by default. DelaySeconds is authoritative. DelayMinutes remains supported by the server only as a backwards-compatible fallback for old configs.
  ↳ IncludeLockpick false Lockpick robbery doors stay open after a successful break-in. Their runtime HoldOpen flag suppresses both server Auto-ReLock and client passive Auto-Close until somebody explicitly locks the door.
  ↳ ScanIntervalMs 250 Server scan interval for the current runtime session. A resource/server restart intentionally clears pending deadlines and restores locked_on_start.
  ↳ MinDelaySeconds 30 Maximum accepted configuration range. Defensive bounds prevent accidental zero/huge values from producing a tight loop or multi-year stale deadline.
  ↳ MaxDelaySeconds 3600 max delay seconds의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ Audit true Audit system-triggered re-locks in jrs_doorlock_audit.

Native prompts / controls

Setting Default What it does
Prompts table prompts 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Distance 1.50 distance에 적용되는 게임 단위 거리입니다.
  ↳ GroupFallbackLabel "DOOR" Prompt description uses the canonical/original SQL name for the selected logical door. It never swaps to state/job/access/timer text.
  ↳ DoorNameMaxLength 48 door name max length의 상한입니다.
  ↳ Renderer "native" REDEMPIRE 6.0.0: native RedM/RDR3 prompt group. No gameplay NUI prompt is used. RedM places the native prompt group in its standard lower-right HUD area.
  ↳ DescriptionMode "native" gameplay prompts use RedM natives only
  ↳ DescriptionLabel "DOOR" description label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ ToggleKeyLabel "G" toggle key label에 쓰는 키 또는 컨트롤입니다. 컨트롤은 게임 입력 목록의 해시 값입니다.
  ↳ LockpickKeyLabel "X" lockpick key label에 쓰는 키 또는 컨트롤입니다. 컨트롤은 게임 입력 목록의 해시 값입니다.
  ↳ StableTarget true Prevent nearby doors from fighting for the prompt and changing its name.
  ↳ TargetReleasePadding 0.25 target release padding의 숫자(기본값 0.25).
  ↳ TargetSwitchAdvantage 0.35 target switch advantage의 숫자(기본값 0.35).
  ↳ TargetSwitchHoldMs 300 target switch hold ms의 숫자(기본값 300).
  ↳ VisualReleasePadding 0.25 Visual hysteresis: the HUD is released a little farther than the actual interaction radius and survives short streaming/snapshot misses. Inputs stay disabled outside Distance, so this does not weaken server/client range checks.
  ↳ VisualHoldMs 350 visual hold ms의 숫자(기본값 350).
  ↳ ToggleLabel "LOCK / UNLOCK" toggle label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ LockpickLabel "LOCKPICK" lockpick label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectionEnabled true Door registration / selection is a native RedM prompt group as well, so creating a door uses exactly the same interaction surface as using one. E = confirm the aimed physical door, BACKSPACE / X = cancel the registration.
  ↳ SelectLabel "SELECT DOOR" select label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectCancelLabel "CANCEL" select cancel label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectGroupLabel "REGISTER DOOR" 허용 대상: select group label의 직업, 그룹 또는 권한입니다.
  ↳ SelectAimLabel "AIM AT A DOOR" select aim label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectReadyLabel "DOOR READY" select ready label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectProgressLabel "DOOR %d / %d" select progress label에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ SelectInputDebounceMs 220 select input debounce ms에 쓰는 키 또는 컨트롤입니다. 컨트롤은 게임 입력 목록의 해시 값입니다.
  ↳ SelectionReleaseCooldownMs 450 Short input freeze after the selection closes so the X used to cancel the selection cannot immediately register as a LOCKPICK press on the door the player is standing at.
  ↳ UseKeyMapping false Direct RedM control polling is the default. RegisterKeyMapping can be intercepted/rebound by other resources on some builds and was causing G to appear dead even while the HUD was visible.
  ↳ UseNativeCompletion false Prompt visuals are native RedM; input is read from RedM controls directly by default to avoid artifact-specific PromptHasStandardModeCompleted issues.
  ↳ DirectControlFallback true direct control fallback 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ InputDebounceMs 550 input debounce ms에 쓰는 키 또는 컨트롤입니다. 컨트롤은 게임 입력 목록의 해시 값입니다.
  ↳ AlwaysShowState true always show state 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ Priority 3 priority의 숫자(기본값 3).
Keys table 0x17BEC168 was previously used here for "E"; that hash is INPUT_..._RIGHT, not E, so the physical-door selection confirm key never fired and no new door could ever be registered from /createdoor or /dooradmin.
  ↳ select 0xCEFD9220 E
  ↳ lock 0x760A9C6F G
  ↳ lockpick 0x8CC9CD42 X
  ↳ cancel 0x156F7119 BACKSPACE (X, ESC, and Right Click also supported as fallback)
Commands table commands 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Toggle "togglelock" toggle 설정입니다.
  ↳ Create "createdoor" create 설정입니다.
  ↳ Edit "editdoor" edit 설정입니다.
  ↳ Admin "dooradmin" 허용 대상: admin의 직업, 그룹 또는 권한입니다.
  ↳ Status "doorstatus" status 설정입니다.
  ↳ Reload "doorreload" reload 설정입니다.
  ↳ ClientStatus "doorclientstatus" client status 설정입니다.
  ↳ PromptStatus "doorpromptstatus" prompt status에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.

Lockpick / law alert

Setting Default What it does
Lockpick table lockpick 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Minigame true minigame 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ Resource "lockpick" resource 설정입니다.
  ↳ Item "lockpick" item이(가) 사용하는 인벤토리 아이템입니다. 이름은 jrs_items 테이블에 있어야 합니다.
  ↳ RemoveOnSuccess false remove on success 스위치: true = 켜짐, false = 꺼짐(기본값 false).
  ↳ RemoveOnFail true remove on fail 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ HoldOpenAfterSuccess true open/unlocked and is EXEMPT from all automatic close/re-lock paths. Manual/admin locking clears this runtime exemption. Resource/server restart also clears it and restores locked_on_start as normal.
AlertLaw table alert law 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Chance 60 chance의 비율 또는 배율입니다.
  ↳ Distance 500.0 distance에 적용되는 게임 단위 거리입니다.
  ↳ Jobs table 허용 대상: jobs의 직업, 그룹 또는 권한입니다.
  ↳ Blip table blip의 지도 블립 또는 아이콘 설정입니다.

Integrated notifications

Setting Default What it does
Notifications table notifications 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Position "top-left" position에 쓰는 월드 좌표(x, y, z)입니다.
  ↳ MaxVisible 3 max visible의 상한입니다.
  ↳ DefaultDurationMs 3000 default duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ SuccessDurationMs 2800 success duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ WarningDurationMs 3200 warning duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ ErrorDurationMs 3600 error duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ DedupeWindowMs 1400 dedupe window ms의 숫자(기본값 1400).
  ↳ RejectNoticeCooldownMs 2200 reject notice cooldown ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ ShowAccessType true Shows access type: true = 예, false = 아니요(기본값 true).
  ↳ ShowJobContext false Shows job context: true = 예, false = 아니요(기본값 false).
  ↳ DatabaseReadyNotice false database ready notice 스위치: true = 켜짐, false = 꺼짐(기본값 false).
  ↳ SecurityRejectNotices true security reject notices 스위치: true = 켜짐, false = 꺼짐(기본값 true).

Admin inspector

Setting Default What it does
AdminInspector table 허용 대상: admin inspector의 직업, 그룹 또는 권한입니다.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Distance 5.0 distance에 적용되는 게임 단위 거리입니다.
  ↳ RefreshMs 250 refresh ms의 숫자(기본값 250).
  ↳ PreferFacingDoor true prefer facing door 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ FacingDot -0.10 facing dot의 숫자(기본값 -0.10).
  ↳ InspectUnregistered true inspect unregistered 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ UnregisteredRayDistance 8.0 unregistered ray distance에 적용되는 게임 단위 거리입니다.
  ↳ UnregisteredFacingDot 0.35 unregistered facing dot의 숫자(기본값 0.35).
  ↳ AllowRegisterFromInspector true Allows register from inspector: true = 예, false = 아니요(기본값 true).
  ↳ AllowTemporaryControl true Allows temporary control: true = 예, false = 아니요(기본값 true).

Performance

Setting Default What it does
Performance table performance 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ SpatialIndex true spatial index 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ SpatialCellSize 60.0 spatial cell size의 숫자(기본값 60.0).
  ↳ ScanNearMs 100 scan near ms의 숫자(기본값 100).
  ↳ ScanActiveMs 500 scan active ms의 숫자(기본값 500).
  ↳ ScanIdleMs 1000 scan idle ms의 숫자(기본값 1000).
  ↳ CoordinateCacheMs 150 coordinate cache ms의 숫자(기본값 150).
  ↳ EntityPoolCacheMs 1400 Kept for config compatibility. The door-entity fallback no longer builds a cached snapshot of the whole CObject pool (that drained the fwScriptGuid pool); it does a small area query around each door instead.
  ↳ ActiveDoorCacheMs 650 active door cache ms의 숫자(기본값 650).
  ↳ InspectorCandidateDistance 8.0 inspector candidate distance에 적용되는 게임 단위 거리입니다.
  ↳ StateMaintainDistance 32.0 state maintain distance에 적용되는 게임 단위 거리입니다.
config/security.lua - 옵션 57개#

General

Setting Default What it does
Security table security 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ ConsoleLog true console log 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ ConsoleLogBenignRejects false console log benign rejects 스위치: true = 켜짐, false = 꺼짐(기본값 false).
  ↳ AuditSecurityDenials true audit security denials 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ SessionMaxLength 160 session max length의 상한입니다.
  ↳ RequireCharacterReadyForInteraction true Strong server-authoritative interaction envelope. Client supplied coordinates are NOT trusted for authorization in hardened mode.
  ↳ InteractionServerDistance 2.00 Server replicated coordinates can trail the client by a fraction of a metre, so the server envelope is only 0.50m wider than the 1.50m prompt.
  ↳ InteractionProximityTolerance 0.50 interaction proximity tolerance의 숫자(기본값 0.50).
  ↳ ProximityTolerance 0.50 proximity tolerance의 숫자(기본값 0.50).
  ↳ MaxCreateDistance 25.0 max create distance에 적용되는 게임 단위 거리입니다.
  ↳ MaxNameLength 96 Payload / editor limits.
  ↳ MaxItemNameLength 64 max item name length의 상한입니다.
  ↳ MaxJobEntries 64 max job entries의 상한입니다.
  ↳ MaxCharacterEntries 128 max character entries의 상한입니다.
  ↳ MaxPayloadDepth 6 max payload depth의 상한입니다.
  ↳ MaxPayloadNodes 900 max payload nodes의 상한입니다.
  ↳ MaxPayloadString 256 max payload string의 상한입니다.
  ↳ MaxPayloadNumberAbs 1000000000000.0 max payload number abs의 상한입니다.
  ↳ ToggleCooldown 600 Per-action cooldowns in milliseconds.
  ↳ LockpickCooldown 1600 lockpick cooldown의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ AdminCooldown 650 admin cooldown의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ LoadCooldown 5000 load cooldown의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ AutoLockCooldown 1200 auto lock cooldown의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
  ↳ GlobalBurstWindowMs 1000 Global event burst protection before expensive framework/SQL work.
  ↳ GlobalBurstMax 20 global burst max의 상한입니다.
  ↳ GlobalBurstBlockMs 5000 global burst block ms의 숫자(기본값 5000).
  ↳ DoorMutationLockMs 2200 Prevent concurrent state mutations on the same logical door.
  ↳ ApplyReportSessionMs 8000 Physical apply report must match the requesting source/audit/door.
  ↳ LockpickSessionMs 30000 Lockpick session validation.
  ↳ LockpickMinimumMs 1200 lockpick minimum ms의 최소값 또는 필요 레벨입니다.
  ↳ ExploitDropEnabled true Invalid/malicious requests accumulate strikes. Benign gameplay rejects do not.
  ↳ ExploitStrikeWindowMs 60000 exploit strike window ms의 숫자(기본값 60000).
  ↳ ExploitStrikeThreshold 24 exploit strike threshold의 숫자(기본값 24).
  ↳ RestrictedStateKeys table restricted state keys에 쓰는 키 또는 컨트롤입니다. 컨트롤은 게임 입력 목록의 해시 값입니다.

Backward-compatible aliases.

Setting Default What it does
NUI table Kept here so the resource has exactly TWO config files.
UnlockCommand Config.Commands.Toggle unlock command 설정입니다.
CreateDoor table create door 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Command Config.Commands.Create command 설정입니다.
  ↳ Permission Config.Management.Create.Per... 허용 대상: permission의 직업, 그룹 또는 권한입니다.
  ↳ Group Config.Management.Create.Gro... 허용 대상: group의 직업, 그룹 또는 권한입니다.
EditDoor table edit door 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Command Config.Commands.Edit command 설정입니다.
  ↳ Permission Config.Management.Edit.Permi... 허용 대상: permission의 직업, 그룹 또는 권한입니다.
  ↳ Group Config.Management.Edit.Group 허용 대상: group의 직업, 그룹 또는 권한입니다.
  ↳ DeleteConfirm "delete" delete confirm 설정입니다.
OpenAllDoors table open all doors 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled Config.Management.OpenAll.En... enabled 설정입니다.
  ↳ Permission Config.Management.OpenAll.Pe... 허용 대상: permission의 직업, 그룹 또는 권한입니다.
  ↳ Group Config.Management.OpenAll.Gr... 허용 대상: group의 직업, 그룹 또는 권한입니다.
  ↳ ConsoleLog Config.Security.ConsoleLog console log 설정입니다.
AlertJobs table 허용 대상: alert jobs의 직업, 그룹 또는 권한입니다.
  ↳ AlertChance Config.AlertLaw.Chance alert chance의 비율 또는 배율입니다.
  ↳ AlertDistance Config.AlertLaw.Distance alert distance에 적용되는 게임 단위 거리입니다.
  ↳ Jobs Config.AlertLaw.Jobs 허용 대상: jobs의 직업, 그룹 또는 권한입니다.
  ↳ Blip Config.AlertLaw.Blip blip의 지도 블립 또는 아이콘 설정입니다.
Notes from the README#
text
# REDEMPIRE Doorlocks 6.1.0
RedM door locking system for REDEMPIRE Core / REDEMPIRE Character / REDEMPIRE Inventory.
## Runtime
- Resource name: `jrs_doorlocks`
- Native RedM/RDR3 gameplay prompts only (`G` lock/unlock, `X` lockpick).
- Door registration is native prompts too (`E` select physical door, `X` cancel).
- Door prompt group title uses the original SQL door name.
- Server-authoritative REDEMPIRE job/grade/character/item access.
- REDEMPIRE Core and REDEMPIRE Character restart resynchronization without requiring the player to reconnect.
- 30-second forgotten-door auto close/re-lock remains server controlled.
- Successful lockpick robbery doors remain open until manually locked or the resource/server restarts.
- Resource/server start restores `locked_on_start`.
- Normalized SQL tables use the `jrs_doorlock*` names.
- If REDEMPIRE tables are empty, a compatible normalized legacy doorlock table family can be imported automatically before bundled seeding.
## Start order
'''cfg
ensure oxmysql
ensure jrs_core
ensure jrs_character
ensure jrs_inventory
ensure jrs_doorlocks
'''
The HTML/NUI is retained only for administration, the editor form, the inspector and notifications. Both nearby door interaction AND physical door selection dur
## Registering a door
1. `/createdoor` (or ADD DOOR in `/dooradmin`) opens the editor form.
2. Fill in name / access / auto-close and save. The form hides itself.
3. Aim at the physical door. The native prompt group shows `SELECT DOOR` (`E`) and `CANCEL` (`X`); the group title says whether the aimed object is a usable doo
4. Press `E` to confirm. A double door asks for the second leaf before it saves.
Every failure now returns a specific message (nothing selected, unreadable door, hash already registered, too far, no permission).

Paid (server only)   jrs_hurricane

JRS Hurricane - escalating storm weather tied to scheduled restart announcements

Resource jrs_hurricane
Folder [ADMIN]
Version 1.0.0
Author jrs
Depends on jrs_core, weathersync
Interface Yes (NUI)
Languages ar, en
Code size Lua 678줄

Commands

  • /cancelrestart
  • /hurricaneclimax
  • /hurricanestop
  • /hurricanetest
  • /startrestart

Exports

AdvanceStorm, CalmStorm, CancelRestart, GetStormState, StartRestartStorm, StopClimax, TriggerClimax

config/config.lua - 옵션 22개#

General

Setting Default What it does
Debug false Debug output for debug: true = 예, false = 아니요(기본값 false).
Enabled true Master toggle. Set to false to fully disable the storm without unloading the resource.
CoreResource "jrs_core" core resource 설정입니다.
WeatherResource "weathersync" weather resource 설정입니다.
RevertOnSkip true Revert to calm weather when txAdmin reports the scheduled restart was skipped/postponed (admin cancelled it, or a warning got skipped).
TestAce "jrs.hurricane" Optional ACE permission for the manual test commands. add_ace group.admin jrs.hurricane allow
AdminScope "hurricane" Scope key checked against jrs_admin's permission gateway (exports.jrs_admin:HasAdminPermission(src, Config.AdminScope)) as a fallback when the caller has no ACE grant.

Read as: once secondsRemaining drops to/under threshold[i], the storm is

Setting Default What it does
TimeStageSeconds table at least stage (i + 1). Keep this list sorted highest-to-lowest.
Stages table transition is the weathersync weather-transition time in seconds (how long the sky takes to morph into this stage); windSpeed is applied instantly, weathersync's setWind has no transition of its own.
CalmWeather "sunny" Weather/wind restored when the storm is cleared (restart skipped, or /hurricanestop used by an admin).
CalmWindSpeed 1.0 calm wind speed의 숫자(기본값 1.0).
CalmTransition 20.0 calm transition의 숫자(기본값 20.0).
NotifyDurationMs 12000 notify duration ms의 시간 설정입니다. 단위(초, 분, 밀리초)는 보통 옵션 이름이나 주변 옵션의 주석에 있습니다.
UseTxAdminAnnounce true Presentation settings: Uses txAdmin's in-game announcement banner (txcl:showAnnouncement) or jrs_admin's full-screen broadcast fallback so every player sees and hears the storm escalation.
ShowCountdownCard true In-Game Countdown Card Settings: ShowCountdownCard: Set to false if you want only txAdmin native announcements/timers.
UIPosition "top-right" 'top-center-below-tx' (top center pushed down so tx messages appear above it) 'top-left' 'bottom-right'
Climax table Climax settings: final violent phase when hurricane strikes (Stage 5 or <= 45s)
  ↳ enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ strikeLightning true Trigger native lightning strikes and screen flash on players
  ↳ dismountHorses true Dismount / ragdoll players off horses and spook the mounts
  ↳ shakeCamera true Ground/camera rumble from violent thunderclaps
  ↳ intervalMs 4500 Frequency of lightning and gusts during the climax
Notes from the README#
text
# jrs_hurricane
Ties world weather to txAdmin's scheduled-restart announcements. Every time
txAdmin broadcasts a restart warning (`txAdmin:events:scheduledRestart`,
default warnings at 30/15/10/5/4/3/2/1 minutes remaining -- configured in
txAdmin's own scheduler), the storm gets one stage worse:
1. `clouds` -- dark clouds gather
2. `overcastdark` -- sky turns grey, wind picks up
3. `rain` -- rain starts falling
4. `thunderstorm` -- thunder and lightning (native RDR2 weather effects, no
   extra scripting needed)
5. `hurricane` -- full storm, right around the final warning
Each stage change is broadcast to every player via weathersync's own server
API (`exports.weathersync:setWeather` / `:setWind`), so it stays in sync
exactly like the `/weather` command, and a bilingual (EN/AR) tip notification
goes out with it.
If an admin postpones/skips the restart (`txAdmin:events:scheduledRestartSkipped`),
the weather calms back down automatically.
## Requirements
- `weathersync` and `jrs_core` must be running (declared as `dependency` in
  `fxmanifest.lua`).
- This is a txAdmin server; if txAdmin's monitor is ever unavailable, no
  `scheduledRestart` events fire and the storm never starts -- that's by
  design, there's nothing to escalate towards.
## Config
See `config/config.lua`:
- `Config.Enabled` -- master on/off switch.
- `Config.TimeStageSeconds` / `Config.Stages` -- when each stage kicks in and
  what weather/wind it applies.
- `Config.RevertOnSkip` -- calm the weather back down if the restart is
  postponed.
- `Config.TestAce` / `Config.AdminScope` -- who can use the manual test
  commands.
## Manual testing
'''
/hurricanetest <secondsRemaining>   -- jump the storm to the stage that time would trigger
/hurricanestop                      -- clear the storm and restore calm weather
'''
Both commands require the `jrs.hurricane` ACE permission (`add_ace group.admin
jrs.hurricane allow`) or `jrs_admin` admin access; the server console can
always use them.

Free (included in JRS Core)   jrs_imapviewtool

Resource jrs_imapviewtool
Folder [ADMIN]
Version 1.0.0
Author JRS TEAM
Interface No
Code size 4,238 Lua lines

Commands

  • /iplDistanceView
  • /removeAll
  • /requestAll
  • /testIpl
  • /toggleIplView

Paid (server only)   jrs_logs

jrs_logs - one log hub for every script: Discord, in-game viewer, or both

Resource jrs_logs
Folder [ADMIN]
Version 1.0.0
Author jrs team
Depends on oxmysql
Interface Yes (NUI)
Code size 1,912 Lua lines

Commands

  • /jrslogs_mode

Exports

GetMode, Ingest, Log, OpenViewer

Database tables

jrs_logs, jrs_logs_settings

config.lua - 옵션 17개#

jrs_logs - configuration

Setting Default What it does
Mode "both" 'game' - stored in the database, shown in the in-game viewer only 'discord' - sent to Discord only (nothing stored) 'both' - stored in game AND sent to Discord
Command "logs" Command that opens the viewer.
ViewGroups table Who may open the viewer / change routing. jrs_admin groups, plus ACE: add_ace group.admin jrs_logs.view allow add_ace group.admin jrs_logs.manage allow
ManageGroups table 허용 대상: manage groups의 직업, 그룹 또는 권한입니다.
Ace table ace 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
RetentionDays 30 logs older than this are deleted (0 = keep forever)
PageSize 60 rows per page in the viewer
  ↳ Username "" empty: Discord shows each webhook's own name (the script name) and avatar
  ↳ Avatar "" avatar 설정입니다.
  ↳ Footer "REDEMPIRE · jrs_logs" footer 설정입니다.
Builtin table Built-in logs that no other script writes.
  ↳ Connections true join / leave (with drop reason)
  ↳ Resources true resource start / stop after boot
  ↳ TxAdmin true kicks, warns, bans, announcements, restarts
  ↳ Chat true chat messages
LiveToasts false In-game toast for staff when a new warning/danger log arrives while the viewer is closed (each admin can switch it off in the viewer).
LiveToastLevels table live toast levels 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.

Paid (server only)   jrs_safezone

Safe zones, radar peek key, no-gallop sprint zones, and the RDO-style loading screen command

Resource jrs_safezone
Folder [ADMIN]
Version 1.4.1
Author JRS
Depends on jrs_core, oxmysql
Interface Yes (NUI)
Languages ar, en
Code size 2,550 Lua lines

Commands

  • /reloadsafezones

Exports

GetCurrentSafeZone, GetZoneAtCoords, IsCityZoneAtCoords, IsNearAnySafeZone, IsNonWeaponProp, IsSafeZoneActive, IsSafeZoneActiveForPlayer, IsSafeZoneAtCoords, IsWeaponBlocked, IsWeaponBlockedForPlayer

Database tables

jrs_safezone_jail_log, jrs_safezones

config.lua - 옵션 117개#

General

Setting Default What it does
Locale "ar" اللغات المتوفرة: 'ar', 'en' (يتطابق تلقائياً مع لغة اللاعب عبر JrsLang)
Framework "jrs" 'jrs', 'auto'
DevMode true الإعدادات العامة
AdminPanel table 허용 대상: admin panel의 직업, 그룹 또는 권한입니다.
  ↳ enabled true تفعيل لوحة الإدارة
  ↳ command "managesafezone" أمر إدارة المناطق الآمنة
  ↳ updateInterval 1000 معدل التحديث (بالمللي ثانية)
AdminCommand Config.AdminPanel.command 허용 대상: admin command의 직업, 그룹 또는 권한입니다.
ClientTick table client tick 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ zoneLogic 0 منطق التحقق من المنطقة
  ↳ antiAbuseShoot 50 مكافحة إساءة إطلاق النار
  ↳ antiAbuseExplosives 100 مكافحة إساءة المتفجرات
  ↳ username "سجلات المناطق الآمنة" username 설정입니다.
  ↳ avatar_url "" avatar url 설정입니다.
  ↳ color 16711680 color의 숫자(기본값 16711680).
CheckInterval 500 مدة التحقق من وجود اللاعب داخل منطقة آمنة (مللي ثانية)
CombatTagDuration 5000 مدة وسم القتال (5 ثواني)
SoftWarningDistance 20.0 مسافة التحذير قبل دخول المنطقة الآمنة
DefaultRadius 75.0 نصف القطر الافتراضي عند إنشاء منطقة جديدة
MaxRadius 1000.0 أقصى نصف قطر مسموح
DefaultJailMinutes 5 مدة السجن الافتراضية بالدقائق
MaxJailMinutes 1440 أقصى مدة سجن مسموحة بالدقائق
DefaultJailLocation "sisika" موقع السجن الافتراضي
DefaultHorseSpeed 8.0 السرعة القصوى الافتراضية للحصان
MaxHorseSpeed 25.0 أقصى سرعة حصان مسموحة
Admins table الإداريون
ToggleBannerCommand "togglebanner" أمر إظهار / إخفاء الشريط
Notifications table إعدادات الإشعارات
  ↳ enterSafezone table enter safezone 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ exitSafezone table exit safezone 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ combatTag table combat tag 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ warningNearby table warning nearby 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
ExplosiveWeapons table الأسلحة المتفجرة
AllowWeaponDrawing true السماح بإخراج وإشهار السلاح الجانبي (المسدسات والأفردة) داخل المنطقة الآمنة للتفاعل بدون إطلاق أو قتل
BlockBackWeapons true منع سحب الأسلحة الثقيلة من الظهر (تبقى معلقة على ظهر الشخصية ولا يمكن سحبها باليد داخل المنطقة الآمنة)
PreserveEquippedWeaponsOnEnter true الحفاظ على الأسلحة المجهزة على الظهر والخصر عند دخول المنطقة الآمنة ومنع حذفها أو إلغاء تجهيزها إجبارياً
AllowFishingRodInSafezones true السنارة مسموحة في كل المناطق الآمنة (مو بس فان هورن)
NonWeaponProps table بروبات / أدوات مو أسلحة: ما تنشال ولا تنمنع داخل المناطق الآمنة. المنع يكون فقط للأسلحة الفعلية (مسدسات، بنادق، سكاكين، فؤوس، قوس، متفجرات، حبل...). أضف أي بروب ثاني هنا بنفس الصيغة.
TypeSettings table إعدادات أنواع المناطق
  ↳ hard table hard 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ soft table soft 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ rp table rp 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
UI table إعدادات الواجهة
  ↳ showBanner false إظهار الشريط
  ↳ bannerText table banner text에서 플레이어에게 보이는 텍스트입니다. 번역하거나 이름을 바꾸려면 수정하세요.
  ↳ colors table colors 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ blurEffect false تأثير ضبابي
  ↳ blurIntensity 1.0 شدة الضباب
  ↳ blurTimecycle "teaser_trainShot" blur timecycle 설정입니다.
Admin Config.Admin or &#123;&#125; أوامر الإدارة
ShowBlips false إعدادات العلامات على الخريطة
BlipSprite "blip_ambient_ped_medium" نوع العلامة
BlipColor "BLIP_MODIFIER_MP_COLOR_32" لون أخضر
MapResourceName "RDR2CollectorsMap" اسم مورد الخريطة
MapHtmlFile "index.html" ملف HTML
ExemptJobs table الوظائف المستثناة من قوانين المنطقة الآمنة (خريطة مفتاح=قيمة وليس قائمة، لأن server.lua يتحقق منها بـ Config.ExemptJobs[jobName])
  ↳ bwsheriff true bwsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ valsheriff true valsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ armsheriff true armsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ armheriff true armheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ twsheriff true twsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ stbsheriff true stbsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ rhdsheriff true rhdsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ sdsheriff true sdsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ annsheriff true annsheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ marshal true marshal 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ sisika true sisika 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ police true police 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ sheriff true sheriff 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ pinkerton true pinkerton 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ guardgre true guardgre 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ guardred true guardred 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ guardyel true guardyel 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ guardblu true guardblu 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ REDEMPIRE true redempire 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ ALFIE true alfie 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ Guamrma true guamrma 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ guarma true guarma 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ repguard true repguard 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ president true president 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ justice true justice 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ bankman true bankman 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ kingdom true kingdom 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ paper true paper 스위치: true = 켜짐, false = 꺼짐(기본값 true).
WeaponWorkerJobs table (تنظيف/تعديل/عرض) لكن الإطلاق معطل والضرر على اللاعبين ملغي. يشمل تلقائياً: صاحب أو موظف أي متجر لاعبين من نوع weapon_store (jrs_stores). الشرطي خارج الدوام (offpolice, offvalsheriff ...) يأخذ نفس المعاملة.
  ↳ weapon true weapon 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ weaponstore true weaponstore 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith true gunsmith 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ rguns true rguns 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_valentine true gunsmith valentine 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_tumbleweed true gunsmith tumbleweed 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_strawberry true gunsmith strawberry 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_blackwater true gunsmith blackwater 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_rhodes true gunsmith rhodes 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_guarma true gunsmith guarma 스위치: true = 켜짐, false = 꺼짐(기본값 true).
  ↳ gunsmith_saintdenis true gunsmith saintdenis 스위치: true = 켜짐, false = 꺼짐(기본값 true).
WeaponWorkerStoreType "weapon_store" weapon worker store type에 쓰는 게임 모델 또는 엔티티입니다.
Safezones table تعريف المناطق الآمنة
DefaultZones Config.Safezones default zones 설정입니다.
AntiAbuse table إعدادات مكافحة الاستغلال
  ↳ logShootingFromInside true تسجيل إطلاق النار من الداخل
  ↳ logShootingFromOutside true تسجيل إطلاق النار من الخارج
  ↳ preventShootingFromInside true منع إطلاق النار من الداخل
  ↳ logExplosiveAbuse true تسجيل إساءة المتفجرات
  ↳ explosiveAbuseThreshold 3 عدد المحاولات قبل الاشتباه
  ↳ combatTagEnabled true تفعيل وسم القتال
TempSafezones table تخزين المناطق المؤقتة (يتم تعبئتها أثناء التشغيل)

Hides the minimap while the peek key is held, so the key that opens the

Setting Default What it does
RadarPeek 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 actual sprint/shift control is already blocked by the zone's own

Setting Default What it does
HorseSprintNotify table "disable_shift" option above (same control hash horses use to sprint). This only adds a horse-specific toast so a mounted player gets a clearer reason than the generic enter-zone message.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).

RDO-style loading command (merged from jrs_key)

Setting Default What it does
LoadingCommand table loading command 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ Enabled true enabled을(를) 켜거나 끕니다(기본값 true).
  ↳ Command "rdo_loading" command 설정입니다.
  ↳ HoldMs 5000 hold ms의 숫자(기본값 5000).

Paid (server only)   jrs_scriptadmin

jrs core Script Admin - shared farm-styled admin panel every jrs core script renders its admin menu through.

Resource jrs_scriptadmin
Folder [ADMIN]
Version 1.0.0
Author jrs team
Interface Yes (NUI)
Languages ar, en
Code size Lua 182줄

Exports

Close, IsOwner, Open, Update

Paid (server only)   jrs_spooner

Spooner world entity editor with jrs_admin integration

Resource jrs_spooner
Folder [ADMIN]
Version 1.0.0
Author jrs team
Depends on jrs_core, uiprompt
Interface Yes (NUI)
Code size 54,710 Lua lines

Commands

  • /-spooner
  • /spooner
  • /spooner_db
  • /spooner_migrate_old_dbs
  • /spooner_savedb

Exports

Exit, IsActive

Notes from the README#
text
# 💻 Spooner
Documentation relating to the jrs_spooner.
## 1. Installation
jrs_spooner works Standalone.
To install jrs_spooner:
- Download the resource
  - On [Github](https://github.com/Spooni-Development/jrs_spooner)
- Ensure that all requirements are installed
  - [uiprompt](https://github.com/kibook/redm-uiprompt)
- Add the exec to the server.cfg
  '''
    exec @jrs_spooner/permissions.cfg
  '''
- Add the permissions
    '''
    add_ace builtin.everyone jrs_spooner.view allow
    add_ace builtin.everyone jrs_spooner.spawn allow
    add_ace builtin.everyone jrs_spooner.modify.own allow
    add_ace builtin.everyone jrs_spooner.delete.own allow
    add_ace builtin.everyone jrs_spooner.properties allow
    add_ace builtin.everyone jrs_spooner.noEntityLimit allow
    add_ace builtin.everyone jrs_spooner.modify.other allow
    add_ace builtin.everyone jrs_spooner.delete.other allow
    '''
- Drag and drop the resource into your resources folder
  - `jrs_spooner`
- Add this ensure in your server.cfg
  - `ensure jrs_spooner`
- At the end
  - Restart the server
If you have any problems, you can always open a ticket in the Spooni Discord.
## 2. Usage
## Cursor colours
| Colour | Meaning            |
|--------|--------------------|
| white  | No entity selected |
| green  | Entity highlighted |
| blue   | Entity attached    |
## Controls
| Control                   | Function                                                                         |
(line hidden)
| W/A/S/D                   | Move                                                                             |
| Spacebar/Shift            | Up/Down                                                                          |
| E                         | Spawn                                                                            |
| Left click                | Entity highlighted: Attach, Entity attached: Detach                              |

Paid (server only)   jrs_voicemonitor

jrs_voicemonitor - your Discord voice channel in-game (avatars, talking, mute/deaf, LIVE, camera, in-game ID) - one resource, uses the jrs_admin bot

Resource jrs_voicemonitor
Folder [ADMIN]
Version 1.4.0
Author jrs team
Depends on jrs_admin
Interface Yes (NUI)
Code size Lua 657줄
config.lua - 옵션 13개#

General

Setting Default What it does
Channels table Limit to these voice channel IDs (right-click the channel -> Copy Channel ID). Leave empty {} = any voice channel the player joins.
TalkChannel "" sees who sends audio (it never records or decodes it). A bot can only be in one channel per Discord server, so the ring works in this channel only. '' = off. Right-click the channel -> Copy Channel ID.
MaxUsers 50 Cap on member rows shown for the channel.
Access "all" Who can use it: 'all' = every player (each player can turn it off/on with /dc, remembered) 'staff' = staff only (see below)
VisibleByDefault true On for players that never turned it off themselves.
Ace "jrs_voicemonitor.view" * ace: add_ace group.admin jrs_voicemonitor.view allow * jrs_admin: staff that pass exports.jrs_admin:IsAdmin(src) * identifiers below (discord:/steam:/license:)
UseJrsAdmin true jrs admin을(를) 켜거나 끕니다(기본값 true).
Identifiers table identifiers 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
ShowGameIds "staff" In-game server ID next to channel members who are on the server. 'staff' = only staff see it (recommended: links Discord identity to the player) 'all' = everyone sees it, false = nobody
Commands table Chat commands
  ↳ toggle "dc" turn the monitor off / on
  ↳ settings "dcsettings" move it + settings (mouse)
  ↳ hide "dchide" minimise to the title bar

Free (included in JRS Core)   weathersync

Time and weather synchronization

Resource weathersync
Folder [ADMIN]
Version 1.0.0
Author jrs team
Interface Yes (NUI)
Languages ar, en
Code size 1,563 Lua lines

Commands

  • /forecast
  • /mytime
  • /myweather
  • /syncdelay
  • /time
  • /timescale
  • /weather
  • /weathersync
  • /weatherui
  • /wind

Exports

getForecast, getTime, getWeather, getWind, isSnowOnGround, resetSyncDelay, resetTime, resetTimescale, resetWeather, resetWeatherPattern, resetWind, setMyTime, setMyWeather, setSyncDelay, setSyncEnabled, setTime, setTimescale, setWeather, setWeatherPattern, setWind, toggleSync

config/config.lua - 옵션 39개#

day 0 (Sun) - 6 (Sat)

Setting Default What it does
time 21600 06:00 Sunday (seconds into week)
timescale 30 Default ratio of in-game seconds to real seconds. Standard game time is 30:1, or 1 in-game minute = 2 real seconds. A value of 0 means time will be synced with the real server time.
realTimeOffset 0 If Config.timescale is 0, offset the real server time by this many seconds.
timeIsFrozen false Whether time is frozen when the resource starts
weatherInterval 3600 1 hour in seconds
weatherIsFrozen false Whether weather is frozen when the resource starts
permanentSnow false Whether to permanently add snow on the ground, or only during snowy weather
dynamicSnow false Whether to add snow on the ground when: a) in the snowy area of the map b) in the northern part of the map with snowy weather
maxForecast 23 Number of weather intervals to queue up
windDirection 0.0 Default wind direction when the resource starts
windSpeed 0.0 Default base wind speed when the resource starts
windShearDirection 45 Degrees by which wind direction changes at higher altitudes
windShearSpeed 2.0 Amount by which base wind speed increases at higher altitudes
windShearInterval 50.0 Interval in metres where wind direction/speed changes
windIsFrozen false Whether wind direction is frozen when the resource starts
syncDelay 5000 How often in milliseconds to sync with clients

All the numbers for the next stages must add up to 100.

Setting Default What it does
defaultGtaWeatherPattern table default gta weather pattern 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ clear table clear 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ clouds table clouds 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ foggy table foggy 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ overcast table overcast 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ clearing table clearing 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ rain table rain 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ thunder table thunder 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ extrasunny table extrasunny 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
defaultRdrWeatherPattern table default rdr weather pattern 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ sunny table sunny 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ clouds table clouds 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ overcastdark table overcastdark 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ misty table misty 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ fog table fog 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ overcast table overcast 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ drizzle table drizzle 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ rain table rain 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ thunder table thunder 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ thunderstorm table thunderstorm 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ hurricane table hurricane 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
  ↳ shower table shower 항목 테이블입니다. 파일의 예시대로 항목을 추가, 삭제, 수정하세요.
disableSnowOnCayoPerico false Disable snowy weather and snow on ground when on Cayo Perico
Notes from the README#
text
# FiveM/RedM weather and time sync
# Features
- Syncs time and weather for all players
- Configurable weather pattern
- Weather is queued so players can get a forecast of upcoming weather
- Different weather for different regions
- Adjustable timescale
- Players can temporarily disable sync and set local time/weather
# Examples
| Forecast and admin UI | Region-specific weather | Adjustable timescale |
|---|---|---|
| [![Forecast and admin UI](https://i.imgur.com/Scn0z0Em.jpg)](https://imgur.com/Scn0z0E) | [![Region-specific weather](https://i.imgur.com/Loif9SMm.jpg)](https
# Installation
1. Create a `weathersync` folder within your resources directory, for example, `resources/[local]/weathersync`.
2. Copy the files from this repository into the `weathersync` folder.
3. Add the following to your `server.cfg`:
'''
exec resources/[local]/weathersync/permissions.cfg
start weathersync
'''
# Commands
| Command        | Description                                               |
(line hidden)
| `/forecast`    | Displays a forecast of upcoming weather.                  |
| `/mytime`      | Set local time (if sync is off).                          |
| `/myweather`   | Set local weather (if sync is off).                       |
| `/syncdelay`   | Set how often the server syncs with clients.              |
| `/time`        | Set the server time.                                      |
| `/timescale`   | Set the ratio of in-game seconds to real-time seconds.    |
| `/weather`     | Set the server weather.                                   |
| `/weathersync` | Toggle time/weather sync on/off.                          |
| `/weatherui`   | Opens the admin UI for changing the time/weather/wind.    |
| `/wind`        | Set the wind direction and base speed.                    |
# Configuration
| Variable                         | Description                                                    | Example                                   |
(line hidden)
| `Config.time`                    | Default time when the resource starts.                         | `DHMSToTime(0, 6, 0, 0)` (Sun 06:00:00)   |
| `Config.timescale`               | Default timescale when the resource starts                     | `30` (30 in-game secs per real sec)       |
| `Config.realTimeOffset`          | Offset of the real server time in seconds.                     | `0`                                       |
| `Config.timeIsFrozen`            | Whether time is frozen when the resource starts.               | `false`                                   |
| `Config.weather`                 | Default weather when the resource starts.                      | `"sunny"`                                 |
| `Config.weatherInterval`         | How often the weather changes.                                 | `DHMSToTime(0, 1, 0, 0)` (1 in-game hour) |
| `Config.weatherIsFrozen`         | Whether weather is frozen when the resource starts.            | `false`                                   |
| `Config.permanentSnow`           | Whether to permanently add snow on the ground.                 | `false`                                   |
| `Config.dynamicSnow`             | Whether to dynamically add snow on the ground.                 | `true`                                    |
JRS Core · 무료 오픈소스 RedM 프레임워크 · JRS TEAM 제작