Files
red-valley/docs/changelog.md

684 lines
37 KiB
Markdown
Raw Normal View History

2026-03-29 21:41:17 +03:00
git tkn: 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
# Red Valley Roleplay — Changelog
> Changelog complet al tuturor modificărilor la server realizate în sesiunile noastre de lucru.
> Fiecare fișier este menționat cu path-ul complet și referințele cross-resource.
---
## 2026-03-29 — Wasabi Police Config Review & Cleanup
### 👮 wasabi_police — Config.policeJobs Cleanup
- **Eliminat** `'reporter'` din `Config.policeJobs` (linia 426 din config.lua)
- `reporter` era inclus default de Wasabi ca exemplu — nu este un job valid pe server
- Acum doar `'police'` rămâne activ (sheriff comentat)
- **Verificat** Cloakroom (linia 611-693): `enabled = true`, dar pe QBCore se folosește 17mov_CharacterSystem
- Notă wasabi: *"WILL NOT SHOW IN QBCORE INSTEAD USE QB-CLOTHING CONFIG!"*
- Outfiturile efective se aplică din `17mov_CharacterSystem/configs/Config.lua``Config.Outfits['police']`
- **Confirmat** alignment grade levels QBCore ↔ 17mov:
- `[0]` Cadet → Short Sleeve
- `[1]` Ofiter → Short Sleeve + Long Sleeve + Trooper Tan
- `[2]` Sergent → Short Sleeve + Long Sleeve + Trooper Tan + Trooper Black
- `[3]` Locotenent → Short Sleeve + Long Sleeve + Trooper Tan + Trooper Black + SWAT
- `[4]` Sef de Politie → Same as grade 3 (SWAT access)
### 👔 17mov_CharacterSystem — Outfit System Verification
- **Confirmat**: Uniformele de poliție NU apar la clothing shop-uri publice
- `Config.Outfits['police']` se afișează DOAR prin `Config.ClothingRooms` (requiredJob='police')
- Locații ClothingRooms police: LSPD Mission Row (454.68, -990.89, 29.69), Paleto Bay PD (314.76, 671.78, 14.73), Vinewood PD (-77.59, -129.17, 5.03)
- Verificare job se face la linia 285 în `stores.lua`: `job.name == v.requiredJob`
### 🔇 t1ger_tuningsystem — Console.log cleanup
- Eliminat 6× `console.log()` din `web/assets/index-DkGtvbUP.js` (funcția `_K()`)
### 🔇 t1ger_mechanic — Console.log cleanup
- Eliminat 6× `console.log()` din `web/assets/index-BFWVRtXt.js` (funcția `_K()`)
- Comentat 3× `print()` din `bridge/init.lua` (liniile 172, 175, 179): DETECTED SYSTEMS, DETECTED GARAGE SYSTEM, DETECTED VEHICLE KEYS SYSTEM
> Ambele resurse T1GER folosesc același template NUI (Vue + Naive UI). Mesaje eliminate: Initializing, App created, State management, UI components, NUI events, App mounted
### 🔇 rcore_casino — Print filter
- Adăugat print filter în `const.lua` (primul fișier ne-encrypted) care suprimă orice mesaj cu `[Casino]`
- Mesaje filtrate: `[Casino] Framework QBCore detected`, `[Casino] drunk system set to evidence`
- Metoda: override global `print()` cu check `msg:find("[Casino]")` — nu afectează alte resurse
### 🔇 t1ger_tuningsystem — Mechanic system print
- Comentat `print("has mechanic system:")` din `shared/config.lua:258` (fără debug flag)
### 🔇 pma-voice — Init prints
- Comentat 2× `print()` din `client/init/init.lua` (liniile 5, 49): `Starting script initialization`, `Script initialization finished`
- Nu au debug flag (`voice_debugMode` convar nu le acoperă)
### 🔇 qs-inventory — jobs_creator warning
- Comentat `Warning()` din `client/custom/misc/jaksam.lua:5` (fără debug flag)
### ⚠️ cfx-gabz-mapdata — Eroare cosmetică (nerezolvabilă)
- `gabz_ipl_blockers.lua` e compiled Lua bytecode → eroare la parsare: `unexpected symbol near '<\180>'`
- Nu afectează funcționalitatea, e eroare cosmetică din asset-pack Cfx.re
### 🔧 rfc_los_santos_customs — doortuning.ymt restaurat
- Warning: `could not find file doortuning.ymt (defined in fxmanifest.lua:21)`
- **Fix**: Copiat `doortuning.ymt` (54KB) din `_preLoad/rfc_los_santos_customs/rfc_los_santos_customs/`
- Fișierul controlează comportamentul ușilor (viteză, forță) din Los Santos Customs MLO
### 📝 soloty-southside-custom — Documentat
- MLO-ul **Mechanic Shop** (South Side Customs) — locația principală a job-ului `t1ger_mechanic`
- Asset oversized (59 MiB shell) — normal pentru interior detaliat, nu necesită fix
### 🚀 start.bat — Optimizare v2.0
- Rescris complet `start.bat` cu layout compact și profesional
- Header ASCII "RED VALLEY" cu `##` characters (compatibil cmd.exe, fără Unicode)
- Checks pe o singură linie: `[OK] Config : path` în loc de 3-5 linii
- Separator clar `=======` între launcher și FXServer output
- Info compactă: Artifact + Data dir pe 2 linii aliniate
- Eliminat 2× `timeout 1` (0 delay la startup)
- Rezultat: ~35 linii launcher → ~15 linii compacte
- Credit păstrat: `vlxre.cata` în header
### 🔇 bit-driverschool — Version check dezactivat
- Comentat `version.lua` din `fxmanifest.lua:13`
- Motivul: version check prost scris (compara `==` în loc de `>=`), raporta "outdated 3.5" când versiunea locală e 3.6
- Eliminat 5 linii de noise din consolă
### 🔇 17mov_CharacterSystem — Banner + changelog dezactivate
- `Config.VersionCheck.DisplayAsciiArt = false` în `configs/Config.lua:8`
- `Config.VersionCheck.DisplayChangelog = false` (linia 9)
- `Config.VersionCheck.DisplayFiles = false` (linia 10)
- `Enabled = true` păstrat — se afișează doar linia simplă cu versiunea
- Eliminat ~25 linii de ASCII art + changelog din consolă
## 2026-03-29 — Wasabi Police Install & 2nd Brain Update
### 👮 wasabi_police (v1.10.8) — Instalare din _preLoad
- **Copiat** `_preLoad/wasabi-police/``resources/[framework]/[base]/[jobs]/[legal]/[police]/wasabi_police/` (renamed cu underscore)
- **Config**: `Config.Jail.jail = 'rcore'` — integrat cu rcore_prison
- **Items**: `bobby_pin` + `tracking_bracelet` adăugate în `qs-inventory/shared/items.lua`
- **Imagini**: `bobby_pin.png`, `handcuffs.png`, `tracking_bracelet.png` copiate în `qs-inventory/html/images/`
- **Items QBCore**: Deja existau în `qb-core/shared/items.lua` (adăugate anterior)
- **Ensure**: Automat via `ensure [jobs]` din `resources.cfg`
- **SQL**: Nu e necesar pe QBCore (SQL-urile sunt doar pt ESX)
### 🗺️ bob74_ipl Update (v2.4.2 → v2.6.0)
- **Cauză**: `SCRIPT ERROR: @bob74_ipl/client.lua:183: attempt to index a nil value (global 'CriminalEnterpriseSmeonFix')`
- **Fix**: Update complet din GitHub (https://github.com/Bob74/bob74_ipl)
- **Fișier lipsă**: `gta_mpsum2/simeonfix.lua` — definește `CriminalEnterpriseSmeonFix` (DLC Criminal Enterprise 2022)
- **DLC-uri noi**: `dlc_casino/arcade`, `dlc_money` (Money Fronts build≥3570), `dlc_mansions` (Safehouse build≥3717)
- **Dependențe**: Zero — resource standalone, fără config custom
- **Backup**: `_preLoad/bob74_ipl-v2.4.2/`
### 🔇 t1ger_mechanic — Debug off
- `Config.Debug = false` în `shared/config.lua` (era `true`)
- Elimină spam-ul din F8: Initializing, App created, State management, UI components, NUI events, App mounted
- `qs-housing`: `Config.Debug = false` în `config/main.lua` linia 1541 (era `true`)
- Elimină spam-ul din F8: BuildDoorLocks, Initialized House Config, Blip cached, inside met
### 📚 2nd Brain Full Update
- Actualizat `server_knowledge.md` — structura folderelor, pending tasks, changelog
- Actualizat `wasabi_police_reference.md` — status INSTALAT, jail='rcore', workflow completat
- Actualizat `dev_teams_api_reference.md` — wasabi_police exports/events/state bags complete
- Creat `wasabi_ambulance_reference.md` — 13 exports client, 3 server, state bags, config complet
- Sincronizat toate fișierele cu Knowledge Base
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| 🆕 COPIAT | `resources/[framework]/[base]/[jobs]/[legal]/[police]/wasabi_police/` — întreg folderul |
| ✏️ MOD | `resources/[framework]/[core]/qs-inventory/shared/items.lua` — adăugat bobby_pin, tracking_bracelet |
| ✏️ MOD | `resources/[framework]/[base]/[jobs]/[legal]/[police]/wasabi_police/game/configuration/config.lua` — jail='rcore' |
| 🆕 COPIAT | `resources/[framework]/[core]/qs-inventory/html/images/bobby_pin.png` |
| 🆕 COPIAT | `resources/[framework]/[core]/qs-inventory/html/images/tracking_bracelet.png` |
| 🔄 UPDATE | `resources/[framework]/[depends]/bob74_ipl/` — v2.4.2→v2.6.0 (GitHub full replace) |
| 🆕 NOU | `docs/wasabi_ambulance_reference.md` |
| ✏️ MOD | `docs/server_knowledge.md`, `docs/wasabi_police_reference.md`, `docs/dev_teams_api_reference.md` |
| ✏️ MOD | `docs/changelog.md`, `docs/cross_resource_modifications.md`, `docs/qs_inventory_reference.md` |
---
## 2026-03-28 — Driving School Integration & QoL Updates
### 🚗 Driving School (`bit-driverschool`) Integration
- **Keys & Engine System**: Set `Config.useKeys = true`, updated `addKeys` function to support both 1-argument (`addKeys(vehicle)`) and 2-argument (`addKeys(playerID, vehicle)`) calls. Auto-starts engine when starting test.
- **Physical License Item**: Linked driving school with `0r_idcard`. Upon passing the test, the script now automatically grants the physical `driver_license` item (`xPlayer.Functions.AddItem`) in addition to setting the QBCore metadata (`metadata.licences.driver = true`).
- **Target System**: Enabled `qb-target` for driving school NPCs (`Config.useTarget = true`) instead of 3D text.
- **Prices**: Adjusted test prices (A = $100, B = $200, C = $300).
- **Notifications**: Migrated from `qs-notify` and `codem-notification` to `17mov_Hud` native notifications (`exports['17mov_Hud']:ShowNotification`).
- **Target Fix**: Wrapped `qb-target` `RaycastCamera` in `pcall` to prevent loading screen native crashes.
### 🪪 ID Card (`0r_idcard`) Updates
- **Notifications**: Migrated notifications to `17mov_Hud` native notifications.
### 🌤️ Weather & Time Sync (`qb-weathersync`)
- **Real-Time Sync**: Disabled `Config.RealTimeSync` to allow server admins to manually control the time via Luxu Admin `/settime` without it reverting to real-world time.
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[addons]/bit-driverschool/config.lua` — keys, target, items, prices, notifications |
| ✏️ MOD | `resources/[framework]/[addons]/0r_idcard/config.lua` — 17mov_Hud notifications |
| ✏️ MOD | `resources/[framework]/[addons]/qb-weathersync/config.lua` — disabled RealTimeSync |
| ✏️ MOD | `resources/[framework]/[core]/qb-target/client.lua` — pcall on RaycastCamera |
---
## 2026-03-27 — Spawn Outfit System
### 🆕 Auto-Echipare Outfit la Spawn
- Outfit-ul se aplică **doar la primul spawn** (new character, `isNew == true`)
- Playerii care se reconectează păstrează hainele salvate în DB
- **Outfituri separate pentru male și female** — detectare automată cu `GetEntityModel` / `GetHashKey("mp_f_freemode_01")`
- **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
- **Fără mască** la ambele sexe (playerii își văd fața la creare)
- Folosește native GTA `SetPedComponentVariation` / `ClearPedProp`
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/client/functions.lua``spawnOutfitMale` + `spawnOutfitFemale` tables, `ApplySpawnOutfit()` cu gender detection, apelat în `Location.PlayerSpawned()` |
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/client/functions.lua` — adăugat `TriggerEvent("17mov_CharacterSystem:SaveCurrentSkin")` după `ApplySpawnOutfit()` pentru salvare în DB |
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/configs/Skin.lua``Skin.RememberLastOutfit` setat de la `false` la `true` (outfiturile selectate din garderobă persistă prin relog) |
> **Referințe:** `Location.PlayerSpawned` este apelat de `client/location.lua` după ce playerul alege locația de spawn. Pattern-ul de apply outfit este identic cu cel din `t1ger_mechanic/client/shop/markers/duty.lua`. `SaveCurrentSkin` triggeruiește `qb-clothing:saveSkin` care salvează în tabelul `playerskins`.
---
### 🐛 Fix: Character Delete — tabele lipsă/incompatibile în DB
- QBCore `DeleteCharacter` folosea o tranzacție MySQL atomică — un singur query eșuat bloca ștergerea completă
- **Erori:** `apartments` (tabel inexistent), `phone_messages` (fără coloana `citizenid` — qs-smartphone schema diferită)
- Comentat toate tabelele incompatibile din `playertables`, păstrate doar cele funcționale: `players`, `playerskins`, `player_outfits`, `player_vehicles`
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[core]/qb-core/server/player.lua` — comentat `apartments`, `bank_accounts`, `crypto_transactions`, `phone_invoices`, `phone_messages`, `player_contacts`, `player_houses`, `player_mails` din `playertables` array (linia 550-563) |
---
### ✏️ Character Creator & Clothing Menu — Preset-uri per context
- **Char creator** (`creator` preset) → DNA + Details (2 tabs) — playerul customizează fața, restul e spawn outfit
- **Shop / Ambulance / Boss** (`shop` preset) → Details + Clothing + Accessories (3 tabs, fără DNA)
- **Admin `/skin`** (`skinCommand` preset) → Toate 4 tabs
- **Spawn outfit pe ped în creator** — resursă standalone `17mov-plugin-char-creator` cu smart polling (citizenid tracking), per-frame outfit loop, gender-specific, zero overhead in-game
- * TODO: `spawn_mask` — item custom cu script usable (mască 134/2 male, 134/3 female)
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/configs/Skin.lua``Skin.Presets["creator"]` restricționat la DNA+Details, adăugat preset `shop` (3 tabs fără DNA) |
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/bridge/clothing/qb-clothing/exports.lua``openMenu` → preset `shop`, `openMenuCommand` → preset `skinCommand` |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/shared/main.lua` — scos `id_card` + `mask` din `StarterItems` (se primesc la mugshot / TODO) |
| 🆕 NEW | `resources/[framework]/[base]/[auth]/17mov-plugin-char-creator/` — resursă standalone: citizenid tracking, smart polling (zero overhead in-game), per-frame outfit loop, gender detection |
---
### ✏️ ID Card — se primește la mugshot, nu la spawn
- `id_card` scos din `QBShared.StarterItems` — la spawn primesc doar `phone`
- Prima poză la ped-ul de headshot → primește `id_card` automat (1 singură dată per license)
- Pozele ulterioare doar actualizează poza pe card (fără item nou)
- Fix erori `0r_idcard``pcall` pe `getExtendedPlayer`/`useIdCard`, refresh `Framework` pentru compatibilitate cu restart qb-core
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[addons]/0r_idcard/server/events.lua``saveHeadshot` verifică `id_card_given` din DB, dă item 1x |
| ✏️ MOD | `resources/[framework]/[addons]/0r_idcard/server/utils.lua``getExtendedPlayer` refresh `Framework` + `pcall` |
| 🗄️ SQL | `ALTER TABLE 0r_idcard ADD COLUMN id_card_given INT DEFAULT 0` |
---
## 2026-03-04 — Mechanic Job Outfit System
### 🆕 Auto-Echipare Uniformă la On/Off Duty
- **ON duty** → salvează hainele civile + pune uniforma de mecanic automat
- **OFF duty** → restaurează hainele civile
- Folosește native GTA `SetPedComponentVariation` / `SetPedPropIndex`
**Fișiere modificate/create:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[jobs]/[legal]/[mechanic]/t1ger_mechanic/client/shop/markers/duty.lua` — adăugat auto-apply/restore outfit |
| 🆕 NOU | `resources/[framework]/[base]/[jobs]/[legal]/[mechanic]/t1ger_mechanic/client/shop/markers/getoutfit.lua` — comandă admin `/getoutfit` |
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/configs/Config.lua``Config.Outfits['mechanic']` (grad 0-4, male+female), eliminat entry `[8]` din `Config.ClothingRooms` |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/shared/jobs.lua` — label „Servicii Auto" → „Mecanic" |
| ✏️ MOD | `resources.cfg` — adăugat `ensure [stream]` |
| 🆕 NOU | `resources/[stream]/[admin-outfit]/AdminPack/fxmanifest.lua` — streaming clothing pack admin |
| 🆕 NOU | `_preLoad/AdminPack/fxmanifest.lua` — copie pre-staging |
| 🆕 NOU | `start_server.ps1` — PowerShell wrapper anti Ctrl+C |
| 🆕 NOU | `.agents/workflows/job-outfit-setup.md` — workflow refolosibil setup outfit per job |
> **Referințe:** `Config.Outfits` din `17mov_CharacterSystem` → folosit de `duty.lua` din `t1ger_mechanic`
---
## 2026-03-03 — Mechanic Job Garage & Key Management
### 🆕 Sistem Garaj Job Vehicule
- Vehicule job (flatbed) limitate la 1 per player, tracked server-side per `citizenid`
- Despawn automat la deconectare player
### 🆕 Key Management Logic
- Chei eliminate automat server-side când vehiculul job despawnează
- Flag `pendingKeyRemoval` setat de server, verificat la reconectare client
- Admin delete vehicul → șterge și cheile asociate
**Fișiere modificate:**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[jobs]/[legal]/[mechanic]/t1ger_mechanic/` — garage.lua, duty.lua |
| ✏️ MOD | `resources/[framework]/[addons]/qs-advancedgarages/fxmanifest.lua` — verificat dependințe |
> **Referință:** Logica key removal cross-resource între `t1ger_mechanic` și `qs-advancedgarages`
---
## 2026-03-03 — Bug Fixes Session (6 fix-uri)
### 🔧 Fix 1: `qs-advancedgarages` — `attempt to index a nil value (field 'db')`
- **Cauza**: `fxmanifest.lua` referea `@mysql-async/lib/MySQL.lua` (serverul folosește `oxmysql`) + versiune veche v5.0.18
- **Soluție**: Update **v5.0.18 → v5.0.20** de pe Cfx.re, schimbat linia 53
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[addons]/qs-advancedgarages/fxmanifest.lua` — linia 53: `mysql-async``oxmysql` |
| ✏️ MOD | `resources/[framework]/[addons]/qs-advancedgarages/config/config.lua``Config.Locale = 'ro'` (păstrat) |
| ✏️ MOD | `resources/[framework]/[addons]/qs-advancedgarages/config/garages.lua` — garaj custom „Garaj Cazino" (păstrat) |
| 🆕 NOU | `_preLoad/quasar/qs-advancedgarages-old-5.0.18/` — backup versiune veche |
### 🔧 Fix 2: `qs-housing` — `Unknown column 'credit' in 'field list'`
- **Cauza**: Import SQL eșuat la linia 252 (`;` lipsă)
- **Soluție**: Executat manual SQL în phpMyAdmin (`red-valley`)
| Acțiune | Fișier |
|---------|--------|
| ✏️ SQL | `ALTER TABLE player_houses` — adăugat coloane `credit`, `creditPrice` |
| ✏️ SQL | `ALTER TABLE house_decorations` — adăugat coloana `price` |
| ✏️ SQL | `CREATE TABLE qs_housing_furniture_shops` |
| ✏️ SQL | `ALTER TABLE player_houses, houselocations` — CONVERT TO utf8mb4 |
### 🔧 Fix 3: `17mov_CharacterSystem` — Housing/Apartments warnings
- **Cauza**: Auto-detect caută `qb-houses`/`ps-housing`, dar `qs-housing` nu e suportat
- **Soluție**: Setat manual la `standalone`
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/configs/Bridge.lua``Config.Housing = "standalone"`, `Config.Apartments = "standalone"` (liniile 12, 22) |
### 🔧 Fix 4: `screenshot-basic` — `dist/ui.html` lipsă
- **Cauza**: webpack compilează în memory, nu pe disk
- **Soluție**: Copiat surse noi de pe GitHub (warning cosmetic, funcționează)
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[depends]/screenshot-basic/` — actualizat surse |
| 🆕 NOU | `_preLoad/screenshot-basic/` — surse GitHub |
### 🔧 Fix 5: `codem-radio` — build lipsă
- **Cauza**: `resources/build/index.html` nu exista
- **Soluție**: Șters complet resursa incompletă
| Acțiune | Fișier |
|---------|--------|
| ❌ ȘTERS | `resources/[voice]/codem-radio/` — întreg folderul |
### 🔧 Fix 6: Housing Asset Packs — SIGSEGV crash
- **Cauza**: Acumularea erorilor din `qs-advancedgarages` + `qs-housing` SQL
- **Soluție**: După fix-urile de mai sus, toate pachetele funcționează stabil
- **Testate**: `[dlc]` ✅, `[props]` ✅, `[shells]` ✅ (toate 3 împreună ✅)
---
## 2026-03-03 — 17mov CharacterSystem Update (v1.2.4 → v1.2.5)
### ✏️ Update Major — Fix bug overlay pe character select
- **Bug**: Overlay bloca click-ul pe personaj (trebuia ESC)
- **Soluție**: Update la v1.2.5 (web UI actualizat)
**Fișiere înlocuite (encrypted):**
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `17mov_CharacterSystem/client/core.lua`, `skin.lua`, `selector.lua`, `register.lua`, `loadingscreen.lua`, `photos.lua` |
| ✏️ MOD | `17mov_CharacterSystem/server/core.lua`, `selector.lua`, `register.lua`, `photos.lua`, `version.lua` |
| ✏️ MOD | `17mov_CharacterSystem/shared/core.lua`, `skingenerator.lua`, `translator.lua` |
| ✏️ MOD | `17mov_CharacterSystem/web/` — UI complet actualizat |
| ✏️ MOD | `17mov_CharacterSystem/.fxap`, `fxmanifest.lua` — v1.2.5 |
**Fișiere merged cu custom changes păstrate:**
| Acțiune | Fișier | Custom păstrat |
|---------|--------|----------------|
| ✏️ MOD | `17mov_CharacterSystem/configs/Config.lua` | `Config.Outfits['mechanic']` re-adăugat |
| ✏️ MOD | `17mov_CharacterSystem/configs/Bridge.lua` | `Config.Housing = "standalone"`, `Config.Apartments = "standalone"` |
| ✏️ MOD | `17mov_CharacterSystem/configs/Skin.lua` | Actualizat la v1.2.5 (EnableRefreshSkinCommand) |
| ✏️ MOD | `17mov_CharacterSystem/configs/Location.lua` | Opțiuni noi (EnableSpawningInHouse) |
| ✏️ MOD | `17mov_CharacterSystem/configs/Selector.lua` | Actualizat la v1.2.5 |
| ✏️ MOD | `17mov_CharacterSystem/configs/Discord.lua` | Actualizat la v1.2.5 |
| ✏️ MOD | `17mov_CharacterSystem/client/functions.lua` | Nil check fix la `FormatMoney` |
| ✏️ MOD | `17mov_CharacterSystem/client/location.lua` | Sistem locații actualizat |
| 🔁 PĂSTRAT | `17mov_CharacterSystem/locale/ro.lua` | Traduceri româneascasetup |
**Path complet**: `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/`
**Backup**: `_preLoad/17mov/17mov_CharacterSystem/`
> **Referință cross-resource:**
> - Bridge-urile depind de: `qb-core`, `illenium-appearance`, `ps-housing`, `qb-apartments`
> - `configs/Bridge.lua` controlează selectarea bridge-urilor
> - `configs/Config.lua` afectează `t1ger_mechanic/duty.lua` (outfit system)
---
## 2026-03-02 — Research & Documentație Admin Outfit
### 📋 Cercetare Luxu Admin Outfit System
- Documentat cum funcționează sistemul de outfit admin existent din Luxu
- Descoperit: Luxu **deja are** outfit system complet per staff group (DB `luxu_admin_groups`)
- Documentat pașii: Clone Yourself → Select Gender → Save din web panel
### 📋 Cercetare FiveM Clothing Streaming
- Documentat cum funcționează streaming-ul de haine custom (AdminPack)
- AdminPack = **replace pack** (înlocuiește textura `jbib_013` din gunrunning DLC)
- Notat: Necesită **FiveM Patreon Element Club Argentum** pentru 9+ playeri
### 📋 Design Outfit Stack System
- Proiectat stack-ul: Civil (L1) → Job Outfit (L2) → Admin Outfit (L3)
- Documentat edge cases și cum Luxu gestionează restaurarea
### 📋 Blacklist System
- Documentat `Skin.BlacklistedInputValues` din 17mov pentru ascundere admin jacket de la playeri
- Documentat `Skin.WhitelistedInputValues` cu identifier-based access
---
## 2026-03-02 — QBCore Server Architecture Exploration
### 📋 Explorare completă server
- Analizat **toate** resursele de pe server
- Documentat structura folderelor, dependențe inter-resurse
- Creat diagramă Mermaid cu relațiile inter-resurse
### 📋 QBCore Framework Deep-Dive
- Documentat fiecare fișier din `qb-core/` cu scopul său
- Documentat flow-ul player: Connect → Login → CreatePlayer → Functions → Logout
- Notat sistemul de permisiuni, money, jobs, gangs
### 📋 Cfx.re Portal Audit
- Auditat **toate 142 asset-urile** de pe portalul Cfx.re
- Categorisit: ✅ pe server, 📦 disponibil/neinstalat, ❌ eliminat
- Identificat update-uri necesare: `t1ger_mechanic` 3.6.7→3.6.9, `qs-inventory` 3.7.16→3.7.17, `qs-vehiclekeys` 4.0.13→4.0.29
### 📋 Resource Load Order Fix
- Identificat și corectat conflicte de load order în `resources.cfg`
### 🔧 Fix: Load Order
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources.cfg` — corectare ordine ensure |
---
## 2026-03-01 — Fix HUD / Hygiene (`0fe1eaf4`)
### 🔧 Migrare HUD — jg-hud → 17mov_Hud
| Acțiune | Fișier |
|---------|--------|
| ❌ ȘTERS | `resources/[framework]/[base]/[ui]/jg-hud/` — întreg folder-ul (framework, locales, server, web, ~90 weapon images) |
| ✏️ MOD | `resources/[framework]/[depends]/ox_lib/resource/interface/client/notify.lua` — ajustare notificări |
> HUD-ul se configurează acum exclusiv din `resources/[framework]/[base]/[ui]/17mov_Hud/Config.lua`
---
## 2026-03-01 — CV Update: Admin + Police Overhaul (`9ed30cdf`)
### 🆕 Luxu Admin — Update Major
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/luxu_admin/fxmanifest.lua` |
| ✏️ MOD | `resources/luxu_admin/bridge/server/garage.lua`, `player.lua` |
| ✏️ MOD | `resources/luxu_admin/bridge/shared/inventory.lua` |
| 🆕 NOU | `resources/luxu_admin/config/commands/sv_commands.lua` |
| 🆕 NOU | `resources/luxu_admin/config/database/queries.d.ts` |
| ✏️ MOD | `resources/luxu_admin/config/database/queries.js` — refactorizat major |
| ✏️ MOD | `resources/luxu_admin/config/config.json` |
| ✏️ MOD | `resources/luxu_admin/server/index.js` — rewrite server core |
| ✏️ MOD | `resources/luxu_admin/web/assets/index.js`, `index.css` |
### 🆕 No-NPC Resource (înlocuiește garbage-fix)
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[framework]/[core]/no-npc/client.lua`, `fxmanifest.lua` |
| ❌ ȘTERS | `resources/[framework]/[core]/garbage-fix/fxmanifest.lua` |
### ✏️ QBCore Updates
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[core]/qb-core/client/functions.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/config.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/locale/ro.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/shared/items.lua` (+13 linii) |
| ✏️ MOD | `resources/[framework]/[core]/qb-core/shared/jobs.lua` (+76 linii) |
### ✏️ QS-Inventory + Alte Modificări
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[core]/qs-inventory/client/custom/misc/robbery.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qs-inventory/config/config.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qs-inventory/locales/ro.lua` |
| ✏️ MOD | `resources/[framework]/[core]/qs-inventory/shared/items.lua` |
| ✏️ MOD | `resources/[framework]/[depends]/ox_lib/locales/ro.json` |
| ❌ ȘTERS | `resources/[stream]/vertex-hub/` (client.js, server.js, fxmanifest.lua) |
| ✏️ MOD | `resources/[voice]/codem-radio/Settings.lua` |
| ✏️ MOD | `server.cfg` |
---
## 2026-02-27 — Admin System + Police Job Overhaul (`2c6948ad`)
### 🆕 Luxu Admin — Prima Instalare
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/luxu_admin/` — întreg folderul (server core, bridge, config, web panel, locales) |
### 🆕 RV-MDT — Police MDT System
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[framework]/[jobs]/[legal]/[police]/rv-mdt/` — întreg folderul |
| 🆕 NOU | `rv-mdt/client/main.lua`, `server/main.lua`, `server/db.lua` |
| 🆕 NOU | `rv-mdt/server/callbacks/` — admin, bolos, calls, cases, citizens, dashboard, evidence, map, misc, roster, units, vehicles, warrants |
| 🆕 NOU | `rv-mdt/shared/config.lua`, `sql/schema.sql` |
| 🆕 NOU | `rv-mdt/html/` — css/style.css, index.html, js/app.js, locales/en.json |
| 🆕 NOU | `rv-mdt/README.md`, `STRUCTURE.md` |
> **Dependințe MDT**: `qb-core/shared/jobs.lua`, `wasabi_police`, `server.cfg`
### 🆕 17mov CharacterSystem — Update Bridge Structure (v1.2.4 → v1.2.5)
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `17mov_CharacterSystem/configs/Bridge.lua` |
| 🆕 NOU | `17mov_CharacterSystem/bridge/apartaments/` — ps-housing, qb-apartments, standalone |
| 🆕 NOU | `17mov_CharacterSystem/bridge/clothing/` — esx_skin, illenium, qb-clothing, rcore |
| 🆕 NOU | `17mov_CharacterSystem/bridge/framework/` — esx, qb (client+server) |
| 🆕 NOU | `17mov_CharacterSystem/bridge/housing/` — ps-housing, qb-houses, standalone |
| ❌ ȘTERS | `17mov_CharacterSystem/bridge/illenium.lua` — bridge vechi |
| ❌ ȘTERS | `17mov_CharacterSystem/server/location.lua` — mutat în client |
| 🆕 NOU | `17mov_CharacterSystem/shared/functions.lua` |
**Path**: `resources/[framework]/[base]/[auth]/17mov_CharacterSystem/`
### 🆕 Vehicul BMW M3 F80 (înlocuire)
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[stream]/[vehs]/bmci/` — fxmanifest, carcols, carvariations, handling, vehicles, dlctext |
| ❌ ȘTERS | `resources/[stream]/[vehs]/upf80/` — vehiculul vechi |
### ✏️ QBCore Server Core + Alte
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[framework]/[core]/qb-core/server/debug.lua` |
| ✏️ MOD | `qb-core/server/events.lua` — refactorizare majoră |
| ✏️ MOD | `qb-core/server/exports.lua`, `functions.lua`, `player.lua` |
| ✏️ MOD | `wasabi_police/game/configuration/config.lua` |
| ✏️ MOD | `server.cfg`, `start.bat` |
---
## 2026-02-19 — Update Resources & Remove mChat (`5cc48fcb`)
### ❌ Ștergere mChat
| Acțiune | Fișier |
|---------|--------|
| ❌ ȘTERS | `resources/[framework]/[base]/[ui]/mChat/` — întreg folderul (client, server, html, shared, vue.js) |
### ✏️ Alte Modificări
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `rv-mdt/server/callbacks/roster.lua`, `server/main.lua` |
| ✏️ MOD | `17mov_Hud/Config.lua` |
| ✏️ MOD | `t1ger_tuningsystem/shared/config.lua` |
| ✏️ MOD | `server.cfg` |
---
## 2026-02-17 — Update QS-Inventory (`95449f19`)
### ✏️ QS-Inventory Core Update
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `qs-inventory/fxmanifest.lua`, `config/config.lua` (restructurat) |
| ✏️ MOD | `qs-inventory/html/js/app.js` + toate modulele JS |
| 🆕 NOU | `qs-inventory/server/custom/misc/SetInventoryData.lua` |
| 🆕 NOU | `qs-inventory/server/custom/misc/UseItem.lua` |
| ✏️ MOD | `qs-inventory/server/custom/misc/SaveInventory.lua` |
| 🆕 NOU | `qs-inventory/server/modules/hooks.lua` |
| ✏️ MOD | `qs-inventory/server/custom/framework/qb.lua` |
**Path**: `resources/[framework]/[core]/qs-inventory/`
---
## 2026-02-02 — Update Resources, Vehicles & TLS (`7ac0a69d`)
### ❌ Ștergere codem-pausemenu + Ferrari SF90xx
| Acțiune | Fișier |
|---------|--------|
| ❌ ȘTERS | `resources/[framework]/[base]/[ui]/codem-pausemenu/` — întreg folderul |
| ❌ ȘTERS | `resources/[stream]/[vehs]/fsf90xx/` — Ferrari SF90xx |
| 🆕 NOU | `resources/[stream]/[vehs]/upf80/` — restaurat vehicul upf80 |
---
## 2026-01-19 — Add Helnius Xero24 Gas Station MLO (`26881f7b`)
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[stream]/[mlos]/[gas-stations]/helnius_xero24/` — fxmanifest, client, config, paleto_bay_RemoveIpl, stream assets |
| 🆕 NOU | `resources/[stream]/[mlos]/[gas-stations]/helnius_xero24_mapdata/` — fxmanifest, gta5.meta, doortuning.ymt |
---
## 2026-01-18 — ConnectQueue + Wasabi Police + Bank MLO (`0700b073`, `549054be`, `47e3e777`)
### 🆕 ConnectQueue Logging System
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[base]/[auth]/connectqueue/shared/sh_queue.lua` — refactorizare majoră (+407/-44) |
| 🆕 NOU | `resources/[framework]/[base]/[auth]/connectqueue/README.md` |
### 🆕 Wasabi Police Job
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[framework]/[jobs]/[legal]/[police]/wasabi_police/` — întreg folderul (client 2600 linii, server 1175 linii, config, 16 locale-uri, UI) |
### ✏️ Wasabi Bridge Updates
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[depends]/wasabi_bridge/` — fxmanifest, customize, frameworks, inventories, ui |
### 🆕 Codem Radio (înlocuiește qb-radio)
| Acțiune | Fișier |
|---------|--------|
| 🆕 NOU | `resources/[voice]/codem-radio/` — client, server, Settings, React app |
| ❌ ȘTERS | `resources/[voice]/qb-radio/` — întreg folderul |
### ✏️ 17mov CharacterSystem + Bank MLO
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `17mov_CharacterSystem/client/functions.lua` (+54 linii) |
| ✏️ MOD | `17mov_CharacterSystem/server/functions.lua` (+20 linii) |
| ❌ ȘTERS | `17mov_CharacterSystem/configs/Register.lua` |
| ❌ ȘTERS | `resources/[stream]/[mlos]/[bank]/tstudio_fleeca/` — MLO vechi |
| 🆕 NOU | `resources/[stream]/[mlos]/cfx-fm-fleeca-banks-v2/` — MLO nou Fleeca banks |
---
## 2026-01-18 — QS-Shops Update (`4a8d11a0`)
| Acțiune | Fișier |
|---------|--------|
| ✏️ MOD | `resources/[framework]/[addons]/qs-shops/config.lua` |
| ✏️ MOD | `resources/[framework]/[addons]/qs-shops/json/shops-inventory.json` |
---
## 2026-01-07 — Curățare Cache (`581ade90`)
- Ștergere fișiere cache vechi pentru resurse multiple
---
## Referințe Cross-Resource
| Fișier Central | Resurse Afectate |
|----------------|------------------|
| `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) |
| `qs-inventory/shared/items.lua` | wasabi_police (bobby_pin, tracking_bracelet), wasabi_ambulance (defib, medikit, sedative) |
| `qb-core/server/events.lua` | Toate resursele QBCore |
| `qb-core/server/functions.lua` | Toate resursele server-side |
| `ox_lib/locales/ro.json` | Toate notificările traduse |
| `wasabi_bridge/` | wasabi_police, wasabi_ambulance |
| `17mov_CharacterSystem/configs/Bridge.lua` | Bridge-uri clothing, apartments, housing |
| `17mov_CharacterSystem/configs/Config.lua` | t1ger_mechanic (outfit system), wasabi_police (outfit — pending) |
| `qs-inventory/config/config.lua` | Inventar, shop-uri, crafting |
| `resources.cfg` | Ensure order — ensure [jobs] încarcă automat toate job-urile |
---
## Documentație & Artifacts Create
### Fișiere pe server:
| Fișier | Path | Scop |
|--------|------|------|
| `changelog.md` | `server/changelog.md` | Acest fișier |
| `cross_resource_modifications.md` | `server/cross_resource_modifications.md` | Tracking modificări cross-resource (mechanic outfit + garage/keys) |
| `start_server.ps1` | `server/start_server.ps1` | Script pornire cu protecție anti Ctrl+C |
| `job-outfit-setup.md` | `server/.agents/workflows/job-outfit-setup.md` | Workflow pas-cu-pas setup outfit per job |
| `connectqueue/README.md` | `resources/.../connectqueue/README.md` | Documentație logging connectqueue |
| `rv-mdt/README.md` | `resources/.../rv-mdt/README.md` | Documentație Police MDT |
| `rv-mdt/STRUCTURE.md` | `resources/.../rv-mdt/STRUCTURE.md` | Structura fișierelor rv-mdt |
### Artifacts din sesiunile Antigravity:
| Artifact | Sesiunea | Ce conține |
|----------|----------|------------|
| `walkthrough.md` | Sesiune 08cbc7f9 (02 Mar) | **QBCore Server Architecture** — structura completă, framework deep-dive, toate resursele, developer directory, DB schema, permissions, money system |
| `walkthrough.md` | Sesiune 31ed245f (02-04 Mar) | **Fix History** — 6 bug fixes detaliate + structura server + DB reference + rămase de rezolvat |
| `implementation_plan.md` | Sesiune 31ed245f | **17mov Update Plan** v1.2.4→v1.2.5 — comparison results, custom changes, merge strategy, verification steps |
| `server_index.md` | Sesiune 31ed245f | **Resource Index** complet — toate resursele, versiuni, dependențe, exports, comenzi, Cfx.re portal audit (142 assets), update-uri necesare |
| `quasar_documentation.md` | Sesiune 31ed245f | **Quasar Store Docs** — documentație detaliată qs-inventory, qs-housing, qs-garages, qs-shops, qs-smartphone, qs-vehiclekeys |
| `research_admin_outfit.md` | Sesiune 31ed245f | **Admin Outfit Research** — Luxu outfit system, AdminPack streaming, blacklist system, outfit stack design |
| `research_fivem_clothing_streaming.md` | Sesiune 31ed245f | **FiveM Clothing Streaming** — cum funcționează streaming-ul, naming conventions, Patreon requirement |
| `research_luxu_admin.md` | Sesiune 31ed245f | **Luxu Admin Research** — funcționalități, configurare, exports |
| `research_17mov_character_system.md` | Sesiune 31ed245f | **17mov Research** — structura resursă, configs, bridge system |
---
## Rămase de Rezolvat
- [x] **wasabi_police install**: Copiat din _preLoad, jail='rcore', items adăugate (2026-03-29)
- [x] **bob74_ipl update**: v2.4.2→v2.6.0 din GitHub — fix CriminalEnterpriseSmeonFix (2026-03-29)
- [x] **Synapse Map update**: wasabi_police + wasabi_ambulance nodes + conexiuni (2026-03-29)
- [ ] **wasabi_police config review**: Verificare Config.policeJobs (scoatem 'reporter'?), cloakroom outfits
- [ ] **wasabi_police outfit**: Adăugare Config.Outfits['police'] în 17mov_CharacterSystem
- [ ] **Webhooks** `qs-smartphone-pro`: configurare în `server/custom/webhooks/webhooks.lua`
- [ ] **Webhooks** `qs-advancedgarages`: configurare în `server/custom/misc/*.lua`
- [ ] **oxmysql oversized query**: `SELECT * FROM crypto_history` (2339 results) — trebuie paginare sau LIMIT
- [ ] **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**: Configurare Luxu panel Clone Yourself + testare outfit stack
- [ ] **Admin jacket blacklist**: Adăugare în `Skin.BlacklistedInputValues`