rl.starbound submitted a new mod: Origins of Species - Unique origin missions for each species Read more about this mod...
rl.starbound updated Origins of Species with a new update entry: Minor updates to Starbound mod: Origins of Species Read the rest of this update entry...
rl.starbound updated Origins of Species with a new update entry: Minor updates to Starbound mod: Origins of Species Read the rest of this update entry...
I like the two origin missions I've played so far, but I had a strange experience after playing the Apex prologue: the place where I ended up in orbit didn't have a mine. Everything else was normal -- size 4 lush world, minimal threat rating, all that stuff. But there was no artificial entrance to the underground, no camper hanging around just outside, no handy containers with miscellaneous supplies, no big beastie to kill to get all 20 core fragments in one go, none of that stuff. This is the first time this has ever happened to me, and none of the other mods I'm using do anything with the starter missions, so I hope this is something you can track down and fix in your mod. P.S. No problems at all with the Avian mission. Haven't tried any others yet.
Sorry to hear about that. My mod doesn't alter anything involving the selection of the starter planet. Starter planet selection and intro mission are unrelated, code-wise. Furthermore, in vanilla, every lush world (known internally as a garden world) should always generate with an ancient gateway (known internally as a gardengate dungeon) and a mine (known internally as a naturalcave dungeon), and my code doesn't alter lush world generation in any way. What other mods do you have? I'm betting that you have a mod that adds a new dungeon type to the universe, and that mod is mistakenly adding its dungeon type to all world types, including lush worlds. This is a big mistake, as doing so will (with some statistical probability) result in exactly what you've experienced. Read on if you want to learn more about the code involved: World types that can spawn into the universe are defined in Starbound in the celestial.config file. The actual definitions of the worlds are in terrestrial_worlds.config. If you look in the planetTypes section within that file, you'll find the garden definition: Code: "garden" : { "threatRange" : [1, 1], "layers" : { "surface" : { "primaryRegion" : ["garden"], "secondaryRegions" : ["forest"], "dungeonCountRange" : [2, 2], "dungeons" : [[1.0, "naturalcave"], [1.0, "gardengate"]] } } } "threatRange" : [1, 1] means all garden worlds will have a minimum threat level of 1 and a maximum threat level of 1, or in other words, a threat level of exactly 1. Surface layer with a primaryRegion biome of garden and a secondaryRegion biome of forest means the surface of all garden worlds will consist of garden and forest biomes. Now comes the part that's most important for your situation. "dungeonCountRange" : [2,2] means that every garden world will spawn with exactly 2 different dungeons. The next key, dungeons, defines exactly 2 dungeon types that may spawn on a garden world, which means that both of these dungeon types are guaranteed to appear on every garden world. Now, I bet you've got a mod that mistakenly adds one or more other dungeons to the dungeons key for garden worlds. Doing this would mean that, instead of a gardengate and a naturalcave being guaranteed to appear on every garden planet, each will only appear on any new garden planet with some probability. If you're so inclined, you can unpack each mod and have and look for any that change the terrestrial_worlds.config file, specifically to patch in some new dungeon type into garden worlds. You'll find that mod is the likely culprit.
I appreciate the info, thank you. And yes, I do have a couple of mods loaded up that add new dungeons. Oddly enough, though, none of them were present, either. The only thing on the surface of the planet was the ancient gateway (and the other dungeon mods aren't geared towards undergound adventures). Well, if it happens again, I guess I'll either have to burrow down to the vicinity of the core again, or maybe just spawn in some core fragments for myself. At least now I have an idea of what's probably going on, so thanks again.
Another thing you can try is to check your starbound.log file immediately after visiting a new lush world for the first time. You should see some log entries for placing a naturalcave dungeon. It's possible that something is causing this to fail, so you can check for error messages that might point to a culprit.
What bit of JSON has to be patched to add a custom intro to a race? I'm trying to figure out how to add a custom intro to my race mod. Thanks!
In my newer mods, I write "modder's guides" that explain how to do stuff like this. I write them not just for other modders, but also for me, so a few years down the line, I'd remember how I did these things. Unfortunately, this mod predates when I started doing that, so I'm just going to have to read the code and hopefully I'll remember everything important... First, I assume that you already have a custom intro dungeon created in Tiled, and a corresponding dungeon file (example here). This dungeon should be structured to require the player to pick up, at the very minimum, the matter manipulator and a weapon; otherwise the player will have trouble in the rest of the game. Your dungeon should incorporate a custom intro handler stagehand and corresponding Lua code to move the mission along as the player progresses. See my examples here. I also assume you've coded your questtemplate (examples here) and custom quest script (examples here). These files are custom to each specific dungeon/quest, so while you can use them for learning and inspiration, you probably can't simply copy/paste them. Any radio messages you'll need should also be defined. See examples here. Next, in /universe_server.config.patch, add: Code: [ { "op" : "add", "path" : "/introInstance/YOUR_SPECIESNAME", "value" : "YOUR_DUNGEONNAME" } ] Here, your dungeon name must be the same name as given in your dungeon file's metadata name. It must be unique among all installed mods, so best practice is to prefix your dungeon name with your initials and/or your mod name (which I did not do back when I created Origins of Species, because I didn't know about that best practice). Then in /dungeon_worlds.config.patch you'll need: Code: [ { "op" : "add", "path" : "/YOUR_DUNGEONNAME", "value" : { "primaryDungeon" : "YOUR_DUNGEONNAME", "threatLevel" : 1, "gravity" : 80, "worldSize" : [ 2000, 2000 ], "dungeonBaseHeight" : 1000, "dungeonSurfaceHeight" : 860, "ambientLightLevel" : [ 32, 32, 32 ], "biome" : "speciesorigins_jungle", "environmentStatusEffects" : [ "dontstarve" ], "weatherPool" : [ [ 1.0, "clear" ] ] } } ] Again, substitute your dungeon name for YOUR_DUNGEONNAME in all of the places above. Note, the above values are examples, and you will probably need to change them (escpecially worldSize (which should be >= your Tiled map size in blocks), ambientLightLevel, and biome) for your specific mission. Then in /instance_worlds.config.patch you'll need: Code: [ { "op" : "add", "path" : "/YOUR_DUNGEONNAME", "value" : { "type" : "FloatingDungeon", "dungeonWorld" : "YOUR_DUNGEONNAME", "spawningEnabled" : false, "beamUpRule" : "Nowhere", "disableDeathDrops" : true, "skyParameters" : { "dayLength" : 100000, "spaceLevel" : 3000, "surfaceLevel" : 860, "ambientLightLevel" : [ 24, 28, 24 ], "satellites" : [ { "pos" : [ 0.310561, 0.35497 ], "layers" : [ { "scale" : 0.055, "image" : "/celestial/system/terrestrial/liquids/water.png" }, { "scale" : 0.055, "image" : "/celestial/system/terrestrial/biomes/forest/maskie3.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/2.png" }, { "scale" : 0.055, "image" : "/celestial/system/terrestrial/biomes/forest/maskie2.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/20.png" }, { "scale" : 0.055, "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" }, { "scale" : 0.055, "image" : "/celestial/system/terrestrial/shadows/9.png" } ] } ], "planet" : { "pos" : [ 0.00538729, 0.46961 ], "layers" : [ { "scale" : 0.15, "image" : "/celestial/system/gas_giant/gas_giant_base.png?hueshift=-80" }, { "scale" : 0.15, "image" : "/celestial/system/gas_giant/gas_giant_clouds_0.png?hueshift=-70?addmask=/celestial/system/gas_giant/gas_giant_dynamics/3.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" }, { "scale" : 0.15, "image" : "/celestial/system/gas_giant/gas_giant_clouds_1.png?hueshift=-77?addmask=/celestial/system/gas_giant/gas_giant_dynamics/28.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" }, { "scale" : 0.15, "image" : "/celestial/system/gas_giant/shadows/9.png" } ] }, "seed" : -5288806180628666923, "horizonImages" : [ ], "skyType" : "atmospheric", "skyColoring" : { "mainColor" : [255, 255, 255], "morningColors" : [ [242, 120, 0], [255, 230, 176] ], "dayColors" : [ [115, 224, 255], [255, 255, 255] ], "eveningColors" : [ [125, 17, 158], [210, 52, 50] ], "nightColors" : [ [24, 38, 53, 80], [58, 42, 70, 160] ], "morningLightColor" : [140, 71, 0], "dayLightColor" : [200, 200, 200], "eveningLightColor" : [160, 120, 180], "nightLightColor" : [40, 20, 60] } }, "seed" : 1234, "worldProperties" : { "nonCombat" : true } } } ] Again, substitute your dungeon name for YOUR_DUNGEONNAME in all of the places above. Similarly, the rest of these are default values, and you will probably want to tweak them. The ambientLightLevel and surfaceLevel should match the values in /dungeon_worlds.config.patch and you may want to tweak the satellites and planet sections, as well as the colors, to customize the look of the world. Assuming you have some custom codices, you'll want to suppress the defaults in /player.config.patch: Code: [ { "op": "add", "path": "/defaultCodexes/YOUR_SPECIESNAME", "value": [ ] } ] Your questtemplate should grant your custom codices upon completion. You'll also need to patch /quests/quests.config.patch like so: Code: [ { "op" : "add", "path" : "/initialquests/YOUR_SPECIESNAME", "value" : [ "YOURINTRO_QUESTNAME" ] } ] Here, the value is the quest id given in your questtemplate file. Cinematics may be defined both at the beginning and at midpoints in the intro. See examples here. They take a long time to define and require a bunch of artistic patience that I don't have, which is why my cinematics tend to be mostly blank screens with some dialog. I defined some custom biomes here. They're copies of existing biomes, but with features harmful or unwanted in an intro mission removed. These are referenced in your /dungeon_worlds.config.patch file. You may also want to define custom NPCs. That's easy enough to do (examples here), but try not to delve into defining custom behaviors, at least if you value your sanity. I think that should get you past the basics. Good luck, and I'm excited to see what you can do.
rl.starbound updated Origins of Species with a new update entry: Choose Your Own Origin Read the rest of this update entry...