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
This commit is contained in:
2026-06-17 16:53:15 +03:00
parent 3dcff3ce6d
commit 1bcf0d9282
5 changed files with 319 additions and 59 deletions
+48
View File
@@ -7,6 +7,41 @@ git tkn: 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
---
## 2026-04-10 — Resource Cleanup + Knowledge Base Update
### 🧹 Resource Cleanup
- Mutat resurse neutilizate în `_preLoad/_backups 10-04-2026/`
- Verificat complet structura resurselor post-cleanup
- Actualizat knowledge base: `server_knowledge.md`, `resource_dependency_map.md`, `changelog.md`, `todo_lists.md`, `cross_resource_modifications.md`, `resource_map.html`
---
## 2026-04-08 — qb-target Migration (ld-target engine)
### 🎯 Target System Migration: rv-target → qb-target (ld-target engine)
- **Cauza erorilor**: Folderul se numea `rv-target` cu `provide 'qb-target'` — resursele nu găseau exporturile
- **Fix**: Folder redenumit la `qb-target` (cum era distribuit ld-target original)
- **provide qtarget**: Adăugat `provide 'qtarget'` în fxmanifest.lua pt compatibilitate cu `17mov_Electrician`
- **Demo peds cleanup**: `Config.Peds = {}` (golit tabel demo Lunny)
- **Blue branding NUI**: `#00F8B9``#5c97f7` în style.css, interaction.css, script.js, index.html
- **DrawSprite albastru**: Zone markers RGB(92,151,247) în client.lua
- **Fresh copy**: client.lua și NUI copiate proaspăt din `_preLoad/ld-target/Standalone/`
- **F8 curat**: Toate erorile `No such export` rezolvate
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| 🔄 REDENUMIT | `rv-target/``qb-target/` (folder rename) |
| ✏️ MOD | `qb-target/fxmanifest.lua` — name='qb-target', provide 'qtarget' |
| ✏️ MOD | `qb-target/init.lua` — Config.Peds = {} |
| ✏️ MOD | `qb-target/client.lua` — DrawSprite RGB(92,151,247) albastru |
| ✏️ MOD | `qb-target/html/style.css`#00F8B9#5c97f7 |
| ✏️ MOD | `qb-target/html/interaction.css`#00F8B9#5c97f7 |
| ✏️ MOD | `qb-target/html/script.js`#00F8B9#5c97f7 |
| ✏️ MOD | `qb-target/html/index.html`#00F8B9#5c97f7 |
---
## 2026-04-03 — Stabilizare Post-Migrare Quasar Inventory + Notify Centralizat
### 🔧 Fix: qb-core Post-Update Recovery (Quasar fork a suprascris custom changes)
@@ -20,6 +55,15 @@ git tkn: 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
- ✏️ `resources/[framework]/[core]/qb-core/client/events.lua` — Override `QBCore:Notify` event → `exports['17mov_Hud']:ShowNotification()` (linia ~193)
- **Efect:** TOATE resursele de pe server afișează notificări prin 17mov_Hud automat, fără modificări individuale
### 🎯 Suprimare DrawText [E] Global + qb-target Migration
- ✏️ `resources/[framework]/[core]/qb-core/client/drawtext.lua`**SUPRIMAT GLOBAL** — toate funcțiile DrawText/ChangeText/HideText/KeyPressed sunt no-ops. Resursele nu mai pot afișa prompt-uri [E]. Exporturile rămân funcționale (nu crashuiesc), dar nu fac nimic.
- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/framework/qb.lua` — DrawText3D/DrawText3Ds/DrawTextBoard suprimare condițională: când `Config.UseTarget = true`, funcțiile devin no-ops (elimină textele [E] din codul encrypted)
- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/target/qb-target.lua` — Adăugat BoxZone qb-target pe NPC-ul Real Estate + floating text "Agent Imobiliar" deasupra capului (utilizează native GTA, nu DrawText3D suprimat)
- **Efect:** Prompt-urile [E] au dispărut de pe tot serverul. Interacțiunile se fac prin qb-target (dot/eye target). Resursele cu `Config.UseTarget` rămân de setat individual pe `true` pe rând.
### ⏰ Time Freeze la 14:00
- ✏️ `resources/[framework]/[addons]/qb-weathersync/config.lua``Config.BaseTime = 14`, `Config.FreezeTime = true` (server locked la 14:00)
### 📋 Workflow & Rulebook Updates
- ✏️ `.agents/workflows/rulebook.md` — Regula 5 rescrisă complet: workflow obligatoriu `/resource-update`, qb-core checklist cu 7 puncte
- 🆕 `.agents/workflows/resource-update.md` — Workflow nou: git diff înainte/după, cross_resource_modifications.md check, post-update verificare
@@ -43,6 +87,10 @@ git tkn: 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
| 🆕 NOU | `.agents/workflows/resource-update.md` |
| ✏️ MOD | `.agents/workflows/rulebook.md` — regula 5 extinsă |
| ✏️ MOD | `cross_resource_modifications.md` — 7 puncte checklist qb-core |
| ✏️ SUPRIMAT | `qb-core/client/drawtext.lua` — DrawText/HideText no-ops global |
| ✏️ MOD | `qs-housing/client/custom/framework/qb.lua` — DrawText3D no-op când UseTarget=true |
| ✏️ MOD | `qs-housing/client/custom/target/qb-target.lua` — +NPC Real Estate target + floating text |
| ✏️ MOD | `qb-weathersync/config.lua` — time freeze 14:00 |
---
+87
View File
@@ -114,3 +114,90 @@ resources/[framework]/[core]/qb-core/shared/items.lua ← +chain, +vest, +brac
resources/[framework]/[core]/qb-core/server/player.lua ← playertables: -apartments, -phone_messages
resources/[framework]/[core]/[inventory]/qs-inventory/config/config.lua ← lang, servername, debug
```
---
## Feature: Global [E] Prompt Suppression → qb-target (2026-04-03)
### ⚠️ CRITICAL: Checklist la Update qb-core (drawtext)
Când se face update la `qb-core`, verifică:
- **`client/drawtext.lua`** → TOATE funcțiile sunt no-ops (DrawText, ChangeText, HideText, KeyPressed). La update, Quasar va restaura funcțiile originale!
### Fișiere modificate:
| Fișier | Resursă | Ce s-a modificat |
|--------|---------|------------------|
| `client/drawtext.lua` | `qb-core` | **SUPRIMAT GLOBAL** — DrawText/ChangeText/HideText/KeyPressed sunt no-ops cu `function() end`. Exporturile există dar nu fac nimic. |
### Note:
- Supresia este globală — NICIO resursă nu poate afișa prompt-uri [E] prin qb-core exports
- Resursele nu crashuiesc, dar textul nu apare
- Aceasta forțează migrarea la qb-target (dot/eye target) pe tot serverul
- Resursele trebuie setate individual cu `Config.UseTarget = true`
---
## Feature: qs-housing qb-target Migration (2026-04-03)
### ⚠️ CRITICAL: Checklist la Update qs-housing
Când se face update la `qs-housing`, verifică:
1. **`client/custom/framework/qb.lua`** → DrawText3D/DrawText3Ds/DrawTextBoard sunt no-ops când `Config.UseTarget = true`. Update-ul Quasar va restaura funcțiile originale!
2. **`client/custom/target/qb-target.lua`** → BoxZone `rv_realestate_npc` + floating text "Agent Imobiliar" pe NPC Real Estate. Secțiunea RED VALLEY de la sfârșitul fișierului!
### Fișiere modificate:
| Fișier | Resursă | Ce s-a modificat |
|--------|---------|------------------|
| `client/custom/framework/qb.lua` | `qs-housing` | DrawText3D/DrawText3Ds/DrawTextBoard devin no-ops condițional (doar când `Config.UseTarget = true`). Codul encrypted apelează aceste funcții native GTA, deci suprimarea din qb-core nu le prindea. |
| `client/custom/target/qb-target.lua` | `qs-housing` | Adăugat BoxZone qb-target pe NPC-ul Real Estate (`rv_realestate_npc`) la coordonatele din `Config.RealeStateNPC.location`. Opțiune: "Open House Browser" (execută `/housebrowser`). Floating text nativ "Agent Imobiliar" cu LOS check. |
### NPC Real Estate — Configurare:
- **Model:** `a_m_m_business_01` (din `Config.RealeStateNPC.pedModel`)
- **Locație:** `vec4(-253.978027, -970.457153, 31.217529, 161.574799)` (din `Config.RealeStateNPC.location`)
- **Target zone:** BoxZone 1.5×1.5, distance 2.5
- **Floating text:** Native GTA rendering, LOS check, 15m range
---
## Feature: Time Freeze 14:00 (2026-04-03)
### Fișiere modificate:
| Fișier | Resursă | Ce s-a modificat |
|--------|---------|------------------|
| `config.lua` | `qb-weathersync` | `Config.BaseTime = 14`, `Config.FreezeTime = true` — server locked la ora 14:00 permanent |
### Note:
- Necesită restart complet de server (ensure nu funcționează)
- `Config.RealTimeSync` era deja `false` (setat 2026-03-28)
---
## Feature: qb-target Migration (ld-target engine — 2026-04-08)
### ⚠️ CRITICAL: Checklist la Update qb-target
Când se face update/înlocuire la `qb-target`, verifică:
1. **`fxmanifest.lua`** → `provide 'qtarget'` TREBUIE să existe (17mov_Electrician depinde de el)
2. **`init.lua`** → `Config.Peds = {}` (fără demo NPC-uri Lunny)
3. **`client.lua`** → DrawSprite zone markers: RGB(92, 151, 247) = albastru
4. **`html/`** → Culorile NUI: `#5c97f7` albastru (style.css, interaction.css, script.js, index.html)
### Fișiere modificate:
| Fișier | Resursă | Ce s-a modificat |
|--------|---------|------------------|
| `fxmanifest.lua` | `qb-target` | `name='qb-target'`, `provide 'qtarget'` adăugat |
| `init.lua` | `qb-target` | `Config.Peds = {}` — golit tabel demo peds Lunny |
| `client.lua` | `qb-target` | DrawSprite zone markers: `(255,255,255)``(92,151,247)` albastru |
| `html/style.css` | `qb-target` | `#00F8B9``#5c97f7` |
| `html/interaction.css` | `qb-target` | `#00F8B9``#5c97f7` |
| `html/script.js` | `qb-target` | `#00F8B9``#5c97f7` |
| `html/index.html` | `qb-target` | `#00F8B9``#5c97f7` |
### Note:
- Folderul TREBUIE să se numească `qb-target` (nu `rv-target`) — resursele terțe hardcode `exports['qb-target']`
- `provide 'qtarget'` permite `exports['qtarget']` să rezolve la același resource
- Engine-ul este ld-target open-source (NP 4.0 inspired)
- Zone markers (puncte la distanță) funcționează doar pe **Zones** (BoxZone, CircleZone), NU pe entități adăugate cu `AddTargetEntity()`
- Sursele originale se găsesc în `_preLoad/ld-target/Standalone/`
+11 -9
View File
@@ -1,7 +1,7 @@
# Red Valley Roleplay — Resource Dependency Map
> Scanat din codul sursă: exports, TriggerEvent, TriggerServerEvent, TriggerClientEvent.
> Ultima actualizare: 2026-04-01
> Ultima actualizare: 2026-04-10
---
@@ -305,12 +305,16 @@
└── Dependințe → niciunul (standalone stream resource)
```
### Dacă modifici `rv-qb-target` (Target QoL — în dezvoltare):
### Dacă modifici `qb-target` (ld-target engine):
```
├── Depinde de → qb-target (exports + event trigger)
├── Funcționalitate → Highlight entități interactabile la ALT
├── Vizual → DrawSprite deasupra capului (vizibil prin ziduri)
── CPU → Zero când inactiv (event-driven)
├── Engine → ld-target (NP 4.0 inspired, open-source)
├── Provides → qb-target + qtarget (17mov_Electrician)
├── Exports → AddBoxZone, AddTargetEntity, AddTargetModel, etc.
── Consumatori → t1ger_lib, toate resursele cu target options
├── NUI → html/ (style.css, interaction.css, script.js)
├── Texturi → stream/ (circle_marker.ytd, lunny_ui.ytd)
├── Zone markers → DrawSprite pe Zones (nu pe entități externe)
└── Dependență → PolyZone
```
---
@@ -359,7 +363,6 @@ graph TD
TL --> |society| QM
RVP[rv-props] --> |prop_rv_tablet| JC[17mov_JobCenter]
RVQBT[rv-qb-target] -.-> |exports + events| QBT
IDC --> |notif| HUD
BDS --> |notif| HUD
@@ -375,7 +378,6 @@ graph TD
style HUD fill:#ff9900,color:#fff
style LA fill:#9933cc,color:#fff
style RVP fill:#33aa33,color:#fff
style RVQBT fill:#33aa33,color:#fff
style JC fill:#3399ff,color:#fff
```
@@ -399,4 +401,4 @@ graph TD
| Stash/storage | qs-inventory, t1ger_lib |
| Phone features | qs-smartphone-pro ↔ pma-voice, qs-vehiclekeys |
| Custom props (rv-props) | 17mov_JobCenter (prop_rv_tablet) |
| qb-target behavior | rv-qb-target, t1ger_lib, toate resursele cu AddTargetEntity/Model |
| qb-target behavior | t1ger_lib, toate resursele cu AddTargetEntity/Model, 17mov_Electrician (qtarget) |
+2 -1
View File
@@ -113,7 +113,7 @@ const teamMap={"17mov":"17 Movement",wasabi:"Wasabi",quasar:"Quasar",kq:"KuzQual
const nodes=[
// === QBCORE ===
{id:"qb-core",team:"qb",r:32,desc:"Nucleul QBCore — jobs, items, player, events",keywords:"framework core player job item shared"},
{id:"qb-target",team:"qb",r:16,desc:"Target system — interact cu entități",keywords:"target interact eye"},
{id:"qb-target",team:"qb",r:18,desc:"Target system (ld-target engine) — provides qb-target + qtarget",keywords:"target interact eye ld-target qtarget provide"},
{id:"qb-menu",team:"qb",r:10,desc:"Menu system QBCore",keywords:"menu context"},
{id:"qb-smallresources",team:"qb",r:14,desc:"Consumables, AFK, seatbelt etc",keywords:"consumable food drink stress seatbelt"},
{id:"qb-input",team:"qb",r:8,desc:"Input dialog QBCore",keywords:"input dialog form"},
@@ -246,6 +246,7 @@ const links=[
{s:"wasabi_bridge",t:"qb-core",type:"export",label:"GetCoreObject"},
{s:"luxu_admin",t:"qb-core",type:"export",label:"GetCoreObject"},
{s:"qb-target",t:"qb-core",type:"export",label:"GetCoreObject"},
{s:"17mov_Electrician",t:"qb-target",type:"export",label:"AddTargetEntity (via qtarget provide)"},
{s:"qb-menu",t:"qb-core",type:"export",label:"GetCoreObject"},
{s:"qb-smallresources",t:"qb-core",type:"export",label:"GetCoreObject"},
{s:"qb-management",t:"qb-core",type:"export",label:"GetCoreObject"},
+171 -49
View File
@@ -20,7 +20,7 @@
| **Mechanic Job** | t1ger_mechanic |
| **HUD** | 17mov_Hud |
| **Voice** | pma-voice |
| **Target System** | qb-target |
| **Target System** | qb-target (ld-target engine, provides qtarget) |
| **Server Port** | 30110 |
| **Max Clients** | 8 |
| **Game Build** | 3570 |
@@ -34,12 +34,28 @@
```
resources/
├── [cfx-default]/ # CFX default resources
├── [cfx-default]/
│ ├── [local]/ # .gitkeep (empty)
│ ├── [managers]/
│ │ ├── mapmanager/
│ │ └── spawnmanager/
│ └── [system]/
│ ├── [builders]/
│ ├── baseevents/
│ └── sessionmanager/
├── [framework]/
│ ├── [core]/
│ │ ├── qb-core/ # QBCore framework
│ │ ├── qb-target/ # Target system
│ │ ├── qs-inventory/ # Quasar inventory
│ │ ├── 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]/
@@ -47,20 +63,20 @@ resources/
│ │ │ ├── 17mov-plugin-char-creator/ # Spawn outfit in creator
│ │ │ └── connectqueue/ # Queue system
│ │ ├── [ui]/
│ │ │ ── 17mov_Hud/ # HUD system
│ │ │ └── rv-chat/ # ★ Custom RV chat (VPS only, lipsește din LOCAL — trebuie copiat)
│ │ │ ── 17mov_Hud/ # HUD system
│ │ └── [jobs]/
│ │ ├── 17mov_JobCenter/ # Job listing & apply (NUI, FXAP encrypted)
│ │ │ ├── Config.lua # ★ Editable: jobs, blips, NUI settings
│ │ │ ├── bridge/qb/server/main.lua # ★ Editable: SetPlayerJob (license check here)
│ │ │ ├── bridge/qb/client/main.lua # ★ Editable: events, UI hooks
│ │ │ ├── server/utils.lua # ★ Editable: FormatMoney
│ │ │ └── client/utils.lua # ★ Editable: target system
│ │ ├── [citizen]/
│ │ │ ├── 17mov_GarbageCollector/ # Garbage job (★ license check in server/functions.lua)
│ │ │ ├── 17mov_BuilderJob/ # Builder job
│ │ │ ├── 17mov_Deliverer/ # Delivery job
│ │ │ ├── 17mov_Postman/ # Postman 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]/
@@ -69,49 +85,72 @@ resources/
│ │ │ ├── codem-dispatch/ # Dispatch alerts
│ │ │ └── codem-mdtProp/ # MDT prop
│ │ ├── [ambulance]/
│ │ │ └── wasabi_ambulance/ # Ambulance job (provides qb-ambulancejob)
│ │ │ └── wasabi_ambulance/ # Ambulance job
│ │ ├── [mechanic]/
│ │ │ ── t1ger_mechanic/ # Mechanic job
│ │ │ ── t1ger_mechanic/ # Mechanic job
│ │ │ ├── t1ger_carlift/ # Car lift
│ │ │ ├── t1ger_mechanicprops/ # Mechanic props
│ │ │ └── jo_towtruck/ # Tow truck
│ │ └── [tuner]/
│ │ ── t1ger_tuningsystem/ # Tuning system
│ │ ── t1ger_tuningsystem/ # Tuning system
│ │ └── t1ger_lib/ # T1GER library
│ ├── [depends]/
│ │ ├── bob74_ipl/ # IPL loader v2.6.0 (interiors, DLC maps)
│ │ ├── ox_lib/ # Overextended lib
│ │ ├── 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
│ │ ├── VehicleDeformation/ # Vehicle damage
│ │ ├── wasabi_bridge/ # Wasabi framework bridge
│ │ └── xsound/ # Sound system
│ └── [addons]/
│ ├── 0r_idcard/ # ID card system
│ ├── bit-driverschool/ # Driving school (licences in metadata.licences)
├── rv-license-dialog/ # ★ RED VALLEY: NUI dialog permis de conducere
│ ├── qs-advancedgarages/ # Garages (Quasar)
├── qs-housing/ # Housing (Quasar)
│ ├── qs-shops/ # Shops (Quasar)
├── kq_* / [kq]/ # Kuzkay addons (LOCAL: scattered, VPS: grouped in [kq]/)
── qb-weathersync/ # Weather & time
│ ├── [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]/
│ ├── [admin-outfit]/AdminPack/ # Admin clothing streaming
│ ├── [mlos]/ # Map interiors
│ ├── soloty-southside-custom/ # Mechanic shop MLO
│ ├── rfc_los_santos_customs/ # Los Santos Customs MLO
│ ├── cfx-fm-fleeca-banks-v2/ # Fleeca banks
│ ├── cfx-fm-mrpd/ # Mission Row PD
│ └── ... # + hospital, prison, gas stations, etc.
│ └── [vehs]/ # Custom vehicles
│ ├── [vehs]/ # Custom vehicles
│ ├── minimap/ # Custom minimap
│ ├── phone-props/ # Phone props
│ ├── rv-props/ # RV custom props
│ └── squidgame/ # Squid game MLO
├── [voice]/
── pma-voice/ # Voice system
│ └── codem-radio/ # Radio system (VPS only — NU e pe LOCAL)
── pma-voice/ # Voice system
└── luxu_admin/ # Admin panel (top-level)
```
### Load Order (`resources.cfg`)
```
[cfx-default] → ox_lib → [core] → [depends] → [voice] → [auth] → [ui] →
[jobs] → [addons] → rv-license-dialog → kq_carheist → [mlos] → [vehs] → minimap → phone-props →
[casino] → [stream] → luxu_admin → [weapons]
[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
```
---
@@ -214,8 +253,8 @@ qbcore.god → group.admin → qbcore.admin → qbcore.mod
- **DB Name**: `red-valley`
- **Connection**: `server=127.0.0.1;database=red-valley;userid=root;` (via oxmysql)
- **Character Delete** (`qb-core/server/player.lua`): Many default tables commented out (apartments, bank_accounts, crypto_transactions, phone_invoices, phone_messages, player_contacts, player_houses, player_mails) — only `players`, `playerskins`, `player_outfits`, `player_vehicles` active
- **⚠️ PENDING**: `crypto_history` table has ~2,343 rows causing oversized queries — needs periodic cleanup or LIMIT
- **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
---
@@ -433,9 +472,26 @@ Toate resursele 17mov au fișiere encrypted (FXAP) dar următoarele sunt **edita
---
## 🎯 Interaction System (qb-target)
## 🎯 Interaction System (qb-target / ld-target engine)
De la **2026-03-31**, toate resursele folosesc **qb-target** (third-eye system) ca sistem de interacțiune.
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 |
@@ -451,6 +507,11 @@ De la **2026-03-31**, toate resursele folosesc **qb-target** (third-eye system)
### 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
@@ -507,11 +568,72 @@ exports["17mov_Hud"]:ToggleComponentVisibility("name", bool) -- arată/ascund
- **Consumat de**: 17mov_JobCenter (tabletă animație)
- **Tip**: Standalone (stream, zero cod Lua)
### rv-qb-target (Target QoL — în dezvoltare)
- **Locație**: `resources/[framework]/[core]/rv-qb-target/`
- **Scop**: Highlight entități interactabile când qb-target e activ (ALT)
- **Design**: DrawSprite deasupra capului, vizibil prin ziduri, doar entități cu target înregistrat
- **Depinde de**: qb-target (exports + event trigger)
- **Status**: Planificat, research complet, cod nescris
### 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 |