Je suis un ancien développeur de Starbound.
Pas sans un piratage de sauvegarde.
La liste des objets scannés est enregistrée dans le fichier du lecteur.
Tout d'abord, un petit rappel sur la structure des fichiers des lecteurs. Il s'agit de données binaires sérialisées personnalisées qui, une fois développées, deviennent un fichier JSON. La structure actuelle du fichier n'est pas très fraîche dans ma mémoire, et elle peut avoir changé depuis la dernière fois que j'ai eu accès au jeu. Il est possible qu'il existe déjà des utilitaires d'édition de sauvegardes pour Starbound, je vous suggère de vérifier s'ils existent.
Les données à modifier se trouvent sous l'objet "log" dans une liste de chaînes nommée "scannedObjects".
Les entrées de cette liste sont des noms d'objets. Vous pouvez les trouver en décompressant le fichier assets.pak et en parcourant les fichiers .object qu'il contient. La chaîne "objectName" est la chaîne que vous souhaitez utiliser. Par exemple, voici apexaquarium2.object :
{
"objectName" : "apexaquarium2",
"colonyTags" : ["apex","apexvillage","pretty"],
"rarity" : "Common",
"category" : "Decorative",
"price" : 60,
"description" : "An empty aquarium. How lonely.",
"shortdescription" : "Empty Wooden Aquarium",
"race" : "apex",
"apexDescription" : "An Apex may only replace his fish once every 3 years.",
"avianDescription" : "This fish has flown the nest.",
"floranDescription" : "Ssssomeone got here firsst.",
"glitchDescription" : "Neutral. An empty tank.",
"humanDescription" : "I wonder what happened to the fish...",
"hylotlDescription" : "Memories of home wash over me.",
"novakidDescription" : "It's for keepin fish. But there ain't no fish in it.",
"inventoryIcon" : "apexaquarium2icon.png",
"orientations" : [
{
"dualImage" : "apexaquarium2.png:<color>.<frame>",
"imagePosition" : [-16, 0],
"frames" : 8,
"animationCycle" : 1.0,
"spaceScan" : 0.1,
"anchors" : [ "bottom" ],
"collision" : "platform"
}
],
"soundEffect" : "/sfx/objects/aquarium1.ogg"
}
Par convention, nous avons essayé de faire en sorte que le nom du fichier soit le même que le nom de l'objet, mais cette convention n'est pas respectée par le moteur du jeu.
Vous pouvez également autoriser l'administration à imprimer des objets et la désactiver une fois que vous avez terminé. Si vous y tenez vraiment, vous pouvez acheter un objet avec l'administration, le scanner, le jeter, puis l'acheter à nouveau en toute légalité.
Bien qu'ennuyeuses, ces deux options semblent un peu plus faciles que d'essayer de pirater le fichier de votre lecteur.
Si vous voulez vraiment vous salir les bras, vous pouvez peut-être effectuer cette action via le moteur de script lua en utilisant un mod personnalisé. Le fichier .player est ce que l'on appelle un versionedJson en interne. Il existe une commande lua appelée loadVersionedJson
et un autre a appelé makeCurrentVersionedJson
. Si tout va bien, votre tâche est aussi simple que de créer un mod qui appelle une fonction lua qui charge une copie du fichier du joueur de votre personnage, le modifie en itérant sur tous les objets et en les ajoutant à la clé log.scannedObjects, puis le stocke à nouveau dans un autre fichier. Ensuite, vous pouvez déplacer ce fichier dans votre fichier de joueur normal, et Bob est votre oncle.
Il se peut que vous deviez jouer avec différents contextes lua pour en trouver un où ces deux commandes sont disponibles.