Mod Manager and Mod Collection


#1

Mod Manager

I wrote a Python script which should make applying and reverting mods a lot easier. It doesn’t have a GUI and you will need to install Python to run it, but it’s a start!

Grab it here:
https://drive.google.com/drive/folders/1FiK0az5AAe1UBodclrZ_EVh-ZghV8CQs?usp=sharing

Download the folder:

Drop the entire mods folder into your Boundless directory, which should be located somewhere like C:\Program Files (x86)\Steam\steamapps\common\Boundless. All the files should now be located in \Steam\steamapps\common\Boundless\mods.


Each mod can be managed in a simple JSON file that gives the tool all the info it needs to make changes to the game files.

_mods.json contains the list of said JSON mod files the script looks for:

"revert": false,
"files": {
	"mod_Compass_Higher_Cardinal": true,
	"mod_Compass_Icons": false,
	"mod_Faster_Forging_Animations": true,
	"mod_Longer_Logs": false,
	"mod_Meteor_Box_Farsight": false,
	"mod_More_Transparent_Water": false,
	"mod_Protection_Info": true,
	"mod_Quirk_Icon_Fix": true,
	"mod_Tint_Code_Tool_Tips": true,
	"mod_World_Info": true
}

Set which mods you want to apply (more details below) by changing the value to true.

Run applyMods.py in this folder or simply double click applyMods.bat.

The console that popped up should look something like this:

And that’s it! Start or restart Boundless and enjoy!

For reverting mods, set revert to true and run the script again. But keep in mind that now it will also skip reverting mods that are set to false. When in doubt, be ready to go to Boundless -> Properties -> Local Files -> Verify Integrity Of Game Files via Steam to undo any changes.

Mod Collection

I converted a bunch of existing mods into the format the script uses, extended some of them and added a few of my own. I tried to give credit as best as I could in the config files!


Compass Higher Cardinal Directions by Onni


Compass Icons by Pfiffel

More players, more creatures, and smaller icons.
It takes some getting used to and can get a bit cluttered, but it’s especially handy for finding people who need a revive or that typical one creature stuck somewhere to get to the next meteor wave.


Faster Forging Animations by schasm

Increases animation speed when forging.


Longer Logs by Pfiffel

Chat, gain and combat logs last longer, combat log is more condensed and has twice as many entries.


Meteor Box Farsight by Fallon

See active and dormant meteors from much further away.


More Transparent Water by daddyskitten

Water surface is less reflective and can more easily be seen through.
I tried changing the value from the original mod to make it a bit less extreme.


Protection Info by Pfiffel

Adds world types and relevant worlds to protection skill tool tips.


Quirk Icon Fix by Pfiffel


Tint Code Tool Tips by Onni, Tonezone and Pfiffel

Adds tint color code index to tool tips for all languages.
Onni and Tonezone both had the same great idea! I went ahead and extended it to cover all languages. Special thanks to Tonezone’s Python snippet which got this project started.



World Info by Onni and Pfiffel

Adds best slingbows and needed protection to world info.


So We Can Make Mods More Easily?

Yes! The intent is that it will be less of a hassle to create and share mods. As you can see above, I converted a bunch of existing mods to the format as examples. Feel free to dig through the files to see what’s going on. The syntax should be pretty straightforward.

Let’s look at my compass mod; each entry is the key path towards the game value you want to change. If a key is numeric it will treat it as a JSON array index. The value is an array with the original game value at [0] (for reverting) and the value the mod will change it to at [1].

"changes": {
	"assets/archetypes/compass.json": {
		"RangeDataTypes.TOKEN.0.iconSize": [16,12],
		"RangeDataTypes.TOKEN.1.iconSize": [13,10],
		"RangeDataTypes.TOKEN.2.iconSize": [10,8],
		"RangeDataTypes.TOKEN.3.iconSize": [5,5],
		"CompassEntries.CREATURE.maxNumEntries": [10,100],
		"CompassEntries.PLAYERS_FRIENDS.maxNumEntries": [20,100],
		"CompassEntries.PLAYERS_GUILD_MATES.maxNumEntries": [20,100],
		"CompassEntries.PLAYERS.maxNumEntries": [10,100],
		"CompassEntries.PLAYERS.ranges.3": [1000,10000]
	}
}

Another example is Onni’s cardinal directions mod. In some cases you might not want to use the array index but find an entry with a certain property value, for that I implemented this syntax:

"changes": {
	"assets/gui/layouts/common/compass.json": {
		"templates.hudCompassTpl.[name:compassCoords].scope.gunitTransY": [3, 20]
	}
}

Now it will look for the object within the hudCompassTpl array that has the key name and value compassCoords. "templates.hudCompassTpl.7.scope.gunitTransY" would work too in this case, but is less reliable in case the order ever changes.

To add your own mods, simply add the JSON file to the folder and add it to the list in _mods.json. Make sure to follow the JSON specifications, look online for a JSON evaluator when in doubt.

Of course mods might become outdated as the game values may change, which means that reverting might not work as intended once the mod becomes outdated. Structure changes may break the mod entirely and as a fair warning; I didn’t add much error handling yet.

Have fun modding and I hope you enjoy this collection!


#2

I like things for my games that are coded in Python. Thank you.


#3

Maybe I’ll have to break down and start all over on pc so I can use these mods. Anyone got a spare key?


#4

Thx Pfiffel. :slight_smile:


#5

I bought the pc account for my one kid who decided she prefers Trove over Boundless. I started using that account since she doesn’t much care for it. It’s amazing how similar and different the game is when you go from console to PC. Somethings are much easier and some things are more tedious. I’ve found I actually prefer to bounce between the two. It’s a shame you can use a PS4 account on a pc and vice versa.


#6

@Tonezone check this one out


#7

Thanks for all the lovely work :smiley:


#8

This is good stuff, thank you!


#9

Cheers, Pfiffel :+1: and thanks to the other modders , some very useful stuff here!


#10

This one…I need…So trying tonight!


#11

This seems to work really well…went through some PS hubs and seemed to be surrounded by meteorites :grin:


#12

Great that somebody went ahead and laid some groundwork, now we just need a GUI and file replacement support and I’m set :smiley: Texture mods are a thing I use too, like make all grass transparent. Also it would be relatively simple to save the original value automatically for reverting, to ease mod creation.


#13

I keep my foliage graphics turned all the way down. helps a lot when gathering.


#14

Yeah it’s better than nothing but still hides stuff when you get close to them and makes aiming harder.


#15

Out of all the mods I’m using now, the most vital one still is making most of the Quirk Debuff particles transparent. I was thinking of implementing functionality for clearing specific texture files, but file replacement will probably be easier. I’m really just waiting for that to finally be addressed by the devs themselves so we don’t have to mod it, haha.

That will require casheing all the values in some form somewhere, also comes with the condition that no changes were already applied before applying the mods the first time, unless it pulls the base values from somewhere else. And if not, the tool will need to determine which mods have been applied in order to not see those changes as the default, etc.

There are a bunch of solutions, but that will probably take some time and since I don’t know how much time I’ll have to work on this in the future (and it’s basically my first Python project), I went for super-simple for now. :smiley:


#16

The first thing I looked at is whether it checks to see if the value is set to the default value before applying the change. This helps with catching mods that modify the same value. Looks like it does check. Nice!


#17

@a13o Pfiffel beat you to it.


#18

I think it’s reasonable to assume this from the users. Easier to dev it that way. The revert function could just be described as “revert to the previous value”. The default original values can change with updates, so keeping all mods up to date with the original values might be a bigger hassle. Or the harder alternative is to host the current default values somewhere and pull them from there.

Time is always limited, especially in projects that you don’t get paid for :smiley: So totally understand if it’s not going to evolve fast. Is this free to modify by the way? If I get the time I might take a look :slight_smile:


#19

Thank you thank you thank you thank you


#20

so nice I dont have to look up or down to find N,S,E and W