
我用于制作《星界边境》模组的各类程序和网页。 清单: 常用软件 7-Zip:用于打开.zip和.7z格式的压缩文件; PaintNET:用于像素画创作,虽然Windows 11的画图软件终于在数十年后加入了图层功能,但这是我个人使用的软件(而且我不打算升级到Win11); Pixelorama:同样专门用于像素画创作,在Itch平台免费,Steam平台付费。我最近试用了这款编辑器,真心推荐你使用它。其外观和操作体验更接近Photoshop(但不会像Chrome那样占用大量内存),而且整体使用感受比Paint.NET好很多(默认将取色器工具和铅笔工具绑定到不同的鼠标按钮?我之前居然没这功能也用了这么久,真是难以想象); HyperHamster的Unpack-Assets脚本:一个我多年来一直想要且搜寻了数小时的批量模组解包脚本。向下滚动到“Options & Switches -A & /A”部分,查看如何将其用作批量解包工具。 JSON和.Patch文件编辑:Notepad++org/ - 用于JSON编辑,非常实用,具有许多出色功能,例如单词高亮;支持独立选择、复制粘贴以及使用Ctrl键同时编辑多行;批量文本替换、代码颜色编码等。 JsonToolsNppPlugin:一款用于JSON编辑的Notepad++插件,可对JSON进行“格式化显示”、压缩,还能修复各种问题(在进行格式化显示时甚至会为你纠正错误或缺失的逗号!)。
- The buttons that make the magic happen! Quick Color Picker Plugin: https://github.com/vinsworldcom/nppQCP/releases - found this one recently, after installing it will open up a pallette window whenever you double-click any eligible hex colour value inside your text file, which is quite convinient when dealing with something like a .species file. Has automatic highlighting as well but unfortunately only for certain programming languages (i.e. not JSON) and with a specific syntax (i.e. "123456" won't work, has to be "#123456", which afaik Starbound itself won't recognise, double-click still works though). Maybe someone smarter than me can fix all of that, but I wouldn't be holding my breath; Kawa's Starbound JSON Lab: https://helmet.kafuka.org/sbmods/json/ - has a lot of info in regards to Starbound's JSON files, also Tools like a JSON Linter, Validator, but most importantly; Kawa's Starbound Patcher: https://helmet.kafuka.org/sbmods/json/patch.html - which allows you to get a modified JSON file out of an original + a patch for it and then pressing "Patch", or generate a patch automatically using the original file as an input, and a modified file as the expected output and then pressing "Diff"; RFC 6902 Patch Generator: https://chbrown.github.io/rfc6902/ - linked on the Lab page as well, it can generate a patch automatically using the original file as an input, and a modified file as the expected output, technically redundant due to the previous point, but some might prefer how it writes patches differently compared to Kawa's (you can copy the entire result easily by first selecting/highlighting the top square bracket, and then the bottom one while holding Shift). Dungeon Patch Cheat Sheet for Every Planet on the Workshop (with .biome files): https://steamcommunity.com/sharedfiles/filedetails/?id=3468061577 _Metadata File Copy&Paste Taken from the Starbound Wiki[starbounder.org]and added in 2 versions for ease of access. First one is for common use case - a basic mod what works on it's own and doesn't need any dependencies or priority changes. And the second one is with all options listed, but probably shouldn't be used just like that, unless you really know what you're doing with the load order. //Basic version, "Link" and "Steam Content ID" fields are filled out by Steam automatically. //Note: While you can write-in the tags manually, you can also add them (and see all of the available options) through the Mod Uploader Tool! { "name" : "PlaceHolderSystemName", "friendlyName" : "Place Holder Public-Facing Name", "description" : "Placeholder", "author" : "John P.LaceHolder", "version" : "1.0", "link" : "", "steamContentId" : "", "tags" : "" } //All Parameters Version. //Note: "Requires" parameter will crash the game with no survivors if it's demands are not fully met, and will not accept if one of the mods (required or the one requiring) is installed locally, while the other is through the Steam Workshop. { "name" : "PlaceHolderSystemName", "friendlyName" : "Place Holder Public-Facing Name", "description" : "PlaceHolder", "author" : "John P.LaceHolder", "version" : "1.0", "link" : "", "steamContentId" : "", "tags" : "", "includes" : ["ModSystemName"], "requires" : ["ModSystemName1", "ModSystemName2"], "priority" : 0 } ProTip: Adding Your Dungeons to Lush/Garden Planets While technically considered off-limits due to story dungeons being there. This actually doesn't stop you from adding-in more dungeons, for example in cases where story content was disabled entirely, or the dungeon limit was simply removed by other mods. Just add another patch as shown below into your terrestrial_worlds.config.patch, separated by square brakets from the rest of the planetary spawnpools, and your dungeon will appear on Lush planets whenever the limit on them is no longer detected. [ [ { "op": "test", "path": "/planetTypes/garden/layers/surface/dungeonCountRange", "inverse" : true }, { "op" : "add", "path" : "/planetTypes/garden/layers/surface/dungeons/-", "value" : [1.0, "dungeon name here"] } ], [ { "The rest of the patches start here" } ] ] On the ("Test",) Parameter: Often overlooked, but it allows you to probe the target JSON for certain values or paths before applying changes to it, preventing possible crashes or errors in the log to occur needlessly. Goes without saying that if the test fails, remaining operations what are sharing the same square brackets with it will be aborted. Here's the 4 basic examples of how you can use it:[ // An example patch for universe_server.config; // Example 1: Check if the target Path exists, if yes, then remove it. [ { "op": "test", "path": "/findStarterWorldParameters/starterWorld/terrestrialSize" }, { "op": "remove", "path": "/findStarterWorldParameters/starterWorld/terrestrialSize" } ], // Example 2: Check if the target Value in a certain Path exists, if yes, then replace it with another value. // Sidenote: "Replace" works the same way as doing "Remove" and then "Add" would work, just combined into a single operation. [ { "op": "test", "path": "/findStarterWorldParameters/starterWorld/terrestrialBiome", "value": "garden" }, { "op": "replace", "path": "/findStarterWorldParameters/starterWorld/terrestrialBiome", "value": "barren" } ], // Example 3: Check if the target Path doesn't exist, if so, then add it in, can also be populated in one operation by adding a ("value":) parameter. // Note: While "requiredSystemWorlds" does exist already in the universe_server.config by default, for the sake of this example it is assumed that another patch has removed it. [ { "op": "test", "path": "/findStarterWorldParameters/requiredSystemWorlds", "inverse": true }, { "op": "add", "path": "/findStarterWorldParameters/requiredSystemWorlds", "value": [ {"terrestrialBiome": "forest"}, {"terrestrialBiome": "desert"}, {"terrestrialBiome": "snow"} ] } ], // Example 4: Check if the target Value exists in a certain position (always counting from zero) on the list of values, if yes, then replace it with another value. // Note: If the "path" has a /- mark at the end, it means that whatever the "value" parameter is adding will skip the numbering entirely and will simply be placed at the end of the (so far loaded) list. Should always be used when you're just adding stuff and not replacing anything. [ { "op": "test", "path": "/findStarterWorldParameters/requiredSystemWorlds/1", "value": "terrestrialBiome": "Desert" }, { "op": "replace", "path": "/findStarterWorldParameters/requiredSystemWorlds/1", "value": "terrestrialBiome": "Savannah" } ] ] Guides for Further Reading: (ChuckleFish Forums) Unofficial Modding Ebook 2.0 for SB v1.05[community.playstarbound.com] (Starbound Official Wiki) Modding:Portal[starbounder.org] Unpacking Mods: A Basic How-To Modding: JSON Patching Guide Dungeons: From Beginner to Less of a Beginner Spriting for Starbound Skittles' Guide to Making your Own Race Omeruin's Detailed Race Template
2026-02-17 16:01:41 发布在
星界边境
说点好听的...
收藏
0
0
