With multiplayer coming out, I’ve been dreaming of some way-too-ambitious mods. I figure I’ll start getting into basic modding again, so I should be more prepared when multiplayer’s more stable and I have more free time. But I’d like to have my dreams killed earlier if necessary, so I wanted to figure out what exactly is within the scope of modding before you’d have to rewrite… way too much multiplayer code.
Part of me wanted to keep my plans hidden, because I’m paranoid like that and I figured nobody would take the meme seriously unless it actually somewhat worked, but I’ll get right down to it: I want to see if it’s possible to make a HOBA. (Whether I [or anyone else] can actually make it, or it’s actually any good with all the compromises to fit in Stonehearth, is another question entirely.)
Some of this I can probably answer myself once I find the time, but I wanted to get my thoughts out there and make sure I’m not missing anything obvious.
There’s been some changes to embarking that make want I want to do easier - now, you can start in an already-generated/customized world (as in multiplayer), and you can pick existing Hearthlings to embark with (re-embarkation.) From a quick look, it seems the number of Hearthlings for starting a game and re-embarking is defined in constants.json
- but how flexible is it really?
Can you pick any group of Hearthlings you’ve sent out for reembarking, or is it just the latest one? (Sorry I haven’t played enough myself to find out )
If you set num_starting_citizens
to 1, and reembarkation
-> num_citizens
to 1… would it really just let you pick one existing Hearthling to enter the game with, or would the game not know how to handle it? I assume num_starting_citizens
must work because we now start with fewer citizens, but I haven’t paid much attention to how reembarking works, so there might be limits somewhere else that I don’t know about.
Assuming that works… could a mod include a specific set, and only that set, of reembark-able Hearthlings? I think the easiest way would be to prepare my Hearthlings with debugging tools and HoMF in a regular game before reembarking them for export, pack them in the mod, and then override so that the game reads from my folder of Hearthlings rather than the normal reembark folder. It looks like I’d have to override game_creation_service.lua
in particular - or are there other places this is referenced? Also, where are the reembark groups normally stored in the first place ?
Spawning in would probably have to be completely redone.
I’ve seen a set_player_enmity
console command mentioned to set players to hostile. Could a mod put players on teams?
How about game speed? Since there’s really no way to have a lobby, I feel like the easiest way to go about things would be to pause the game until everyone’s logged in, and then play out at regular speed. I could probably rely on players for that - but would there be a way to just start the game paused?
Each character would be their own combat class, in order to handle level abilities.
Is there a way to spawn a copy of a specific Hearthling once in the game? Seems like I’d have to for respawning. As well as deal with a cool-off, and who knows what else. Level book-keeping?
What would be the cleanest way to just disable the normal campaign?
After all that, and a bunch of stuff I haven’t even considered that much yet, a HOBA mod would be limited by Stonehearth’s combat controls. Being able to select targets to attack and move seems to be almost just enough for a very bare-bones MOBA., and I assume Stonehearth wouldn’t easily let you add much more.
So, perhaps a bad idea, all considered. Certainly a complicated idea. But I really wanted to talk about it.