Skip to main content
Version: 0.1.0

Getting started

Client-side mods run inside the game alongside the OblivionMP client. They can read and change entity data, react to input, define custom data that is synchronized between players, and exchange custom network messages.

A mod is a .NET class library that references the OblivionMp.Sdk package (shipped with the server under mods/OblivionMp.Sdk.zip) and defines a single class extending ModBase. The mod loader instantiates this class when the game starts.

Start from the template

The quickest way to start is the official OblivionMP mod template. It ships a ready-to-build solution with client, server, and shared projects wired up against the SDK, plus a script that packages both mods. Clone it and follow the README.

Minimal mod class
using OblivionMp.Sdk;
using ReadyM.Api.DI;

public class MyMod : ModBase
{
public override string Name => "MyMod";

protected override void RegisterServices(IDependencyContainer services)
{
// register your services, components, RPC handlers, and archetype changes here
}

public override void Start()
{
// called once the game is ready; wire up key bindings and gameplay here
}
}

All SDK functionality is reached through the static SDK class — for example SDK.Input, SDK.Sync, and SDK.Services.

info

Everything registered in RegisterServices is resolved from the same dependency injection container the SDK uses. Any system or hosted service defined in your mod assembly is discovered and registered automatically.

Feature status

FeatureStatus
Key bindingsdone
Player & entity data🚧 mostly done
Custom data syncdone
Gameplay systemsdone
Custom RPCdone
Hosted servicesdone
Server-side mods🚧 primitive API
Save file API🚧 sync implemented, no public API yet
Mod manifests🔜 not enforced in 0.1.0