📚 Tutoriel - Init.c Builder

Guide complet d'utilisation de l'application

1. Qu'est-ce que init.c et pourquoi cette application ?

Le fichier init.c est le cƓur de votre serveur DayZ. C'est lui qui contrîle :

  • L'initialisation de l'Ă©conomie (systĂšme de loot, persistence, etc.)
  • La date et l'heure du monde (saison, mĂ©tĂ©o)
  • La crĂ©ation des personnages joueurs
  • L'Ă©quipement de dĂ©part (loadout au spawn)
  • Les modules custom : ATM Expansion, tĂ©lĂ©port quĂȘtes, bridge Discord, etc.

Sans cette application, il faut écrire ce fichier à la main en EnforceScript, le langage de DayZ. C'est complexe, source d'erreurs, et chaque petite modification peut casser le serveur.

Avec Init.c Builder, vous configurez tout via une interface graphique, le fichier est gĂ©nĂ©rĂ© automatiquement, propre, prĂȘt Ă  dĂ©poser sur votre serveur.

2. Avant de commencer : sauvegardes obligatoires

RÈGLE D'OR : Ne remplacez JAMAIS votre init.c sans avoir fait une sauvegarde de l'original.

1Récupérez votre init.c actuel sur votre serveur, via FTP/SFTP. Il se trouve dans :

mpmissions/dayzOffline.chernarusplus/init.c ou mpmissions/dayzOffline.[nom_de_votre_map]/init.c

2Copiez-le dans un dossier de sauvegarde sur votre PC. Renommez par exemple en init_backup_20251121.c pour retrouver la date.

3Si possible, sauvegardez tout le dossier mission avant toute modification (gestion centralisée Expansion, fichiers types.xml liés, etc.).

3. Onglet 🏁 DĂ©marrage : par oĂč commencer ?

3 options s'offrent Ă  vous selon votre situation :

Option A : Templates prédéfinis (recommandé pour débuter)

5 modĂšles prĂȘts Ă  l'emploi :

TemplatePour qui ?
Vanilla+Serveur classique DayZ avec date fixe et santé aléatoire
RP ClassesServeur RP : 9 classes aléatoires (flic, médic, biker, pompier, etc.)
MilitaryServeur PvP militaire : 4 classes avec armes/attachements/chargeurs
Expansion NamalskServeur Expansion avec tĂ©lĂ©port quĂȘtes + ATM automatique
Hardcore PrisonTenue prisonnier + bridge Discord + log connexions

Sélectionnez un template dans le menu, cliquez "Charger le template". Tous les onglets sont pré-remplis. Vous pouvez ensuite modifier ce qui ne vous convient pas.

Option B : Uploader votre init.c existant

Si vous avez déjà un init.c fonctionnel sur votre serveur et que vous voulez juste y apporter des modifications via une interface, c'est l'option idéale. L'application va analyser votre fichier et pré-remplir tous les onglets.

Voir section 4 pour le détail.

Option C : Partir de zéro

Construction manuelle complÚte. Réservé aux utilisateurs qui savent exactement ce qu'ils veulent et qui veulent un contrÎle total.

4. Importer votre init.c existant (analyse automatique)

C'est la fonctionnalité la plus puissante de l'application : elle vous permet de conserver votre travail existant tout en passant à une édition graphique.

1Dans l'onglet 🏁 DĂ©marrage, dans la carte "Uploader mon init.c", cliquez sur "Choisir un fichier".

2Sélectionnez votre fichier init.c sur votre PC.

3Cliquez sur "Charger & Analyser".

L'application va alors détecter automatiquement :

  • ✅ Le reset de date (mois et jour configurĂ©s)
  • ✅ L'initialisation mĂ©tĂ©o (overcast, rain, fog)
  • ✅ Les cases d'Ă©quipement alĂ©atoires (nombre + items par case)
  • ✅ Les boosts de stats (water, energy, blood, health)
  • ✅ Le module ATM Expansion (montant, intervalle)
  • ✅ Les tĂ©lĂ©ports de quĂȘtes Expansion (IDs et coordonnĂ©es)
  • ✅ Le bridge Discord (lecture bot_message.txt)
  • ✅ Le log des connexions

Un message vous indiquera le nombre de sections détectées. Vous pouvez ensuite naviguer dans tous les onglets pour modifier ce qui existe ou ajouter du neuf.

Limitation : Si votre init.c contient du code custom trĂšs spĂ©cifique (fonctions perso, intĂ©grations exotiques), elles ne seront pas forcĂ©ment dĂ©tectĂ©es. Pensez Ă  les recoller dans l'onglet ⚙ Code Custom manuellement.

5. Onglet 📅 Date & MĂ©tĂ©o

Reset de date

Force la date du serveur à une valeur fixe au démarrage. Utile pour :

  • Avoir toujours la mĂȘme saison (automne pour une ambiance sombre, Ă©tĂ© pour la chaleur)
  • Éviter les bugs de croissance des plantes liĂ©s Ă  la date
  • Maintenir la cohĂ©rence d'un lore (ex : un serveur figĂ© au 20 septembre 2024)

Décochez la case "Activer le reset de date" pour utiliser la date réelle du systÚme.

Initialisation météo

Définit les conditions météo au démarrage du serveur. Les valeurs vont de 0 (rien) à 1 (au maximum).

  • Overcast (couverture nuageuse) : 0 = ciel bleu, 1 = ciel totalement couvert
  • Rain (pluie) : 0 = sec, 1 = orage
  • Fog (brouillard) : 0 = clair, 1 = brouillard Ă©pais

Les valeurs min/max définissent une plage aléatoire à chaque démarrage. Si min=0.4 et max=0.6, le serveur choisira aléatoirement entre 0.4 et 0.6.

Si vous utilisez un mod météo (CF Weather, Expansion Weather), désactivez ce module pour éviter les conflits.

6. Onglet đŸ‘€ Équipement de spawn

Définit ce que les joueurs ont sur eux quand ils apparaissent sur le serveur (loadout de spawn).

Mode "Vanilla"

Reproduit le comportement par dĂ©faut de DayZ : bandage + chemlight alĂ©atoire + fruit alĂ©atoire (Apple/Pear/Plum), avec quickbar prĂ©-assignĂ©e et santĂ© randomisĂ©e sur les vĂȘtements.

Choisissez ce mode si vous voulez le spawn vanilla mais juste configurer la date ou des modules custom.

Mode "Équipement fixe"

Tous les joueurs spawnent avec exactement le mĂȘme Ă©quipement. IdĂ©al pour les serveurs hardcore ou les serveurs avec un thĂšme prĂ©cis (prison, militaire, mĂ©dical).

  1. Cliquez sur "Configurer les cases"
  2. Une seule case s'affiche
  3. Sélectionnez les items dans les listes déroulantes (maintenez Ctrl pour multi-sélection)
  4. Tous les items seront donnés à tous les joueurs au spawn

Mode "Multi-cases aléatoires"

Le serveur choisit une case au hasard parmi N possibilités. Chaque joueur peut spawner avec un équipement différent.

  1. Définissez le "Nombre de cases aléatoires" (entre 1 et 20)
  2. Cliquez sur "Configurer les cases"
  3. Pour chaque case, sélectionnez les items dans les catégories de la BDD
  4. Au spawn, le serveur tirera une case au hasard
Les items proposĂ©s viennent de votre base de donnĂ©es DayZ Aide (table par catĂ©gorie : vĂȘtements, armes, etc.). Les catĂ©gories non pertinentes (zombies, vĂ©hicules) sont filtrĂ©es automatiquement.

Options supplémentaires

  • SantĂ© alĂ©atoire (45-65%) : applique une usure rĂ©aliste aux vĂȘtements (Body, Legs, Feet) au lieu du 100% par dĂ©faut
  • Vider l'inventaire vanilla avant : appelle RemoveAllItems() pour effacer ce que DayZ aurait donnĂ© par dĂ©faut. Activez cette option sauf si vous voulez ajouter votre Ă©quipement EN PLUS du vanilla

7. Onglet 🎭 Classes RP / Militaires

SystÚme avancé de classes avec armes principales, secondaires, attachements et chargeurs. Différent du mode "Multi-cases aléatoires" car il gÚre intelligemment les armes en main, les magazines compatibles, et les kits médicaux.

1Activez "Activer le systĂšme de classes"

2Cliquez sur "Charger preset (4 classes militaires)" pour partir d'une base, ou "+ Ajouter une classe" pour commencer de zéro.

3Pour chaque classe, remplissez :

  • Nom : juste un commentaire (ex: "Sniper", "MĂ©dic")
  • VĂȘtements : liste sĂ©parĂ©e par virgules (ex: TShirt_Black, Jeans_Blue, MilitaryBoots_Black)
  • Arme principale : un seul classname (ex: M4A1)
  • Attachements arme principale : viseur, crosse, etc. en CSV
  • Chargeurs arme principale : type de magasin (ex: MAG_STANAG_30Rnd)
  • Arme secondaire : pistolet (optionnel)
  • Nombre de chargeurs : combien de chaque type donner
  • Kit mĂ©dical : format spĂ©cial NomDuKit|item1, item2, item3

Configuration commune (en bas de l'onglet)

  • Sac Ă  dos commun : type de sac donnĂ© Ă  toutes les classes (ex: SmershBag)
  • Items utilitaires : nourriture, soins de base (ex: BandageDressing, Apple, Canteen)
  • Armes de mĂȘlĂ©e alĂ©atoires : un couteau au hasard parmi cette liste
Important : Les classnames d'armes/attachements/chargeurs doivent exister dans les mods installés sur votre serveur. Sinon le joueur spawnera sans cet item. Vérifiez les classnames sur le Workshop Steam des mods.

8. Onglet đŸ’Ș Stats joueur

Donne un boost aux stats du joueur au spawn. Utile pour les serveurs PvP oĂč on ne veut pas que les joueurs commencent affamĂ©s/dĂ©shydratĂ©s.

StatValeur maxEffet
Water200000Hydratation (joueur jamais soif)
Energy200000Faim (joueur jamais affamé)
Blood5000Sang (régénération PV)
Health100Points de vie
Mettre 0 partout = stats vanilla par défaut. Mettre 200000 sur Water et Energy = joueur full hydraté/nourri au spawn (Hardcore Prison fait ça).

9. Onglet 🎼 Modules Expansion

Ces modules nécessitent les mods DayZ-Expansion installés sur le serveur. Sans eux, votre init.c provoquera des erreurs au démarrage.

TĂ©lĂ©port sur complĂ©tion de quĂȘte

Quand un joueur termine une quĂȘte Expansion (ID de quĂȘte dĂ©fini dans votre config Expansion-Quests), il est tĂ©lĂ©portĂ© automatiquement Ă  des coordonnĂ©es que vous dĂ©finissez.

Pour chaque téléport :

  • Nom : commentaire (ex: "Trader Klen")
  • ID de la quĂȘte : doit correspondre Ă  un fichier de quĂȘte Expansion (ex: 1001)
  • Positions : une par ligne, format X Y Z (ex: 7403.7 15.2188 2268.64). Si plusieurs positions, le joueur sera tĂ©lĂ©portĂ© Ă  une au hasard

Paiement automatique ATM

Verse automatiquement de l'argent sur le compte bancaire ATM des joueurs connectés, à intervalle régulier.

  • Montant : nombre d'unitĂ©s Ă  ajouter (ex: 500)
  • Intervalle : en minutes (ex: 30 = toutes les 30 min)
  • Message : notification affichĂ©e au joueur. %1 sera remplacĂ© par le montant
Si le compte du joueur est plein (au max défini dans les settings Expansion-Market), le systÚme calcule automatiquement le montant restant déposable.

10. Onglet 💬 Bridge Discord

Bridge Discord (messages bot → serveur)

Permet Ă  un bot Discord externe d'envoyer des messages dans le jeu sans utiliser de mod RCON.

Comment ça marche :

  1. Votre bot Discord écrit un message dans le fichier bot_message.txt dans le dossier profil du serveur
  2. Le serveur lit ce fichier toutes les X millisecondes (par défaut 2000ms = 2s)
  3. Si du contenu est trouvé, il est diffusé à tous les joueurs avec le préfixe défini (ex: [SERVEUR] Message...)
  4. Le fichier est supprimé aprÚs diffusion

Configuration :

  • PrĂ©fixe des messages : ce qui apparaĂźt devant chaque message (ex: [SERVEUR], [ADMIN], 📱)
  • Intervalle de check : frĂ©quence de lecture du fichier en millisecondes (2000 = Ă©quilibre performance/rĂ©activitĂ©)

Log des connexions

Écrit dans un fichier toutes les connexions/dĂ©connexions des joueurs. Format de chaque ligne :

CONNECT|2025-11-20 14:35|NomJoueur DISCONNECT|2025-11-20 14:42|NomJoueur

Ce log peut ensuite ĂȘtre lu par votre bot Discord pour annoncer les connexions dans un salon dĂ©diĂ©.

Le fichier de log s'accumule indéfiniment. Pensez à le nettoyer réguliÚrement via votre bot ou un script externe pour éviter qu'il grossisse trop.

11. Onglet ⚙ Code Custom (avancĂ©)

Cet onglet est rĂ©servĂ© aux utilisateurs qui connaissent EnforceScript. Une erreur ici peut empĂȘcher le serveur de dĂ©marrer.

3 zones d'injection de code personnalisé :

Code Ă  injecter dans main()

Ce code est exécuté une fois au démarrage du serveur, aprÚs l'init économie et le reset de date. Exemples d'usage :

// Afficher un message dans les logs serveur Print("Serveur MYSTIC HARDCORE démarré"); // Forcer l'heure de démarrage GetGame().GetWorld().SetDate(2024, 9, 20, 18, 0);

Code à injecter dans CustomMission (méthodes/variables)

Ce code ajoute des méthodes ou variables à la classe CustomMission. Exemples :

// Variable custom int m_PlayerCount = 0; // Méthode utilitaire void MaFonction() { Print("Ma fonction custom"); }

Code Ă  injecter dans StartingEquipSetup

Ce code est exécuté à chaque spawn d'un joueur, à la fin de la fonction d'équipement. Exemples :

// Donner un item spécial à tous les joueurs player.GetInventory().CreateInInventory("MonItemCustom"); // Téléport au spawn player.SetPosition("7500 250 7500");
Si vous avez fait un init.c avancé hors de cette appli et que l'analyse automatique n'a pas tout reconnu, recollez vos parties custom ici.

12. Onglet 📄 Aperçu & Export

Une fois votre configuration prĂȘte, allez dans cet onglet pour visualiser et tĂ©lĂ©charger votre fichier.

Boutons disponibles

  • 🔄 RĂ©gĂ©nĂ©rer l'aperçu : recalcule le fichier en fonction de votre config actuelle. À cliquer aprĂšs chaque modification dans les autres onglets.
  • âŹ‡ïž TĂ©lĂ©charger init.c : tĂ©lĂ©charge le fichier brut, prĂȘt Ă  dĂ©poser sur votre serveur
  • 📩 TĂ©lĂ©charger ZIP : tĂ©lĂ©charge un ZIP contenant init.c + un README.txt rĂ©capitulant les modules activĂ©s et les dĂ©pendances mods
  • 📋 Copier dans le presse-papier : copie le contenu pour le coller ailleurs (ex: dans votre Ă©diteur de texte)

Que faire de l'aperçu ?

L'aperçu affiche le code EnforceScript généré. Lisez-le rapidement avant de télécharger pour vérifier que tout ce que vous attendez est là. Si vous voyez des trucs bizarres ou des sections manquantes, retournez modifier les onglets correspondants.

Bonnes pratiques : Cliquez sur "Sauvegarder projet" dans le header pour conserver votre config en localStorage. Vous pourrez la recharger plus tard sans tout refaire.

13. Installation du fichier sur votre serveur

RAPPEL : Vous avez bien sauvegardé votre init.c original ? Si non, retournez à la section 2 avant d'aller plus loin.

Étape 1 : Identifier le bon emplacement

Le fichier init.c se place dans le dossier de mission de votre serveur :

[racine_serveur]/mpmissions/dayzOffline.chernarusplus/init.c ou [racine_serveur]/mpmissions/dayzOffline.namalsk/init.c ou pour Sakhal : [racine_serveur]/mpmissions/dayzOffline.sakhal/init.c

Étape 2 : Upload via FTP/SFTP

  1. Connectez-vous Ă  votre serveur avec FileZilla, WinSCP ou autre client FTP
  2. Naviguez jusqu'au dossier de mission
  3. Renommez l'ancien init.c en init_old.c (sécurité supplémentaire)
  4. Uploadez le nouveau init.c téléchargé depuis l'application

Étape 3 : VĂ©rifier les dĂ©pendances mods

Si vous avez activé des modules dans l'application, vérifiez que les mods correspondants sont installés et chargés :

Module activéMod requis
TĂ©lĂ©port quĂȘtes@DayZ-Expansion-Core, @DayZ-Expansion-Quests
ATM automatique@DayZ-Expansion-Core, @DayZ-Expansion-Market
SystÚme de classes (armes moddées)Selon les armes utilisées

Étape 4 : RedĂ©marrer le serveur

  1. ArrĂȘtez le serveur DayZ
  2. Démarrez-le
  3. Surveillez les logs (server_console.log et script.log) pendant les 30 premiĂšres secondes

Étape 5 : Tester en jeu

  • Connectez-vous au serveur
  • VĂ©rifiez votre Ă©quipement de spawn
  • Si vous avez configurĂ© ATM Expansion, attendez l'intervalle pour vĂ©rifier le crĂ©dit
  • Si vous avez le bridge Discord, faites un test depuis le bot
Astuce : Pour ne pas perdre du temps à se reconnecter, créez un compte test sur votre serveur et utilisez-le pour vérifier les spawns successifs (kill + respawn).

14. FAQ et résolution de problÚmes

❓ Mon serveur ne dĂ©marre plus aprĂšs avoir mis le nouveau init.c

Causes possibles :

  • Mod manquant : vous avez activĂ© un module Expansion mais le mod n'est pas chargĂ©. VĂ©rifiez votre startup.bat / launcher
  • Classname inexistant : un item dans l'Ă©quipement n'existe pas dans les mods chargĂ©s. Regardez script.log pour la ligne qui pose problĂšme
  • Erreur de syntaxe : si vous avez utilisĂ© l'onglet Code Custom, une virgule ou un point-virgule oubliĂ© peut tout casser

Solution rapide : restaurez votre init.c de sauvegarde, le serveur redémarrera. Puis revenez dans l'application pour corriger.

❓ Les joueurs spawnent nus / sans Ă©quipement

  • Avez-vous bien activĂ© l'onglet đŸ‘€ Équipement ?
  • Êtes-vous en mode "Multi-cases alĂ©atoires" mais vos cases sont vides ?
  • Les classnames sont-ils corrects (case sensitive) ?

❓ Le bridge Discord ne fonctionne pas

  • Le fichier bot_message.txt est-il bien créé dans le dossier profil du serveur ? (pas dans le dossier de mission)
  • Le bot a-t-il les permissions d'Ă©criture sur ce dossier ?
  • L'intervalle de check est-il raisonnable (entre 1000 et 5000 ms) ?

❓ J'ai perdu ma configuration en fermant le navigateur

Pensez Ă  utiliser le bouton "đŸ’Ÿ Sauvegarder projet" en haut. Vous pouvez rappeler vos configs avec "📂 Charger projet".

❓ Comment ajouter un mod custom à ma classe ?

Dans l'onglet 🎭 Classes, tapez simplement le classname du mod dans les champs (ex: Mystic_CustomGun). L'application ne vĂ©rifie pas l'existence : c'est Ă  vous de vous assurer que le mod est chargĂ©.

❓ Mon serveur est sur Nitrado / Gportal, comment je fais ?

Le principe est le mĂȘme : uploadez le init.c via l'interface du gestionnaire (Web FTP ou explorateur de fichiers du panel). Le chemin est identique : mpmissions/[votre_mission]/init.c.

❓ Besoin d'aide supplĂ©mentaire ?

↑