How to make my game more friendly to modders?

Godot Version

Godot v4.2.2

Question

I’m planning to start working on games and I’d like for them to be modder-friendly. Especially since I’m planning on open sourcing some if not most of them.

Do any of you have an idea on how I could achieve such thing efficiently?

1 Like

Mod packs can be created externally and loaded dynamically with ProjectSettings.load_resource_pack().

The documentation hosts a poor example using "res://mod.pck" since the res:// directory won’t be writeable after exporting. You will need to use something like this to try and load all .pck files in a “mods” folder adjacent to the game executable.

var path := OS.get_executable_path().get_base_dir().path_join("mods")
var mod_dir := DirAccess.open(path)

mod_dir.list_dir_begin()
var filename := mod_dir.get_next()
while filename != "":
    if filename.get_extension() == "pck":
        ProjectSettings.load_resource_pack(filename)
    filename.get_next()
mod_dir.list_dir_end()
3 Likes

Aha. Well I was actually thinking about concepts such as “soft coding”, which I’ve heard of in relation to making your games more modder-friendly. How can I achieve such thing? Besides the obvious technical solution that you’ve given me. (which I appreciate)

1 Like

You could use publicly accessable ConfigFiles, again getting the path as mentioned above. This really only lets modders change pre-defined properties though.


I’ve only heard of soft coding as not-hard-coding. My first post is the #1 way to do it, gives mod packs the same capabilities as your game, and using the same editor. After that mod-ability depends on your game, what are the modders modding? If they are just replacing textures, models, and/or scripts (overwriting content) you’re pretty much done. If they add missions, items, and/or charcters (new content) then you will need to use DirAccess more and loop over all content in a directory instead of preload or @export a set few things.

2 Likes

I was thinking about making templates that me and in turn modders could you, pretty much making the game itself some sort of a mod. but after what you’ve said I’m starting to rethink that idea…

1 Like

Sounds like the open source model! Kinda what happened with Friday Night Funkin’ :^)

2 Likes

Mhm! Actually now that I think about it, I think I’m kinda dumb haha. I was mainly thinking about modding just in relation to projects of open source nature. Not those of closed-source one.

1 Like

How can I make something similar to FnF’s engine then?

1 Like

It’s not that they made or used any particularly complicated engine, they used HaxeFlixel because it’s what they knew and it exports to web. Making legible code open source is enough for people to make recompilation mods. They do intend to add “Polymod” to the full game which works like the load_resource_pack godot has.

Here’s there source code if you want to dig around GitHub - FunkinCrew/Funkin: A rhythm game made with HaxeFlixel

1 Like

Thanks!