V-King Loadout Editor

by Loic.L VKing

1.0.5

# V-King Loadout Editor - 1.0.5 (2026-10-07)

## Correctifs
- **Lumieres velcro sur casques RHS/CDD** (B-Lite, HEL-STAR... sur LeftVLite/RightVLite d'un casque porte) : le brouillon
  acceptait la piece mais l'application reelle repondait « placement invalide » (`target_not_empty_or_unmanaged`). Le stockage
  `RHS_HelmetNodeStorageComponent` d'un casque porte n'est pas liste par le gestionnaire d'inventaire du personnage ; le pilote
  d'application accepte desormais le stockage d'un objet effectivement porte (`StorageBelongsToActor`) avant d'inserer par l'API native.
- **Profils sauvegardes sur un autre personnage** : un loadout enregistre avec un prefab de personnage different (ex. grenadier
  puis fusilier) etait refuse (`root_prefab`) au chargement comme a l'application. Le payload est rebase sur le personnage courant
  (prefab racine, faction, labels editeur) avant validation ; l'equipement sauvegarde est conserve tel quel.

## Tests
- `VKE_HelmetVliteApplySuite` (`-CDD`) : casque FTHS applique puis B-Lite sur RightVLite du casque porte, en live.
- `VKE_SavedProfileRebaseSuite` : profil grenadier refuse tel quel (`root_prefab`), accepte une fois rebase, apercu construit.

## Budget `#InitGlobals`
- 1 572 unites (1.0.4 : 1 562 ; 1.0.3 : 1 584). Liste Cain sans TDL : 101 480 unites, reference de l'outil de mesure.
Game Version
1.8.0.13
Created
Tue, 06 Oct 2026 22:20:27 GMT
Last Modified
Tue, 06 Oct 2026 22:20:32 GMT

1.0.4

# V-King Loadout Editor - 1.0.4 (2026-10-06)

## Catalogue
- **Catalogue complet par classe** (`catalogMode: all`, defaut serveur) : le catalogue n'est plus limite a la liste filtree du coffre
  proche (faction du coffre, types/modes autorises, mode de jeu). Il reunit tous les objets d'arsenal de toutes les factions et du
  catalogue general (`SCR_EntityCatalogManagerComponent.GetAllArsenalItems`), dedoublonnes par prefab, sans vehicules ni
  helicopteres, groupes par classe d'arsenal (casques, tenues, gilets, sacs, fusils, optiques...). Les objets enregistres par des
  mods dans une autre faction ou seulement dans le catalogue general apparaissent donc dans l'indexation.
- `catalogMode: arsenal` conserve l'ancien comportement. Le serveur envoie le mode avec ses reglages ; une ebauche ouverte avant
  la reponse est relue dans le bon mode. Le serveur valide les demandes d'equipement avec la meme liste (ITEM_UNAVAILABLE sinon).
  Un arsenal actif a moins de 5 m reste requis pour equiper (economie, ressources, grade).
- Indexation sans blocage : le prefiltre par emplacement (lecture de la ressource de chaque prefab) est reparti sur les pas
  d'indexation au lieu d'etre fait d'un coup a la selection d'un emplacement.
- Diagnostic `-vkeScanDiag` : raison de chaque objet ecarte (prefiltre composant/zone/arme, probe, refus de montage) et resume.
- Recherche du descriptif catalogue par table de hachage (plus de parcours lineaire par candidat).
- `VKE_ServerSettings` : constantes en fonctions (budget `#InitGlobals` du compilateur, T200535).

## Correctifs
- **Placards CDD absents du scanner** : les gilets CDD sont livres au-dessus de leur propre capacite de volume (ex. FCPC : 2210
  occupe / 2000 max). Le controle natif `CanReplaceItem` refuse alors tout remplacement sur une monture imbriquee occupee
  (placard, poche), alors que l'insertion dans la monture videe est acceptee. Le scanner valide desormais ces montures sur la
  copie de validation cachee, monture videe (`NeedsEmptiedMountValidation` / `CanInsertOnEmptiedValidationMount`), comme le
  fait l'application reelle. Les placards NJPC et les autres pieces imbriquees apparaissent a nouveau sur un gilet charge.
- Diagnostic `VKE_PlacardDiagSuite` (`-CDD`) : poids, capacites et verdicts natifs d'une monture de placard (`[VKE_PLACARD_DIAG]`).

## Budget `#InitGlobals` (T200535, crash Game Master Cain a 192 mods)
- Le budget partage du compilateur est consomme par les variables locales / parametres de type objet, les `new`, les `foreach`
  et les litteraux `{}` dans les corps de fonction ; les valeurs simples, les chaines, les `static const` et les enums sont
  gratuits. Mesure `Tools`/`refslots.py` : 1.0.3 = 1584 unites, 1.0.4 = 1562 (cible : ne jamais depasser 1.0.3).
- Chemin de construction synchrone du cache de candidats (`BuildCandidateCache`, `AppendCandidate`, `CandidatePrefabsForSlot(s)`)
  reserve au Workbench (`ENF_WB`) : en jeu, le panneau ne demande des candidats qu'apres l'indexation incrementale.
- `VKE_Catalog` : tampons statiques partages, `CollectPrefabs` / `CollectItems` / `HasItems` pour les appelants serveur.

## Tests
- Nouvelle suite `VKE_CatalogModeSuite` : surensemble dedoublonne sans vehicules, analyse des modes, scan casque en mode
  ARSENAL puis ALL sur la meme ebauche (plus de casques, dont d'autres factions), equipement d'un casque du catalogue complet.
- Les suites existantes tournent en mode ARSENAL (`-autotest` sans `-vkeCatalogMode`).
- `VKE_CDDPlacardScanSuite` (`-CDD`) : le placard NJPC doit figurer dans les candidats d'un FrontMagPlacard occupe ; le verdict
  natif n'est accepte comme refus que si la monture depasse sa capacite (`[VKE_PLACARD_NATIVE]`).
Game Version
1.8.0.13
Created
Tue, 06 Oct 2026 20:01:15 GMT
Last Modified
Tue, 06 Oct 2026 20:01:24 GMT

1.0.3

# V-King Loadout Editor - RC1 (2026-10-05)

## Nouveautes
- **Equipement direct** (par defaut) : choisir une piece dans le catalogue l'equipe immediatement sur le personnage, le panneau reste
  ouvert, plus de dialogue Remplacer / Conserver / Abandonner. Bouton **Retablir l'original**. Fermeture sans dialogue.
  Le mode brouillon (ancien flux) reste disponible via la preference "Mode brouillon" ou `-vkeDraftMode`.
- **Chemin natif actif par defaut** : application par emplacements explicites, transaction live asynchrone (stage jetable -> rangement
  de l'arme -> application -> verification -> restauration en cas d'echec), glissieres natives repliquees en reseau.
  Opt-out : `-vkeLegacyApply` (ancien chemin). Les anciens flags pilote restent acceptes.
- Serveur dedie : le rangement et la reprise de l'arme sont delegues au client proprietaire (RPC) ; verifie en audit reseau.
- Compatibilite CDD 0.0.75 : classes de stockage renommees (GRS -> RHS, meme GUID) reconnues par GUID ; les profils sauvegardes avant
  la mise a jour s'appliquent sans modification.
- Placards / poches CDD : un objet imbrique que le jeu cree lui-meme (poche apportee par un placard) est accepte sans cout, un objet
  injecte dans un payload reste refuse (ITEM_UNAVAILABLE).
- Renderer d'inspection actif par defaut (glissieres, optiques : deplacement verifie au pixel).

## Correctifs
- Exceptions VM au nettoyage (scan de candidats, renderer d'inspection).
- Refus du pilote (stockage manquant, identite protegee) immediats au lieu d'attendre le delai de phase.
- Delai de preparation live 2,5 s -> 8 s (rangement de l'arme sur machine chargee).
- Requetes espacees de 2,1 s cote panneau (le serveur refuse en dessous de 2 s).
- Alias de classe de stockage conserves pour la session (reconciliation stage -> live).
- Zone d'entree de l'apercu ramenee dans le widget (UIContract).

## Validation (Codex, tests natifs Workbench, Arma Reforger 1.8.0.13, 1920x1080)
- Gates 009 -> 014 : 42 suites / 80 cas JUnit ; dernier etat 80/80 (011 : 78/80 + 012/014 cibles sur les 2 restants).
- Audits reseau : NetworkAudit APPLIED (client + serveur), RailNetworkAudit 8/8 (late join, reset, cleanup).
- Retail (sans ENF_WB) : compilation 0 erreur, menu atteint.
- Profil humain CDD (fixture 033847) applique et compare canonise.
- Preuves : E:/ArmaReforgerMods/VKE_WorkshopUpdates/RC1_20261005/claude_runs/009..014.

## Limites connues
- Pixels RailUI verifies sur l'optique de l'URGI ; pas de verification de toutes les armes/accessoires.
- Audit reseau : scenario normal + rail ; pas d'ADS/PIP en reseau.
- Exception VM vanilla observee apres la fin d'un test (SCR_InventoryHitZonePointUI, retrait d'une piece aux pieds) : hors mod.
- Le CRC Game affiche hache le texte des scripts (blocs ENF_WB compris) : il change avec les fichiers de test.

## Smoke test humain conseille avant publication
1. Ouvrir l'editeur, remplacer casque/gilet -> equipe immediatement, panneau ouvert.
2. Retablir l'original -> equipement retabli.
3. Fermer -> aucun dialogue.
4. Appliquer un profil CDD sauvegarde (avant 0.0.75 si possible).
5. Arme en main pendant l'equipement (rangement puis reprise).
Game Version
1.8.0.13
Created
Mon, 05 Oct 2026 22:49:01 GMT
Last Modified
Mon, 05 Oct 2026 22:49:12 GMT

1.0.2

Interface and loadout workflow update

- Refined transparent interface with a compact two-column item catalogue, scrolling lists and clearer selection states.
- Improved long equipment and mount names using native text measurement; complete names remain available on hover.
- Improved mouse rotation handling for small movements and different screen resolutions.
- Adaptive selected-mount markers for weapons, helmets and vests, including dynamic slots supplied by CDD.
- Preserved session catalogue caching and compatible-slot filtering.
- Separated worn equipment, draft, saved profile and preview. Equipping now requires explicit confirmation; saving or closing does not silently equip.
- Added draft recovery, undo history, safer local backup handling and import preview.
- Improved client/server application results, request tracking and recovery feedback.

Clients and servers must run the same version (apply protocol 2). Third-party equipment mods are not included. Physical mouse/keyboard smoke tests and broader performance acceptance remain outstanding; this update is not a claim that every master-plan feature is complete.
Game Version
1.8.0.13
Created
Sun, 04 Oct 2026 10:10:41 GMT
Last Modified
Sun, 04 Oct 2026 10:10:46 GMT

1.0.1

Game Version
1.8.0.13
Created
Fri, 02 Oct 2026 07:19:11 GMT
Last Modified
Fri, 02 Oct 2026 07:19:15 GMT

1.0.0

Game Version
1.8.0.13
Created
Thu, 01 Oct 2026 23:15:49 GMT
Last Modified
Thu, 01 Oct 2026 23:15:59 GMT

Showing 31 to 36 of 36 results

Rows per page