Le Guide du Moddeur Starboundien LOGO Bonjour, bonsoir et bienvenue dans ce premier volume du Guide Du Moddeur Starboundien! - Mais où sont passés Tete30000 et ses points d'exclamations ? Et bien, on va dire que je le remplace. Je ne sais pas pour combien de temps, mais pour le moment, c'est moi qui conduis (avec l'aide indispensable et extrêmement utile de l'honorable Lyres). Si vous êtes là, c'est pour une raison : vous voulez apprendre à modder ce magnifique jeu qu'est Starbound. Ou alors vous êtes paumés, mais dans ce cas je ne peux rien faire pour vous. Et bien sachez que modder est loin d'être difficile. Au contraire, c'est très simple une fois que l'on a pris l'habitude. Et donc, on commence aujourd'hui avec les bases : la création d'un item (et pas d'un objet, ce n'est pas la même chose.).

1.1 Les Bases

Starbound marche en se basant sur des assets. Un asset est un contenu du jeu. Par exemple, un item, un mob, ou encore une tech. Il y a 3 classes d'assets :
  • Les basiques : l'asset de base aura une extension de fichier différente selon ce qu'il est : une recette de fabrication sera en .recipe, un item en .item, une tech en .tech, etc.
  • Les Visuels : les .png, et, de temps à autre, des .frames qui accompagnent les .png (ils ont le même nom).
  • Les Audios : en .abc pour les instruments, ou encore en .ogg pour les sons directement joués en jeu (musique de biome, bruitage...).
Les basiques et visuels nous serviront beaucoup. On garde les sons pour plus tard. Donc, avant de faire notre mod, nous allons apprendre à connaître nos ennemis jurés: Les Bugs de la mort qui tuent des poneys d'Alaska. C'est moche, hein? (Note de Lyres : Oui.) On va juste dire Bugs, question de lisibilité. Il y en existe des tas, mais trois sortent du lot:
  • Les items bien trop parfaits

    Ils ont l'apparence d'un voxel vert. Ça semble enfantin, mais plus vous en aurez, plus vous les détesterez. C'est en fait un item dont le code contient une ou plusieurs erreurs. Il faudra malheureusement le ré-obtenir après avoir résolu le bug, vous donnant la joie de supprimer ce petit démon verdâtre.
  • Les Chargements infinis

    Les pires. Ils laissent le chargement initial durer éternellement, après que le logo OrangePwaçon se soit bien moqué de nous (J'vous assure c'est le nom du Studio). Ils sont coriaces car viennent d'une erreur toute conne pour la plupart : un oubli de virgule. Mais il ne nous dit pas où, nous laissant la joie de relire tout ce qu'on a fait. J'adore. Lancer le serveur local pour voir la console est un des meilleurs moyens pour savoir ce qui le provoque, quand il ne donne pas la localisation d'un fichier aléatoire.
  • Les crash

    Bête et méchant. Leur origine est très variable et n'est pas la même pour tous les cas de crash. Ne cherchons donc pas à expliquer leur origine ici.
N'oublions pas ! Pour modder il vous faut des logiciels :
  • Un bon décompresseur : Winrar étant payant (avec une période gratuite illimité) et 7-zip étant gratuit, je vous les conseille. Mais du moment que ça peut faire des .zip, ça convient.
  • Un éditeur de texte : Notepad++. Un Must Have. Je ne saurais conseiller mieux.
  • Starbound, version steam : Dit comme ça peut paraître idiot, mais quelqu'un m'a déjà demandé comment modder alors qu'il n'avait pas le jeu.
Vous avez ces trois là ? Et bien c'est parti, on va décompresser les Assets ! - On va pas modder ? Ça commence à être un peu long là ! Patience, nous allons toucher à une partie très importante, qui requiert toute votre attention. Les Assets sont compressés dans un .pak, un fichier très connu dans le milieu du modding. Contrairement à ce que vous pourriez croire, chers amis, utiliser Winrar/7Zip/Tarte ne marche pas ! Un .pak a un algorithme d'encryptage qui diffère selon les jeux. Il a même été modifié dans les version beta de la beta. Donc ici, ton décompresseur est aussi impuissant que moi contre une chouette (Je ne vise personne.). Ainsi, la suite dépend de votre système d'exploitation :

Windows :

Ouvrez l'invite de commande (cmd) et entrez ceci : "C:\Program Files (x86)\Steam\SteamApps\common\Starbound\win32\asset_unpacker.exe" "C:\Program Files (x86)\Steam\SteamApps\common\Starbound\assets\packed.pak" "C:\Program Files (x86)\Steam\SteamApps\common\Starbound\assets\unpacked" Vous trouverez tout vos assets dans "C:\Program Files (x86)\Steam\SteamApps\common\Starbound\assets\unpacked" et vous pourrez les modifier sans avoir de répercutions dans le jeu.

Mac :

Ouvrez le Terminal et entrez ceci : cd ~/Library/Application\ Support/Steam/SteamApps/common/Starbound/ Starbound.app/Contents/MacOS/asset_unpacker assets/packed.pak assets/unpacked Vous trouverez vos assets dans ~/Library/Application\ Support/Steam/SteamApps/common/Starbound/assets/unpacked, les modifications n'auront pas de répercutions dans le jeu.

Linux :

Franch... Hum, pardon. En assumant que vous êtes dans le bon répertoire depuis votre terminal (avec la commande cd, comme sous MacOS) (/home/NOM-D'UTILISATEUR/.steam/steam/SteamApps/common/Starbound/linux32 ou linux64). Entrez : ./asset_unpacker ../assets/packed.pak ../assets/unpacked Les assets finiront dans starbound/assets/unpacked, et le modifier n'affectera pas votre jeu. - C'est bon, on va enfin faire une tech qui fait des piou piou comme dans Star Wars et qui lance des paternes de projectile comme les meilleurs Bullet Hell ? Pas si vite les amis ! Nous allons commencer par des choses plus simples. Et avant de faire quoi que ce soit, nous allons faire comprendre au jeu que notre mod existe. Déjà, il vous faut un nom. Appelez-le donc "GuideDuModdeurStarboundienParVotrePseudo", le "VotrePseudo" est à remplacer par votre pseudo, bien évidemment. Créez dans le dossier "mod/" un dossier nommé "GuideDuModdeurStarboundienParVotrePseudo". Ensuite, Ouvrez NotePad++ et créez un nouveau fichier : GuideDuModdeurStarboundienParVotrePseudo.modinfo . et remplissez-le avec le code suivant :
{
"name" : "",
"version" : "",
"path" : "."
}

Explications :

  • Name : C'est le nom du mod. Il porte le même nom que le dossier et que le fichier. Dans notre cas, c'est GuideDuModdeurStarboundienParVotrePseudo.
  • Version : C'est la version de starbound. Au moment ou j'écris , c'est la "Beta v. Enraged Koala". Une faute et le jeu ne marche plus. Donc faites attention.
  • Path : Ne le modifiez pas et laissez-le comme il est avec son point entre ses guillemets, il est grincheux. Nous verrons comment l'aborder dans le prochain volume.
- On commence ? OUI!

1.2 Item de base

Je vous conseille de faire un dossier par nouvel ajout, que ce soit items, objets, ou autres. - Tu as parlé d'une différence entre objet et item. Mais c'est pas logique du tout ! En fait, un item est un matériau qui peut être utilisé pour fabriquer d'autres matériaux, objets, ou qui peut être consommé, utilisé. Un objet est un élément qui peut se placer dans le décor. Ne pas confondre un objet avec un Tile. Les Tiles sont les trucs que les gens appellent vulgairement "bloc", "cube" ou "carré". Un item est sûrement le plus simple à faire. C'est donc ce que nous allons faire. Nous allons faire un noyau de flux temporel qui remplit le réservoir du vaisseau de 1000 points de fuel et qui est obtenu en faisant cuir 42 charbons. C'est pas très équilibré mais on est là pour apprendre. Pour cela, créez un nouveau dossier dans votre dossier GuideDuModdeurStarboundienVotrePseudo que vous appellerez /items/ et créez un TemporalCore.item grâce à notepad++. Voici la structure d'un item basique : { "itemName" : "", "rarity" : "", "inventoryIcon" : "", "description" : "", "shortdescription" : "" }

Explications :

  • ItemName : C'est le nom de code de l'item. Il est utile pour les recettes et le player.config , mais nous y reviendrons plus tard. Ici, je conseille "temporalCore".
  • Rarity : C'est la rareté de l'item. C'est-à-dire la couleur du bandeau. "Common" pour blanc, "Uncommon" pour vert, "Rare" pour bleu et "Legendary" pour violet. À vous de choisir.
  • InventoryIcon : C'est la texture. Le nom doit contenir l’extension en .png. Nous allons utiliser cette texture nommée temporalCore.png dans ce cas.temporalCore
  • Description : C'est la description telle que vue en jeu. N'oubliez pas le point.
  • shortDescription : C'est le nom de l'item en jeu. N'oubliez pas les Majuscules.
Pour l'instant, vous avez juste un item, il ne sert pas de carburant. Pour le rendre effectif, il va falloir rajouter une virgule après la dernière variable, à la fin de "shortdescription" : "", puis rajouter cette ligne après : "fuelAmount" : 1000 Avec notre item, le carburant sera augmenté de 1000. Le code avec lequel on se trouve est donc : { "itemName" : "", "rarity" : "", "inventoryIcon" : "", "description" : "", "shortdescription" : "", "fuelAmount" : 1000 } Sauvegardez ce fichier. Votre item est fini. Mais ce volume ne s'arrête pas là ! - Je vois pas mon item dans le jeu, c'est normal? Il te manque encore deux choses : la recette de fabrication de l'item, et le tier sur lequel on peut obtenir l'item. Donc, pour la recette, ouvrez notepad++ et créez un fichier temporalCore.recipe. Ça doit ressembler à ça: { "input" : [ { "item" : "coalore", "count" : 42 } ], "output" : { "item" : "temporalCore", "count" : 1 }, "groups" : [ "stonefurnace", "all" ] }

Explications :

  • Input, c'est les items qu'il faut pour obtenir notre item.
  • Output c'est l'item désiré. "item" et "count" ont la même utilité que pour Input.
  • "Groups", c'est un peu plus compliqué, car très mal fait à la base : la première variable représente la table de craft, ici "stonefurnace". Les autres représentent les filtres, les boutons qui servent a classer les items dans les tables de craft. "all" est obligatoire, sinon votre item ne sera pas vu si la personne n'utilise pas de filtres. Vu qu'ici on a "stonefurnace", le four en pierre, il n'y a pas de filtres, donc ne pas mettre "all" ou mettre un autre filtre rendra votre recette nulle, c'est-à-dire qu'elle ne marchera pas. Ça vaut pour toutes les tables de craft avec l'interface du four, comme la raffinerie par exemple. Pour les tables de craft avec filtres, je vous expliquerai dans le prochain Volume.
-Je le vois toujours pas en jeu ! Tu n'es qu'un charlatan ! Vous avez déjà oublié ? Il manque encore un élément. Le player.config. Nouveau fichier sur notepad++, player.config. Nous allons utiliser la fonction Merge, qui permet d'ajouter des éléments à un fichier existant sans le modifier. Très utile pour la compatibilité entre les mods. Voilà le code: { "__merge" : [], "defaultBlueprints" : { "__merge" : [], "tier1" : [ { "item" : temporalCore" } ] } } Nous allons importer "defaultBlueprints" et importer son "tier1" . Cela veut dire que nous allons rajouter notre item au tier1. Dès qu'un personnage est créé, il obtient toutes les recettes du tier 1, donc la nôtre. Vous êtes ainsi obligé de créer un nouveau personnage pour accéder à cette nouvelle recette. Lancez le jeu, ça marche. Et c'est tout. C'est déjà bien, non? N'oubliez pas, si vous voulez plus de renseignements, avez besoin d'aide ou avez des erreurs, c'est ICI que ça se passe! - Et on fera un mecha surpuissant qui ressemble à un gundam? NON!