Blazemod Modernization

TL;DR: An attempt to bring the mode blazemod (also known as Vehicle Additions) back to being a repo mod by modernization of its content (PR @ https://github.com/CleverRaven/Cataclysm-DDA/pull/37497 )

Hey there guys, I’m known as SouP here and on the devcord and fancord, or Soup-de-Loop on github.

These aren’t snipes at Blaze by the way as the mod itself is fantastic, it just hasn’t aged very well.

I’ve so far made something of an attempt to bring blazemod up to date, and believe me when I say there’s a reason it was on the obsolete list- it was really outdated. In fact, the fact that it worked at all is astounding, given how messy some of the implementation was compared to modern standards and some of the decisions that have aged extremely poorly.

The last point is something I’d like to bring to the table first before I discuss some of the other changes I had planned, because this is the biggest one regarding migration and save-game compatibility. In the eternal wisdom of legacy code, the blazemod turrets that used vanilla guns also use the exact same internal id’s as the guns themselves, except as vehicle parts.

What this means is that, in order to modernize the mod in a way that makes it worthwhile keeping in the repo as a quality mod, we would have to de-link those, giving the turret versions their own internal id’s so that there’s no chance of conflict. As it stands, the migration code, while extremely useful, is not advanced enough to differentiate two different types of items with the same internal id. And it especially can’t handle retroactively modifying save data to updating existing vehicles that have spawned in a world to replace x part with y part. The functionality simply doesn’t exist.

I’m barely initiated in coding c++. I’ve been able to replicate the behaviour of the recycling compactor to make a plastic shredder that does the same thing but for plastic items. But I’m not nearly well versed enough to tinker with migration and save code, so unless someone else does it, we’re stuck with a save-game compatibility break if we want blazemod to become unobsoleted in the foreseeable future.

Beyond that, I’ve already modernized most of the file structure (I think I just have to split the diamond and vortex things up into appropriate file structure) and done some json magic to remove repeat items (that were everywhere once the turret control unit got merged) and provide some much needed spring cleaning. Blob stuff is properly sorted out and somewhat sane to add, remove or change, and I’m working on a short and sweet guide to explain how to start them off.

Beyond general feedback I’m sort of interested in a few questions for players other than myself who’ve used blazemod in the past (or still do):

  1. Is a savegame compatibility break acceptable?
  2. Do people want an outdated blazemod with minor fixes from time to time with all of its baggage on a separate repo to keep a savegame going until it finally croaks?
  3. Do people use vortex parts and still want them to be part of the entire mod?
  4. Do people use diamond parts and still want them to be part of the entire mod?
  5. Do people use solar array parts and are they considered overpowered and worthy of rework and/or rebalance?
  6. Do people who use blazemod want to see some features (such as blob vehicle tiers) being gated behind recipe books, with some minor lore fluff etc?

Anything I’ve overlooked or missed I would be happy to know about in addition to just general feedback about how I’ve gone about things. My PR is messy because the file structure refactor alone makes it difficult to revise compared to previous blazemod, but I personally wanted to get the mod to a square one in one PR. If anyone would care to test it on a fresh world I’d appreciate it.

Thanks in advance!

6 Likes

I may be wrong but how exactly the save will be broken by the mod provided that we can ** remove original mod from the cdda/data/mods folder and the save/mods.json file**

After this we can just install the new mod mid-save just like any other mod by, once again, editing the save/mods.json file, won’t this work?Even if there may be some bugs, they will all be in one overmap, going to unexplored locations that were yet to be generated in our old save will generate new perfectly fine working vehicles

Sorry if i’m putting too much details into this question, but should not this work and not break the save?Thanks for your great work and dedication to this amazing mod, SouP

1 Like

No these are good questions and the details help.

For the first bit: The issue is that my rework of blazemod changes a whole heap of the turret stuff and removes them entirely as they were. It actually doesn’t cause a crash automatically, unless you have any vehicle stored in a world with a blazemod turret on it. Usually this is on deathvans, but sometimes, especially on very long/old saves, people might have made and abandoned several deathvans, and if you don’t uninstall all of the old turrets first before loading what I’ve done, it will make the save unloadable.

The other issue is that I’ve removed all of the turrets as they exist full-stop and effectively made new ones, and that means a whole bunch of ID’s would be up in the air. Despite that, the game will load, but throw a bunch of errors the first time you load the save, which shouldn’t happen again by the next save. There’s some migration stuff I still need to do, I think, like removing the recipe from an existing save for the no-longer-existent turretframe, as recipe errors like that will stop a save from loading.

1 Like

Aha, so the main crashing problem is caused by existing turrets on vehicles, so if they are entirely removed, there won’t be any crashing, right?These turrets are player-made, i assume?They are not generated as enemies but only craftable items, right?

I think for me at least it won’t cause any problems now since i already know that i should not make and install these turrets, heh

1 Like

blazemod adds vehicle parts, but not any vehicles. That means that yes, the blazemod turrets are not by default on any vehicles in blazemod.

Unfortunately, tankmod, which I normally use with blazemod, does add vehicles which will have the parts that become defunct. At some point the vanilla turret_mount was also added without removing the turretframe that I’ve marked for removal, so I don’t know if a save would save both after they’ve been generated. I’ll try it now.

1 Like

In worst case scenario would not it simply create empty tiles?Would they necessarily cause crashes?

1 Like

There’s no fallback for how vehicles are saved. I don’t think it’s normally a problem because we’ve added things over time, rather than removing them. Small test: tank mod works with the rework as-is, but I’ll see if it causes issues with a save that had old blazemod.

1 Like

It should actually be okay, it seems to blank them out so long as they don’t have a dependent part. Tank mod has both the turretframe and turret_mount, so having the turret_mount saves the fact that the gun loses the turretframe to attach to.

I think.

1 Like

Frankly, I am just happy that the mod is still going to be maintained. I don’t know how useful my opinions are going to be but here we go:

  1. Yes, I personally don’t mind. Savegames are temporary anyway.

  2. ^

  3. Vortex Engine was probably my favourite part of the mod. Unfortunately, while the vortex stones needed to craft it can be difficult to find; you only need to get lucky once and then you get an engine that runs without fuel. So as much as it pains me to say it, it might need a nerf of some kind. Perhaps gating it behind schematics with the recipe only lootable from the final lab rooms or removing its passive electricity generation (maybe even both) wouldn’t go amiss.

  4. I found them to be quite lacking when I used them. I would certainly not shed a tear if they had vanished.

  5. If I recall correctly you couldn’t install those on roofs making it a less than ideal choice for people with moving bases. It could be overpowered in some builds though I suppose, since those things would save several tiles worth of space. Personally I didn’t find them too strong though.

  6. I never used blob parts, but as I said the vortex engine probably needs some gating to keep it in the end-game.

*Edited to fix the numeration.

1 Like

Great, thanks for coming onto discourse and providing feedback, I really appreciate it! It really helps to get some input from someone who has actually use the vortex parts, so I’ll see what I can do. Maybe have the vortex engine slowly damage itself over time trying to contain the energy source, so as to require constant maintenance?

so the only input i have here is for #6. I love blob parts. it’s the only reason i use the mod. I think they could definitely use a bit of re-fluff and maybe some recipe gating, along with some rebalancing of some of the stats (they all fold to the same small size??) and i’m happy to see that blazemod is getting a maintainer, as i certainly didn’t want to do it as i have my own stuff going on.

2 Likes

It all sounds good to me. : ]

The only bits I used (more out of availability than choice, as the vortex engine sounds pretty interesting) were the solar arrays, though never on a mobile vehicle. I thought they were great for powering a home base, and would slowly assemble them as I gut solar vehicles I found.

They didn’t seem overpowered to me, as I still had to be mindful of my daily power costs while puttering around fixing/building things.

Thanks for working on this!

3 Likes

Not sure if that would be that much of a fun mechanic. I can only speak from a perspective of a nomad, but let’s say it takes 12 hours for the engine to go from full durability to broken. All that would mean for me is that I would have to remember to go up to my vehicle two or three times a day to 'e’xamine it and then 'r’epair. At this point it might be better to just limit its power so much that it would struggle to pull >10 tonne vehicles so that you would have to push the engine for it to go up to decent speeds, I think.

Still the durability mechanic would probably work a lot better for the Vortex Generator (which ends up being totally useless, since the Engine also creates electricity when turned on) variant of the engine. People who mainly use static bases are probably not really want for power, but I reckon one could make some crazy Recharger setups with and having to maintain those would probably be more limiting here…I guess?

I am quite bad at balancing though so in conclusion: I dunno ;-;

1 Like

Every little bit of feedback is good, thank you for sharing it. I’m mostly just spitballing that sort of stuff currently, Array’s are the main foci point of my ire currently.

1 Like
  1. Is a savegame compatibility break acceptable?
  • Absolutely. Acceptable.
  1. Do people want an outdated blazemod with minor fixes from time to time with all of its baggage on a separate repo to keep a savegame going until it finally croaks?
  • The option most comfortable for you, I dont care.
  1. Do people use vortex parts and still want them to be part of the entire mod?
  • Never find that stone. Dont know.
  1. Do people use diamond parts and still want them to be part of the entire mod?
  • Never find enough to make one, probably dont miss this one.
  1. Do people use solar array parts and are they considered overpowered and worthy of rework and/or rebalance?
  • Was a bit op, yes.
  1. Do people who use blazemod want to see some features (such as blob vehicle tiers) being gated behind recipe books, with some minor lore fluff etc?
  • Yes, why not.

How about the mods that use Blaze? Like “Tanks” for mention one.
Thanks for your work.

1 Like

Thanks for the feedback! I’m glad you mentioned Tankmod, I was thinking of cannibalising it and renaming and reworking it to fit an overall experience as a modular addition to blazemod. Really, if or when my modernisation of blazemod is entered, I was thinking about ambitiously reworking it into a curated experience mod, similar to but on a smaller scale than Magiclysm or Aftershock, that made workshop modification of vehicles more fleshed out and DIY stuff thematically possible due to the success of a fictional corporation.

Take it a long way from just being basic vehicle additions, and into a power-to-the-people MakerSpace sort of deal that make the doomvans CDDA players have come to know and love seem more plausible without completely departing from reality.

If this sounds stupid, I’d love to know that as well.

  1. No strong opinion.
  2. No strong opinion.
  3. I love vortex parts.
  4. Haven’t made one yet, but it’s on my shopping list for the ultimate ride.
  5. Haven’t needed to make solar arrays yet, but I would probably get some good use out of them once I get a more sizable base going.
  6. Recipe books and lore fluff sound fun.
1 Like

Thanks for pitching in, I really value the feedback! Hopefully after the initial modernisation is done and I start to make real changes, they will fit in to the way you plan to use solar arrays in a satisfying manner.

Not sure how valuable this will be, but I ended up only using ballista and ripper turrets and then had to stop using them as well. They are just too good.
But at the same time it would be grating for me to have them nerfed due to balance reasons because they would become less… believable (to avoid using the dreaded R-word). If something launches a huge, heavy and reasonably sharpened chunk of wood with sufficient force at a target then that target is not going to like it. I feel like properly balancing them for me can only come once the world at large is improved further, like NPCs with better AI, more monster evolution, factions developing and deploying more advanced tech etc.

I just want a working Blazemod, not sure if I m in the right place :stuck_out_tongue: