For other versions, check the list of tags.
A template for developing an OblivionMP mod with the OblivionMP SDK.
Refer to the OblivionMP SDK documentation for details on how to use the SDK.
- .NET 10.0 SDK or later
- If you are using Visual Studio, you need version 2026 or later
An OblivionMP mod is usually made of two halves that share a common core:
ExampleMod.Common/: shared code that both halves need. Networked component definitions (WalletComponent.cs) and server-RPC contracts (RpcContracts.cs) live here. Its DLL ships alongside both the client and the server mod.ExampleMod.Client/: the client-side mod, loaded by the game. Entry point (Mod.cs), the client side of server RPC (ExampleServerRpc.cs), a client-relayed RPC (ExampleClientRpc.cs), and the archetype registration (ExampleRegistration.cs).ExampleMod.Server/: the server-side mod, loaded by the relay server. Entry point (Mod.cs), the server side of server RPC (ExampleServerRpc.cs), and a gameplay system (PassiveIncomeSystem.cs).Content/manifest.json: metadata for the client mod (name, version, dependencies).Dependencies/: the OblivionMP SDK assemblies the projects reference. The same files ship in the server binary package.Client/is referenced by the client and shared projects;Server/by the server project.
The example is a small "wallet" feature: a networked WalletComponent on every player, an RPC to add
gold and to read the balance, and a server system that grants passive income. Use it as a starting
point and replace it with your own logic.
- Clone this repository to your local machine.
- Open
ExampleMod.slnin your preferred C# IDE (e.g. JetBrains Rider, Visual Studio). - Build the solution to ensure all dependencies resolve.
- Rename the projects and edit the code to build your own mod. Keep shared components and RPC
contracts in
ExampleMod.Commonso both halves agree on them.
Note: A networked component's shape and its archetype membership must match between the client mod and the server mod. Ship both halves together as versions of the same package.
-
Edit
Content/manifest.jsonwith your mod's name, version, and description. -
Edit
ModFiles.ps1if your mod ships extra files or you renamed the projects. -
Run the packaging script with the
Releaseargument:.\MakeModFolder.ps1 Release
-
The
Outputdirectory will contain two folders:ExampleMod.Client/: copy this into your server'smods/directory (as a folder or a.zip).ExampleMod.Server/: copy this into your server'sserver_mods/directory.
-
Restart the server. Connecting clients download the client mod automatically.
Run the packaging script with the Debug argument to include .pdb symbol files:
.\MakeModFolder.ps1 Debug