LifePlay-Revival/Docs/29_Projet_Stabilisation_V2.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

47 KiB
Raw Blame History


name: Stabilisation V2 (ST) overview: Avant toute livraison (décision utilisateur du 2026-10-09 : la V2.0 n'est publiée, par U8, qu'après la stabilisation et l'optimisation), traquer et corriger les défauts du jeu 5.8 — erreurs et accès à None au journal, défauts visibles en jeu, défauts remontés par les joueurs — jusqu'à une V2.0 stable, base de mesure du chantier d'optimisation (doc 30). todos:

  • id: phase0 content: Phase 0 — Fiche projet (ce document) validée par l'utilisateur status: completed
  • id: lot-sta content: Lot STA — Audit / mesure : parcours types, classement de toutes les erreurs et AccessedNone par Blueprint et cause, registre des défauts connus status: completed
  • id: gate-gst content: Porte G-ST — go / no-go et ordre des lots (utilisateur) status: completed

Stabilisation V2 (préfixe ST) — fiche projet (phase 0)

Modèle : modèle agnostique de séquençage (fichier Cursor sandbox_addon_migration_ff11aeab.plan.md, mémoire modele-sequencage) : 0 fiche projet → 1 audit → 2 effort, risques, porte → 3 lots → 4 exécution → 5 évaluation.

Objectif

Une V2.0 stable avant sa publication : aucun défaut visible connu non traité, journal d'un parcours type sans erreur inexpliquée, nombre d'AccessedNone réduit et chaque restant justifié. Mesurable par Tools/LogStats.ps1 sur des parcours fixes.

Périmètre

  • Dans : jeu 5.8 (branche ue5.8, non publiée ; main à la publication U8), C++ Source/LifePlay, Blueprints (correctifs par commandlet ou en éditeur, comme en portage 5.5), configuration ; défauts au journal (erreurs, AccessedNone, avertissements récurrents, à-coups Gamethread hitch) ; défauts visibles en jeu ; défauts remontés par les joueurs.
  • Hors : optimisation, retrait ou remplacement de modules UE (doc 30) ; voie UE5 native U9 ; nouveau contenu ; contrat des mods (figé : toute correction qui le toucherait = décision utilisateur dédiée).

Défauts déjà connus (entrée de l'audit STA)

Défaut Origine Source
Personnages enfoncés dans la rue (jusqu'aux genoux) — prioritaire (utilisateur 2026-10-13, défaut visuel ; Room street) — traité, lot STG (CHG-344 ; ERR-115, ERR-128, ERR-129). Cause établie par le moteur : capsule prise dans la collision simple du décor de rue (STG-SF4b-DIAG.md). Correctifs : C++ (boîte du sol, décors en Pawn Ignore, relevage des passants et du joueur S-F5 / S-F5j, écart de 50 cm S-F5k, relevage écarté d'une façade S-F5m / S-F5n, relevage dès la pose S-F5p) et collision complexe de l'asset de rue. En jeu : COMMUN-6, murs solides et pieds sur le pavé (J1, J2 OK) ; COMMUN-8, deux personnages enfoncés contre une façade (→ S-F5m / n) ; COMMUN-9, « des PNJ s'enfoncent et remontent » 2 à 4 s après l'arrivée (→ S-F5p) ; COMMUN-10, Q5 OK : « pas de personnes sous la rue ». Reste après l'alpha : façades fines (STG-POST1), points de standIdle posés trop bas au bord (STG-POST2) ancien, présent en 5.5 utilisateur 2026-10-09, etat/U58/U7/U7-SUIVI.md ; rappel 2026-10-13 ; etat/ST/STG/STG-TACHES.md, etat/BOSS/COMMUN-10-BILAN.md
Personnages qui se chevauchent parfois : deux personnages doivent occuper deux espaces distincts, séparés d'au moins 10 cm — prioritaire (utilisateur 2026-10-13, défaut visuel) — traité, lot STG (CHG-344 ; ERR-118, ERR-117, ERR-127) : contrôle des tiers dans le placement (Person), garde d'IsValid, place de meuble au maximum et non remplacée, garde GI::Show à 70 cm, joueur posé à 80 cm quand un Blueprint libère son siège sans marche (C7-a, défaut d'origine estimé). COMMUN-2 : 0 place partagée sur 1 256 relevés assis ; COMMUN-8, cas N2 à N5 et O1 à O4 OK (dont C7-a) ; rue sans chevauchement (O5). Reste : scènes de contact (hors règle, décision du 2026-10-13), PNJ debout dans un fauteuil (ERR-122, après l'alpha) ancien (causes établies dans les graphes, STG-C1-CART.md) utilisateur 2026-10-13
Le personnage joueur glisse en marchant avec ZQSD : aucune animation de marche (M_Walk_Loop / B_Walk_Loop pour Michael / Bridget) — dans l'alpha (utilisateur 2026-10-13). « Marche : animation » 0 fois en COMMUN-2 et COMMUN-3 ; WalkAnim gardé par LPAnimRedirect::IsGameTarget(), qui lit Saved/Config/Windows/LPAnimTarget.ini, absent du jeu empaqueté (établi par STG-WALK-DIAG.md : garde fausse en jeu empaqueté et clips /Game/Quaternius jamais cuits) — traité, lot STG (CHG-344 ; ERR-121, ERR-119, ERR-126, ERR-130). Garde locale, clip cuit puis ClipPath, deux clips dupliqués sous /Game/Heavy/Daz/<Bridget ou Michael>/Anim/ (hors git). COMMUN-4 : cas F1 et F2 OK (75 et 105 lancements). Suites : marche coupée à tort par un menu sans boîte visible (C6-b, réponse de l'utilisateur : pas de boîte visible) ; pieds à ≈ 10 cm du sol après un siège (maillage non redescendu au lever, M-Z) : COMMUN-10, Q4 OK, « plus de flottement après le lever » 5.8 utilisateur 2026-10-13 ; lot STG
Dossier de sauvegarde du jeu renommé de LifePlay en LifePlay-Revival — traité (lots REL-SAV et REL-ALPHA, ERR-042) : garde LPSaveRelaunch.cpp avant WinMain (relance avec -UserDir, Shipping toujours, Development seulement avec LPSaveLocation.ini) ; dossier au choix du joueur par LPSaveLocation.ini (SaveDir=) ; aucune reprise automatique des anciennes sauvegardes (R0) ; contrat des mods inchangé hors la lettre finale de la version (décision « Lettre acceptée »). Essais : E1 à E4 et E6 OK sur COMMUN-8 ; E9 OK sur le Shipping 2026.10.2.1a (relance avec -UserDir, dossier créé, sauvegarde puis Continuer, ancien dossier identique). Reste hors du dossier : les personnages d'une partie sont écrits dans <installation>\LifePlay\Content\Saves (sauf Saved) ; E5 (chemin relatif) non fait, facultatif ; option du menu Misc hors alpha 5.8 utilisateur 2026-10-13 ; etat/REL/ALPHA/REL-ALPHA-E9-RESULTAT.md
~364 AccessedNone et 5 erreurs par session (parcours U6) 4.27 / 5.5 etat/U58/U6/U6-T3-AB.md
4 Gamethread hitch sur MapMarkers_C.LPFocusWidgetComponent ; 0 en U8-T5cr et U8-T5cr2 (correctif CHG-292 ; estimé : carte ouverte sur déclaration de l'utilisateur, aucune trace au journal). Les autres saccades et hitchs relèvent des fiches STE-H4, STE-H7, STE-H8 et STE-H9 (analyse en cours, etat/ST/STE/) — analyse faite (H7 à H9) ; correctifs STE-H10 commités (CHG-336 à 338) ; J6 : trames ≥ 50 ms par minute −12 % (STE-J6-TRACE.md) 5.8 U6, report U8 ; etat/U58/U8/U8-T5cr2-VAL.md
Brouillard aux niveaux Effects Low-Med non comparé 5.5 / 5.8 5.8 U6, report U8
Cuisson Shipping à froid (avertissement de cuisson LegacyIterative requis, bUseZenStore=False, vu au build U6) 5.8 U6 (doc 27, résultat U6), report U8 (doc 21)
Coiffure par défaut perdue (Bridget chauve) — corrigé en 5.8 (U7-T12), reste en V1.x H1/H3a etat/U58/U7/U7-T11-CART.md
Libellé moteur, bouton du nom d'un mod refusé, ordre d'affichage des mods par défaut (non retenus en U7) U7 U7-SUIVI.md
210 acteurs externes orphelins (cartes gabarit absentes) contenu doc 21, U5
Rafale Attempted to access index 0 from array Floats_3_… of length 0 dans GI_C:getBeautyValue (pile Room.GenerateUnknownNpcs → GI.GeneratePerson → getRandomAge) : 2 591 lignes en 7 s autour des 8 premiers SPAWN (≈ 40 600 lignes de journal) contre 18 en U6 ; GI et Room inchangés depuis U6, probablement aléatoire (génération de PNJ inconnus) — non établi. Mesures suivantes : U8r 4, U8r2 72 (0,82 par SPAWN, 88 SPAWN), tous getBeautyValue 5.8 (vu en U8) etat/U58/U8/U8-T5c-VAL.md, U8-T5cr-VAL.md, U8-T5cr2-VAL.md
Index hors bornes hors rafale équivalents (713 / 702) ; Accessed None 364 → 223 (par personnage 20,2 → 14,9) ; propriétés nouvelles liées à la scène de couple : CallFunc_getFirstDick_Person_1 ×1, Actor ×1 U8-T5c etat/U58/U8/U8-T5c-VAL.md
No SkeletalMesh : 7 971 lignes en U8r et 10 289 en U8r2, dont 70 à 77 % (70,7 % en U8r2, 76,8 % en U8r) d'un seul acteur Person_C ; famille déjà présente dans les références (871 et 2 723 lignes) — cause non établie 5.8 (vu en U8) etat/U58/U8/U8-T5cr-VAL.md, U8-T5cr2-VAL.md
Accessed None … K2Node_CustomEvent_Person dans Room_C > Person_C:PlayIdle > PlayWorkDaily > PlayDaily > moveToPersonStand : défaut d'origine (journaux C0 et J3, antérieurs à STE-R6), pas de fiche ouverte pour l'instant ; établi par STE, estimé par U8 (comptes non recomptés) ; ne bloque pas T11 selon l'avis de STE, la décision revient à l'utilisateur — classé ERR-089 (« F1 »), accepté sans correctif par l'utilisateur (2026-10-13) ; l'écart E-B1-1 (ERR-090) a disparu avec la garde IsValid de G-B1a (COMMUN-2) origine (vu en U8-T5cr2) etat/U58/U8/U8-T5cr2-VAL.md (requalification du 2026-10-11)
Gestionnaire de mods : textes longs (nom « Free Animations Pack (SoerGame, Fab ; mannequin UE5) », auteurs) qui débordent et masquent les flèches ▲/▼ ; demande utilisateur : agrandir la fenêtre, masquer (couper) le texte qui déborde, garantir que les deux zones ne se chevauchent pas — non prioritaire ancien (5.5) utilisateur 2026-10-09, etat/U58/U7/U7-SUIVI.md
Atelier de mods : HairPipeline.ps1 -Step Inspect sans les champs "auto" du guide → message incompréhensible (« Nous ne pouvons pas lier l'argument au paramètre Path… », HairPipeline.ps1:215) au lieu de « champ diffuse manquant » ; valider le JSON en entrée — non prioritaire addon U7-T16, 2026-10-09
Atelier : contrôle « dependances A VERIFIER » de Tools/HairMaterials.py faux positif en 5.8 (le registre ne renvoie que le squelette ; matériaux pourtant cuits et rendus, U7-T16) — non prioritaire addon / 5.8 U7-T16, 2026-10-09
Coiffure d'un mod décoché conservée par un personnage qui la porte (Jade) : comportement du contrat 5.5 (plugin toujours monté, doc 23 § 2.4), gardé en V2.0 ; à revoir (ex. retour à la coiffure par défaut) — non prioritaire contrat 5.5 utilisateur 2026-10-09
Accessed None d'origine acceptés sans correctif : ERR-089 (« F1 »), ERR-091 (« F2 »), ERR-094 (« F-A »), ERR-095 (« F-B »), ERR-096 (isSameAs, bruit accepté) ; ERR-090 (écart E-B1-1) supprimé par G-B1a. COMMUN-4 session 2 : 40 avertissements, tous de ces familles et de PersonCumming 4.27 (ERR-091, ERR-094) ; 5.5 (ERR-089, ERR-095) ; ERR-096 d'origine Registre_Erreurs.md (ERR-089 à ERR-091, ERR-094 à ERR-096) ; STE-H3f-DIAG.md, STE-H3h-DIAG.md
ERR-097 : 378 avertissements chargen en une image à l'ouverture de BodyShapeMenu sans CharGen ouvert ; garde après l'alpha, précédée d'un dump d'origine Registre_Erreurs.md (ERR-097) ; STE-H3i-DIAG.md
ERR-098 : gel de 34,2 s après une recherche sur tous les bâtiments (tri de ≈ 49 425 résultats ; 40,9 s en 5.5). Corrigé et validé en jeu : COMMUN-6 J12 « recherche globale très rapide », COMMUN-7 « recherche All rapide » d'origine (5.5) Registre_Erreurs.md (ERR-098) ; STE-GEL1-VAL.md, COMMUN-6-BILAN.md, COMMUN-7-BILAN.md
C1 (ERR-105, ERR-111) : touche C et souris C1 mortes après CharGen en cours de partie (cause établie : SpaceOn laissé à faux) → B2r ; orientation de C1 figée (à côté de la tête après un lever, vue au plafond) → B2s ; COMMUN-7, L1 et L2 OK. Priorité de l'utilisateur : « injouable à cause de C1 » 5.8 Registre_Erreurs.md (ERR-105, ERR-111) ; CAM-COMMUN6-DIAG.md § 0, § 10 ; COMMUN-7-BILAN.md
Personnage assis qui disparaît de l'écran : ERR-125, bornes de rendu de la pose debout (→ B2q-a, B2q-b1 ; validé : COMMUN-9 P1 OK, COMMUN-10 Q6 OK) ; ERR-107, occlusion par un meuble (témoin T-occ, COMMUN-6 J6 : cas prouvé une fois ; évitement B2l après l'alpha) 5.8 Registre_Erreurs.md (ERR-107, ERR-125) ; STG-B2q-DIAG.md ; CAM-COMMUN5-DIAG.md
Caméra de scène et commandes pendant le sexe : ERR-108 (axe POV, corrigé, COMMUN-6 J7 OK), ERR-109 et ERR-112 (orbite, molette, Maj + souris, ZQSD, flèches). B2p-R / B2p-D : cas M1 à M8 OK en COMMUN-8, scène de sexe validée pour l'alpha par l'utilisateur 4.27 (ERR-108, ERR-109) ; 5.8 (ERR-112) Registre_Erreurs.md (ERR-108, ERR-109, ERR-112) ; COMMUN-8-BILAN.md
ERR-123 : couple qui flotte au-dessus du lit. Mesure M1d en COMMUN-6 : lowestMinusUnder ≈ 1 cm, le couple touche le lit (J10 OK) ; défaut perçu non expliqué, aucun correctif demandé 5.8 (estimé) Registre_Erreurs.md (ERR-123) ; STG-C54-DIAG.md ; COMMUN-6-BILAN.md
Couple et commandes pendant le sexe — traité, validé avec l'alpha : ERR-113 (couple hors de la pièce, sous le plancher) → B2p-E, B2p-F (murs Wall*, marge, pose libre de recouvrement), COMMUN-11 R1 à R3 OK ; ERR-114 (couple coincé dans un meuble) → B2p-F et G3 (NotifyCoupleTeleported), COMMUN-11 R5 OK, COMMUN-12 : 2 lignes de témoin, aucun KO rapporté ; ERR-100 (champ de filtre qui prend le clavier) → focus rendu à la vue, puis souris libre et panneau sur Alt (B2p-J). COMMUN-11 : R4 KO partiel (lit, pose sur des meubles) → B2p-H ; COMMUN-12 : glisser et rotation à la souris KO, Espace pris → B2p-J. L'utilisateur valide le comportement de l'alpha sur COMMUN-13 (16:00) 5.8 (code récent) Registre_Erreurs.md (ERR-113, ERR-114, ERR-100) ; COMMUN-10-BILAN.md ; CAM-COMMUN9-DIAG.md ; etat/BOSS/COMMUN-11-BILAN.md, COMMUN-12-BILAN.md, COMMUN-13-BILAN.md
ERR-099 : le champ « Translate » garde le focus, ZQSD est saisi dans le champ — mineur, après l'alpha à établir Registre_Erreurs.md (ERR-099) ; COMMUN-5-BILAN.md C5-6
ERR-116 : murs, façades et murets traversables en extérieur (prix de S-F4b). Traité avant l'alpha pour la rue (collision complexe, COMMUN-6 J1 OK) ; autres extérieurs et variante fine après l'alpha (STG-POST1) 5.8 Registre_Erreurs.md (ERR-116) ; STG-COMMUN5-ANALYSE.md § 7 ; COMMUN-6-BILAN.md
Après l'alpha : ERR-110 (caméra POV et caméra de scène dans les têtes), ERR-124 (boîte et bande vertes du couple : DrawDebugBox inconditionnel, retiré des builds Shipping, vérifié : pas de DrawDebugBox dans le Shipping de livraison (REL-ALPHA-T3-VAL.md) ; en Development il reste affiché) 5.8 Registre_Erreurs.md (ERR-110, ERR-124) ; BOSS-ETAT.md l. 93
Mineurs non instruits : ERR-122 (PNJ debout dans un fauteuil), ERR-131 (animation d'un meuble qui reste sur le joueur après un changement de pièce ; accessoire mal attaché) d'origine (estimé) Registre_Erreurs.md (ERR-122, ERR-131)

Décisions proposées (à valider)

# Proposition
S1 Démarrage sur la branche ue5.8 non publiée (décision utilisateur du 2026-10-09 : aucune livraison avant la stabilisation et l'optimisation, U8 différé) ; référence de mesure de départ : le build Development 5.8 de U6 et son relevé etat/U58/U6/U6-T3-AB.md.
S2 Parcours de mesure fixes : nouvelle partie (liste des villes) + Continuer (sauvegarde de référence Saved\SaveGames + Content\Saves), scène d'éditeur de personnage, une scène de couple ; build Development empaqueté (mémoire « mesure en build empaqueté »).
S3 Classement par impact : (1) visible en jeu / plantage, (2) erreur au journal, (3) AccessedNone groupés par Blueprint et nœud, (4) avertissements récurrents. Un lot = une famille de causes, pas un bug isolé.
S4 Critère de sortie : parcours S2 sans erreur inexpliquée ; AccessedNone restants listés avec justification ; aucune régression A/B.
S5 Publication : aucune pendant la stabilisation ; la V2.0 est publiée par U8 après la sortie de ST et d'OB (porte utilisateur) ; des V2.0.x par lot ou groupe de lots ensuite seulement.
S6 Retours joueurs : un registre unique (doc 21 ou nouveau) alimente les lots.
S8 Bissection des modules (question utilisateur 2026-10-09) : mesure de base avec vin_Base seul et aucun mod d'assets ; puis réintégration un module à la fois (modules texte cochés par défaut, autres modules texte, puis les 3 mods d'assets recuits), même parcours S2 et LogStats à chaque ajout, toute erreur nouvelle attribuée au module ajouté ; passage final tout coché (défauts de combinaison).
S7 Boucle MCP (demande utilisateur 2026-10-09) : plugin Epic « Unreal MCP » évalué puis utilisé en éditeur pour l'aide IA (lot STM) ; écriture par MCP seulement après instantané et tracée ; le build empaqueté reste la référence de mesure.

Dépôts, outils, livrables

Jeu D:\Game\LifePlay-master 5.8 (branche ue5.8 → main à la publication U8) ; addon LifePlay-Sandbox-5.8. Outils : Tools/Build.ps1, BuildDebug.ps1 (-NoUBA), LogStats.ps1, commandlets LP* (skill lp-commandlets). Livrables : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\<lot>\ (voir etat/INVENTAIRE.md) ; CHG au journal ; reports au registre de 21_Sandbox_Addon.md. Règle de méthode (lot DOCMV, CHG-300, 2026-10-10) : journal, registre, index README.md, docs numérotées et correctifs\ dans D:\Game\LifePlay-master 5.8\Docs\ ; seuls les livrables de lot restent dans Docs\Migration\etat\.

Méthode et outillage (pratiques de la communauté, recherche web 2026-10-09)

Principe : on ne corrige que ce qu'on a mesuré, sur build empaqueté, sur un parcours rejouable, et on revérifie sur le même parcours. Outils existants du projet en premier (LogStats.ps1, commandlets LP*, LPTestStringCompat).

  1. Mesure reproductible. Parcours S2 fixes (sauvegarde de référence, mêmes étapes), build Development empaqueté (Epic et les guides : les mesures en éditeur diffèrent nettement). LogStats avant / après chaque lot.
  2. Accessed None. Le journal nomme Blueprint, propriété et nœud : regrouper par (Blueprint, nœud) puis chercher POURQUOI la référence est vide (jamais affectée, Cast échoué, lecture avant création, ordre BeginPlay). Un garde IsValid seul fait taire le message sans corriger : n'en mettre que si « vide » est un état normal, et le dire. Piège connu : un nœud AND évalue ses deux entrées, il ne protège pas une lecture d'objet nul ; préférer une branche IsValid (ou « Validated Get ») avant la lecture. Correctifs Blueprint par commandlet tracé (méthode du portage 5.5). Arrêt sur exception en PIE (Epic) : préférence utilisateur « Blueprint Break on Exceptions » (section Experimental ; emplacement 5.8 à confirmer par la recherche des préférences) — l'éditeur s'arrête sur le nœud fautif avec pile d'appels et valeurs (fenêtre Watch, Execution Trace) au lieu d'une remontée du journal. Premier levier sur les ~364 AccessedNone ; le build empaqueté confirme ensuite le correctif. 2b. Défauts dans le temps (Visual Logger, Epic). Enregistrer l'état au fil de la session et le revoir après coup (fichier joignable à la fiche). Cas d'usage : personnages enfoncés dans la rue — tracer position, capsule et hauteur du sol trouvée, comparer un personnage sain et un fautif. Animation : Rewind Debugger + Animation Insights. 2c. Reproduction par commandes de triche. Commandes Exec d'une sous-classe de UCheatManager (console active en Development, retirée en Shipping) pour atteindre directement une scène de couple, l'éditeur de personnage ou une ville : parcours S2 rejouables, base d'un futur scénario Gauntlet. Toute commande ajoutée = code de jeu, tracé (CHG).
  3. À-coups. t.HitchFrameTimeThreshold + DumpHitches (écrit chaque à-coup au journal), stat unit pour situer Game / Draw / GPU, puis trace Unreal Insights (canaux CPU + Frame, -statnamedevents, ~5 s autour de l'à-coup, signets) ; les fonctions Blueprint n'apparaissent qu'en « Blueprint Time » : ajouter des scopes de profilage C++ autour des appels suspects.
  4. Mémoire / chargement. memreport -full (significatif seulement en build empaqueté), trace -trace=memory,loadtime,file, Memory Insights (étiquettes LLM, fuites, allocations vivantes).
  5. Plantages. Dossier Saved\Crashes (journal, minidump .dmp, contexte XML) ; un minidump n'est exploitable qu'avec les PDB du même build : archiver les PDB de chaque build distribué (un dossier par numéro de build, à côté de Releases) et écrire le numéro de build en tête du journal, pour rattacher chaque retour ou plantage à son build ; pour Shipping, activer « Include debug files » ; ouvrir dans Visual Studio ou WinDbg (VS affiche les frames Blueprint dans la pile C++, Rare GDC 2023). Depuis UE 5.4, Epic ne reçoit plus les rapports des jeux empaquetés : les retours joueurs passent par notre registre (S6), journal et dossier Crashes joints. Les ensure et erreurs non fatales n'atteignent pas le CrashReportClient : LogStats les couvre.
  6. Non-régression automatisée. Gauntlet (Epic) : lance le jeu empaqueté, pilote un scénario, analyse journaux et plantages — candidat pour un test de fumée par build (démarrage, nouvelle partie, Continuer, éditeur de personnage) ; séparer les échecs du banc de ceux du jeu (un plantage peut se cacher derrière une erreur générique du banc, retour d'expérience 5.8 sur le MCP). Tests d'automatisation existants (LPTestStringCompat) gardés. Data Validation (Epic) : règles sur les assets, en éditeur ou en ligne de commande (CI) ; ne détecte pas un Accessed None au jeu, mais peut refuser à la cuisson une référence obligatoire non renseignée.
  7. Tri. Dédupliquer par pile d'appels / (Blueprint, nœud) ; trier par fréquence × impact ; chaque cas : build, étapes, journal ; pas de nouvelle fonctionnalité pendant un lot de stabilisation.
  8. Outils tiers (ex. « Unreal Test Kit » sur Fab : bot de jeu, rapports JUnit) : affirmations de vendeur non vérifiées ; évaluation à part avant tout usage.

Outil Epic par famille de défaut (recherche web 2026-10-09 ; un lot choisit son outil de preuve dans ce tableau) :

Famille Outil Epic Règle d'usage
Logique Blueprint, AccessedNone Blueprint Debugger (points d'arrêt, Watch, Execution Trace), Break on Exceptions PIE pour trouver, build empaqueté pour confirmer
Comportement dans le temps (position, état, IA) Visual Logger enregistrement joint à la fiche
Animation Rewind Debugger, Animation Insights, Pose Watch plugin Animation Insights en éditeur seulement
À-coups, temps CPU stat unit / stat game, DumpHitches, Unreal Insights Development empaqueté, -statnamedevents
Mémoire, chargement memreport -full, Memory Insights, trace loadtime,file build empaqueté seulement
Invariants C++ check / verify / ensure pas d'effet de bord dans check (non exécuté en Shipping) ; ensure = signalé une fois, continue
Plantages CrashReportClient, minidump + PDB du même build collecte par notre registre (S6)
Non-régression Automation (dont CQTest), Gauntlet test de fumée par build, échec = build non diffusé
Assets Data Validation refus à la cuisson d'une référence obligatoire vide
  1. Assistance IA par MCP (demande utilisateur 2026-10-09) : l'IA pilote l'éditeur pour réduire les manipulations humaines et tester l'interaction avec l'éditeur.
    • Établi (local) : UE 5.8 livre le plugin Epic « Unreal MCP » (Engine/Plugins/Experimental/ModelContextProtocol, « Anthropic MCP (Model Context Protocol) server implementation for Unreal Engine », expérimental, désactivé par défaut) et « MCP Client Toolset » (bêta). Le projet a déjà .mcp.json → http://localhost:8000/mcp (adresse par défaut) ; la session Claude Code voit un serveur unreal-engine en échec de connexion tant que l'éditeur ne l'expose pas. Notre plugin McpAutomationBridge est désactivé pour V2.0 (D4) ; l'évaluation du MCP Epic était hors chemin critique (D7) : elle devient le lot STM.

    • Outil de mise en place retenu (2026-10-09) : « Hyper AI Studio » (Games by Hyper, Fab, gratuit, sans compte ni activation, 5.8 seulement, documentation en ligne + doc Epic « Unreal MCP »), choisi parmi les outils Fab du compte (écartés : Unreal MCP Setup Assistant sans doc, NexusMCP doc complète en chinois, NarshaADK en accès anticipé, Log Viewer avec version Pro, BugSplat service en ligne). Installé dans le projet (Plugins/Marketplace/HyperAIStudio, non commité) ; setup « Ready », endpoint 127.0.0.1:8000/mcp répondant. Écarts corrigés à la main : 15 plugins Toolset activés sans TargetAllowList: ["Editor"] (ajouté), Optional retiré de McpAutomationBridge (remis). Fichiers générés (CLAUDE.md, AGENTS.md, .hyperai/) exclus localement ; les skills lp-* priment sur leurs consignes. Instantané : LifePlay_Backup_5.5\STM. Erreur de démarrage de la sonde Automation corrigée dans notre code (ERR-054, CHG-260).

    • Résultats STM-T2 à T4b (2026-10-09, CHG-262) : éditeur lancé hors écran (-RenderOffScreen -ModelContextProtocolStartServer -ModelContextProtocolPort=8000), .uproject non réécrit, session Claude Code connectée (/mcp). Lecture : initialize 88 ms, appels 8-16 ms ; ~50 toolsets ; 91 outils HyperAIStudio enregistrés sur 109, tous « source candidate » (préversion vendeur), aucun « admitted ». Testés et utiles : carte ouverte, journal en direct filtré (hyper_log_tail), état de débogage d'un Blueprint (hyper_blueprint_debug_inspect), relevé et diff stable (hyper_blueprint_snapshot / _diff), référenceurs (AssetTools.get_referencers). Écriture (T4, Content/BPs/TestStatic.uasset) : outils Epic (BlueprintTools.set_node_position, compile_blueprint, AssetTools.save_assets) → diff = 1 changement, retour arrière par MCP → diff identical, puis fichier remis à l'octet par git checkout éditeur fermé (un réenregistrement 5.8 réécrit l'en-tête : 25 919 → 26 029 octets). Écriture par HyperAIStudio : inutilisable sous Windows — budget d'étape (ERR-055, contourné en validation par un patch ≥ 2 opérations) puis identifiant de projet SHA-1 refusé par l'étape d'application qui exige SHA-256 (ERR-056) ; décision utilisateur : ne pas patcher le plugin, défauts signalés au vendeur.

    • Règles d'usage (mises à jour après T4c, 2026-10-09, CHG-266) :

      1. Rôles. HyperAIStudio lit et vérifie ; les outils Epic de l'éditeur (editor_toolset.*) modifient. Pas d'écriture par HyperAIStudio (ERR-055, ERR-056).
      2. Lecture d'un Blueprint. Charger l'asset par AssetTools.load_asset (HyperAIStudio ne charge jamais) ; localiser par BlueprintTools.find_nodes, lire par get_connected_subgraph / get_node_infos (fiables) ; read_graph_dsl rend vide sur les gros graphes et hyper_blueprint_snapshot / _diff refuse les gros Blueprints (graph_source_bound_exceeded, ex. Person, 20 Mo) : les réserver aux petits Blueprints.
      3. Écriture. Instantané (Snapshot.ps1) ; modification par create_node / connect_pins / break_pins / delete_node ; relecture des liaisons par get_node_infos ; compile_blueprint + hyper_blueprint_debug_inspect (0 diagnostic) ; save_assets ; puis CompileAllBlueprints éditeur fermé. Retour arrière à l'octet : instantané ou git, éditeur fermé (un réenregistrement 5.8 réécrit l'en-tête).
      4. Correctif Accessed None. Un garde IsValid seulement si « vide » est un état normal, et l'écrire au CHG ; préférer des branches en cascade à un AND / OR (évalue toutes ses entrées) ; comportement inchangé exigé.
      5. Preuve. La PIE pilotée par MCP ne déroule pas un parcours d'interface (menus, chargement de ville) : la preuve qu'un Accessed None disparaît reste le build empaqueté + LogStats sur le parcours S2.
      6. Volume. Appels paginés et filtrés ; éviter hyper_capability_report et les describe_toolset complets (75-116 Ko) ; hyper_log_tail ignore le filtre de catégorie : préférer le journal sur disque (LogStats).
      7. Copie partagée. Éditeur MCP, commandlets et builds s'excluent ; avant un usage de la copie 5.8, gel annoncé à toutes les sessions actives (ListAgents), pas seulement à celle du lot voisin (incident T4c : deux sessions ont écrit dans Tools/ et le journal pendant un gel annoncé à une seule) ; commit limité à ses propres fichiers et lignes.
      8. Périmètre gratuit. Seule la partie gratuite de HyperAIStudio est utilisée (aucun contrôle de licence dans le plugin installé) ; l'offre payante Games by Hyper (« [Beta] Access to Hyper AI », palier EPIC et plus) sort des critères de sélection (toutes fonctions dès l'origine, sans limite de temps) : non retenue.
      9. Pas de serveur MCP supplémentaire. Les profils proposés par HyperAIStudio (ex. « Project Docs Filesystem MCP » par npx @modelcontextprotocol/server-filesystem) restent désactivés : doublon de l'accès fichiers de Claude Code, paquet téléchargé à chaque lancement, exposition du projet. Seul unreal-mcp (Epic) est utilisé.
      10. Mesure. La mesure qui fait foi reste le build empaqueté.

      Avertissements connus de l'éditeur 5.8 en culture française : 20 LogAutomationTest: Error: Condition failed du test de fumée Epic UnifiedError::FactoryMethod (textes anglais attendus), présents avant HyperAIStudio.

    • Recommandation pour la porte G-STM : adopter le MCP (unreal-mcp d'Epic + HyperAIStudio gratuit en lecture) pour le tri et le diagnostic des Accessed None et pour les correctifs Blueprint petits et réversibles (preuve T4c : ~5 min du diagnostic à l'enregistrement, ~30 appels) ; ne pas souscrire à l'offre payante ; garder McpAutomationBridge désactivé (remplacé par le MCP d'Epic, retrait à trancher avec le chantier OB) ; inscrire les règles 1 à 10 dans les skills lp-* (STM-T5).

    • Estimé (guides tiers, à vérifier en STM) : serveur local sans authentification (ne jamais l'exposer hors de la machine) ; appels d'outils exécutés en série sur le thread de jeu (attendre chaque résultat) ; commencer en lecture seule, n'autoriser que des modifications petites et réversibles. Un plantage de l'éditeur peut apparaître côté client comme une simple erreur HTTP 502 (retour d'expérience 5.8) : surveiller le processus et le journal de l'éditeur en parallèle. Des serveurs tiers existent (StraySpark, ziggymar, ChiR24) : non retenus sans évaluation.

    • Usages visés : lecture des graphes Blueprint fautifs d'un Accessed None (nœud, variable, ordre d'affectation) sans export manuel ; requêtes du registre d'assets et des références (preuve d'usage pour OB) ; lancement de commandlets / validation de données ; PIE scripté et captures pour un premier tri avant le build empaqueté ; application de correctifs Blueprint réversibles après instantané. La mesure qui fait foi reste le build empaqueté (S2) ; MCP n'en dispense pas.

    • Garde-fous : éditeur de la copie 5.8 seulement ; instantané (Snapshot.ps1) avant toute écriture par MCP ; chaque modification par MCP tracée (fiche, CHG) comme une modification manuelle ; plugin MCP activé en éditeur uniquement, jamais dans un paquet (vérifier Type/plateformes du .uplugin et la liste des plugins cuits) ; .mcp.json et .claude/ jamais commités (règle lp-paths).

Sources : Gauntlet (Epic) · Data Validation (Epic) · Stat commands (Epic) · Memory Insights (Epic) · Unreal Insights après stat (guide) · Optimisation à petit budget (T. Looman) · Accessed None (guide) · Accessed None (forum Epic) · Minidumps (guide) · Plantages éditeur / Shipping (AccelByte) · Plantage d'automatisation caché, MCP 5.8 (forum Epic) · Unreal Test Kit (forum, vendeur) · Asserts (Epic) · Blueprint Debugger (Epic) · Break on Exceptions (réf. API 4.26) · Visual Logger (Epic) · Rewind Debugger (Epic) · Crash reporting (Epic) · Cheat Manager (Unreal Garden) · Tests automatisés, Sea of Thieves (Unreal Fest 2019) · Rare, débogage UE5 dans Visual Studio (GDC 2023) · Hyper AI Studio (doc vendeur) · Unreal MCP in Unreal Editor (Epic). MCP : Unreal MCP dans UE 5.8, configuration et sécurité (guide SEELE, FR) · Unreal MCP Server (StraySpark, tiers) · unreal-mcp (ziggymar, tiers) · Unreal_mcp (ChiR24, tiers) · ue-mcp (db-lyon, tiers). Niveau de preuve : documentation Epic = établi pour la fonction de l'outil ; guides tiers = estimé ; vendeurs = non vérifié.

Lot préalable : STM — boucle MCP (prévu après la V2.0 ; mené le 2026-10-09 avant toute livraison ; reste T5)

État au 2026-10-09 (SEQ1) : T1 à T4c faits (CHG-260, CHG-262, CHG-263, CHG-266), T4b bloqué, T5 seul en attente. Aucune livraison n'ayant lieu avant la stabilisation et l'optimisation (décision utilisateur du 2026-10-09, plan 27 § U8), la porte G-STM n'est liée à aucun Shipping : elle se tient quand l'utilisateur le décide, avant STA.

  • STM-T1 (N1, web d'abord) : doc Epic et notes 5.8 de « Unreal MCP » (outils exposés, réglages, sécurité, limites). Fait (§ Méthode, point 9 : outil HyperAIStudio retenu, CHG-260).
  • STM-T2 (N0 + utilisateur) : activer le plugin dans l'éditeur de la copie 5.8 (instantané du .uproject), lancer l'éditeur, connexion depuis Claude Code (.mcp.json existant), journal de démarrage. Fait (CHG-262).
  • STM-T3 (N1) : fait (CHG-262) ; batterie en lecture seule (lister des assets, lire un Blueprint connu, interroger le registre, lancer un commandlet inoffensif), mesures de latence et de stabilité ; preuve par l'échec : comportement si l'éditeur tombe (erreur côté client, détection).
  • STM-T4 (N3) : un correctif Blueprint réversible de bout en bout par MCP (instantané → modification → compilation BP → contrôle → retour arrière à blanc). Fait (outils Epic, CHG-262) ; T4b (écriture par HyperAIStudio) : bloquée par ERR-055 / ERR-056, plugin non patché (décision utilisateur).
  • STM-T4c (2026-10-09, CHG-263) : efficacité sur un cas réel. Correction faite : Accessed None … property ContactMenu (63 par session au parcours U6, 2e famille) dans Person_C:UpdateDailyPose (appelé par City.LoadCity → GI.MoveCity). Cause : Branch(OR(secondScreen, GI.ContactMenu.DummyPerson == self)) — le OR évalue ses deux entrées et lit DummyPerson alors que le menu de contacts n'existe pas encore au chargement de la ville. Correctif (« vide » est un état normal ici, d'où le garde) : Branch(secondScreen) → sortie si vrai ; sinon Branch(IsValid(GI.ContactMenu)) → vrai : branche d'origine sur l'égalité ; faux : Switch (même chemin que l'égalité fausse) ; OR supprimé. Comportement identique, lecture protégée. Outils : Epic (find_nodes, get_connected_subgraph, create_node ×3, break_pins ×2, connect_pins ×8, delete_node, compile_blueprint, save_assets) ; contrôle get_node_infos + hyper_blueprint_debug_inspect (39 nœuds, compilé, 0 diagnostic) ; CompileAllBlueprints code 0, 0 erreur, 0 avertissement. Temps : ~1 min de démarrage de l'éditeur, ~5 min du diagnostic à l'enregistrement, ~30 appels MCP. Preuve en jeu (U8-T5c, CHG-276) : PASS avec réserve — archive Development U8 (cuisson complète U8-T3), même sauvegarde DC4 que U6 : 0 ligne ContactMenu (U6 : 63 événements + 2 du résumé), 15 SPAWN, MoveCity exécuté par Continuer ; réserve : les chemins d'origine en U6 (CheckIfReachedFnt 20, Room_C 20, DressSavedActualActual 8…) ne journalisent rien quand ils réussissent, absence non circulaire seulement pour MoveCity (estimé). Texte d'origine : reste à prouver en jeu (build empaqueté Development, LogStats : ContactMenu 63 → 0 attendu, parcours STA-T1 ; U8 différé, SEQ1). Limites relevées : read_graph_dsl rend une chaîne vide sur ce graphe ; hyper_blueprint_snapshot refuse Person (graph_source_bound_exceeded, Blueprint de 20 Mo, 134 graphes) ; hyper_log_tail ignore le filtre de catégorie (réponse lourde) ; la PIE pilotée par HyperAIStudio (hyper_playtest_run) ne sait pas dérouler un parcours d'interface (menus, chargement de ville) : la capture en PIE d'un Accessed None de ce type n'est pas faisable par MCP seul.
  • STM-T5 (orchestrateur + utilisateur) : en attente (recommandation écrite, § Méthode point 9, CHG-266) ; décision — MCP Epic adopté, McpAutomationBridge retiré ou gardé (lien OB), règles d'usage inscrites dans les skills lp-* ; porte G-STM.

Lot d'audit proposé (phase 1) : STA (lecture seule + mesures)

  • STA-T1 (N1) : parcours S2 enregistrés, LogStats détaillé ; STA-T2 (N3) : classement des AccessedNone et erreurs par Blueprint / nœud / cause probable ; STA-T3 (N1) : registre des défauts visibles (captures, étapes) ; STA-T4 (N4) : effort et risques par famille, ordre recommandé → porte G-ST.
  • Découpage (SEQ1, 2026-10-09, règle de taille du plan 27) : STA-T2 devient STA-T2a (N0, extraction des signatures par Tools/LogStats.ps1 -Pattern, comptes bruts), STA-T2b- (N3, une fiche par famille de Blueprint, une hypothèse de cause par fiche) et STA-T2c (N1, consolidation des comptes rendus) ; STA-T4 ne lit que les comptes rendus de T1 à T3, pas les journaux.
  • Lot d'essai des gabarits (TPL1, 2026-10-09) : fiches d'entrée au gabarit de sk-orchestrate § 3, livrables aux gabarits de rôle de lp-doc/gabarits.md, registre etat/ST/STA/STA-TACHES.md, mesures par python -I Tools/FicheStats.py --lot STA. Comparaison à U0–U7b (Tools/FicheStats.py --lot U<n>, doc 31) à l'EVAL de STA : part des fiches hors budget (U7 : 6 sur 16), reprises, sections de gabarit manquantes relevées à la réception, longueur des comptes rendus. Gabarits gardés si ces indicateurs baissent sans reprise de plus ; sinon allégés.

Point d'étape du 2026-10-10 (lots STB, STC, STD, STE, STF, OBB, ETAT3)

Synthèse écrite par ETAT3-T6 à partir des registres et livrables de lot (chemins relatifs à etat/) ; un registre de lot n'est pas une preuve : chaque ligne renvoie au livrable. Causes et statuts : Registre_Erreurs.md, ERR-058 à ERR-086 (table cause → ERR : etat/DOC/ETAT3/ETAT3-T6-DOC.md).

  • STB (corrections après G-ST), clos : 12 correctifs, CHG-281 à CHG-292 (GI : BeautyStandards, tableaux lus sans test, clearScenePersons, determinePersonVars, Interacting ; Person : standIdle, Headtrack, assignHome ; MainMenu ; StreetMap_Static ; Room ; SexInterface ; garde C++ MapMarkers), précédés de STB-T0 (CHG-280, noms d'événements dans LPDumpFunction). VAL PASS (ST/STB/STB-VAL.md § 5 : CompileAllBlueprints 418 / 418, 0 erreur, 0 avertissement ; LPTestStringCompat 3120 / 0 / 60). Preuve en jeu STB-JEU acceptée avec réserve (ST/STB/STB-JEU-VAL.md § 5) : signatures visées à 0, Floats_3 30 contre 1 107 sur la contre-épreuve U8 ; réserve : familles nouvelles du moteur de scènes ni attribuées ni exclues faute de parcours identique. Régression ERR-057 (réglages écrasés à l'ouverture du menu) causée par CHG-286, retirée par CHG-294 ; R13 / R14 rouverts (ERR-068). Évaluation : ST/STB/STB-EVAL.md.
  • Porte G-STM adoptée par l'utilisateur (2026-10-10) : règles d'usage du MCP inscrites dans le skill lp-mcp, STM-T5 faite (ST/STD/STD-TACHES.md:7).
  • STD (diagnostics, lecture seule), clos : trois DIAG acceptés. ST/STD/STD-GIX-DIAG.md : R06 et R07 / R08 défauts d'affectation d'origine (4.27), R10 None normal ; ST/STD/STD-SCN-DIAG.md : familles F1 à F5 du moteur de scènes, aucune ne vient de STB (F1, F2, F3, F5 préexistantes en 5.5 DC4, F4 préexistante en 5.8 avant STB) ; ST/STD/STD-TXT-DIAG.md (partiel) : texte pâle de CharGen identique en 5.5, cause probable : aucune couleur de texte fixée. Décisions utilisateur (ST/STD/STD-TACHES.md:16-23) : gardes simples pour R06, R07 / R08 et R10 ; deux lots H2 (F4) et H3 (F1 / F3) ; texte noir sur deux widgets de CharGen ; exécution par le lot STE.
  • STE (correctifs après STD), planifié : 7 fiches (ST/STE/STE-TACHES.md, ce registre fait foi sur celui de STD) : STE-D, STE-GI, STE-TXT « fiche écrite » ; STE-H3, STE-H2, STE-VAL, STE-JEU « à écrire ». Départ après le commit des fichiers de STC et la fin de son gel. Cibles au registre : ERR-062, ERR-063, ERR-065 (STE-GI), ERR-082 à ERR-084 (STE-H3), ERR-085 (STE-H2).
  • STC (lot UI : vitesse caméra en slider, durée des scènes protégée) : d'après ST/STC/STC-TACHES.md, T0 à T6 faites ou acceptées, STC-VAL acceptée, PASS (V1 build 0 / 0, V2 418 / 418, V3 3120 / 0 / 60) ; restent V8 (archive) et J1 (preuve en jeu) ; CHG annoncé CHG-296 (« à venir »), pas encore au journal ; fichiers du lot non commités à cette date.
  • STF (12 autres SpinBox de MainMenu), en attente : STF-T0 faite, SPEC écrite en attente de la clôture de STC et du feu vert (ST/STF/STF-TACHES.md).
  • OBB (bloquants de publication) : OBB-T6 acceptée (OB/OBB/OBB-T6-INV.md) : L1 = la V1.5 publiée ne contient pas l'addon, L2 = TargetConfigurationDenyList lu par le moteur et UBT 5.8 ; décision utilisateur : clé de CHG-279 conservée, B2 clos ; OBB-T3 (B3, contrôles de paquet : CHG-301) et OBB-T1 (B1, .git de Content\Modules hors de l'arbre : CHG-304, CHG-307) faits ; OBB-T7 fait : Shipping 5.8 neuf, 4 contrôles de paquet à 0, B1 à B3 prouvés (CHG-308).
  • ETAT3 (CHG-297) : depuis le 2026-10-10, les livrables de lot vivent dans D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ (texte .md / .csv suivi par git, le reste local) ; l'etat\ de la copie 5.5 est une archive figée, sauf etat\REPO\ (réservations NUMEROS.md, tickets et journal du gardien). Registre du lot : DOC/ETAT3/ETAT3-TACHES.md.
  • DOCMV (CHG-300) : décision utilisateur du 2026-10-10 (« Déplacer dans Docs\ ») ; journal, registre, index README.md, docs 01-32 et correctifs\ montés de Docs\Migration\ à Docs\ (41 renommages git) ; Docs\Migration\ ne garde que etat\ ; skills, agent lp-writer, CLAUDE.md et outils mis aux nouveaux chemins. Registre du lot : DOC/DOCMV/DOCMV-TACHES.md.

Point d'étape du 2026-10-14 (alpha 2026.10.2.1a, livrée)

Synthèse écrite à partir des registres de lot et des bilans d'essai (chemins relatifs à etat/) ; un registre n'est pas une preuve : chaque ligne renvoie au livrable. Objectif de l'utilisateur (2026-10-13) : build alpha 2026.10.2.1a, Shipping seule, remise au plus tard le 2026-10-18. Décisions de l'utilisateur : poursuivre les corrections avant l'alpha ; gel des scènes de sexe levé (BOSS/COMMUN-6-TESTS.md) ; ZQSD pour la caméra, flèches pour le couple, glisser-déposer (CAM/CAM-B2p-SPEC.md) ; bonus d'orgasme affiché au même emplacement que chez l'auteur (ST/STE/STE-ORG5-I2-SPEC.md) ; priorité à C1 (CAM/CAM-COMMUN6-DIAG.md § 0) ; façades de la rue avant l'alpha (ST/STG/STG-TACHES.md) ; « bien on valide la scene de sexe dans son ensemble pour l'alpha » (11:06, BOSS/COMMUN-8-BILAN.md) ; « bien je valide le comportement de l'alpha. Prépares la build de livraison » (16:00, BOSS/BOSS-JOURNAL.md) ; « Lettre acceptée » pour la version (REL/ALPHA/REL-ALPHA.md).

  • Essais communs. COMMUN-1 à COMMUN-13 construites (CheckPackage PASS) ; bilans BOSS/COMMUN-2-BILAN.md à COMMUN-13-BILAN.md ; COMMUN-13 (T1 à T8 OK, validés en bloc) ; un plantage GPU à la fin de l'essai, hors scène, cause extérieure estimée (ST/STG/STG-COMMUN13-GPU-DIAG.md), cité dans les défauts connus des notes de version.
  • STE. H3d, H10, GEL1 PASS en jeu ; G16 PASS statique ; O4a, O4c et ORG5 (récompenses et affichage) validés (COMMUN-8) ; G3 compilée, 2 lignes de témoin en COMMUN-12 ; garde chargen après l'alpha.
  • STG. Enfoncement, chevauchement, marche animée : voir ERR-115, 118, 121 ; façades de la rue solides ; C7-a, B2q-b1, S-F5m / n / p, M-Z validés en jeu (COMMUN-8 à 10).
  • CAM. C1, C2, corrections B2f à B2s, pendant le sexe B2p-R à B2p-J (cycle Scene, C3, POV ; couple borné dans la pièce ; panneau sur Alt ou clic molette ; icône d'aide) ; B3 (vue plafonnier) non faite.
  • REL. Garde de sauvegarde : E1 à E4, E6, E9 OK ; LPModGuard accepte une lettre finale ; Shipping 4a9bbdb3, archive LifePlay_Revival_2026.10.2.1a_Windows_Game.7z (SHA-256 89ed211d…), 4 zips de mods, notes de version et annonces ; 32 builds obsolètes (59,24 Go) envoyés à la corbeille de Windows.
  • Hors alpha. P7-H2 (crochet ecriture-gardien) : v1 69 / 69 mais VAL FAIL, v2 partielle, rien installé. EVAL-FAB-1 à 4 : contenus Fab négatifs. Après l'alpha : B3, POV de scène dans les têtes, STG-POST1 et POST2, B2q-b2 à b4, garde STE-H3i, fauteuil, Content\Saves hors du dossier de sauvegarde.