dkfans / keeperfx

Open source remake and Fan Expansion of Dungeon Keeper.
https://keeperfx.net/
GNU General Public License v2.0
779 stars 79 forks source link

Mod Support #3027

Open yani opened 9 months ago

yani commented 9 months ago

It would be nice if we could install mods that would work on ALL levels and campaigns.

For example:

/mods/some-mod/creatrs/imp.cfg
/mods/another-mod/creatrs/imp.cfg

These could be loaded in between the defaults and the level/campaign:

/creatrs/imp.cfg
/mods/some-mod/creatrs/imp.cfg
/mods/another-mod/creatrs/imp.cfg
/campgns/ami2019_crtr/imp.cfg

This way would also make it so the custom modifications of people could also go in their own folder and their changes would never get overwritten by new KFX updates.

I think it would also be nice to allow modifications AFTER level/campaign changes, maybe using folders like /mods/mymod/before and /mods/mymod/after. For example, a mod that FORCES imps to always level up by working, regardless if the mapmaker wants it.

Another nice thing would be a custom mapscript file. This might become messy with flags and stuff, but it could lead to some interesting mods like buffed heroes or forcing only a single creature for ALL maps with only 1 little mapscript. LUA support can also be implemented, allowing LUA scripts to be ran on every map.

We could also add a configuration to enable and disable mods. Even a simple .txt file with the folder of the mods to load would be a nice start I think.

For multiplayer games having a custom folder for user modifications would eventually make it possible to make the clients download the required files without them changing their own game. It would also allow people with modded games to play multiplayer without the people needing the same changes to their game.

walt253 commented 9 months ago

regardless if the mapmaker wants it

I disagree? If anything the mapmaker's will should be the priority over the player's will. If the player wants to cheat it should requires them to do some works and edit the map themself. Cause if you allow them to cheat like that then they can complain and the mapmaker can do nothing about it. :/ Or I'm misunderstanding the idea?

Edit: what I mean by that is if a mapmaker specifically have a rules.cfg to disable imp work experience, this mean the mapmaker definitly don't want it on the map even if the player has edited the fxdata rules.cfg to allow it.

walt253 commented 9 months ago

Is your idea to be that map specific configuration file have priority over anything else, then campaign configuration file, then mod configuration file then global configuration file?

yani commented 8 months ago

regardless if the mapmaker wants it

I disagree? If anything the mapmaker's will should be the priority over the player's will. If the player wants to cheat it should requires them to do some works and edit the map themself. Cause if you allow them to cheat like that then they can complain and the mapmaker can do nothing about it. :/ Or I'm misunderstanding the idea?

Edit: what I mean by that is if a mapmaker specifically have a rules.cfg to disable imp work experience, this mean the mapmaker definitly don't want it on the map even if the player has edited the fxdata rules.cfg to allow it.

You have to look at it like mods, and not cheats. For example, your campaign has changed imps, but I want Prinnies. So I just install a Prinnies mod and have fun.

If somebody wants imps to ALWAYS get experience, or never, they can just install that as a mod. Ez.