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-31 — Migrare Interacțiuni la qb-target + Skills Upgrade + Bus Icon + Animație Tabletă ### 🎬 Animație Tabletă la Job Center - ✏️ `resources/[framework]/[base]/[jobs]/17mov_JobCenter/client/utils.lua` — adăugat animație + prop `prop_cs_tablet` - La deschiderea meniului: personajul ține o tabletă în mână (anim: `amb@code_human_in_bus_passenger_idles@female@tablet@base`) - La închiderea meniului: tabletă și animație se opresc automat (monitorizare NUI focus) - ✏️ `resources/[framework]/[base]/[jobs]/17mov_JobCenter/locale/ro.lua` — curățat `~r~[E] |~s~` din label-ul target (coduri GTA formatting incompatibile cu qb-target) ### 📝 Terminologie Standardizată - ✏️ Înlocuit termenul "vendor" cu "devTeam" în toate fișierele .md (skills, KB, docs, changelog) ### 💬 Bubble Text System (3D text deasupra capului) - ✏️ `resources/[framework]/[base]/[jobs]/17mov_JobCenter/client/utils.lua` - Text 3D deasupra capului jucătorului vizibil de toți (via state bags: `browsingJobs`, `bubbleText`, `bubbleIcon`) - Job Center: 💼 "Se uita la locuri de munca..." - Generic (testbubble): 💬 + text custom - Scalare automată bazată pe distanță + FOV cameră - 🆕 Comenzi de test permanente: `testanim`, `stopanim`, `testbubble [text]`, `stopbubble` ### 📋 Rulebook Updates - ✏️ Regula 13: Commit info (Summary + Description) după fiecare modificare ### 🎯 Migrare Sistem Interacțiuni → qb-target (20 resurse) Toate resursele care foloseau DrawText3D `[E]` / Markers au fost trecute pe **qb-target** (third-eye system) pentru experiență uniformă. #### ✏️ 17mov Jobs (11 resurse) — `Config.UseTarget = false` → `true` - `resources/[framework]/[base]/[jobs]/17mov_JobCenter/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_GarbageCollector/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_Deliverer/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_Postman/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_Lumberjack/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_BuilderJob/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_Electrician/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_Miner/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_OilRig/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_TreasureHunter/Config.lua` - `resources/[framework]/[base]/[jobs]/[citizen]/17mov_WindowCleaning/Config.lua` #### ✏️ aty_busjob — `Target = "none"` → `"qb"` - `resources/[framework]/[base]/[jobs]/[citizen]/aty_busjob/config.lua` #### ✏️ Quasar Resources (4 resurse) — `Config.UseTarget = false` → `true` - `resources/[framework]/[core]/qs-inventory/config/config.lua` - `resources/[framework]/[addons]/[quasar]/qs-shops/config.lua` - `resources/[framework]/[addons]/[quasar]/qs-smartphone-pro/config/config.lua` - `resources/[framework]/[addons]/[housing]/qs-housing/config/main.lua` #### ✏️ rcore_casino — `UseTarget = false` → `true` + `TargetZoneType = 3` (qb-target) - `resources/[framework]/[addons]/[casino]/rcore_casino/config.lua` #### ✏️ server.cfg — `setr UseTarget true` (qb-management + qb-smallresources) - `server.cfg` linia 78 #### ⚠️ NU s-a schimbat: - **qs-advancedgarages** — nu suportă qb-target (doar `ox_target` / `qb-radialmenu`) ### 🚌 Bus Icon Fix - 🆕 `resources/[framework]/[base]/[jobs]/17mov_JobCenter/web/images/icons/bus.svg` — SVG icon lipsă (#FF1A35) ### 📚 Skills Stack Upgrade (12 fișiere) - ✏️ Rescris complet `docs/skills-Antigravity/00-SKILLS-INDEX.md` — date reale, paths concrete - ✏️ Rescris `SKILL-01` → `SKILL-10` — bazate pe experiența reală cu serverul - ✏️ Rescris `COMPLETE-WORKFLOW.md` — 6 scenarii concrete ### 📋 Rulebook Workflow - 🆕 `.agents/workflows/rulebook.md` — 10 reguli obligatorii (terminal vizibil, changelog, backup, etc.) ### 🔧 DevTeam Docs Fix - ✏️ SKILL-01 + 00-INDEX — adăugat docs URLs: `docs.17movement.net`, `docs.t1ger.net`, `codem.gitbook.io` --- ## 2026-03-30 — NUI Simulator, Resource Comparison LOCAL vs VPS, qs-inventory Sync ### 🔬 NUI Simulator Standalone - **Creat** `nui-simulator/` — server Node.js (Express) care scanează automat `resources/` pentru NUI pages - Auto-detectare a **54 resurse** cu interfață web - Interfață cu search, filtrare pe categorii, control rezoluție, panou postMessage - Se pornește cu `node server.js --open` din folderul `nui-simulator/` (port 3200) ### 📊 Resource Comparison LOCAL vs VPS - **Crawl complet** al `resources/` (LOCAL) vs `_preLoad/server-v2-main/resources/` (VPS live) - **Raport**: `docs/resource_comparison.md` cu comentarii inline - **Descoperire**: `rv-chat` (chat custom RV) este pe VPS dar **NU pe LOCAL** - **Descoperire**: KQ plugins au paths diferite — LOCAL: `[addons]/kq_*`, VPS: `[addons]/[kq]/kq_*` ### 🖼️ qs-inventory Item Icons Sync - Copiat **7 imagini** din VPS → LOCAL: caradvancedlockpick, carlockpick, plate, rentalpaper, screwdriver, vehiclegps, vehicletracker - Comparat qs-inventory LOCAL vs portal — plan de update safe documentat (20 fișiere diferite, `shared/items.lua` +25KB custom) **Fișiere create/modificate:** | Acțiune | Fișier | |---------|--------| | 🆕 NOU | `nui-simulator/server.js`, `public/index.html`, `package.json` | | 🆕 NOU | `docs/resource_comparison.md` | | 🆕 COPIAT | `qs-inventory/html/images/` — 7 item icons din VPS | --- ## 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, Paleto Bay PD, Vinewood PD - 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) ### 🔇 qs-inventory — jobs_creator warning - Comentat `Warning()` din `client/custom/misc/jaksam.lua:5` ### ⚠️ cfx-gabz-mapdata — Eroare cosmetică (nerezolvabilă) - `gabz_ipl_blockers.lua` e compiled bytecode → eroare la parsare, nu afectează funcționalitatea ### 🚀 start.bat — Optimizare v2.0 - Rescris `start.bat` cu layout compact (ASCII only, compatibil cmd.exe) - Header "RED VALLEY" cu `##`, checks pe 1 linie `[OK]`, separator `=======` - Eliminat 2× `timeout 1` delay ### 🔇 bit-driverschool — Version check dezactivat - Comentat `version.lua` din `fxmanifest.lua:13` (broken: raporta outdated 3.5 când v3.6) ### 🔇 17mov_CharacterSystem — Banner dezactivat via config - `DisplayAsciiArt = false`, `DisplayChangelog = false`, `DisplayFiles = false` în `configs/Config.lua` - `Enabled = true` păstrat → se vede doar linia simplă cu versiunea ## 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) - [x] **wasabi_police config review**: Eliminat 'reporter' din policeJobs, verificat cloakroom (QBCore uses 17mov) (2026-03-29) - [x] **wasabi_police outfit**: Config.Outfits['police'] EXISTA DEJA în 17mov (grade 0-4, male+female, 5 variante) (2026-03-29) - [x] **t1ger_tuningsystem debug**: Eliminat 6× console.log din NUI JS (2026-03-29) - [ ] **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`