Helix is a framework for roleplay gamemodes in Garry's Mod, based off of NutScript 1.1. Helix provides a stable, feature-filled, open-source, and DRM-free base so you can focus more on the things you want: making gameplay.
To start working on your gamemode, you'll need to set up a schema for Helix. This is a specially structured gamemode that uses Helix as its base - but instead of creating all the files and bootstrapping properly yourself, you can fork/copy the skeleton schema that has all of this done already at https://github.com/NebulousCloud/helix-skeleton. The skeleton contains all the important elements you need to have a functioning schema so you can get coding right away.
You can also use our HL2 RP schema at https://github.com/NebulousCloud/helix-hl2rp as a base to work off of if you need something more fleshed out.
If you'd like to enhance your gamemode, you can use any of the freely provided plugins available at the Helix Plugin Center. It is also encouraged to submit your own plugins for others to find and use at https://github.com/nebulouscloud/helix-plugins
Up-to-date documentation can be found at https://docs.gethelix.co. This is automatically updated when commits are pushed to the master branch.
If you'd like to ask some questions or integrate with the community, you can always join our Discord server. We highly encourage you to search through the documentation before posting a question - the docs contain a good deal of information about how the various systems in Helix work, and it might explain what you're looking for.
If you're planning on contributing to the documentation, you'll probably want to preview your changes before you commit. The documentation can be built using LDoc - note that we use a forked version to add some functionality. You'll need LuaRocks installed in order to get started.
# installing ldoc
git clone https://github.com/impulsh/ldoc
cd ldoc
luarocks make
# navigate to the helix repo folder and run
ldoc .
You may not see the syntax highlighting work on your local copy - you'll need to copy the files in docs/js
and docs/css
over into the docs/html
folder after it's done building.
Feel free to submit a pull request with any fixes/changes that you might find beneficial. Currently, there are no solid contributing guidelines other than keeping your code consistent with the rest of the framework.