Overview


.NET framework

uMod and all of the games that uMod actively supports are written in .NET or provide some interface through .NET.

This guide is not meant to serve as introduction to programming. Though the entry level for uMod is low, we do assume some basic programming knowledge.

CSharp ecosystem

Learning C# is fundamental to using uMod. uMod and all resources that uMod currently supports are written in C#.

Technically uMod has legacy support for JS, Lua, and Python plugins; however, these are currently unsupported and will likely remain so due to lack of community interest.

There are hundreds of free and open-source examples of working C# code written for uMod and uMod supported games.

Server-side modification

All of the games that uMod supports are currently multiplayer games which have both a client-side and a server-side component.

A game client is generally an executable file that a player runs locally on their machine to play the game.

In contrast, a server is generally a service running on another machine over the internet which a player connects to in order to play the game with other players.

uMod support is injected into the server-side component exclusively. uMod is not a platform which can modify the games client and for that reason plugin developers are largely at the mercy of the capabilities (or lack thereof) provided by game developers for core game mechanics.

Plugins and hot loading

uMod is bundled with a C# compiler. Plugins are downloaded and installed as raw source code, and may be unloaded or loaded at a whim.

This is is especially useful during development, as uMod will detect when plugin source code has changed and automatically reload the given plugin.

Extensions and products

Most extensions are free and open-source binaries and must be deployed as .dll files. Contrary to plugins, extensions may not be hot loaded and require a server restart for every update.

Products are generally closed-source proprietary plugins or extensions which are also deployed as .dll files or remotely through our upcoming Marketplace extension.