Osmium

Compatibility

Osmium runs plugins written for Oxide and for Carbon without changes. These are the measured results, and how we get them.

The plugin archive

1,462of 1,464

plugins load on Osmium. Our archive holds 2,166 plugin versions. The 1,464 that load on Oxide or Carbon today (1,393 different plugins) are the test; the others do not load on either today.

loads on Osmium: 1,462does not: 2

Each square is one plugin that loads on Oxide or Carbon; the two hollow squares at the end are the two that do not load on Osmium.

The two that do not load

KillRecordsNeeds the MySql.Data library, which only Carbon ships. Osmium provides Oxide’s database API on its own drivers.
CynicFurnaceSplitterUses Item.Flag, which Oxide rejects too; it loads only on Carbon.

How it is tested

  • Compiled first. Every plugin is compiled the way each framework compiles it, against the same game version, before any server starts.
  • Then run on a real server. Plugins go into a running server in dependency order, load, run through server start, get exercised and left running, then unload. The server’s health is checked after every batch: still up, every plugin unloaded, no errors left behind. An unhealthy server is restarted and the batch split until the cause is found.
  • In a sandbox. The server has no network beyond itself, so no plugin can call out during a test.
  • Against both references. Oxide and Carbon run the same set on the same game build; a plugin counts if it loads on either.

Behaviour, case by case

Loading is not enough, so a contract suite drives the same scripted cases through Oxide, Carbon and Osmium and compares what each one does: hooks and their return values, permissions, commands, timers, config and data files, databases, UI, translations, dependencies between plugins, web requests and the plugin lifecycle.

569same
cases behave the same on Osmium as on Oxide or Carbon, 82 more pass their own expected result, and none fail. Measured on the candidate for release 0.2.9, on the same game build for all three.

Our own servers’ plugins

The 87 plugins in use on our own Rust servers, run the same way on Osmium and on Carbon.

FrameworkLoadWhy the rest do not
Carbon84 of 87Three were broken by game changes: FreezeAnimals, RemoverTool, Skinner.
Osmium83 of 87The same three, and CarbonPanel, which Osmium’s own panel replaces.