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`