Files
red-valley/docs/resource_dependency_map.md

379 lines
15 KiB
Markdown
Raw Permalink Normal View History

2026-03-29 21:41:17 +03:00
# Red Valley Roleplay — Resource Dependency Map
> Scanat din codul sursă: exports, TriggerEvent, TriggerServerEvent, TriggerClientEvent.
> Ultima actualizare: 2026-03-29
---
## 🔴 Resurse CRITICE (modificarea lor afectează MULTE resurse)
### 1. `qb-core` — Nucleul framework-ului
**Cine depinde de qb-core** (TOATE resursele — prin `exports['qb-core']:GetCoreObject()`):
- qs-inventory, qs-shops, qs-vehiclekeys, qs-advancedgarages, qs-smartphone-pro
- 17mov_CharacterSystem, 17mov-plugin-char-creator, 17mov_Hud, 17mov_JobCenter
- t1ger_mechanic, t1ger_tuningsystem (via t1ger_lib)
- wasabi_police, wasabi_ambulance (via wasabi_bridge)
- rv-mdt, codem-mdt, codem-dispatch
- luxu_admin, mBossmenu, qb-management
- jg-dealerships, bit-driverschool, 0r_idcard
- qb-target, qb-menu, qb-smallresources, qb-weathersync
- ac-carcontrol, kq_carheist, kq_dyno, kq_wheeldamage
- rcore_fuel, rcore_casino, rcore_prison, rcore_doorlock
- svdden_banking, progressbar
**Fișiere critice în qb-core:**
| Fișier | Ce afectează |
|--------|-------------|
| `shared/jobs.lua` | wasabi_police, rv-mdt, t1ger_mechanic, luxu_admin, qs-inventory, qs-shops, jg-dealerships, codem-dispatch, qb-management, 17mov_JobCenter, kq_dyno, kq_carheist, rcore_casino, rcore_fuel |
| `shared/items.lua` | qs-inventory, qs-shops, 0r_idcard, qb-smallresources |
| `shared/main.lua` | StarterItems → afectează ce primește playerul la spawn |
| `server/player.lua` | Character create/delete/login → 17mov_CharacterSystem, qs-inventory |
| `server/events.lua` | Hunger/thirst updates → 17mov_Hud; duty toggle → toate job-urile |
| `client/functions.lua` | Notificări (rutează la `17mov_Hud:ShowNotification`) |
**Events emise de qb-core și cine le ascultă:**
| Event | Ascultători |
|-------|------------|
| `QBCore:Client:OnPlayerLoaded` | 17mov_Hud, 17mov_CharacterSystem, 17mov_JobCenter, qs-inventory, qs-shops, qs-smartphone-pro, qs-advancedgarages, qs-housing, qb-target, qb-smallresources, qb-management, qb-weathersync, qb-input, wasabi_bridge, 0r_idcard, bit-driverschool (via busjob), codem-mdt, codem-dispatch, t1ger_mechanic, jg-dealerships, kq_carheist, kq_dyno, rcore_fuel, rcore_casino, interact-sound, luxu_admin |
| `QBCore:Server:PlayerLoaded` | 17mov_CharacterSystem, qs-inventory, luxu_admin, 17mov_Electrician, qb-core (playtime-paycheck) |
| `QBCore:Client:OnJobUpdate` | 17mov_Hud, 17mov_JobCenter, qs-shops, qs-smartphone-pro, qs-advancedgarages, qs-housing, qb-target, qb-management, wasabi_bridge, t1ger_mechanic, codem-mdt, codem-dispatch, jg-dealerships, kq_carheist, kq_dyno, rcore_fuel, rcore_casino, aty_busjob |
| `QBCore:Server:OnJobUpdate` | qb-core internal |
| `QBCore:Server:SetDuty` | qb-core, codem-mdt |
| `QBCore:Server:PlayerDropped` | Cleanup în toate resursele |
---
### 2. `qs-inventory` — Sistem de inventar
**Cine apelează exports din qs-inventory:**
- qb-core (AddItem/RemoveItem bridge)
- qb-smallresources (consumables)
- 17mov_CharacterSystem (setInClothing)
- luxu_admin (bridge/shared/inventory)
- mBossmenu
- qs-advancedgarages (stash)
- qs-shops (items)
- qs-smartphone-pro
- qs-vehiclekeys
- rcore_casino
- t1ger_lib (stash — mechanic/tuning)
- codem-mdt (inventory check)
**Events legate de inventory:**
| Event | Direcție |
|-------|---------|
| `inventory:client:ItemBox` | qs-inventory → UI notificare item |
| `hud:client:UpdateNeeds` | qs-inventory server → 17mov_Hud |
| `hud:server:GainStress` / `RelieveStress` | qs-inventory client → 17mov_Hud server |
---
### 3. `qs-vehiclekeys` — Sistem de chei vehicule
**Cine apelează exports din qs-vehiclekeys:**
- qb-core, qb-target, qb-smallresources
- 0r_idcard (`GiveKeys` la driving license)
- ac-carcontrol
- bit-driverschool (`GiveKeys` la test)
- luxu_admin (`giveVehicleKeys`)
- qs-advancedgarages
- qs-smartphone-pro
- rcore_fuel, rcore_casino
- wasabi_bridge
---
### 4. `17mov_Hud` — HUD & Notificări
**Cine trimite notificări la 17mov_Hud:**
- qb-core (`client/functions.lua``exports["17mov_Hud"]:ShowNotification`)
- ox_lib (`notify.lua``exports["17mov_Hud"]:ShowNotification`)
- 0r_idcard (direct export call)
- bit-driverschool (direct export call)
- qb-smallresources (`TriggerClientEvent('17mov_Hud:ShowNotification')`)
**Events HUD (stress/needs):**
| Event | Cine emite | Cine ascultă |
|-------|-----------|-------------|
| `hud:server:GainStress` | 17mov_Hud (client), qs-inventory | 17mov_Hud (server), qb-smallresources |
| `hud:server:RelieveStress` | wasabi_ambulance, qs-inventory, qb-smallresources | 17mov_Hud (server), qb-smallresources |
| `hud:client:UpdateNeeds` | qb-core, qs-inventory, wasabi_ambulance, qb-smallresources, luxu_admin | 17mov_Hud (client) |
| `hud:client:UpdateStress` | 17mov_Hud (server), qb-smallresources | 17mov_Hud (client) |
---
### 5. `17mov_CharacterSystem` — Character Select & Clothing
**Dependințe ale CharacterSystem:**
- `qs-inventory` (setInClothing la deschidere/închidere meniu haine)
- `qb-core` (framework bridge — jobs, player data)
**Cine depinde de CharacterSystem:**
- `17mov-plugin-char-creator` (ascultă `17mov_CharacterSystem:SaveCurrentSkin`)
- `t1ger_mechanic` (citește `Config.Outfits['mechanic']` din `configs/Config.lua`)
- `qs-housing` (apelează `qb-clothing:client:openOutfitMenu` — rutat prin bridge)
- `qs-advancedgarages` (apelează `qb-clothing:client:openOutfitMenu`)
- `qb-management` (apelează `qb-clothing:client:openOutfitMenu`)
- `qb-smallresources` (apelează `qb-clothing:client:loadOutfit` pentru parașută)
- `wasabi_ambulance` (apelează `qb-clothing:client:openMenu`)
**Events clothing critice:**
| Event | Emis de | Ascultat de |
|-------|---------|------------|
| `qb-clothing:client:openOutfitMenu` | qs-housing, qs-advancedgarages, qb-management | 17mov_CharacterSystem bridge |
| `qb-clothing:client:openMenu` | wasabi_ambulance | 17mov_CharacterSystem bridge |
| `qb-clothing:client:loadOutfit` | qb-smallresources | 17mov_CharacterSystem bridge |
| `17mov_CharacterSystem:SaveCurrentSkin` | 17mov_CharacterSystem (functions.lua, bridge) | 17mov-plugin-char-creator |
| `qb-clothing:saveSkin` | intern | 17mov_CharacterSystem bridge/qb/server |
---
### 6. `wasabi_bridge` — Framework bridge pentru wasabi
**Conectează:**
- `wasabi_police` → qb-core, qs-vehiclekeys
- `wasabi_ambulance` → qb-core, qs-vehiclekeys
**Events wasabi:**
| Event | Legătură |
|-------|---------|
| `wasabi_bridge:onPlayerDeath` | wasabi_ambulance ↔ wasabi_bridge |
| `wasabi_bridge:onPlayerSpawn` | wasabi_ambulance ↔ wasabi_bridge |
---
### 7. `t1ger_mechanic` + `t1ger_tuningsystem`
**Dependințe prin `t1ger_lib`:**
- `qb-core` (framework)
- `qb-target` (target system)
- `qs-inventory` (stash)
- `qb-management` (society accounts, billing)
**Cross-resource:**
- Citește `Config.Outfits['mechanic']` din `17mov_CharacterSystem/configs/Config.lua`
- `t1ger_tuningsystem` apelează `exports['t1ger_mechanicsystem']` (intern T1GER)
---
### 8. `luxu_admin` — Admin Panel
**Apelează exports din:**
- `qb-core` (player management)
- `qs-inventory` (item management)
- `qs-smartphone-pro` (phone control)
- `qs-vehiclekeys` (key management)
- `pma-voice` (voice control)
- `qb-management` (society money)
**Events:**
- `luxu_admin:client:giveVehicleKeys` → qs-vehiclekeys
- `hud:client:UpdateNeeds` → 17mov_Hud
---
## 📊 Matricea de Impact — Ce trebuie verificat când modifici o resursă
### Dacă modifici `qb-core`:
```
⚠️ IMPACT MAXIM — Verifică TOTUL
├── shared/jobs.lua → wasabi_police, rv-mdt, t1ger_mechanic, qs-inventory,
│ qs-shops, luxu_admin, jg-dealerships, kq_carheist,
│ kq_dyno, rcore_casino, rcore_fuel, qb-management,
│ 17mov_JobCenter, codem-dispatch, codem-mdt
├── shared/items.lua → qs-inventory, qs-shops, 0r_idcard, qb-smallresources
├── shared/main.lua → StarterItems, spawn behavior
├── server/player.lua → 17mov_CharacterSystem (login/create), qs-inventory,
│ luxu_admin, character delete
├── server/events.lua → 17mov_Hud (hunger/thirst), duty toggle
└── client/functions.lua → 17mov_Hud (notificări)
```
### Dacă modifici `17mov_CharacterSystem`:
```
├── configs/Config.lua (Outfits) → t1ger_mechanic duty.lua
├── configs/Skin.lua (Presets) → char creator flow, shop/ambulance/admin skin
├── configs/Bridge.lua → housing, apartments, clothing bridge selection
├── client/functions.lua → spawn outfit, SaveCurrentSkin event
│ └── 17mov-plugin-char-creator (ascultă SaveCurrentSkin)
├── bridge/clothing/qb-clothing/exports.lua → oricine apelează qb-clothing events:
│ ├── qs-housing (wardrobes)
│ ├── qs-advancedgarages (wardrobes)
│ ├── qb-management (boss/gang outfits)
│ ├── wasabi_ambulance (clothing menu)
│ └── qb-smallresources (parașută loadOutfit)
└── bridge/framework/qb/ → qb-core events routing
```
### Dacă modifici `qs-inventory`:
```
├── Items → qb-core/shared/items.lua trebuie sincronizat
├── Shops → qs-shops/json/shops-inventory.json
├── Stash system → t1ger_mechanic, t1ger_tuningsystem, qs-advancedgarages
├── Framework bridge → qb-core (AddItem/RemoveItem)
├── HUD integration → 17mov_Hud (hunger/thirst/stress events)
└── Phone integration → qs-smartphone-pro
```
### Dacă modifici `qs-vehiclekeys`:
```
├── Key management → qs-advancedgarages (garage key system)
├── Driving school → bit-driverschool (GiveKeys la test)
├── ID card → 0r_idcard (GiveKeys la license)
├── Admin → luxu_admin (vehicle key management)
├── Car control → ac-carcontrol
├── Phone → qs-smartphone-pro (remote lock/unlock)
├── Fuel → rcore_fuel
└── Framework → qb-core, qb-target, qb-smallresources
```
### Dacă modifici `17mov_Hud`:
```
├── Notificări consumate de → qb-core, ox_lib, 0r_idcard, bit-driverschool,
│ qb-smallresources
├── Stress system → qs-inventory, wasabi_ambulance, qb-smallresources
├── Hunger/Thirst → qb-core, qs-inventory, wasabi_ambulance, luxu_admin,
│ qb-smallresources
└── Job display → qb-core (OnJobUpdate)
```
### Dacă modifici `qs-smartphone-pro`:
```
├── Voice → pma-voice (call system)
├── Keys → qs-vehiclekeys (remote lock)
├── Inventory → qs-inventory
├── Framework → qb-core
├── Radio → phone-radio (dependency)
└── Photos → screenshot-basic
```
### Dacă modifici `wasabi_police` sau `wasabi_ambulance`:
```
├── Bridge → wasabi_bridge → qb-core
├── Clothing → 17mov_CharacterSystem (qb-clothing events)
├── HUD → 17mov_Hud (stress relief, needs update)
├── Jobs → qb-core/shared/jobs.lua
└── MDT → rv-mdt / codem-mdt, codem-dispatch
```
### Dacă modifici `qs-advancedgarages`:
```
├── Keys → qs-vehiclekeys
├── Inventory → qs-inventory (stash)
├── Outfit menu → 17mov_CharacterSystem (qb-clothing bridge)
├── Housing → qs-housing (shell garages)
├── Framework → qb-core
└── DB → oxmysql
```
### Dacă modifici `jg-dealerships`:
```
├── Framework → qb-core
├── DB → oxmysql, ox_lib
├── Jobs → qb-core/shared/jobs.lua
└── OneSync → required
```
### Dacă modifici `t1ger_mechanic`:
```
├── Library → t1ger_lib (core dependency)
├── Tuning → t1ger_tuningsystem (shared mechanic system)
├── Outfits → 17mov_CharacterSystem/configs/Config.lua
├── Stash → qs-inventory (via t1ger_lib)
├── Target → qb-target (via t1ger_lib)
├── Society → qb-management (via t1ger_lib)
└── Keys → qs-vehiclekeys (via qs-advancedgarages for job vehicles)
```
### Dacă modifici `0r_idcard`:
```
├── Notificări → 17mov_Hud
├── Keys → qs-vehiclekeys (driving license)
├── Screenshot → screenshot-basic (headshot)
├── Framework → qb-core
└── DB → oxmysql
```
### Dacă modifici `bit-driverschool`:
```
├── Notificări → 17mov_Hud
├── Keys → qs-vehiclekeys (GiveKeys la test)
├── Target → qb-target
├── Items → qb-core/shared/items.lua (driver_license)
├── License → 0r_idcard (setPlayerLicense)
└── Framework → qb-core
```
---
## 🔄 Diagrama Vizuală a Dependințelor
```mermaid
graph TD
QBC[qb-core<br/>NUCLEU] --> |shared/jobs| WP[wasabi_police]
QBC --> |shared/jobs| RV[rv-mdt]
QBC --> |shared/jobs| TM[t1ger_mechanic]
QBC --> |shared/jobs| QM[qb-management]
QBC --> |shared/items| QSI[qs-inventory]
QBC --> |shared/items| QSS[qs-shops]
QBC --> |events| HUD[17mov_Hud]
QBC --> |framework| CS[17mov_CharacterSystem]
QBC --> |framework| LA[luxu_admin]
CS --> |setInClothing| QSI
CS --> |Config.Outfits| TM
CS --> |SaveCurrentSkin| PCC[17mov-plugin-char-creator]
CS --> |clothing bridge| QSH[qs-housing]
CS --> |clothing bridge| QSG[qs-advancedgarages]
CS --> |clothing bridge| QM
CS --> |clothing bridge| WA[wasabi_ambulance]
QSI --> |hunger/thirst| HUD
QSI --> |items| QSS
QSI --> |phone| QSP[qs-smartphone-pro]
QSV[qs-vehiclekeys] --> |keys| QSG
QSV --> |keys| QSP
QSV --> |keys| BDS[bit-driverschool]
QSV --> |keys| IDC[0r_idcard]
QSV --> |keys| LA
QSV --> |keys| RF[rcore_fuel]
WB[wasabi_bridge] --> WP
WB --> WA
WA --> |stress| HUD
TL[t1ger_lib] --> TM
TL --> TT[t1ger_tuningsystem]
TL --> |stash| QSI
TL --> |target| QBT[qb-target]
TL --> |society| QM
IDC --> |notif| HUD
BDS --> |notif| HUD
BDS --> |license| IDC
QSP --> |voice| PMA[pma-voice]
LA --> |voice| PMA
style QBC fill:#ff4444,color:#fff
style QSI fill:#ff6600,color:#fff
style QSV fill:#ff6600,color:#fff
style CS fill:#ff9900,color:#fff
style HUD fill:#ff9900,color:#fff
style LA fill:#9933cc,color:#fff
```
---
## ⚡ Quick Reference: Modificare → Impact
| Când modifici... | Verifică obligatoriu... |
|-----------------|------------------------|
| Job labels/grades în `jobs.lua` | wasabi_police, rv-mdt, t1ger_mechanic, qs-inventory, luxu_admin, jg-dealerships, 17mov_JobCenter |
| Items în `items.lua` | qs-inventory, qs-shops |
| Cum funcționează notificările | ox_lib, 0r_idcard, bit-driverschool, qb-smallresources |
| Outfit IDs în `Config.Outfits` | t1ger_mechanic/duty.lua |
| Skin presets în `Skin.lua` | Char creator, clothing shops, wasabi_ambulance |
| Bridge selection în `Bridge.lua` | Housing wardrobe, clothing menu |
| Vehicle key exports | bit-driverschool, 0r_idcard, ac-carcontrol, qs-advancedgarages, luxu_admin |
| Player spawn flow | 17mov_CharacterSystem, 17mov-plugin-char-creator |
| Hunger/thirst values | 17mov_Hud, qb-smallresources |
| Duty toggle | t1ger_mechanic/duty.lua (outfit), wasabi_police, codem-dispatch |
| Character delete | qb-core/server/player.lua → playertables array |
| Stash/storage | qs-inventory, t1ger_lib |
| Phone features | qs-smartphone-pro ↔ pma-voice, qs-vehiclekeys |