Introducing GDMod

Hi!
This post is about a software I’ve been working arround for some time now. It’s GDMod, a modding API and mod loader for GDevelop games.
It has currently 2 loaders: one for Electron (pc) builds and one for Web/HTML5 builds.
Currently only the HTML5 one is capable of loading mods through a UI.
The HTML5 on is an extesnion for chrome. You can download it on Release Preview version n°1 · arthuro555/gdmod · GitHub with a template mod to test (only logs stuff in the console). Installation instructions are in the README in the zipped folder. (Works also on Firefox, load it from about:debugger)

Currently mod resources cannot be loaded (working on that).

The UIs will also have debugging functions. The web extension currently has only one (browsing through scenes).

This is a very big WIP and still very incomplete, but I wanted to share this first working version with the community :slight_smile: .

Source code on GitHub - arthuro555/gdmod: A mod loader and modding API for GDevelop games..
Documentation (WIP) on Home · arthuro555/gdmod Wiki · GitHub.

Thank you all for reading this. I hope this can interrest people and I hope to be able to hear some feedback :slight_smile: .

CLARIFICATION: Making mods require to know JavaScript, no visual coding solution (yet?), sorry.

9 Likes

What does that do? Can you give some use cases? For non-techies :slight_smile:
What’s the benefit of using this rather than doing everything inside GDevelop?

Thats not for GDevelop developers, it’s for modding GDevelop games. It let external developers do “patches” to add/modify functionality to games.

1 Like

Sounds interesting but a more practical example with a little more explanation in the docs would be nice. For example, have a game where we can move a sprite using the arrow keys, nothing special then have a mod that add the functionality to use WASD to move the sprite.

If I understand correctly it is also possible to create new objects and load new resources like images and sounds. That would be also nice to have a small example how to do it.

Then I’m guessing it is also possible to change properties of objects, values of variables. Etc.

Need more examples and a documentation written in noob language if it is targeting GDevelop users. :+1:

1 Like

That’s the goal. Right now tho it’s still in a very very early stage.

It is not really. It’s more targeting Developers playing games made with GDevelop and who want to extend it.

Well, this sounds great.

Although it also took me a while to understand the practical applications of your project (and I’m still not sure I fully understand them).

I’m sure this will be a great addition to creating more ambitious GD games.

Ok, I advanced a lot in a few days. I am already on version 0.0.4 of the web patcher.

Link on firefox extension gallery: GDmod Patcher – Get this Extension for 🦊 Firefox (en-US)
The extension is in review since 2 days for the edge extensions store, and sadly the Chrome store requires paying 5 dollars and I don’t have the money (especially since right now nobody seems to use that project)

I made a few new Templates to show the potential. You can try the FPS counter mod (only works on games with the text extension), the moon jump mod (only works on games using the platformer extension), or the resource injection test. With the now working (for now only image) resource injection, you can esily make visual modifications by loading resources under the same name as the original.

I will try to make a video “showcasing” some features of the project, tho I am bad at every step of video production so I don’t promise anything :sweat_smile:

I also made a mod installation guide (for all non-developers out there) right here: Installation Guide · arthuro555/gdmod Wiki · GitHub

As Always feedback is appreciated :wink:

3 Likes

Please do the videos even if they are bad sure will come in handy for us.

2 Likes

Ok I began working a bit more seriously on gdmod again. I didn’t have much motivation lately because I have 0 users of gdmod, but, well, if I never finish it no wonder no one uses it.

There are 2 main new features:

  1. I added an API to load GDevelop extensions (like P2P, Platformer behavior, physics 2.0 etc) in-game. This let you use them from your mod even if the original game didn’t.

  2. The electron loader actually works and doesn’t break 99% of the games. It can also actually load mods.

Some other little changes:

  • Api for mods has changed: initialize method removed as you can just use a constructor and a sceneChanged method added to do stuff when the scene changes.
  • Instead of storing the scene, gdmod now stores the game, that way it is less prone to bugs.
  • Full usage of patches, no more using the whacky patched-gdjs.
  • FPS and Hello-World examples have been recoded.
    … And probably other stuff that I forgot :sweat_smile:

I consider this project out of prototyping phase and as an “alpha version” now. It should be ready for small mods and texture packs. I already use it now and then for some games :eyes:

I’ll probably make a showcase video when I consider it at a “beta stage”.

2 Likes

The electron loader doesn’t work because you load something like @gdmod/api/dist/polyfill.cjs and that’s not included in the "exports" of the @gdmod/api’s package.json.

And I’m a user of that. See my project that uses GDMod: Mistake Editor by romw314
It’s not documented well, but it’s an editor of the game Change Stability (Change stability by Jurkourko) and it produces GDMod mods to inject into the game. It’s still in very early stages, but it works. And wouldn’t work without GDMod.

Thank you @arthuro555. GDMod is amazing. Like GDevelop. And your GDevelop extensions.