Status
This page says how finished the framework is. It then lists what 0.12.0-beta and 0.10.0-beta added, for modders who want to see which calls are new.
In short
- This is a beta. The latest release is 0.12.0-beta. A call can change before version 1.0, so a mod you build now may need small fixes later. The API reference lists the changes planned for 1.0.
- Only Obenseuer 0.5.08 (Steam build 25969064) is supported. On another game version the framework still starts and logs a warning, but a feature group that depends on changed game code can be turned off.
- Extensive testing has not been done yet. The framework has been written against the game’s own code, and each feature has had basic checks, but not long play sessions.
- Some parts are marked experimental. They work, but expect rough edges: quests, dialogue and law (the Story API), Steam and lobby helpers for co-op (Net), mod NPCs, NPC appearance, the debug trace, the tutorial and computer files.
What changed in 0.12.0-beta is in the changelog.
What is new in 0.12.0-beta
Version 0.12.0-beta adds the calls below on top of 0.10.0-beta. It also carries the 0.11.x work, which was never released on its own. Each line names the main calls and links to its API page. The changelog has the full details.
Developer tools
- Developer menu:
DevMenuadds a window (F8 or theomf_devconsole command) with quest, state and mod tools.DevMenu.AddSectionadds your own card,AddWatchadds live values, andSaveIsDevModifiedtells whether a save was changed through the menu. It is off by default. See Developer menu. - No clip: a toggle on the menu’s Player card, next to God mode. See Developer menu.
- Patch overloads:
CorePatcher.Patchhas four overloads that take a transpiler. See Framework helpers. - Doc coverage check:
tools/check-doc-coverage.pyfails when a config key, limit or settable property is missing from the docs. See Debug.
Inventory, storage and crafting
- Ingredients from your containers:
InventorySources.Registermakes your containers count for the furniture workbench and renovation orders. See Inventory sources. - Crafting sources:
CraftingSources.Registertakes a priority and a per-slot filter,SetPriorityandSetSlotFilterchange them, andConsumedreports what a craft took. See Crafting sources. - Storage window:
StoragePanel.AddButtonandRemoveButtonadd your own button. See Storage panel. - Recipe lists:
RecipeFilter.Addhides recipes from a crafting list, andMatcheshelps search it. See Recipe filter. - Unloaded scenes:
UnloadedStoragereads a storage in a scene the player is not in and queues a take or give for the next load. See Unloaded storage. - Containers:
Containers.IsTenantOwned,IsInPlayerTenement,IsPlayerOwned,IsNotNpcOwned,ApartmentOfandIsLocked. See Inventory. - Fix:
Inventory.Takecounts what it removed and gives it back if it fell short. See Inventory.
Quests and dialogue
- Quest control:
QuestAuthoring.Restart,Reset,JumpTo,SetTitle,SetDescription,RemoveandCheckpoint.QuestDefinition.Nextchains a follow-up quest, andQuestAuthoring.HandIntakes items all or nothing. See Quest authoring. - Quest reads and events:
Quests.Rewound,Quests.StateandQuests.Counter. Thecore_questconsole command restarts a quest or finishes an objective. See Quest authoring. - Dialogue:
Dialogue.AddBranchtakes anonPickedcallback and waits for an anchor that is not loaded yet, andAddQuestTopicadds a quest topic. See Dialogue authoring.
New Game screen and difficulty
- New Game options:
NewGameOptionsregisters toggles, choices, whole numbers and, withRegisterFloat, stepped numbers. The rows show on every difficulty, andEvents.NewGameStartedInfocarries the chosen values. See New Game options. - Difficulty presets:
GameDifficulty.Register,SetPreset,ClearPresetandActivePresetoffer a difficulty of your own. See Difficulty presets.
Saves, scenes and world
- World props:
WorldPropsplaces a model, primitive, furniture, light or anchor in any scene and brings it back on every load. See World props. - Saves:
SaveData.Flushwrites one store at once,SaveSlots.CurrentFoldergives the loaded slot’s folder, andEvents.BeforeSave,AfterSaveandAfterLoadcarry the save folder. See Game save data. - Mod NPCs and relationships:
ModNpcs.MoveTomoves a loaded person of your mod, andRelationships.SetDispositionsets a score and its target together. See Mod NPCs. - Loaded framework mods:
FrameworkMods.Loaded()lists the framework mods that started. See Loading. - Scene looks:
SceneLooks.ApplyToSkeletonputs a look on a humanoid body’s own skeleton, withSyncPose,SetAutoPose,RigOfandDescribe. See Scene looks.
Phones, banking and hints
- Mod phone numbers:
Phones.Add,RemoveandCleargive a mod number that answers and starts a conversation you wrote. See Phones. - Account freezing:
Banking.IsFrozen,FreezeandUnfreeze. See Banking. - Hints and key prompts:
Hud.ShowHintandShowPromptdraw the framework’s own panels, withHintStyleandPromptStyleto use the game’s hint box or tutorial pop-up instead. Two settings in the Mods menu turn them off. See Hud.
Input and Mods menu
- Keyboard hold:
InputCaptureholds the game’s keys back while your mod needs the keyboard. See Input capture. - Menu:
UiState.IsTyping, aconfirmflag onModMenuActions.Register, and controller and keyboard support, descriptions, Reset buttons and a scrollbar in the classic Mods menu. See Mod menu.
What is new in 0.10.0-beta
Version 0.10.0-beta adds the calls below on top of 0.9.0-beta. Each line names the main calls and links to its API page. The changelog has the full details.
Player and survival
- Timed waits:
PlayerState.Waitruns a wait withWaitOptionsand reports the in-game minutes that really passed.IgnoreNeedsandNoPassOutchange what the wait allows. See Player. - Bed time panel:
PlayerState.PickTimeshows the bed’s time panel with a mod title, then callsonConfirmoronCancel. See Player. - God mode and frozen needs:
PlayerState.GodMode,SetGodMode,NeedsFrozenandSetNeedsFrozen, with one setting per mod, so two mods do not undo each other. See Player. - Damage and breakdowns:
Survival.InterceptDamagescales or cancels damage, andSurvival.Breakdowncancels each breakdown step.RemoveCrossed,RemoveDamageandConsumables.Removeremove handlers. See Player. - Custom skills:
CustomSkillsadds up to 64 skills per mod to the character panel, saved per save, with level-up banners. See Custom skills. - Movement:
PlayerMovement.SetRunMultiplier,Crouch,StandUp,LockLook,UnlockLookandLockLookAt, and versions of the speed multipliers that take your mod id. See Player movement. - Camera and screen:
CameraView.SetFirstPersonBodyandClearFirstPersonBody,ScreenFx.SetFovOverrideandClearFovOverride, and versions ofFadeToBlackandFadeInthat take your mod id. See Player and Screen FX. - Weapons:
Weapons.SetHitFactorandClearHitFactors, theWeapons.Hitevent andWeapons.EquippedLeft. See Weapons. - Travel:
Travel.AddEntrypointandRemoveEntrypoint, tracked for each mod. See Player. - Wait stations:
WaitStations.All,CanUse,Useand theFinishedevent, and newWaitStationInfofields. See Player.
NPCs, characters and animals
- NPCs in scenes:
Npcs.InScenelists every NPC in the loaded scenes, with aPresentflag. See NPCs. - NPC movement:
NpcMovementholds, moves, patrols and stands live NPCs per mod. See NPC movement. - NPC actions:
NpcActions.FollowPlayer,StopFollowing,Say,Comment,LookAtPlayer,LookAt,StopLooking,StartDialogueandChangeLevel. See NPC actions. - Mod NPC copies:
ModNpcs.Spawnfor a session copy, andModNpcs.SpawnSavedfor one that comes back after each load. See Mod NPCs. - Mod NPC routines:
ModNpcRoutines.Setfor a weekly routine,WalkTo,Wander,Patrol,Sit,SleepandStoporders, andRemove,Clear,Currentand theStepChangedevent. See Mod NPC routines. - NPC appearance:
NpcAppearancereads and sets meshes and materials by name, withRestore,ShapeKindandSetBlendShape. See NPC appearance. - Characters:
Characters.Saved()lists the save characters on the main menu. See Characters. - Robbers:
Robbersadds aggro, rob, negotiate and aloof, and theRobbedevent. See Robbers. - Animal stats and tame:
Animals.Allfills hunger, max hunger, age and full-grown age.AnimalActions.SetTamesets an animal tame, and the choice is kept across a load. See Animals and Animal actions. - Animal orders:
AnimalActionssits, sleeps, hunts and runs live animals per mod, andSleepPermanentlyholds one asleep. See Animal actions.
Items, inventory and containers
- Held models:
ItemRegistry.SetHeldModel, andItemDefinition.WieldTemplateIdto borrow another item’s held model. See Registry. - Models as meshes:
ModelHandle.CreateMeshandCreateMaterialsfor objects that are not items. See Registry. - Missing items: a stack from a mod that is not installed shows as “Missing item”.
ItemRegistry.MissingItems,RemoveMissingItemsandRemoveAllMissingItemslist or clear them, andCanDefinetells whetherDefineis allowed. See Registry. - Consumables:
ItemConsumables.GetandSetchange an item’s consumable numbers, saved with the save.Clearremoves them. See Item consumables. - Item givers:
ItemGivers.All,SetEmpty,Respawnand theGaveevent. See Item givers. - Stacks:
StackActionsgives, drops and pours stacks with a quality, owner or liquid. See Stack actions. - Held items:
PlayerInventory.EquipHeldandUnequipHeld. See Inventory. - Containers: the
Containers.OpenedandClosedevents,FindByGuid,GuidOfandTakeStack, andItemStackInfo.Slot. See Inventory. - World items:
WorldItems.IdOf,Find,Remove,ExpiryMinutes,SetExpiryOverrideandClearExpiryOverride, andSpawn.Itemwith an out object. See World items. - Task items:
TaskItems.Add,Remove,Hasand theChangedevent. See HUD.
Crafting, plants and power
- Recipes: the
Recipes.Unlockedevent,Recipes.Unlock,CanCraftAt,MeetsSkillandIsAvailable, and newRecipeInfofields. See Recipes. - Crafting stations:
CraftingStations.Start,Stop,PauseandResume, andCraftingStationInfogainsId,Modifiers,RecipeTypesandHasNaturalLight. See Crafting stations. - Craft speed and quality:
CraftingSpeed.SetSpeedFactorandCraftingQuality.SetQualityFactor, per mod, withClear. See Crafting stations. - Crafting sources:
CraftingSourceslets stations take ingredients from extra containers. See Crafting sources. - Inventory sources:
InventorySourceslets the furniture workbench and contractor renovations take ingredients from extra containers. See Inventory sources. - Growing stations:
GrowingStationslists stations and occupied spots, and sets pause and rot. See Growing stations. - Plants:
PlantActions.HarvestSpot,SetRottingandSetFullGrownAge, and the other plant calls by id.Plants.Fruits,PlantInfo.ReadyFruitand thePlants.Pickedevent. See Plant actions and Recipes. - Fuel:
FuelTypes.AllandGet, with burn time and refuse rules. See Fuel. - Power devices: the
PowerDevices.FuelRanOutevent,StoredCharge,MaxCharge,IsBurningandBurnTimeFactoronPowerDeviceInfo, and batteryFuelLevelandMaxFuel. See Power devices. - Recycling: the
Recycling.Recycledevent andRecycling.All. See Recycling. - Breakables: the
Breakables.Smashedevent. See Breakables.
Economy, shops and trade
- Player shops:
PlayerShops.EnsureandRelease, prices by item id,Sell,Storages,Registers,TakeEarnings,AddEarnings,Earningsand theSoldevent.PlayerShopInfo.ManagerGuidandApartmentInfo.ManagerGuidgive the GUID thatEnsuretakes. See Player shops. - Traders:
Traders.BuyandSelltrade without the trade screen.SetMoney,Restock,SetPriceFactorsandGetmanage the trader. See Traders. - Base shops:
BaseShops.Buy,Sell,BoughtandSold, with their result types. See Base shops. - Market stalls:
MarketShopInfo.PriceandCurrency. See Market shops. - Money:
Cash.OcandCash.Rmread the balances. See Economy. - Banking:
Banking.ExchangeQuote,ExchangeRateandExchange, between OC and RM. See Economy. - Mail: the
Mail.Sentevent,MailInfo.IsNote,BodyandSender, andMail.Inbox(MailKind.Letter)reads letters. See Economy. - Mailboxes and parcels:
Mailboxes.TakeMailtakes the receive mail, andParcelLockers.Claimclaims a locker’s packages. See Mailboxes and Parcel lockers. - Mail schedules:
MailSchedules.Senders,SendNowandSendRandom. See Mail schedules. - Legal services:
LegalServiceslists and queues actions, reads the debt, and raisesQueuedandCompleted. See Economy. - Casino: the
Casino.ScratchedandCasino.Doubledevents, and payout factors fromCasino.SetPayoutFactor,Contests.SetPayoutFactorandCardGames.SetPayoutFactor. See Casino, Contests and Card games. - Contests:
Contests.OpponentToleranceandGiveUp. See Contests. - Tenants:
Tenants.Rent, tenement income, upgrade and clean levels,TriggerEventandOpenRentScreen. See Tenants.
World, time and weather
- Clock:
WorldClock.Nowreturns aWorldTime, andWorldClock.SetDateandIsAvailableare new.GameTime.IsDaytimeis the game’s day rule. See World. - Time control:
TimeControl.SetTimeScale,ClearTimeScale,In,Cancel,MinutePassedandSecondsPassed. See Time control. - Weather:
WorldWeather.SetThunder,SetZoneandClearZonesfor local weather zones. See World. - Sky:
WorldSky.Set,ClearandCurrentoverride fog, light, sky and stars per mod. See World sky. - Water:
WorldWater.VolumesandSetVolume,IsPlayerUnderwater, thePlayerSubmergedandPlayerSurfacedevents, andBreathTicks,MaxBreathTicksandResetBreath. See World. - Radiation:
WorldRadiation.DoseRate,DosimeterOn,DosimeterChargeandDosimeterEquipped. See World. - Landmarks:
Landmarks.Create,Mark,Remove,ClearandPlace, which keep markers across saves, andAll,Has,Unlockand theAddedevent. See Landmarks. - Drones:
Drones.Nodes,AirNodeInfoand theDrones.NodePassedevent. See Drones. - Trains: the
Trains.Crashedevent,TrackTrainInfo.WagonTypeandCargoGuid, andTrainActions.SetEngine,SetTargetSpeed,Brake,CoupleandRelease. See Trains and Train actions. - Spawners:
Spawners.SetRespawnTiming,RespawnTime, the timing fields onSpawnerInfo,SetRespawn,TriggerNowand theSpawnedevent. See Spawners. - Levels:
Levels.ChangeTochanges scene by name, andAll,Get,SetLocked,Useand theChangingevent handle level changers. See Levels. - Ladders:
Ladders.All,Get,IsPlayerClimbingandSetBlocked. See Ladders. - Blast sites:
BlastSites.All,Getand theDetonatedevent. See Blast sites. - Scene logic:
SceneLogic.Relays,Fire,SetEnabledand theFiredevent, andSceneStatefor branches, counters, states, sequences and timers. See Scene logic and Scene state. - Surfaces:
Surfaces.All,Get,SetWallpaper,Removeand theChangedevent. See Surfaces. - Tanks:
Tanks.All,Get,Set,Empty,SetLockedand theChangedevent. The writers refuse the main water source. See Tanks. - Sleep:
SleepEvents.PlayerInSafeAreaandSafetyFactor. See Sleep events.
Housing, furniture and doors
- Furniture blueprints and flatpacks:
FurnitureRegistry.DefineBlueprint,GiveBlueprint,IsBlueprintKnownandGiveFlatpack, withBlueprintDefinitioninputs, time and skill. See Furniture. - Furniture in the world:
BlueprintDefinition.Pools,FurnitureRegistry.MailBlueprintandAddFlatpackLoot. See Furniture. - Placing and moving:
Building.Place(withrequireKnown),Building.Removeby GUID or item,Building.Move,Find,Managers,Catalog,PrefabOfandIsKnownFurniture. See Housing. - Placed piece fields:
FurnitureItemgainsRotation,ChildRotation,Skin,AltPrefab,ManagerGuid,ParentObject,AttachedObjectandObject. See Housing. - Building areas:
Building.CurrentArea, theAreaEnteredandAreaExitedevents, andBuildAreaInfo. See Housing. - Evictions:
Housing.StartEviction,CancelEviction,DefaultEvictionHours, theEvictionStartedandEvictionCancelledevents, and the eviction fields onApartmentInfo. See Housing. - Apartments:
ApartmentInfo.Typegives anApartmentType(Small,Medium,Large,ShoporUnknownwhen the game gives the apartment no type). See Housing. - Doors and level changers:
DoorInfo.PositionandStandPosition,LevelDoorInfo.Position,StandPositionandSpawnPosition, andDoors.OpeningTimesandSetOpeningTimes. See Doors.
Story, quests, dialogue and law
- Quests:
QuestAuthoringcreates quests with objectives through the game’s task system, so they save with the game. An objective can start hidden and be revealed later, andQuests.Readyis the place to create quests. A finished quest cannot be reopened. See Quest authoring. - Dialogue authoring:
DialogueAuthoringadds conversations for the session. See Dialogue authoring. - Dialogue choices:
Dialogue.AddResponse,RemoveResponseandRemoveAlladd player choices to a game conversation. A choice takes an insert position and a link priority. See Story. - Law:
Law.HasStolenGoods,StolenGoodsValue, andLaw.Clear(CrimeKind)to clear one kind of crime.LawActionspays fines, bribes and confiscates. See Law actions. - Police:
Pursuit.CallPolice, which can be severe or ignore distance. See Pursuit. - Surveillance:
Surveillance.IsPlayerWitnessedtells whether a camera or witness sees the player now. See Surveillance. - Start choices:
StartChoices.Selected,Has,Relationshipand theChosenevent for the new-game picks. See Start choices.
Phones, UI and menus
- Phone lines:
PhoneLines.All,Ring,StartCall,IsBusy,Ringing,IsRinging,RingingNumber,AnswerandDecline, and theCallStartedandCallEndedevents. See Phone lines. - Computer desk:
ComputerDesk.SetWallpaper. See Computer desk. - Tooltip:
Hud.ShowTooltipandHideTooltip. See HUD. - HUD and crosshair:
Hud.HideGameUiandShowGameUi, andHideCrosshairandShowCrosshair, each counted per mod. See HUD. - Main menu:
MainMenuButtons.Addwith a mod id overload,SetControlsEnabledandIsOpen. See Main menu. - Pause screen: the
UiState.PauseOpenedandPauseClosedevents, andPauseEventsAvailable. See UI state. - Difficulty:
GameDifficulty.SetFactorandClearscale a difficulty multiplier per mod. See HUD. - Settings:
GameSettings.SetFovandClearFov,ToggleSprint,ToggleCrouch,GameDisplay.BrightnessandRunInBackground, andModKeybind.Up. See Settings. - Music and sound:
Instruments.PlaySong,StopSong,HoldNote,StopHold, and theGuitarPlayedandGuitarCommentedevents.GuitarCommentednow also fires for plain barks.Sounds.SetMixerVolumesets a mixer volume for the session. See Instruments and Audio. - WebUi:
WebUi.SuspendAllandResumeAlllet a mod hide thread-mode popups, for example while the Steam overlay is open, and[Debug] WebUiModepicks thread, composition or windowed hosting. See WebUi.
Saves
- Save data:
SaveData.Bindreturns aSaveSlot<T>whoseValueis never null, andSaveData.Peekreads another mod’s data from disk before a load. See Game save data. - Object saves:
SaveData.Capture,Apply,CaptureByGuid,ApplyByGuidandSelfCheck, andSaveData.Folder. See Game save data.
Net and multiplayer
- Lobby:
Lobby.Owner,IsHost,OwnerChanged,IsRefused,MemberNameandLeave(gameTag). See Net. - Steam:
Steam.OverlayEnabled. See Net. - Packets:
Net.Droppedcounts packets dropped from a full receive queue. See Net. - Blobs:
NetBlob.Send,Received,Finished,ProgressandCancel, for up to 16 MB sent to one lobby member. See Net.
Modding tools and framework helpers
- Debug master switch:
[Debug] Mastertraces framework calls, events, saves and loads to the debug log, andTraceFilternarrows it. It is off by default. See Debug. - Debug self-checks:
[Debug] ModelSelfCheck,RegistrySelfCheck,FloorItemsSelfCheck,CoreModSelfCheck,SaveDataSelfCheck,SaveJsonSelfCheck,KeyChordSelfCheckandFrameworkModsSelfCheck. See Debug. - Debug probes:
[Debug] PlayerShopProbe, thecore_jsonprobecommand (with[Debug] JsonProbeCommandon),WebUiFocusDiagfor focus loss, andWebUiExclusiveThreadto test thread mode in exclusive fullscreen. See Debug. Thescenelookscommand (with[Debug] SceneLooksCommandon) prints the scene look index and reads the installed game files only. See Scene looks. - Mods menu action: the framework’s own Settings page has a
Scene lookssection with aRun scene looks checksbutton. It runs the same checks as thescenelookscommand for the loaded scene, needs no[Debug]flag and no console, and shows the character and root counts on the menu status line and the full text in the log. See Scene looks. - Framework helpers:
CoreMod.For(plugin)returns one handle per mod, withSave<T>,Keyand the patch helpers. See Framework helpers. - Patch helpers:
CorePatcher.Prefix,PostfixandFinalizerfind their target by name or byType[]. See Framework helpers. - Run once loaded:
Events.WhenReadyruns an action now, or on the next load. See Framework helpers. - World objects:
WorldObjects.FindByPathandPathOf. See World objects. - Locks:
Locks.SetLockpickable,DifficultyandSetDifficulty. See Interaction. - Per-mod settings: calls with an
ownerargument (your mod id) keep one setting per mod, so one mod cannot undo another. See Multiple mods. - Starter: the
Starter/folder in the repo is a first mod that builds withdotnet buildand finds the game for you. See First mod.
BepInEx 5 and loaders
- BepInEx 5 build: the framework and WebUi zips each hold a BepInEx 5 build next to the BepInEx 6 build. BepInEx loads the one that matches. See BepInEx 5 and BepInEx 6.
- Packaging: the packaging guide shows how a mod ships a BepInEx 5 build next to its BepInEx 6 build in one zip. See Packaging.
Changed
- WebUi is an optional module,
ObenseuerCore.WebUi.dll. Mods that use WebUi depend on it and reference that DLL. Without it, the Mods menu uses the classic window. See WebUi. - The
WebThemesetting moved to the module’s config file, andWebMenuSelfCheckmoved there too and is not carried over. See WebUi. - WebUi pages and frames can no longer create a
Worker, because a worker could open sockets outside the lockdown. A mod id that does not fit the host rules gets anh--host, so its web storage starts empty. See WebUi. - Mods built for BepInEx 6 use a SemVer range in
BepInDependency, such as">=0.11.0". BepInEx 5 needs a plain version, such as"0.11.0". See Packaging. - The preloader,
ObenseuerCore.Preloader.dll, is an optional patcher that is not in the zips. It builds for BepInEx 6 and, with-p:Loader=BepInEx5, for BepInEx 5. Copy the BepInEx 6 build frompreloader\bin\or the BepInEx 5 build frompreloader\bin\be5\toBepInEx\patchers\ObenseuerCore\to use it. - The Starter build no longer copies the DLL into the game folder. Add
-p:DeployToGame=trueto copy it. See First mod. - Traders:
Sellis all or nothing, likeBuy. A trade cannot start inside another trade, and cash writes, mail sends,PlayerInventory.GiveandTake, andTraders.SetMoneyandRestockare refused while one runs. See Traders. BankLedger.IsAvailableneeds only the game changes for accounts, and a missing interest, debt, scam or legal change no longer turns the ledger off. See Economy.WorldClock.SetTimeOfDayrefuses a time earlier than the current game time. See World.WorldWeather.SetthrowsArgumentExceptionfor a negative index or transition, even when no weather system is ready. See World.CustomSkills.Registerthrows for amaxValueabove 1,000,000, andMailSchedules.SendRandomthrows for amaxabove 100. See Custom skills and Mail schedules.- The item-ID calls, such as give, spawn, shop stock, containers and mail, read the catalogue directly. An ID that is not in the catalogue is refused. See Registry.
FurnitureItem.Idnow gives a vanilla piece its addressable path instead of null, andBuilding.FurniturePlacedfires for build-mode placements. See Housing.- The lobby checks the game version and build, and refuses a joiner on another one. See Net.
- Net reads packets for up to 2 ms a frame, and at most 4 per sender reach handlers each frame. Extra packets wait in a queue for their sender. See Net.
- Save data is written with Newtonsoft.Json. A file it cannot read falls back to
JsonUtility, once per mod. See Game save data. - Save-file classes such as
BankLedgerDataandFurnitureManifestare no longer public. Mods never used them. See API reference. - Survival
OnCrossed,InterceptDamageandConsumables.Interceptignore a repeat registration by the same mod, andCancelwins.Dialogue.Intercept,Law.Intercept,SleepEvents.InterceptandSurvival.Breakdownuse the same cancel rule. See Multiple mods. - Each group of related game changes now has its own feature group, so a game method that is missing turns off only its own events. See World and Housing.
Fixes are listed in the changelog.
BepInEx 5 and BepInEx 6
The framework runs on BepInEx 5.4.23 or later (Mono, x64) and on BepInEx 6 Unity.Mono (x64, be.788, the tested build). The framework zip and the WebUi zip each hold two builds, one for BepInEx 6 and one for BepInEx 5, and BepInEx loads the one that matches.
Testing
These areas have been written against the game’s code and checked, so they are the most likely to work. They have not had long play sessions:
- Housing and building:
Building,Housing,FurnitureItem. - Items and crafting:
ItemRegistry,Recipes,Crafting,Recycling,TaskItems,Containers. - Money and shops:
Banking,Mail,BaseShops,MarketShops. - Player:
PlayerState,PlayerMovement,Characters,Weapons,Travel,UiState. - NPCs and animals:
Animals,NpcActions,Pursuit,Law,Quests. - World:
GameTime,WorldWeather,WorldWater,WorldRadiation,WorldItems,WorldLocation,Levels,Spawners,Drones,Landmarks,PowerDevices,FuelTypes,Plants,SleepEvents. - Game menus and settings:
MainMenuButtons,GameSettings,StartChoices,Hud,WaitStations. - Net and Steam:
Lobby,Net,NetBlob,Steam. - Save data:
SaveData. - Other:
Casino,Contests,PhoneLines,ParcelLockers,BlastSites,Breakables,Ladders,WebUi,CorePatcher,CoreLog,Survival.
What to do if something fails
- Note the game build from the first line of
BepInEx\logs\ObenseuerCore.log. - Attach that log and your mod’s own log to the bug report. See FAQ.
- Report it on the GitHub issues page.