The mod is really simple. First I had to think of something that was already dotted all over the map, stones being an obvious choice, and then I had to find the model in the XML and write a mod to replace it with the one for buses.
Turns out that there are actually 12 stone blocks in the game so for maximum bus-ability we must replace each one of them with a bus. For brevity though I'll only show the code for one of them which is found in blocks.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<remove xpath="/blocks/block[@name='rock01']" />
<append xpath="/blocks">
<block name="rock01">
<property name="Extends" value="cntBusSchool"/>
</block>
</append>
...
</configs>
First we remove the existing rock entry, then we replace it with a new one that extends the School Bus block.
This mod will take immediate effect in both existing and new worlds, and I found I actually got better results (i.e. more buses) in an existing world, possibly because all of the stones had loaded in already and it skipped some sort of memory management that prevents quite so many spawning otherwise. However, these buses were not lootable, for that you need to start a new world.
Some redditors also came up with other ideas of things to replace stones with that I ended up trying out:
- Naronomicon suggested landmines - replace cntBusSchool with mineHubcap (and others) (a LOT of fun!)
- Consistent-Plenty865 suggested gas barrels - replace cntBusSchool with burningBarrelPlayer for this
- KeenKeister suggested short buses - replace cntBusSchool with cntBusSchoolShort for this
Ultimately, this is a pretty daft mod, but it was good for a giggle and can create some interesting gameplay if you replace stones with the right object.