This walks through building a module from nothing. Read Anatomy of a module first — this page assumes you know what the pieces are.
Modules live under the SDK's module directory:
/userland/sdk/module/installed
Create a directory there named for your module.
Give the module a title, a description and an author. The description is what an operator
reads when deciding whether to install it, so describe the behaviour, not the name.
Start at whatever number you like and increment it on every published change. GameDash compares this value to decide that an update is available.
In properties.json, set supportedOperatingSystem to the platforms you have actually tested.
Use the linux shorthand to cover every supported distribution, or name specific platforms:
Declaring support you do not have does not make the game work — it makes it fail later, at instance creation, on a node that cannot run it.
List the resources the module implements. Anything you leave out falls back to default behaviour, so start with the minimum: for a game, that is usually process handling.
Each resource extends the abstract template for its type. For a service module's process
resource, that means implementing start(), stop(), restart() and isOnline().
Resolve the instance from the gateway in the constructor and keep it:
Then implement the lifecycle against it — creating a child process, setting the executable and arguments, and spawning it. Service modules covers what each method is responsible for, and Example service module shows a complete implementation.
Install the module, create an instance against it, and start it. The things that usually go wrong first:
supportedOperatingSystem does not include that
node's platform.