Nova-Life sans plugin, c'est le jeu tel quel. Les plugins sont ce qui distingue ton serveur des autres : métiers ajoutés, menus, économie, protections. Ce chapitre explique comment ça marche, comment en poser un, et le piège des mises à jour qui a déjà coûté cher à plusieurs serveurs.
1. Comment un plugin fonctionne #
Un plugin Nova-Life est une bibliothèque .dll compilée. Le serveur les charge au démarrage, dans l'ordre où il les trouve.
La règle de rangement est simple et ne souffre aucune exception :
Servers/<TonProfil>/Plugins/
├── MonPlugin.dll ← la DLL, à la RACINE de Plugins/
├── MonPlugin/ ← son dossier de configuration et de données
│ └── config.json
├── AutrePlugin.dll
└── AutrePlugin/
└── config.json
La DLL va à la racine de Plugins/. Le dossier du même nom contient sa configuration et ses données. Une DLL rangée dans son propre dossier ne sera jamais chargée — et rien ne te le dira.
Un plugin ne se charge qu'au démarrage. Poser une DLL sur un serveur qui tourne ne fait rien : il faut redémarrer.
✅ À retenir
- DLL à la racine de
Plugins/, configuration dansPlugins/<Nom>/.- Un plugin déposé ne se charge qu'après un redémarrage.
2. Installer un plugin, pas à pas #
- Sauvegarde
life.dbet le dossierPlugins/entier. Un plugin qui touche à la base peut la modifier de façon irréversible. - Connecte-toi en SFTP.
- Dépose la DLL dans
Servers/<TonProfil>/Plugins/. - Si le plugin fournit un fichier de configuration, crée le dossier
Plugins/<NomDuPlugin>/et mets-l'y. - Redémarre.
- Ouvre la console et lis. Un plugin sain annonce son nom et sa version au démarrage.
Ce dernier point est celui qu'on saute, et c'est celui qui compte. Si la console ne dit rien du plugin, il n'est pas chargé — et tu vas passer une heure à te demander pourquoi il ne fait rien.
Un plugin à la fois. Pose-le, redémarre, vérifie, joue dix minutes. Puis le suivant. Trois plugins posés ensemble qui donnent un serveur instable, c'est trois soirées de recherche au lieu d'une.
✅ À retenir
- La console au démarrage te dit si le plugin est chargé. Lis-la à chaque fois.
- Un plugin à la fois, avec un test entre chaque.
3. ⚠️ Le piège : la mise à jour du jeu réinstalle des plugins #
Voici le point que personne ne devine, et qui casse des serveurs.
Le template TeamKit pour Nova-Life ne fait pas que télécharger le jeu. Il contient neuf étapes marquées « écraser les fichiers existants » qui vont chercher des plugins sur le dépôt du template et les posent dans ton dossier Plugins/, à chaque mise à jour du jeu.
Les fichiers concernés :
| Fichier réinstallé | Effet sur ton serveur |
|---|---|
TKWebPanel.dll |
réinstalle le panel admin historique |
TKAntiFlood.dll |
remplace ta version par celle du template |
TKAntiCheat.dll |
idem |
TKGhost.dll, TKDynamicFps.dll |
réapparaissent même si tu les avais retirés |
TKConnectLog.dll, TeamKitIntro.dll |
idem |
TKWebPanel-icons.zip, -vehicons.zip |
12 Mo réextraits |
Concrètement : si tu as remplacé un de ces plugins par une version plus récente, la mise à jour te ramène l'ancienne. Et si tu en avais retiré un volontairement, il revient.
Le cas le plus douloureux est TKWebPanel : il se lie au port de jeu + 4. Si tu utilises le panel web moderne (chapitre 06), qui écoute sur le même port, tu te retrouves avec deux panels qui se disputent l'adresse. Tu perds l'accès à ton panel sans avoir rien changé toi-même.
Ce qui n'est PAS dans cette liste compte autant. ModKit.dll, la bibliothèque dont dépendent beaucoup de plugins de la communauté, n'y figure pas : la mise à jour du jeu ne la met jamais à jour. C'est la cause n°1 des plugins qui tombent tous ensemble après une mise à jour — section 8.
Ce qu'il faut faire :
- Avant chaque mise à jour du jeu, télécharge ton dossier
Plugins/entier par SFTP. - Après chaque mise à jour, ouvre
Plugins/et compare : si une DLL a une date du jour alors que tu n'as rien posé, elle vient d'être réinstallée. - Si tu tiens à une version précise d'un de ces plugins, repose-la après la mise à jour, avant de redémarrer.
- Si le problème te gêne durablement, demande au staff TeamKit de retirer les étapes d'injection de ton instance. C'est une modification côté panel, elle ne se fait pas depuis ton compte.
✅ À retenir
- Neuf fichiers sont réécrits à chaque mise à jour du jeu, même si tu les avais remplacés ou supprimés.
- Sauvegarde
Plugins/avant chaque mise à jour, et compare les dates après.
4. Configurer un plugin #
Chaque plugin lit sa configuration dans Plugins/<Nom>/config.json. Le format est du JSON : les règles du chapitre 03 s'appliquent — un vrai éditeur, une validation avant envoi, une copie de sauvegarde.
Certains plugins TeamKit sont réglables directement depuis AMP : les réglages 40 à 48 pilotent TKConnectLog, les 50 à 61 pilotent TeamKitIntro. Pour ceux-là, passe par AMP, pas par le fichier : AMP réécrit le fichier au démarrage et ta modification manuelle serait perdue.
Pour tous les autres, le fichier est la seule voie.
Un piège à connaître : si tu modifies un config.json pendant que le serveur tourne, le plugin peut le réécrire en partant de ce qu'il a en mémoire — et effacer ton ajout. L'ordre sûr est toujours le même : arrêter, modifier, démarrer.
✅ À retenir
TKConnectLogetTeamKitIntrose règlent dans AMP, pas dans leur fichier.- Pour les autres : arrêter, modifier, démarrer. Jamais pendant que ça tourne.
5. Retirer un plugin #
- Arrête le serveur.
- Supprime la DLL à la racine de
Plugins/. - Garde le dossier
Plugins/<Nom>/: il contient ses données et ses réglages. Si tu changes d'avis, tu les retrouves. - Redémarre et vérifie la console.
C'est la DLL qui compte, pas le dossier. Un dossier orphelin ne gêne rien.
Attention : si le plugin retiré fait partie des neuf de la section 3, il reviendra à la prochaine mise à jour du jeu.
✅ À retenir
- Supprime la DLL, garde le dossier de données.
- Certains plugins reviennent tout seuls après une mise à jour.
6. Choisir ses plugins #
Trois questions avant d'installer quoi que ce soit.
Est-ce que le jeu ne le fait pas déjà ? C'est la question la plus rentable. Un plugin d'optimisation a été mesuré sur un serveur TeamKit : le jeu masquait déjà 195 véhicules sur 201 tout seul. Le plugin n'apportait rien et ajoutait un risque. Mesure avant d'installer.
Qui le maintient ? Un plugin abandonné casse à la prochaine mise à jour du jeu, et tu ne pourras rien y faire — tu n'as pas les sources.
Que fait-il à ma base ? Un plugin qui écrit dans life.db peut la modifier d'une façon que le jeu ne comprend plus. Sauvegarde avant, teste sur un serveur de test si tu en as un.
Le nombre compte aussi. Chaque plugin consomme de la mémoire et du CPU, et ton instance est plafonnée. Un serveur avec quarante plugins n'est pas quarante fois plus riche : il est quarante fois plus difficile à dépanner.
✅ À retenir
- Vérifie que le jeu ne fait pas déjà le travail. C'est souvent le cas.
- Chaque plugin est aussi une dette de maintenance.
7. Quand un plugin casse tout #
Symptôme classique : tu poses un plugin, le serveur ne démarre plus, la console crache une erreur incompréhensible.
La méthode qui marche à tous les coups :
- Arrête le serveur.
- Retire la dernière DLL posée.
- Redémarre.
- Si ça repart, c'est elle. Si ça ne repart pas, retire la précédente, et continue.
C'est pour cela qu'on installe un plugin à la fois : avec un seul suspect, l'enquête dure deux minutes.
Un cas où cette méthode ne marche pas : plusieurs plugins qui cassent le même jour, alors que tu n'as rien posé. Là, le coupable n'est aucun d'eux — c'est la bibliothèque qu'ils ont en commun, ou la mise à jour du jeu. Section 8.
Si le serveur ne démarre plus et que tu ne sais plus ce que tu as posé : vide entièrement Plugins/ (après l'avoir téléchargé), démarre, et repose les DLL une par une.
✅ À retenir
- Le coupable est presque toujours le dernier posé.
- En cas de doute total : vider
Plugins/, redémarrer, reposer un par un.
8. ModKit : la bibliothèque partagée dont dépendent beaucoup de plugins #
ModKit.dll n'est pas un plugin comme les autres. C'est une bibliothèque partagée de la communauté Nova-Life : elle offre aux auteurs de plugins des outils tout faits (menus, base de données, personnages, tenues), et beaucoup de plugins du marché sont compilés contre elle. Sans elle, ils ne démarrent pas.
Elle se range comme n'importe quelle DLL : ModKit.dll à la racine de Plugins/, son dossier Plugins/ModKit/ à côté pour ses données.
Il n'y a qu'un seul ModKit chargé pour tout le serveur. C'est le point à comprendre avant tout le reste : tes plugins ne choisissent pas leur version, ils prennent celle qui est là. Sur un serveur TeamKit de production, 19 plugins attendaient ModKit 2.3.1.0 et trois autres attendaient 1.0.0.0 — ces trois-là ne pouvaient pas fonctionner, et aucune manipulation de fichiers n'y changeait rien. Deux versions de ModKit ne cohabitent pas.
Pourquoi ModKit casse après une mise à jour du jeu #
ModKit ne fait pas partie des neuf fichiers réinstallés par la mise à jour (section 3). Personne ne le met à jour à ta place : le jeu avance, ModKit reste où il est. C'est exactement là qu'est le piège.
Quand le jeu change une de ses structures internes, ModKit continue de lire l'ancienne forme et tous les plugins qui passent par lui tombent en même temps. Dans la console, ça ressemble à ça :
MissingFieldException | Field not found:
Life.Network.BuyableCloth[] Life.Network.LifeServer.buyableCloths
ou à une MissingMethodException citant un type Life.…. Le nom affiché est celui du jeu, pas celui du plugin : c'est le signe qu'il faut chercher du côté de ModKit.
La règle de diagnostic : un plugin qui casse tout seul, c'est le plugin. Plusieurs plugins qui cassent le même jour, sans que tu aies rien posé, c'est ModKit — ou la mise à jour du jeu qui l'a laissé derrière.
C'est arrivé en août 2026 sur un serveur TeamKit. Nova-Life avait transformé buyableCloths de tableau en liste ; ModKit 2.3.2.2 lisait encore l'ancienne forme. Un plugin de création de tenues perdait toute son initialisation à chaque démarrage, du 24 au 29 août. Deux détails qui ont coûté du temps :
- L'erreur part avant la première ligne de la méthode. Le moteur du jeu (Mono) vérifie les références au moment où il compile la méthode, pas quand il l'exécute. Inutile donc de chercher un contournement dans les données du jeu : remplir la table à la main ne changeait rien, le code n'était jamais atteint.
- Le plugin accusé était innocent. Son message d'erreur portait son nom, mais le défaut était dans la bibliothèque commune.
Ce que tu peux faire #
- Avant chaque mise à jour du jeu, sauvegarde
Plugins/en entier (section 3). ModKit en fait partie, et c'est la seule copie de ta version qui marche. - Après la mise à jour, lis la console au démarrage. Si plusieurs plugins se plaignent d'un type
Life.…, tu tiens ton coupable. - Cherche d'abord une version à jour de ModKit chez son distributeur, et pose-la comme n'importe quelle DLL. C'est la voie normale, et la seule qui te rende autonome.
- Garde l'ancienne à côté, renommée
ModKit.dll.old: une DLL qui ne s'appelle pas.dlln'est pas chargée, et tu peux revenir en arrière en deux clics. - Si aucune version à jour n'existe, ouvre un ticket au staff TeamKit. ModKit est publié sous licence MIT : sa correction et sa redistribution sont autorisées, et TeamKit l'a déjà fait une fois — une seule méthode réécrite, version d'assembly inchangée, donc aucun plugin à recompiler. Donne les vingt premières lignes d'erreur de la console (chapitre 08, section 10) : c'est ce qui permet de dire si c'est le même cas ou un nouveau.
Un détail utile à joindre à ta demande : les assemblies du jeu qui servent de référence pour vérifier ModKit sont dans novalife/1665030/nova-life_Data/Managed, dans ton instance. Ce sont celles du serveur qui comptent, pas celles d'une installation Steam — les deux builds ne sont pas les mêmes.
✅ À retenir
- Un seul ModKit est chargé pour tout le serveur : deux versions ne cohabitent pas.
- La mise à jour du jeu ne met pas ModKit à jour — c'est pour ça qu'il casse.
- Plusieurs plugins qui tombent le même jour = ModKit, pas les plugins.
Checklist du chapitre #
❓ Si ça ne marche pas #
Mon plugin ne fait rien. La console ne l'annonce pas au démarrage ? Alors il n'est pas chargé. Vérifie qu'il est bien à la racine de Plugins/, et que tu as redémarré.
Le serveur ne démarre plus depuis mon installation. Retire la dernière DLL posée et redémarre.
Un plugin que j'avais supprimé est revenu. C'est un des neuf réinstallés par la mise à jour. Section 3.
Mon plugin est repassé dans une vieille version. Même cause. Repose ta version après la mise à jour, avant de redémarrer.
Ma modification de config.json a disparu. Soit tu as modifié pendant que le serveur tournait, soit ce plugin se règle depuis AMP.
Plusieurs plugins sont tombés en même temps après une mise à jour du jeu. Regarde si l'erreur cite un type Life.… : c'est ModKit qui a été laissé derrière. Section 8.
J'ai perdu l'accès à mon panel web après une mise à jour. TKWebPanel a été réinstallé et se dispute le port avec ton panel. Retire TKWebPanel.dll de Plugins/, redémarre.