OblivionMP SDK 1.0.0-rc.2 released
· 3 min read
1.0.0-rc.2 is out, one day after rc.1. We fixed some bugs present in rc.1, and cleaned up the SDK attribute syntax before API settles for 1.0.
This release breaks the SDK API. Mods built against 1.0.0-rc.1 have to be updated and rebuilt against the 1.0.0-rc.2 packages.
Fixes
- Player names on hover. Looking at another player showed "Player #0" instead of their nickname. It shows the nickname now.
- NPC loot stays looted. An NPC whose inventory was emptied, for example by looting its body, could get a fresh set of items from the game, such as after a server restart. It now stays empty. NPCs emptied in a world saved by
rc.1are not covered. - NPC equipment. When an NPC's own game put an item back on, by a script or its AI, the item was taken off again over and over. It now stays on.
- Server version. The server reports its full version to the server list,
1.0.0-rc.2here.rc.1showed up as0.2.0. - Saves. Fixed an exception the server could hit while writing a save file.
SDK changes
Attributes
A mixin used to take up to three attributes to say whether and how it replicates. Now it is one:
// rc.1
[ArchetypeMixin]
[Extends(typeof(Player))]
[Replicated]
[Propagates(Propagation.ServerAuthoritative)]
public readonly partial struct Wallet { ... }
// rc.2
[ArchetypeMixin(Replication.ServerAuthoritative)]
[Extends(typeof(Player))]
public readonly partial struct Wallet { ... }
[ArchetypeMixin]takes a requiredReplication.Replication.Nonekeeps the mixin local. Unreliable delivery is[ArchetypeMixin(Replication.X, Delivery = Delivery.Unreliable)].[Archetype]is networked by default.[Archetype(replicated: false)]is now[Archetype(Networked = false)], and an archetype with fields of its own says[Archetype(Replication = Replication.X)].- The
Propagationenum is renamedReplicationand gainsNone.[Replicated]and[Propagates]are gone.
See Replication and authority and Shapes.
Everything else
- Key binds can be removed.
IInput.RegisterKeyBindreturns anIDisposable; dispose it to remove that one bind. See Removing a binding. - Computed properties reach other shapes. A public property with a body on a mixin now shows up on every archetype that includes the mixin or that it extends. That brings
IsDeadback onVitals, soMainCharacter,NpcandServerSummonhave it again. See Computed properties. - Attribute mistakes fail the build. A second
[Index]on a shape (READYM047),[Tag]on a mixin (READYM048) and[Extends]on an archetype (READYM049) are now clear errors, instead of being ignored or failing inside generated code.
Updating
- Servers. Downloads for both platforms are on the Installation page.
- Mods. Bump
ReadyM.SDK.Oblivion.Common,.Clientand.Serverto1.0.0-rc.2, plusReadyM.Oblivion.Chat.Clientand.Serverto1.0.0-rc.3andReadyM.Oblivion.Quests.Serverto1.0.0-rc.2if you use them, then fix what the build reports. Your first mod shows the new syntax.
Known issues is updated for this release. Anything not on it, report on the OblivionMP Discord.
