Anatomie d’un mod
Un mod NeoPiano est un plugin Unreal Engine au sens large : un dossier avec un fichier .uplugin du même nom. Ce qu’il contient dépend de son type.
Mod script (Lua ou WebAssembly)
Section intitulée « Mod script (Lua ou WebAssembly) »RépertoireMods/
RépertoireChordCoach/
- ChordCoach.uplugin le descripteur
RépertoireCode/
- ChordCoach.lua un ou plusieurs scripts
- README.md
CanContainContent vaut false et les scripts sont listés dans NeoModScripts. Un mod WebAssembly suit la même forme, avec un fichier .wasm dans Code/.
Mod de contenu (Blueprint)
Section intitulée « Mod de contenu (Blueprint) »RépertoireMods/
RépertoireSparkEffect/
- SparkEffect.uplugin
RépertoireCooked/ paquets cuits par le SDK
- …
RépertoireCode/ facultatif : scripts du mod
- …
Le contenu (Blueprints, matériaux, Niagara, sons) est cuit par le SDK en paquets chargés par NeoPiano. Le mod contient un manifeste à l’emplacement /<NomDuMod>/NeoModManifest, qui liste ses effets de notes. Voir Mods de contenu et Blueprint.
Le fichier .uplugin
Section intitulée « Le fichier .uplugin »Les champs propres à NeoPiano commencent par NeoMod. La liste complète est dans la référence du .uplugin.
{ "FileVersion": 3, "FriendlyName": "Chord Coach", "Version": 3, "VersionName": "1.2.0", "CanContainContent": false, "NeoModApiVersion": 5, "NeoModScripts": ["Code/ChordCoach.lua"], "NeoModCapabilities": ["ui.hud", "ui.panel", "settings", "storage"]}Les données du mod
Section intitulée « Les données du mod »- Les réglages et le stockage du mod sont enregistrés par NeoPiano dans le dossier utilisateur (
NeoPiano/Mods/<NomDuMod>.json), jamais dans le dossier du mod. - Un mod peut lire ses propres fichiers (données, textures, sons), et seulement les siens.
Le cycle de vie
Section intitulée « Le cycle de vie »- Au démarrage, NeoPiano lit chaque
.uplugindu dossierMods, vérifieNeoModApiVersionet les capacités. - Il monte le contenu cuit, puis charge les scripts.
- Il appelle
on_mod_init, puis les callbacks au fil des événements (on_note_on,on_tick…). - Si le mod dépasse un budget ou lève une erreur, il est désactivé et la raison s’affiche dans le panneau Mods.
Documentation synchronisée avec NeoPiano · commit cbf48cc · 17 octobre 2026