Is it possible to add Mod Support to the Game?

Is there a possibility to include Mod Support into the Game I develop?

Option 1: Make it open-source.

Option 2: Allow people to parse their own javascript code.

Option 2 looks interesting but how can I do that so the people can parse their own javascript code into it?

Inherently, modding doesn’t require an explicit integration, since it’s the practice of modifying the game files.

You can add features to your game to facilitate the creation of user content though, for example using the steam workshop integration to easily share, upload, and download files, allowing to use JSON files to modify the behavior of your game, creating a simple language for scripting…

You have experience creating extensions?

You only need a single line in a javascript block to let people run javascript in your game:

eval(eventsFunctionContext.getArgument(“JavascriptCode”))

Problems:

  1. Obviously people will need to know internal info of your game, such as object names and variable names.
  2. People not only need to know javascript, but they need to know GDevelop javascript.
  3. Since the code is a string, people must only use ’ single quotes ’ in their codes, because the double quotes will be used to contain the entire code. (I think that can be ‘workarounded’ if they paste the code into a text input)

And here is my extension that allows people to run javascript code: New extension: Javascript Events by github-actions[bot] · Pull Request #1081 · GDevelopApp/GDevelop-extensions · GitHub

For problem number 1, you can either make a wiki for your game containing literally every internal information, or, using javascript you can try to make a “debugger” similar to GDevelop’s one, that allows people to interact with your objects and variables.

That’s bad advice imo. This is in no way proper support for extending the game, and adds no value. Just running JavaScript code and accessing the game scene is possible very easily for a modder without the creator adding anything to their game. It will just make your “modding integration” look very lazy and half assed, and will turn away modders more than anything.

Both are not true.

GDevelop JavaScript is not a thing, it’s just normal JavaScript. The API of GDevelop is publicly documented like any other JavaScript library and can be used effortlessly by any JavaScript dev.

Since modding literally isn’t something you would hard code into your game, mods wouldn’t be contained in string literals, thus this is straight up not an issue.

Technically true, however, it is very easy for a competent modder or JavaScript to find that information out by themselves.


TL;DR If that’s your modding integration, you’re better off not adding it to your game at all. Modders will be better off creating their own modding framework.