Files
red-valley/docs/server_knowledge.md
T
redvalley 1bcf0d9282 docs: sync knowledge base with April 8-10 changes
Synchronized docs/ folder with Knowledge Base (was behind since April 3):
- changelog.md: added qb-target migration (Apr 8) + resource cleanup (Apr 10) entries
- server_knowledge.md: complete resource structure post-cleanup, target section update
- cross_resource_modifications.md: added qb-target migration checklist
- resource_dependency_map.md: removed rv-qb-target, updated qb-target (ld-target engine)
- resource_map.html: updated qb-target node + 17mov_Electrician qtarget link
2026-06-17 16:53:15 +03:00

32 KiB
Raw Blame History

Red Valley Roleplay — Server Knowledge Base

🔑 Quick Reference

Key Value
Server Name Red Valley Roleplay
Framework QBCore
Database MySQL (red-valley) via oxmysql
Character System 17mov_CharacterSystem v1.2.5
Admin Panel Luxu Admin
Inventory qs-inventory (Quasar)
Phone qs-smartphone-pro (Quasar)
Garages qs-advancedgarages v5.0.20 (Quasar)
Housing qs-housing (Quasar)
Vehicle Keys qs-vehiclekeys (Quasar)
Police Job wasabi_police v1.10.8 (Wasabi)
Ambulance Job wasabi_ambulance v1.14.2 (Wasabi)
Police MDT codem-mdt (CodeM)
Mechanic Job t1ger_mechanic
HUD 17mov_Hud
Voice pma-voice
Target System qb-target (ld-target engine, provides qtarget)
Server Port 30110
Max Clients 8
Game Build 3570
Locale ro-RO
OneSync On (Infinity + Beyond)
phpMyAdmin http://localhost/phpmyadmin/

📁 Resource Structure

resources/
├── [cfx-default]/
│   ├── [local]/              # .gitkeep (empty)
│   ├── [managers]/
│   │   ├── mapmanager/
│   │   └── spawnmanager/
│   └── [system]/
│       ├── [builders]/
│       ├── baseevents/
│       └── sessionmanager/
├── [framework]/
│   ├── [core]/
│   │   ├── qb-core/         # QBCore framework (Quasar fork 1.3.0)
│   │   ├── qb-target/       # ★ Target system (ld-target engine, provides qtarget)
│   │   ├── qb-menu/         # QBCore menu
│   │   ├── qb-smallresources/ # QBCore small resources
│   │   ├── ox_lib/          # Overextended lib
│   │   ├── [inventory]/     # ★ Quasar Advanced Inventory v1.5.66
│   │   │   ├── qs-inventory/          # Resursa principală
│   │   │   ├── qs-inventory-objects/  # Props stream
│   │   │   ├── qs-advancedshops/      # Shopuri avansate
│   │   │   ├── [sql]/                 # SQL importat
│   │   │   └── [dlc]/
│   │   └── no-npc/          # Remove ambient NPCs
│   ├── [base]/
│   │   ├── [auth]/
│   │   │   ├── 17mov_CharacterSystem/   # Character select + creation
│   │   │   ├── 17mov-plugin-char-creator/ # Spawn outfit in creator
│   │   │   └── connectqueue/             # Queue system
│   │   ├── [ui]/
│   │   │   └── 17mov_Hud/   # HUD system
│   │   └── [jobs]/
│   │       ├── 17mov_JobCenter/ # Job listing & apply (NUI, FXAP encrypted)
│   │       ├── [citizen]/
│   │       │   ├── 17mov_BuilderJob/       # Builder job
│   │       │   ├── 17mov_Deliverer/        # Delivery job
│   │       │   ├── 17mov_Electrician/      # Electrician job (uses qtarget)
│   │       │   ├── 17mov_GarbageCollector/  # Garbage job (★ license check)
│   │       │   ├── 17mov_Lumberjack/       # Lumberjack job
│   │       │   ├── 17mov_Miner/            # Miner job
│   │       │   ├── 17mov_OilRig/           # Oil rig job
│   │       │   ├── 17mov_Postman/          # Postman job
│   │       │   ├── 17mov_TreasureHunter/   # Treasure hunter job
│   │       │   ├── 17mov_WindowCleaning/   # Window cleaning job
│   │       │   └── aty_busjob/             # Bus driver job
│   │       └── [legal]/
│   │           ├── [police]/
│   │           │   ├── wasabi_police/  # Police job (provides qb-policejob)
│   │           │   ├── codem-mdt/     # Police MDT
│   │           │   ├── codem-dispatch/ # Dispatch alerts
│   │           │   └── codem-mdtProp/ # MDT prop
│   │           ├── [ambulance]/
│   │           │   └── wasabi_ambulance/ # Ambulance job
│   │           ├── [mechanic]/
│   │           │   ├── t1ger_mechanic/     # Mechanic job
│   │           │   ├── t1ger_carlift/      # Car lift
│   │           │   ├── t1ger_mechanicprops/ # Mechanic props
│   │           │   └── jo_towtruck/        # Tow truck
│   │           └── [tuner]/
│   │               ├── t1ger_tuningsystem/ # Tuning system
│   │               └── t1ger_lib/          # T1GER library
│   ├── [depends]/
│   │   ├── Howdy-Minigame/   # Minigame lib
│   │   ├── MugShotBase64/    # Mugshot generation
│   │   ├── PolyZone/         # Zone management
│   │   ├── VehicleDeformation/ # Vehicle damage
│   │   ├── bob74_ipl/        # IPL loader v2.6.0
│   │   ├── interact-sound/   # Sound interactions
│   │   ├── mhacking/         # Hacking minigame
│   │   ├── oxmysql/          # MySQL adapter
│   │   ├── phone-radio/      # Phone radio
│   │   ├── phone-recorder/   # Phone recorder
│   │   ├── phone-render/     # Phone render
│   │   ├── progressbar/      # Progress bars
│   │   ├── screenshot-basic/ # Screenshots
│   │   ├── wasabi_bridge/    # Wasabi framework bridge
│   │   └── xsound/          # Sound system
│   └── [addons]/
│       ├── 0r_idcard/        # ID card system
│       ├── [housing]/
│       │   ├── qs-housing/       # Housing (Quasar)
│       │   ├── qs-weed/          # Weed growing
│       │   └── [dlc/img/props/shells/sql]/ # Housing assets
│       ├── [notify]/
│       │   └── qs-notify/        # Quasar notifications
│       ├── [quasar]/
│       │   ├── qs-advancedgarages/ # Garages v5.0.20
│       │   ├── qs-shops/         # Shops
│       │   ├── qs-smartphone-pro/ # Smartphone PRO
│       │   └── qs-vehiclekeys/   # Vehicle keys v4.0.13
│       ├── ac-carcontrol/    # Car control
│       ├── bit-driverschool/ # Driving school
│       ├── qb-input/         # QBCore input dialog
│       ├── qb-interior/      # QBCore interiors
│       ├── qb-management/    # Boss/gang menus
│       ├── qb-weathersync/   # Weather & time
│       ├── rv-devtools/      # ★ RV dev tools
│       ├── rv-itemsonback/   # ★ RV items on back
│       ├── rv-license-dialog/ # ★ RV license dialog NUI
│       ├── rv-maphold/       # ★ RV map hold
│       └── svdden_banking/   # Banking system
├── [stream]/
│   ├── [mlos]/               # Map interiors
│   ├── [vehs]/               # Custom vehicles
│   ├── minimap/              # Custom minimap
│   ├── phone-props/          # Phone props
│   ├── rv-props/             # RV custom props
│   └── squidgame/            # Squid game MLO
├── [voice]/
│   └── pma-voice/            # Voice system
└── luxu_admin/               # Admin panel (top-level)

Load Order (resources.cfg)

[cfx-default] → ox_lib → [core] → [depends] → [inventory] → [voice] → [auth] → [ui] →
[jobs] → [addons] → qs-weaponsonback → rv-license-dialog → kq_carheist →
[mlos] → [vehs] → minimap → phone-props → [casino] → [stream] → luxu_admin

🎭 Character & Outfit System

Character Creation Flow

  1. Player connects → connectqueue (priority queue)
  2. 17mov_CharacterSystem → character select / create
  3. New charactercreator preset (DNA + Details only, 2 tabs)
  4. 17mov-plugin-char-creator → per-frame outfit loop on ped in creator (citizenid tracking)
  5. After save → ApplySpawnOutfit() → gender-specific default clothes
  6. SaveCurrentSkin → persist to DB (playerskins)

Skin Menu Presets

Context Preset Tabs Available
Character Creator creator DNA + Details (2 tabs)
Clothing Shop / Ambulance / Boss shop Details + Clothing + Accessories (3 tabs)
Admin /skin command skinCommand All 4 tabs

Spawn Outfit Defaults

  • Male: torso2=539/2, pants=200/2, arms=96/0, shoes=77/8, t-shirt=15/0
  • Female: torso2=583/1, pants=214/1, arms=18/0, shoes=81/10, t-shirt=15/0
  • No mask for either gender

Job Outfit System (pattern from mechanic)

  • ON dutySaveCurrentOutfit() saves civilian clothes → ApplyOutfit(jobOutfit) applies uniform
  • OFF dutyApplyOutfit(savedCivilOutfit) restores civilian clothes
  • Outfit data per job stored in 17mov_CharacterSystem/configs/Config.luaConfig.Outfits['JOBNAME']
  • Structure: [grade][outfitIndex]{outfitLabel, outfitData} for male and female
  • Workflow defined in .agents/workflows/job-outfit-setup.md
  • IMPORTANT: Outfits NU apar la clothing shop-uri publice — se afișează DOAR prin Config.ClothingRooms
  • ClothingRooms verifică job.name == v.requiredJob (stores.lua:285)
  • Wasabi cloakroom pe QBCore e HIDDEN automat ("WILL NOT SHOW IN QBCORE")

GTA Component IDs

Component 1  = mask          Component 5  = bag
Component 3  = arms          Component 6  = shoes
Component 4  = pants         Component 7  = accessory (neck)
Component 8  = t-shirt       Component 9  = vest
Component 11 = torso2        Prop 0 = hat, Prop 1 = glasses

🗄️ Key Cross-Resource Dependencies

Central File Resources That Depend On It
qb-core/shared/jobs.lua wasabi_police, wasabi_ambulance, codem-mdt, codem-dispatch, luxu_admin, t1ger_mechanic, qs-inventory
qb-core/shared/items.lua qs-inventory, qs-shops, wasabi_police (bobby_pin, tracking_bracelet, handcuffs)
qb-core/server/events.lua All QBCore resources
ox_lib/locales/ro.json All translated notifications
17mov_CharacterSystem/configs/Bridge.lua Bridge selections: clothing, apartments, housing
17mov_CharacterSystem/configs/Config.lua t1ger_mechanic (outfit system), wasabi_police (outfit system)
wasabi_bridge/ wasabi_police, wasabi_ambulance
resources.cfg Ensure order — ensure [jobs] loads all legal jobs

Bridge Configuration (17mov_CharacterSystem/configs/Bridge.lua)

  • Config.Housing = "standalone" (qs-housing not auto-detected)
  • Config.Apartments = "standalone"
  • Clothing bridge: qb-clothing

🔔 Notification System

  • Standard: 17mov_Hud native notifications
    exports['17mov_Hud']:ShowNotification(message, type)
    
  • Previous systems migrated from: qs-notify, codem-notification, jg-hud

🛡️ Admin & Permissions

Admin Identifiers

FiveM ID Name Permissions
fivem:44269 Kotzu group.admin
fivem:6428737 cata group.admin + qbcore.god
steam:11000013f508340 rausse group.admin + qbcore.god
fivem:16062886 kotzu pc group.admin + qbcore.god

Permission Hierarchy

qbcore.god → group.admin → qbcore.admin → qbcore.mod

Luxu Admin

  • API Key configured in server.cfg
  • Web panel with outfit system (Clone Yourself feature)
  • set luxu_admin_api_key in server.cfg

📦 Database Notes

  • DB Name: red-valley
  • Connection: server=127.0.0.1;database=red-valley;userid=root; (via oxmysql)
  • Character Delete (qb-core/server/player.lua L541): playertables — comentat apartments (tabel inexistent) și phone_messages (coloana citizenid nu există, qs-smartphone-pro). Restul active: players, bank_accounts, crypto_transactions, phone_invoices, playerskins, player_contacts, player_houses, player_mails, player_outfits, player_vehicles
  • ⚠️ PENDING: crypto_history table has ~3,971 rows causing oversized queries — needs periodic cleanup or LIMIT

Pending Tasks (from changelog)

  • wasabi_police install: Copiat din _preLoad, jail='rcore', items adăugate în qs-inventory
  • wasabi_ambulance: Deja pe server (v1.14.2)
  • wasabi_police config review: Eliminat 'reporter' din policeJobs, confirmat cloakroom QBCore=17mov (2026-03-29)
  • wasabi_police outfit: Config.Outfits['police'] EXISTA DEJA în 17mov (grade 0-4, male+female, 5 variante) (2026-03-29)
  • Synapse Map update: wasabi_police + wasabi_ambulance nodes + conexiuni (2026-03-29)
  • t1ger_tuningsystem debug: Eliminat 6× console.log din NUI JS web/assets/index-DkGtvbUP.js (2026-03-29)
  • License Check NUI Custom: Resursa rv-license-dialog cu NUI custom matching tema Job Center (bg #0D0F11, accent #ff1a35, border #121416). Backup ox_lib comentat în codul bridge/client. Ensure adăugat în resources.cfg.
  • License Check Server Logic: Verificare metadata.licences.driver în Job Center (bridge/qb/server/main.lua) + GarbageCollector (server/functions.lua). Joburi blocate: garbage, deliverer, postman, lumberjack, bus.
  • License Check Replicare: Adaugă check permis în IsHaveRequiredItem() la Deliverer, Postman, Lumberjack, Busjob (aceeași structură ca GarbageCollector)
  • Webhooks qs-smartphone-pro: configure in server/custom/webhooks/webhooks.lua
  • Webhooks qs-advancedgarages: configure in server/custom/misc/*.lua
  • oxmysql oversized query: crypto_history cleanup (DELETE rows older than 7 days)
  • Version updates: qs-inventory 3.7.16→3.7.17, qs-vehiclekeys 4.0.13→4.0.29, t1ger_mechanic 3.6.7→3.6.9
  • Admin outfit setup: Configure Luxu panel Clone Yourself + test outfit stack
  • Admin jacket blacklist: Add in Skin.BlacklistedInputValues
  • spawn_mask item: Custom usable item (mask 134/2 male, 134/3 female)
  • Copiat rv-chat din VPS → LOCAL: _preLoad/server-v2-main/resources/[framework]/[base]/[ui]/rv-chat/resources/[framework]/[base]/[ui]/rv-chat/
  • Copiat codem-radio din VPS → LOCAL: _preLoad/server-v2-main/resources/[voice]/codem-radio/
  • Sincronizare VPS: Upload rv-license-dialog/ + ensure line + modificări JobCenter/GarbageCollector pe VPS
  • qs-inventory update: Portal v3.7.17 → LOCAL (merge safe: păstrează shared/items.lua, config/*, html/images/*, client/custom/**, server/custom/**)
  • KQ plugins path unify: Pe VPS sunt în [kq]/, pe LOCAL direct în [addons]/ — de unificat

📋 Quasar Resources Documentation Status

Resource Status
qs-inventory Documented (docs/qs_inventory_reference.md)
qs-housing ⚠️ Partial
qs-advancedgarages Not documented
qs-shops Not documented
qs-smartphone-pro Not documented
qs-vehiclekeys Not documented

🔧 Useful Commands & Exports

qs-inventory (Server)

exports['qs-inventory']:AddItem(source, item, amount, slot, info)
exports['qs-inventory']:RemoveItem(source, item, amount, slot)
exports['qs-inventory']:GetInventory(source)
exports['qs-inventory']:RegisterStash(id, slots, weight)

Admin Commands

  • /getoutfit — Print clothing component IDs (from t1ger_mechanic/getoutfit.lua)
  • /skin — Open full skin menu (all 4 tabs, skinCommand preset)

🖥️ Server Start (din IDE terminal)

# Pornire server simplu
cmd /c "e:\FiveMserver\server\start.bat"
  • CWD: e:\FiveMserver\server
  • start.bat v2.0 = launcher compact (RED VALLEY header, [OK] checks, separator =======)
  • Console Wrapper Demo: console_demo.ps1 — ANSI Shadow banner, loading bar, categorized output
  • Console Template: docs/console_display_template.md — full display spec + char mappings
  • Next: start_console.ps1 — real wrapper (pipes start.bat → filtered display)
  • Stop: Ctrl+C → apoi tastezi quit în consolă
  • Artifact: E:\FiveMserver\server\artifacts\FXServer.exe
  • IMPORTANT: Nu porni serverul de mai multe ori — verifică cu Get-Process FXServer înainte

🔇 Console Cleanup History

Resursă Fix Metodă
t1ger_mechanic DETECTED SYSTEMS/GARAGE/KEYS Comentat print-uri (bridge/init.lua)
t1ger_tuningsystem 6× console.log NUI Eliminat din web/assets
t1ger_tuningsystem has mechanic system Comentat print (shared/config.lua:258)
rcore_casino [Casino] Framework/drunk Print filter override (const.lua)
pma-voice Starting/finished init Comentat print-uri (client/init/init.lua)
qs-inventory jobs_creator warning Comentat Warning() (jaksam.lua:5)
qs-vehiclekeys Debug prints Config.Debug = false (deja setat)
bit-driverschool 5× outdated warning Comentat version.lua din fxmanifest
17mov_CharacterSystem ASCII banner + changelog Config: DisplayAsciiArt/Changelog/Files = false
cfx-gabz-mapdata Parse error ⚠️ Nerezolvabil (compiled bytecode)

📂 Key File Locations

Purpose Path
Server config server.cfg
Resource load order resources.cfg
QBCore jobs resources/[framework]/[core]/qb-core/shared/jobs.lua
QBCore items resources/[framework]/[core]/qb-core/shared/items.lua
Character system resources/[framework]/[base]/[auth]/17mov_CharacterSystem/
Skin presets 17mov_CharacterSystem/configs/Skin.lua
Job outfits config 17mov_CharacterSystem/configs/Config.lua
Bridge config 17mov_CharacterSystem/configs/Bridge.lua
HUD config resources/[framework]/[base]/[ui]/17mov_Hud/Config.lua
Mechanic job resources/[framework]/[base]/[jobs]/[legal]/[mechanic]/t1ger_mechanic/
Police job resources/[framework]/[base]/[jobs]/[legal]/[police]/wasabi_police/
Ambulance job resources/[framework]/[base]/[jobs]/[legal]/[ambulance]/wasabi_ambulance/
Police MDT resources/[framework]/[base]/[jobs]/[legal]/[police]/codem-mdt/
Dispatch resources/[framework]/[base]/[jobs]/[legal]/[police]/codem-dispatch/
Changelog changelog.md
Cross-resource tracking cross_resource_modifications.md
DB SQL dump red-valley.sql (430KB)
Server start script start.bat
Pre-load assets _preLoad/
Cfx.re catalog docs/cfx_assets_catalog.md (142 assets total)
Resource comparison docs/resource_comparison.md (LOCAL vs VPS diff)
NUI Simulator nui-simulator/ (Node.js standalone, node server.js --open, port 3200)
VPS backup _preLoad/server-v2-main/resources/ (snapshot producție)

🚗 Cfx.re Assets Overview (142 total)

Key devTeams: Quasar Store, ak4y, Malizniakk (17mov), T1GER, Kuzkay, rcore, wasabirobby, ThaC (CodeM), Eichenholz (sky_), OnexScripts, Gabz, 0Resmondev

Notable assets on server:

  • 17mov Character System, 17mov Hud, 17mov multiplayer jobs (12+)
  • T1GER Mechanic System, Tuning System, Car Lift, Prop Pack
  • Quasar: Inventory, Housing, Garages, Shops, Smartphone PRO, Vehicle Keys, Banking, Fuel, etc.
  • Wasabi: Police, Ambulance, Bridge, Evidence, Crutch
  • rcore: Casino, Prison, Doorlock, Tattoos, Clothes, Fuel, Stats, Shortcuts
  • Luxu Admin
  • Various MLO packs (Gabz PDM, MRPD, Vespucci LSPD, Fleeca Banks)

📜 Changelog Summary (reverse chronological)

Date Focus
2026-03-30 NUI Simulator standalone (Node.js), Resource comparison LOCAL vs VPS (raport complet), qs-inventory item icons sync (7 imagini VPS→LOCAL), rv-chat descoperit pe VPS (lipsește local)
2026-03-29 wasabi_police install + config review, console cleanup (10 resurse), start.bat v2.0, bit-driverschool fix, 17mov banner off, bob74_ipl v2.6.0, Synapse Map, License Check system (Job Center + GarbageCollector), rv-license-dialog NUI
2026-03-28 Driving School integration, ID Card notifications, Weather sync
2026-03-27 Spawn Outfit System, Character Delete fix, Skin presets, Char Creator plugin
2026-03-04 Mechanic Job Outfit System (auto-equip on duty)
2026-03-03 Mechanic Garage & Keys, 6 Bug Fixes, 17mov update v1.2.4→v1.2.5
2026-03-02 Server Architecture Research, Cfx.re Audit, Admin Outfit Research
2026-03-01 HUD Migration (jg-hud→17mov), Luxu Admin update, No-NPC, QBCore updates
2026-02-27 Luxu Admin install, rv-mdt creation, BMW M3 F80, QBCore server events refactor
2026-02-19 Remove mChat, resource updates
2026-02-17 QS-Inventory core update
2026-02-02 Remove codem-pausemenu, vehicle swaps, TLS
2026-01-19 Helnius Xero24 Gas Station MLO
2026-01-18 ConnectQueue, Wasabi Police, Bank MLO, Codem Radio, QS-Shops
2026-01-07 Cache cleanup

🔐 License Check System (Red Valley Custom)

Architecture

Player Apply @ Job Center          Player DutyToggle @ Job Location
        │                                    │
        ▼                                    ▼
bridge/qb/server/main.lua         server/functions.lua
   SetPlayerJob()                   IsHaveRequiredItem()
        │                                    │
        ▼                                    ▼
 Check metadata.licences.driver    Check metadata.licences.driver
        │                                    │
   ┌────┴────┐                          ┌────┴────┐
   Has    No License                    Has    No License
   │         │                          │         │
   ▼         ▼                          ▼         ▼
 SetJob   return false               continue   return false
           + TriggerClient                      + Notify
           "rv:showLicenseDialog"               + TriggerClient
                                                "rv:showLicenseDialog"

Resursa rv-license-dialog

  • Locație: resources/[framework]/[addons]/rv-license-dialog/
  • Fișiere: fxmanifest.lua, client.lua, html/index.html
  • Event: rv:showLicenseDialog (server → client)
  • NUI Callbacks: close (închide dialog), route (waypoint la școală)
  • Coordonate Școală: vector3(214.45, -1400.163, 30.57) (bit-driverschool)
  • Tema: Job Center (bg #0D0F11, accent #ff1a35, border #121416)
  • Backup ox_lib: Comentat în bridge/qb/client/main.lua și client/functions.lua

Jobs cu License Check

Job Locație Check Note
garbage Job Center + IsHaveRequiredItem Implementat complet
deliverer Job Center TODO: IsHaveRequiredItem
postman Job Center TODO: IsHaveRequiredItem
lumberjack Job Center TODO: IsHaveRequiredItem
bus Job Center TODO: IsHaveRequiredItem

17mov Jobs — Editable Files (escrow_ignore)

Toate resursele 17mov au fișiere encrypted (FXAP) dar următoarele sunt editabile:

  • Config.lua — configurație completă
  • client/functions.lua — hooks client-side (Notify, ChangeClothes, etc.)
  • client/target.lua — target system hooks
  • server/functions.luaIsHaveRequiredItem(), Pay(), PayPenalty(), GetPlayerJob()
  • locale/*.lua — traduceri
  • bridge/**/*.lua — framework bridge (QB/ESX)

Driver License Storage (bit-driverschool → QBCore)

-- Stored in: PlayerData.metadata.licences
{
    driver = true/false,  -- Permis B (mașină) — Config.licenseNameCar = "driver"
    moto = true/false,    -- Permis A (motocicletă) — Config.licenseNameMoto = "moto"
    truck = true/false    -- Permis C (camion) — Config.licenseNameTruck = "truck"
}
-- Persistent in SQL: players.metadata JSON column
-- Also gives item: driver_license (but item can be in car/stash, metadata is authoritative)

🎯 Interaction System (qb-target / ld-target engine)

De la 2026-04-08, sistemul de target este qb-target bazat pe ld-target (engine open-source NP 4.0 inspired).

Fișiere Cheie

Fișier Scop
fxmanifest.lua provide 'qtarget' — compatibilitate cu 17mov_Electrician
client.lua Engine principal (raycast, exports, zone markers)
init.lua Config (DrawSprite=true, Peds={})
interaction/interaction.lua 3-stage interaction (dot→hexagon→menu)
html/ NUI (style.css, interaction.css, script.js, index.html)
stream/ circle_marker.ytd + lunny_ui.ytd (texturi interacțiune)

Exports Disponibile

AddBoxZone, AddCircleZone, AddPolyZone, AddEntityZone, AddComboZone, RemoveZone, AddTargetEntity, RemoveTargetEntity, AddTargetModel, RemoveTargetModel, AddTargetBone, RemoveTargetBone, AddGlobalPed, AddGlobalVehicle, AddGlobalObject, AddGlobalPlayer, RemoveGlobalPed, RemoveGlobalVehicle, RemoveGlobalObject, RemoveGlobalPlayer, SpawnPed, RemoveSpawnedPed, DeletePeds, IsTargetActive, IsTargetSuccess

Config Flag per DevTeam

DevTeam Config Key Valoare
17mov Config.UseTarget = true în Config.lua
Quasar Config.UseTarget = true în config/config.lua
QBCore setr UseTarget true în server.cfg
rcore UseTarget = true, TargetZoneType = 3 în config.lua
aty_busjob Target = "qb" în config.lua
wasabi Config.useTarget = true era deja activat
T1GER via t1ger_lib era deja activat

Excepție

  • qs-advancedgarages — nu suportă qb-target (doar ox_target / qb-radialmenu / none)

Zone Markers

  • Circle dots apar pe Zones (BoxZone, CircleZone) când ALT e ținut apăsat
  • Entitățile adăugate cu AddTargetEntity() NU au markere la distanță (design original ld-target)
  • Culoare DrawSprite: RGB(92, 151, 247) = #5c97f7 albastru

🖥️ 17mov_Hud — API Reference

Full docs: docs/17mov-hud-api-reference.md Sursă: https://docs.17movement.net/advanced-hud/

Exports disponibile din alte resurse

Export Ce face
ToggleDisplay(bool) Ascunde/afișează HUD complet
HideRadar(bool) Forțează ascundere minimap
ShowNotification(text, type, title, time) Notificare (info/error/success)
ShowHelpNotification(text) Help text (suportă INPUT_CONTEXT)
HideHelpNotification() Ascunde help
ShowHelpNotificationWhile(text) Help pt while loops (auto-hide)
StartProgress(action, onStart, onTick, onFinish) Progress bar cu animație + props
StopProgress() Oprește progress bar
OpenSettings() Deschide setări HUD
GetTheme(callback) Returnează culori HUD ca hex
GetSettings(callback) Returnează setări curente

Custom Indicators (adaugă elemente noi pe HUD)

-- Adaugă cerc (ca viața) sau card (text colț)
exports["17mov_Hud"]:RegisterComponent("name", { type="status"|"card", label="...", icon={...} })
exports["17mov_Hud"]:UpdateComponentValue("name", value)        -- float 0-1 sau string
exports["17mov_Hud"]:ToggleComponentVisibility("name", bool)    -- arată/ascunde

Fișiere NUI Configurabile

Fișier Locație Ce controlează
colors.css 17mov_CharacterSystem/web/web/colors.css Toate culorile NUI
config.json (loading) 17mov_CharacterSystem/web/web/loadingscreen/config.json Loading screen
images/ (loading) 17mov_CharacterSystem/web/web/loadingscreen/images/ Logo + slides
songs/ (loading) 17mov_CharacterSystem/web/web/loadingscreen/songs/ Muzică loading

⚠️ Folderul web/loadingscreen/ (fără web/) NU e cel activ! Config-ul real e în web/web/loadingscreen/.

Culori Red Valley (aplicate 2026-04-01)

--color-accent: 255 26 53;              /* Roșu RV (#ff1a35) — loading bar, titluri, accente */
--color-background-primary: 255 255 255; /* Alb transparent — carduri UI */

🆕 Resurse Custom Red Valley

rv-props (Custom Props)

  • Locație: resources/[stream]/rv-props/
  • Scop: Props custom branded (prop_rv_tablet)
  • Consumat de: 17mov_JobCenter (tabletă animație)
  • Tip: Standalone (stream, zero cod Lua)

qb-target (ld-target engine — migrat 2026-04-08)

  • Locație: resources/[framework]/[core]/qb-target/
  • Engine: ld-target (open-source, NP 4.0 inspired)
  • provide: qtarget (compatibilitate 17mov_Electrician)
  • Config.Peds: Golit (fără demo NPC-uri Lunny)
  • Culori NUI: Teal original (#00F8B9) — planificat switch la #5c97f7 albastru
  • Dependență: PolyZone
  • Status: Funcțional complet, exports verificate, F8 curat

rv-itemsonback (Items vizibile pe corp + Admin Menu)

  • Locație: resources/[framework]/[addons]/rv-itemsonback/
  • Scop: Afișare props pe corpul jucătorului din inventar (medikit, etc.) + admin menu live edit
  • Fișiere: fxmanifest.lua, config.lua, client.lua, server.lua, data/items.json
  • Dependențe: ox_lib, qb-core
  • Manifest: fx_version 'bodacious' (NU cerulean — nu încarcă scripturile!)
  • Admin Menu: /itemsonback — ox_lib context menu
    • Search items din QBCore.Shared.Items
    • Ajustare live pos/rot cu preview transparent
    • Selectare bone (pelvis, spine, etc.)
    • Salvare persistentă în data/items.json
    • /clearpreview — cleanup emergency prop
  • Auto-cleanup: Safety thread curăță preview-ul dacă rămâne blocat (3s)
  • Disable Idle: InvalidateIdleCam() + N_0xf4f2c0d4ee209e20() + SetPedCanPlayAmbientAnims(false)
  • Target Dummy: /spawndummy (NPC random, stă pe loc, rănibil, rămâne mort), /killdummy (cleanup)
  • Ensure: În [addons] folder, pornește cu ensure [addons]

qs-inventory Fixes (2026-04-01)

  • Config.Genders: Adăugat [0] = 'Male', [1] = 'Female' — QBCore folosește 0-indexed, Quasar 1-indexed
  • Config.Framework: Forțat 'qb' (auto-detect eșua)
  • Config.Debug: false (elimină spam consolă)
  • RemoveItem.lua: pcall la handleDeleteItem export (previne crash qs-smartphone-pro vechi)

Quasar Advanced Inventory Migration (2026-04-02)

  • qb-core fork: Instalat Quasar pre-configured qb-core 1.3.0
  • StarterItems (qb-core/shared/main.lua L6): DOAR phone + map (id_card de la mugshot, driver_license de la școală)
  • Clothing items (qb-core/shared/items.lua): Adăugat chain, vest, bracelets, watch (copiate din qs-inventory items.lua)
  • playertables (qb-core/server/player.lua L541): Comentat apartments + phone_messages
  • qs-inventory config: Language='ro', ServerName='RED VALLEY', Debug=true (temporar)
  • qs-housing SQL: Importat din docs + folder (houselocations, player_houses, house_decorations, etc.)

⚠️ CRITICAL: Checklist la Update qb-core

  1. shared/main.lua → StarterItems: DOAR phone + map
  2. server/player.lua → playertables: FĂRĂ apartments, FĂRĂ phone_messages
  3. shared/items.lua → Clothing: chain, vest, bracelets, watch TREBUIE să existe

📜 Changelog Summary (reverse chronological)

Date Focus
2026-04-10 Resource cleanup: mutat resurse neutilizate în backup, verificat structura completă, actualizat knowledge base
2026-04-08 qb-target migration (ld-target engine): folder rename rv-target→qb-target, provide qtarget, demo peds cleanup, blue branding NUI (#5c97f7), fresh copy din ld-target original, F8 erori rezolvate (toate exporturile funcționale)
2026-04-02 Quasar Advanced Inventory migration (v1.5.66), qb-core fork Quasar 1.3.0, qs-housing SQL import, clothing items fix (+chain/vest/bracelets/watch), playertables fix (-apartments/-phone_messages), StarterItems fix (phone+map only), rv-itemsonback v2.0
2026-03-30 NUI Simulator standalone (Node.js), Resource comparison LOCAL vs VPS (raport complet), qs-inventory item icons sync (7 imagini VPS→LOCAL), rv-chat descoperit pe VPS (lipsește local)
2026-03-29 wasabi_police install + config review, console cleanup (10 resurse), start.bat v2.0, bit-driverschool fix, 17mov banner off, bob74_ipl v2.6.0, Synapse Map, License Check system (Job Center + GarbageCollector), rv-license-dialog NUI
2026-03-28 Driving School integration, ID Card notifications, Weather sync
2026-03-27 Spawn Outfit System, Character Delete fix, Skin presets, Char Creator plugin
2026-03-04 Mechanic Job Outfit System (auto-equip on duty)
2026-03-03 Mechanic Garage & Keys, 6 Bug Fixes, 17mov update v1.2.4→v1.2.5
2026-03-02 Server Architecture Research, Cfx.re Audit, Admin Outfit Research
2026-03-01 HUD Migration (jg-hud→17mov), Luxu Admin update, No-NPC, QBCore updates
2026-02-27 Luxu Admin install, rv-mdt creation, BMW M3 F80, QBCore server events refactor
2026-02-19 Remove mChat, resource updates
2026-02-17 QS-Inventory core update
2026-02-02 Remove codem-pausemenu, vehicle swaps, TLS
2026-01-19 Helnius Xero24 Gas Station MLO
2026-01-18 ConnectQueue, Wasabi Police, Bank MLO, Codem Radio, QS-Shops
2026-01-07 Cache cleanup