Day 3: I wondered if I could...
Published: 2020-07-01 10:32:24

...but I only just started to wonder if I should.

Welcome to day 3(ish) of Stellaris modding, the day where I wonder what I'm doing, why I'm doing it and whether I should even have bothered starting.

I'm being dramatic, of course, but I've hit that block I sometimes hit of wondering if I'm going about things the wrong way, and fighting the temptation to trash what I've already got and start again.

Sometimes that's a more useful approach, but often it's not.

## Finishing the habitability modifications

So with a final few tests this morning, I concluded that my changes to habitability were working as far as I can see. I'm sure there are more edge cases I haven't worked out, but until I have a more well-rounded mod worth playing with, I'm not going to worry about those exact edge cases. I want to get something workable together (MVP, if you will), and then I can play through a few more robust test games to see which bits fall apart.

So the next step was to think about what my modifications might have broken and how to deal with that.

The main thing is that there's a technology late in Stellaris that allows you to switch your species' habitability traits around. Now that species shouldn't have those traits, that tech is redundant at best, but very possibly game breaking. So I had to go in and remove it. That was easy enough.

Next I got to thinking about the reasons behind the changes I'd made, and how it would affect gameplay. And that's where I hit this stumbling block.

## The limits of modding

One of the problematic parts of modding, is that you don't really have access to the full game code; just the parts of it the developers allow you to interact with. Paradox put a lot of code out there for people to play with, an incredible amount, but at the end of the day the core engine is sealed away from me, and there are some hard-coded behaviours I just can't change.

In a normal game of Stellaris, when genetically modifying a species you can swap traits in and out, as long as they don't conflict (strong vs. weak etc.), and you can potentially change habitability, but only for a certain type of planet (Desert, Ocean, Continental and so on). You can't have a preference for both Ocean **and** Continental, you can only have one. That's a hard-coded behaviour.

So, I've taken out the ability to change those planetary preferences entirely, that's fine. I've replaced those preferences with a pair of traits each, so that what was previously 'Desert Preference' is now 'Large' and 'Cold Blooded'. The idea was that this would allow for a more interesting dynamic. If you want your species to still enjoy large, open-spaced planets, but be able to handle chillier climates, you could remove Cold Blooded without removing Large.

The problem I encounter is that there's no way for me to set a rule that requires you to have a size, in the same way that you used to require a planetary preference. You could remove 'Large', but not add 'Medium' or 'Small', becoming a sizeless, amorphous blob?

Practically, this would be a poor gameplay move, but having it be possible means that: a) it's possible, when it shouldn't be; b) if the AI can use it, it **will** use it badly.

So the other option I have is to make these traits fixed, non-moddable. But then, why have them be separate to planetary preference in the first place? If a species that is Large and Cold Blooded is always going to be that way, why change the planetary preference mechanics that already do that?

The answer really is that I wanted to see if I could, and how I could, which has been a great learning experience. But it does raise the question of where I go next, and if the exercise can be salvaged into an interesting mod.

I have a few ideas brewing in the back of my mind, but they'll have to wait until tomorrow.