Namespace Timbn.GraveyardKeeperTwo.Core.Framework
Classes
- TimbnAsk
The answers of one Ask, each with the lines that follow it.
- TimbnBalance
Helpers for the game's balance tables. A plugin adds and edits definitions through its Balance property, and this class holds the static pieces around that, like checking whether the balance has loaded and swapping item icons.
- TimbnBubble
An icon over a spot in the world, with no key or text, the way the game marks a workstation that needs something. Use it to show what someone wants, such as a beer over a customer's head. By default it sits in the game's small square frame. Set Framed to false for the bare icon, Scale to size it and Tint to color it. Get one from the plugin's UI.CreateBubble, move it with Show as often as you like, and it is hidden when the plugin unloads or the player returns to the main menu. Dispose a bubble the plugin is done with, such as one made per customer.
- TimbnClock
Reads the game's calendar and clock for the loaded save, so a mod can ask what day or time it is without digging through EnvironmentEngine and the save, and sets the time of day as a one shot change that needs no undo. Every member reads as zero or empty at the main menu. See the plugin's Clock property for holds on the clock that are undone, such as freezing it or running it faster.
- TimbnConfig
Helpers for a plugin's config file, for binding a slider or a hidden setting in one line and carrying a player's values over when a setting is renamed or moved.
- TimbnCost
What the player pays for an answer or a quest step, taken when they pick the answer. The game draws each cost as the item's icon or the price with how much the player has, and grays the answer out until they can pay. Something the player only has to have goes in TimbnNeeds instead.
- TimbnCraftBuilder
Describes a craft for the plugin's Crafts.Add, with where it runs, what it takes in and what it makes. The craft is copied from one of the game's own, the woodworking bench's wooden plank unless BasedOn(string) names another, so it starts with everything the game expects and the builder changes only what differs. What is not set stays the template's, so a craft that only calls Needs(string, int) and Makes(string, int) keeps the template's station, work time and energy. The exceptions are the unlock, since a craft is open from the start whatever the template did unless NeedsUnlock() or UnlockedBy(string) is called, and the template's rewards. A copy gives no tech points unless TechPoints(int, int, int) sets them, and leaves out the template's linked perks and what it does when it finishes, such as berry_pie unlocking its next tech.
- TimbnCraftEvent
What a craft's OnStarted(Action<TimbnCraftEvent>) and OnFinished(Action<TimbnCraftEvent>) handlers are told.
- TimbnData<T>
A plugin's own data object that Core reads from and writes to disk. TimbnSaveData<T> belongs to a save and TimbnGlobalData<T> to the player, and both hand out the data through Current.
- TimbnExtensionBuilder
Describes a bench extension for the plugin's Stations.AddExtension, like the game's tool rack. An extension is placed straight from the build desk with no construction site, has nothing to interact with, and attaches to a station that lists it in Extensions(string, params string[]) when the two are built next to each other. Core turns it into the extension, its build desk entry and its removal, with their text. Only Model(TimbnModel, Vector3) is required. An extension with no Cost(params (string Item, int Count)[]) is free, and one with no UnlockedBy(string) is on the build desk from the start.
- TimbnFeatureAttribute
Names the feature a Harmony patch class belongs to, so a game update that breaks one feature's patches turns off that feature alone and the rest of the plugin keeps running. The name is the key of the config entry that switches the feature, and while the feature is broken the plugin's Settings.Toggle and Settings.While read that entry as off, the main menu popup names the feature, and IsFeatureBroken(string) says so. A patch class with no feature belongs to the plugin itself, and a failure there still turns off the whole plugin.
- TimbnFrameworkPlugin
Non generic base of every Timbn plugin. Handles config, the Enabled gate, Harmony patching, and teardown. Plugins derive from TimbnFrameworkPlugin<T> instead.
- TimbnFrameworkPlugin<T>
Base class for a Timbn plugin. Pass your plugin type as T to give it its own static Logger, Enabled entry, and Instance.
- TimbnGame
Whether a save is loaded and playable, and writes it on demand.
- TimbnGameIds
Every id the game defines, grouped by kind, for anything that asks for one by id.
- TimbnGameIds.Buffs
The temporary buffs and debuffs, including the talent buffs a talent potion grants.
- TimbnGameIds.BuildDesks
The id of every build desk the game defines, named without the builder_ prefix, such as
Yardfor builder_yard, for anything that asks for one by id.
- TimbnGameIds.BuildTabs
The tabs of a build desk's menu, such as
BuildingExtensionfor the bench tab at the yard, for anything that asks for one by id.
- TimbnGameIds.Groups
The game's life simulator groups, the sets of places it sends villagers and guards to.
- TimbnGameIds.Items
The id of every item the game defines, such as
Coalfor coal, for anything that asks for an item by id.
- TimbnGameIds.Music
The id of every music track the game defines, such as
Violinfor violin, forAudio.PlayMusic.
- TimbnGameIds.NpcAnimations
The animations each kind of person has a clip of their own for, such as
Herm.AdjustingJabbot, for the Animate step and a person's Animate. Each value is the trigger to fire. A class covers one body set, shared by every person it lists, and an animation is only listed for the people whose look has its frames, since anyone else vanishes while it plays.
- TimbnGameIds.NpcAnimations.Aleksta
Body set npc_aleksta, worn by
npc_aleksta.
- TimbnGameIds.NpcAnimations.Astrologer
Body set npc_astrologer, worn by
npc_astrologer.
- TimbnGameIds.NpcAnimations.Bishop
Body set npc_bishop, worn by
npc_bishop.
- TimbnGameIds.NpcAnimations.Captain
Body set npc_captain, worn by
npc_captain.
- TimbnGameIds.NpcAnimations.Carpenter
Body set npc_carpenter, worn by
npc_carpenter_01,npc_carpenter_02,npc_carpenter_03,npc_carpenter_04.
- TimbnGameIds.NpcAnimations.Citizen
Body set npc_citizen, worn by
npc_town_A1_citizen_01,npc_town_A1_citizen_02,npc_town_A1_citizen_03,npc_town_A1_citizen_04,npc_town_A1_citizen_05,npc_town_A1_citizen_06,npc_town_A1_citizen_1101_01,npc_town_A1_citizen_1101_02,npc_town_A1_citizen_1103_01,npc_town_A1_citizen_1104_01,npc_town_A1_citizen_1105_01,npc_town_A1_citizen_1105_02and 50 more.
- TimbnGameIds.NpcAnimations.CityGuards
Body set npc_city_guards, worn by
npc_city_guard_02,npc_city_guard_03,npc_city_guard_621_01,npc_city_guard_621_02,npc_city_guard_621_03,npc_city_guard_621_04,npc_city_guard_621_05,npc_city_guard_622_01,npc_city_guard_622_02,npc_city_guard_622_03,npc_city_guard_622_04,npc_city_guard_622_05and 16 more.
- TimbnGameIds.NpcAnimations.CityGuardsFightBow
Body set npc_city_guards_fight_bow, worn by
npc_city_guards_fight_03,npc_city_guards_fight_04,npc_city_guards_fight_05,npc_city_guards_fight_06.
- TimbnGameIds.NpcAnimations.CityGuardsFightPike
Body set npc_city_guards_fight_pike, worn by
npc_city_guards_fight_01,npc_city_guards_fight_02,npc_city_guards_fight_pike.
- TimbnGameIds.NpcAnimations.Dig
Body set npc_dig, worn by
npc_dig.
- TimbnGameIds.NpcAnimations.Donkey
Body set npc_donkey, worn by
npc_donkey,npc_donkey_demo,npc_donkey_test.
- TimbnGameIds.NpcAnimations.FishermanCitizen
Body set npc_fisherman_citizen, worn by
npc_fisherman_01,npc_fisherman_02,npc_fisherman_03.
- TimbnGameIds.NpcAnimations.Gerry
Body set npc_gerry, worn by
npc_gerry.
- TimbnGameIds.NpcAnimations.HeadOfTheGuards
Body set npc_head_of_the_guards, worn by
npc_head_of_the_guards.
- TimbnGameIds.NpcAnimations.HeadOfTheVillage
Body set npc_head_of_the_village, worn by
npc_head_of_the_village.
- TimbnGameIds.NpcAnimations.HeadOfTheVillageMask
Body set npc_head_of_the_village_mask, worn by
npc_head_of_the_village_mask.
- TimbnGameIds.NpcAnimations.Heffry
Body set npc_heffry, worn by
npc_heffry.
- TimbnGameIds.NpcAnimations.Herm
Body set npc_herm, worn by
npc_herm.
- TimbnGameIds.NpcAnimations.Jeffry
Body set npc_jeffry, worn by
npc_fighting_zone_builder,npc_jeffry.
- TimbnGameIds.NpcAnimations.KeepersWife
Body set npc_keepers_wife, worn by
npc_keepers_wife.
- TimbnGameIds.NpcAnimations.Knight
Body set npc_knight, worn by
npc_knight.
- TimbnGameIds.NpcAnimations.Larry
Body set npc_larry, worn by
npc_larry,npc_larry_event.
- TimbnGameIds.NpcAnimations.Nun
Body set npc_nun, worn by
npc_nun.
- TimbnGameIds.NpcAnimations.OldBandit01
Body set npc_old_bandit_01, worn by
npc_old_bandit_01.
- TimbnGameIds.NpcAnimations.OldBandit02
Body set npc_old_bandit_02, worn by
npc_old_bandit_02.
- TimbnGameIds.NpcAnimations.PlagueDoctor
Body set npc_plague_doctor, worn by
npc_plague_doctor.
- TimbnGameIds.NpcAnimations.RedEye
Body set npc_red_eye, worn by
npc_red_eye.
- TimbnGameIds.NpcAnimations.SecondKeeper
Body set npc_second_keeper, worn by
npc_second_keeper.
- TimbnGameIds.NpcAnimations.TavernOwner
Body set npc_tavern_owner, worn by
npc_tavern_owner.
- TimbnGameIds.NpcAnimations.TownBarracksMercenary2
Body set npc_town_barracks_mercenary_2, worn by
npc_town_barracks_mercenary_2.
- TimbnGameIds.NpcAnimations.TownBarracksMercenary3
Body set npc_town_barracks_mercenary_3, worn by
npc_town_barracks_mercenary_3.
- TimbnGameIds.NpcAnimations.TownBarracksMercenary4
Body set npc_town_barracks_mercenary_4, worn by
npc_town_barracks_mercenary_4.
- TimbnGameIds.NpcAnimations.TownBarracksMercenaryLeader
Body set npc_town_barracks_mercenary_leader, worn by
npc_town_barracks_mercenary_1.
- TimbnGameIds.NpcAnimations.VillageGuard01
Body set npc_village_guard_01, worn by
npc_bonfire_guard_01,npc_forest_guard_01,npc_village_guard_01,npc_village_guard_lanterns.
- TimbnGameIds.NpcAnimations.VillageGuard02
Body set npc_village_guard_02, worn by
npc_bonfire_guard_02,npc_forest_guard_02,npc_village_guard_02.
- TimbnGameIds.NpcAnimations.Villager
Body set npc_villager, worn by
npc_fisherwoman_01,npc_fisherwoman_02,npc_fisherwoman_03,npc_irishperson_01,npc_irishperson_02,npc_irishperson_03,npc_irishperson_04,npc_irishperson_woman_01,npc_irishperson_woman_02,npc_irishperson_woman_03,npc_villager,npc_villager_01and 11 more.
- TimbnGameIds.NpcAnimations.WarehouseManager
Body set npc_warehouse_manager, worn by
npc_warehouse_manager.
- TimbnGameIds.NpcAnimations.Woodcarver
Body set npc_woodcarver, worn by
npc_woodcarver.
- TimbnGameIds.NpcAnimations.WorkshopForeman
Body set npc_workshop_foreman, worn by
npc_workshop_foreman.
- TimbnGameIds.NpcAnimations.WorkshopForemanWriting
Body set npc_workshop_foreman_writing, worn by
npc_workshop_foreman_writing.
- TimbnGameIds.NpcAnimations.YoungCount
Body set npc_young_count, worn by
npc_young_count.
- TimbnGameIds.NpcEvents
The events of each person's own game script, such as
Herm.GoHome, for the Event step and FireEvent. Story quest events are left out.
- TimbnGameIds.NpcEvents.Aleksta
Script npc_aleksta, run by npc_aleksta.
- TimbnGameIds.NpcEvents.Astrologer
Script npc_astrologer, run by npc_astrologer.
- TimbnGameIds.NpcEvents.BonfireGuard01
Script npc_bonfire_guard_01, run by npc_bonfire_guard_01.
- TimbnGameIds.NpcEvents.BonfireGuard02
Script npc_bonfire_guard_02, run by npc_bonfire_guard_02.
- TimbnGameIds.NpcEvents.CityGuard
Script npc_city_guard, run by npc_city_guard_02, npc_city_guard_03, npc_city_guard_621_01, npc_city_guard_621_02, npc_city_guard_621_03, npc_city_guard_621_04, npc_city_guard_621_05, npc_city_guard_622_01, npc_city_guard_622_04, npc_city_guard_622_05.
- TimbnGameIds.NpcEvents.Donkey
Script npc_donkey, run by npc_donkey.
- TimbnGameIds.NpcEvents.Fisherman
Script npc_fisherman, run by npc_fisherman.
- TimbnGameIds.NpcEvents.ForestGuard01
Script npc_forest_guard_01, run by npc_forest_guard_01.
- TimbnGameIds.NpcEvents.ForestGuard02
Script npc_forest_guard_02, run by npc_forest_guard_02.
- TimbnGameIds.NpcEvents.HeadOfTheGuards
Script npc_head_of_the_guards, run by npc_head_of_the_guards.
- TimbnGameIds.NpcEvents.HeadOfTheVillage
Script npc_head_of_the_village, run by npc_head_of_the_village.
- TimbnGameIds.NpcEvents.HeadOfTheVillageMask
Script npc_head_of_the_village_mask, run by npc_head_of_the_village_mask.
- TimbnGameIds.NpcEvents.Heffry
Script npc_heffry, run by npc_heffry.
- TimbnGameIds.NpcEvents.Herm
Script npc_herm, run by npc_herm.
- TimbnGameIds.NpcEvents.Homobonus
Script npc_homobonus, run by npc_homobonus.
- TimbnGameIds.NpcEvents.Jeffry
Script npc_jeffry, run by npc_jeffry.
- TimbnGameIds.NpcEvents.Larry
Script npc_larry, run by npc_larry.
- TimbnGameIds.NpcEvents.Looter
Script npc_looter, run by npc_looter_03, npc_looter_05.
- TimbnGameIds.NpcEvents.Nun
Script npc_nun, run by npc_nun.
- TimbnGameIds.NpcEvents.OldBandit01
Script npc_old_bandit_01, run by npc_old_bandit_01.
- TimbnGameIds.NpcEvents.OldBandit02
Script npc_old_bandit_02, run by npc_old_bandit_02.
- TimbnGameIds.NpcEvents.PlagueDoctor
Script npc_plague_doctor, run by npc_plague_doctor.
- TimbnGameIds.NpcEvents.RedEye
Script npc_red_eye, run by npc_red_eye.
- TimbnGameIds.NpcEvents.TavernOwner
Script npc_tavern_owner, run by npc_tavern_owner.
- TimbnGameIds.NpcEvents.TinyBuildCharacter
Script t_b_character, run by t_b_apothecary, t_b_tailor, t_b_vegetabler.
- TimbnGameIds.NpcEvents.VillageGuard01
Script npc_village_guard_01, run by npc_village_guard_01.
- TimbnGameIds.NpcEvents.VillageGuard02
Script npc_village_guard_02, run by npc_village_guard_02.
- TimbnGameIds.NpcEvents.VillageGuardLanterns
Script npc_village_guard_lanterns, run by npc_village_guard_lanterns.
- TimbnGameIds.NpcEvents.Villager
Script npc_villager, run by npc_villager_01, npc_villager_02, npc_villager_03, npc_villager_04, npc_villager_05, npc_villager_06, npc_villager_woman_01, npc_villager_woman_02, npc_villager_woman_03, npc_villager_woman_04, npc_villager_woman_05, npc_villager_woman_06.
- TimbnGameIds.NpcEvents.Villager01Lantern
Script npc_villager_01_lantern, run by npc_villager_01_lantern.
- TimbnGameIds.NpcEvents.WarehouseManager
Script npc_warehouse_manager, run by npc_warehouse_manager.
- TimbnGameIds.NpcEvents.WorkshopForeman
Script npc_workshop_foreman, run by npc_workshop_foreman.
- TimbnGameIds.NpcEvents.YoungCount
Script npc_young_count, run by npc_young_count.
- TimbnGameIds.Npcs
The id of every kind of person the game defines, such as
Hermfor npc_herm.
- TimbnGameIds.Perks
The perks a keeper or zombie earns from talents and tech, with zombie perks starting with Zombie.
- TimbnGameIds.Sounds
The id of every sound effect the game defines, such as
CoinsSoundfor coins_sound, forAudio.PlaySound.
- TimbnGameIds.TechPoints
The red, green and blue tech point resources a player spends in the tech tree, for Resource and HasResource.
- TimbnGameIds.Techs
Every unlock in the tech tree, the entries the player pays points for.
- TimbnGameIds.Workstations
The id of every crafting station and bench extension the game defines, grouped by the build desk that builds it (
Yard.ToolRackfor tool_rack) with the ones no build desk builds underPlaced, for anything that asks for one by id.
- TimbnGameIds.Workstations.AlchemyLab
The stations and bench extensions built at the AlchemyLab build desk.
- TimbnGameIds.Workstations.ClaySand
The stations and bench extensions built at the ClaySand build desk.
- TimbnGameIds.Workstations.Conveyor
The stations and bench extensions built at the Conveyor build desk.
- TimbnGameIds.Workstations.Garden
The stations and bench extensions built at the Garden build desk.
- TimbnGameIds.Workstations.Home
The stations and bench extensions built at the Home build desk.
- TimbnGameIds.Workstations.Mine
The stations and bench extensions built at the Mine build desk.
- TimbnGameIds.Workstations.Morgue
The stations and bench extensions built at the Morgue build desk.
- TimbnGameIds.Workstations.Placed
The stations and bench extensions no build desk builds, such as
KitchenOvenfor kitchen_oven.
- TimbnGameIds.Workstations.Sawmill
The stations and bench extensions built at the Sawmill build desk.
- TimbnGameIds.Workstations.Vineyard
The stations and bench extensions built at the Vineyard build desk.
- TimbnGameIds.Workstations.VineyardBasement
The stations and bench extensions built at the VineyardBasement build desk.
- TimbnGameIds.Workstations.Writing
The stations and bench extensions built at the Writing build desk.
- TimbnGameIds.Workstations.Yard
The stations and bench extensions built at the Yard build desk.
- TimbnGlobalData<T>
Holds a plugin's own data that belongs to no save. Core fills Current when the plugin starts and writes it to disk when the game saves, when the player returns to the main menu, when the game quits, when the plugin unloads, and whenever Save() is called. Get one from Saves.RegisterGlobal.
- TimbnGui
Draws the IMGUI a plugin registered with UI.DrawGui and UI.DebugWindow, and offers the shared bits of a debug window.
- TimbnGuiWindow
An IMGUI box for a plugin's debug or cheat menu, opened and closed with a key from the plugin's config. Core draws the box, a title line that names the key to close it, and a "load a save" note while no save is loaded, so the plugin only draws what goes inside. Get one from the plugin's UI.DebugWindow.
- TimbnInput
Tells a mod's hotkeys when the game would take the same key press itself, so a mod key does not fire behind an open window or in the middle of a cutscene. Use it in place of checking IsInGame and
LazyWindowsStackController.ActiveWindowby hand.
- TimbnInteractionHint
The game's "press a key to do something" hint, drawn over a spot in the world the way it is drawn over a chest or a door, for an interaction the game itself does not know about. Get one from the plugin's UI.CreateHint, move it with Show as often as you like, and it is hidden when the plugin unloads or the player returns to the main menu. It shows one key, or two on two rows the way a cargo lift shows Open and Put. While it shows, its keys belong to the hint the way they do for the game's own hints, so the game ignores those presses and does not, for example, drop what the player is carrying. Dispose a hint the plugin is done with, such as one made per visitor.
- TimbnItems
Finds, gives, and drops items in the loaded save. At the main menu every count is zero and nothing moves.
- TimbnLines
Lines of a conversation, such as a talk added with Dialog.AddTalk or what follows an answer.
- TimbnLook
Builds the conditions for a station's extra models. They use the game's own conditional drawer, the way the autopsy table shows its cloth when it holds a body. Pass one to ShowWhen(TimbnLookCondition, TimbnModel, bool).
- TimbnLookCondition
When one of a station's extra models shows, for ShowWhen(TimbnLookCondition, TimbnModel, bool). Build one with TimbnLook. The game checks it again each time the station's items, resources, worker or work change, so the model comes and goes by itself.
- TimbnMarkup
Writes the game's text markup for you, for icons and other lines inside a line of text. Use it in any text a plugin adds, such as quest lines or Text.Add. Lang files write the same markup by hand.
- TimbnModel
A 3D model built from a plugin's PNGs, drawn with the game's own prop shader so it takes the game's lighting, fog and dithering. Get one from Build(string, Action<TimbnModelFaces>).
- TimbnModelFaces
Describes a model made from pictures, for Build(string, Action<TimbnModelFaces>). Every picture is exactly what the player sees, so its own size is the size of the face and you only say where it stands. The game's camera tilts forward and down and never sideways, so only two kinds of face are ever seen, one standing up toward the camera (
Front) and one lying face up (Top), and a solid box is just both of them (Block). Sides, backs and undersides are never built.
- TimbnNeeds
What has to be true before the player can go on, checked but never taken. On an answer the game draws each need as a lock and grays the answer out until they are all met. On a quest or stage they gate its talk, so the NPC only offers it once they are met. To take something from the player, use TimbnCost.
- TimbnNpc
A person in the loaded save that a plugin moves, from the plugin's Npcs.Find or Npcs.Spawn. Every method does nothing and returns false once the person is gone. When the handle is disposed, the plugin unloads or the player returns to the main menu, a walk it started is stopped, its claim is let go, and a person Npcs.Spawn added is removed.
- TimbnNpcBlock
One block of a TimbnNpcDay.
- TimbnNpcDay
A person's day for the plugin's Npcs.Schedule, made of blocks that each start at a time of day. A block's intro runs once when it starts on time and its loop repeats until the next block starts. A block joined late, after a load, a sleep or a jump of the clock, runs its join late steps in place of the intro. A new block waits for a trip picked by Decide to end. The person stops for a conversation or a story scene, and when the game moves them itself the day leaves them to it until a later block starts. A plugin's RunSteps(TimbnNpcSteps, Action?) on them takes over until it ends, and then the day joins the block of the moment late. Shut a vendor's trade window with the plugin's Npcs.CloseTradeWhen.
- TimbnNpcSchedule
A person following a TimbnNpcDay on the game clock, from the plugin's Npcs.Schedule, in every save the player loads. Disposing it, or the plugin unloading, stops the walk it started and lets go of its claim.
- TimbnNpcSteps
A list of things for a person to do in order. Build one in a block's Intro, LateIntro or Loop, return one from Decide(Func<TimbnNpc, TimbnNpcSteps?>) to pick a trip, or hand one to RunSteps(TimbnNpcSteps, Action?) to play it on command. A wait names its clock, game minutes that follow the game's speed or real seconds that do not.
- TimbnNpcTrip
A trip off a person's origin for the ChainTrips(Func<TimbnNpc, TimbnNpcTrip?, TimbnNpcTrip?>) step, in three parts. Leave runs only when the trip starts from the origin, the body always runs, and Return runs only when no next trip chains on, so trips can follow each other without going back to the origin in between.
- TimbnNpcs
Reads the game's own lists of places people go, so a mod never writes a list of point ids, and what the game keeps about a person, such as their reputation resource. To move someone, use the plugin's Npcs property.
- TimbnObjectAction
Something the player can do beside an object in the world that the game gives no interaction for, such as petting a cat on a box. Standing by the object shows a hint, and pressing Interaction walks the player straight to a spot beside it, where they face one way and play an animation for a while. Add it with the plugin's UI.AddObjectAction.
- TimbnPlayer
Reads where the player is in the loaded save and what they know, and makes the one shot changes that need no undo, such as giving money, changing a resource, unlocking a craft or moving them. See the plugin's Player property for changes that have to be undone, such as holding the player still.
- TimbnPluginAudio
Plays the game's own music and sound effects for the plugin, with music put back the way it was when the plugin is done. Reach it through the plugin's Audio property.
- TimbnPluginBalance
Adds definitions to the game's balance tables on behalf of a plugin. The balance is where the game keeps every item, buff, quest, vendor, craft, and building, and GameBalance.Me.GetData looks them up by id. Use this for a kind of definition that has no easier Core API. Definitions are removed when the plugin unloads. Reach it through the plugin's Balance property.
- TimbnPluginClock
Changes how fast the game's time runs on behalf of a plugin, undone when the plugin unloads or the player returns to the main menu. See TimbnClock to read the day and time. Reach it through the plugin's Clock property.
- TimbnPluginCrafts
Adds crafts on behalf of a plugin, at the game's own stations or at ones added with Stations.Add. Each craft is copied from one of the game's, shows up in the station's craft window straight away, and is removed when the plugin unloads. Core keeps a queued one out of the game's save so the save still loads once the plugin is gone. Reach it through the plugin's Crafts property.
- TimbnPluginDialog
Gives NPCs conversations on behalf of a plugin, using the game's own speech bubbles and answer choices. Talks are removed when the plugin unloads. Reach it through the plugin's Dialog property.
- TimbnPluginEvents
Subscribes a plugin to the game's events without any cleanup code. Every subscription is owned by the plugin and removed when it unloads, so an F6 hot reload never leaves an old handler firing. The named events are the ones Core adds something to and the ones mods commonly need, such as a new day or the player using an item, and those that belong to a save follow every save the player loads. Any other game event is one line of GameEvent(Action, Action<Action>, Action<Action>), or of SaveEvent(Action, Action<Action>, Action<Action>) for an event on an object that belongs to the loaded save. Each handler is wrapped so a throw is logged instead of reaching the game. Reach it through the plugin's Events property.
- TimbnPluginMainMenu
Puts a plugin's messages on the main menu using the game's own UI, either as a line of text above the game's credits or as a popup in the game's dialog window. Lines are removed when the plugin unloads. Every Timbn plugin that starts already gets a line with its name and version, so this is for anything beyond that. Reach it through the plugin's MainMenu property.
- TimbnPluginModels
Adds 3D models on behalf of a plugin. It builds models from the plugin's PNGs and draws them with the game's own prop shader. Hand a model to the plugin's Stations to make a buildable station or bench extension, or to AddPart for a part hung on a grave. Everything is freed when the plugin unloads. Reach it through the plugin's Models property.
- TimbnPluginNpcs
Gives people a day on the game clock, moves them and adds new ones for a plugin. Everything is owned by the plugin, so walks it started stop, claims are let go and added people are removed when it unloads. People, groups, events and animations come from the generated TimbnGameIds.Npcs, TimbnGameIds.Groups, TimbnGameIds.NpcEvents and TimbnGameIds.NpcAnimations, and points are named by their id. Reach it through the plugin's Npcs property.
- TimbnPluginPlayer
Acts on the player character, with every change undone when the plugin unloads or the player returns to the main menu. See TimbnPlayer to read where the player is. Reach it through the plugin's Player property.
- TimbnPluginPotions
Adds potions to the game on behalf of a plugin. Each potion becomes a real item, buff, and alchemy formula that brews at the mixer and saves like the game's own, and is removed when the plugin unloads. Reach it through the plugin's Potions property.
- TimbnPluginQuests
Adds quests to the game on behalf of a plugin, removed again when the plugin unloads. Reach it through the plugin's Quests property.
- TimbnPluginSaves
Keeps a plugin's own data with each save. The data goes in a file next to the game's save rather than inside it, so removing the plugin never breaks a save. Core reads the file when a save loads, writes it each time the game saves, and deletes it with the save. Reach it through the plugin's Saves property.
- TimbnPluginSettings
Keeps a plugin's changes to the game in step with its config, so a setting changed in a config menu applies straight away instead of on the next start. A setting whose feature is broken, because a game update broke its patches (see TimbnFeatureAttribute), reads as off here whatever its value. Reach it through the plugin's Settings property.
- TimbnPluginSprites
Adds custom sprites on behalf of a plugin, such as icons for its items and buffs. The game finds sprites by name, so a sprite added here shows anywhere its name is used as an icon id. Sprites are removed and their textures freed when the plugin unloads. Reach it through the plugin's Sprites property.
- TimbnPluginStations
Adds buildable workstations and bench extensions on behalf of a plugin, each offered at a build desk and built, worked and dismantled like the game's own. Core makes every definition the game expects from a few lines, keeps a built one out of the game's save so the save still loads once the plugin is gone, and removes everything when the plugin unloads. Reach it through the plugin's Stations property.
- TimbnPluginTechs
Adds technologies to the game's tech tree on behalf of a plugin, bought with tech points like the game's own and removed when the plugin unloads. Reach it through the plugin's Techs property. A save that bought one keeps working once the plugin is gone, since the game drops tech ids it doesn't know when it loads.
- TimbnPluginText
Adds or overrides the game's text on behalf of a plugin. Quest names, dialog lines, item names, and any other text the game shows is looked up by localization key, and the keys added here are written into the loaded language and every language loaded later. They are removed when the plugin unloads, putting back any shipped text they overrode. Reach it through the plugin's Text property.
- TimbnPluginUI
Puts a plugin's own things on screen (windows, hints and its own GUI) and fades the screen through black with code the plugin can call off, all taken down again when the plugin unloads. See TimbnUI to read the game's windows. Reach it through the plugin's UI property.
- TimbnPotion
Describes a potion for a plugin's Potions.Add. The potion becomes a real item, buff, and alchemy formula, and its buff decides what drinking it does.
- TimbnPotionBuff
The buff a potion applies, and what it does.
- TimbnQuest
A quest added with the plugin's Quests.Add, all its stages included. Keep it to start the quest, mark it ready or complete it from your own code, and pass it to another quest's OfferAfter or ContinuesFrom to chain them.
- TimbnQuestBuilder
Describes a quest for the plugin's Quests.Add, with who gives it, when it is offered, and what the player does. A quest is a list of stages. What is written on the builder itself (Description, TalksWith, Needs, Talk and the rest) is its first stage, and each AddStage(string, string, Action<TimbnQuestStage>) adds the next, which Core turns into one game quest per stage, each continuing the one before, the way the game builds its own storylines. Every line is the text itself, and Core turns it into localization keys named after the quest id. To keep the text only in the plugin's lang files, use the Quests.Add that takes no name with Description(), Line, and the Accept and Decline that take no text.
- TimbnQuestEvent
Something the player does in the game that moves a quest along, for a quest's ReadyOn or StartsOn. Each one matches the game's own event for it by id.
- TimbnQuestOffer
The conversation where the NPC offers the quest. It needs an Accept answer, and picking it starts the quest.
- TimbnQuestRun
One play of a quest whose details change each time, such as which villager asks and for what. A quest's Setup fills it when the mod calls NewRun, Core keeps it with the save until the play ends, and every part of the quest that takes a run reads it. Each value has a name, and text anywhere in the quest shows it with that name in braces, such as {dish}. An NPC shows as their name, an item as its name, a text value as its line (all in the player's language, looked up as the text shows), and a number as itself.
- TimbnQuestStage
One stage of a quest added with AddStage(string, string, Action<TimbnQuestStage>), with its own goal, talk and rewards. Core makes it a game quest of its own that continues the stage before.
- TimbnQuestTalk
The conversation that finishes a quest or a stage, at the NPC from its TalksWith call or the quest giver. The lines play, then the player picks Accept, which takes the stage's cost, gives its reward and completes the stage, or Decline to come back later. Accept with no text completes the stage as soon as the lines are done, for something the NPC simply hands over. When the NPC has a menu of its own, as Herm and Larry do, the talk joins it as one answer. Its text is the talk's first line when that is a PlayerSay, or the quest's name otherwise, and the rest plays once it is picked. A talk that is only an Accept answer puts that answer straight into the menu, with its price and reward. The NPC shows a speech bubble for the talk only once the stage's needs are met and the player can pay its cost, while the answer in an NPC's own menu is there all along, so the player can still ask and decline.
- TimbnQuests
Registers the quests plugins add as real QuestDefs, so the game's own quest system starts, finishes, saves and lists them. It also reads the status of any quest, the game's own included.
- TimbnRewards
What the player gets for an answer or a quest step. An answer, a step's Accept answer included, shows its rewards and the game pays them when it is picked. Any other step pays them when it is done, and a quest's money and reputation also show on its reward line in the quest window.
- TimbnRolls
The dice for a person's daily choices. They give the same numbers for the same key and the same game minute or day, so a reload or a second look at the same moment rolls alike, and they are well mixed, so neighboring minutes, days and people don't roll alike.
- TimbnSafe
Runs a handler and logs a throw instead of letting it reach the game, in one wording for all of Core and the mods. Use it around any code a game event or a callback runs, since a throw that reaches the game can drop the handler for the rest of the session or stop a frame half done.
- TimbnSaveData<T>
Holds a plugin's own data for the loaded save. Core fills Current when a save loads and writes it to disk each time the game saves, so the plugin only reads and changes it. Get one from Saves.Register.
- TimbnStation
A buildable workstation added with the plugin's Stations.Add. Hand it to a craft's In(TimbnStation) so the craft runs there. The ids follow the game's own naming, so a station timbn_smoking_rack has the construction site timbn_smoking_rack_place and the build desk entry timbn_smoking_rack_place_p.
- TimbnStationBuilder
Describes a buildable workstation for the plugin's Stations.Add, with its look, which game station it behaves like, and what it costs at the build desk. Core turns it into the five definitions the game expects, the station, its construction site, the build desk entry and the two removals, with their text, the same way the game's own woodworking bench is set up. Only Model(TimbnModel) is required. A station with no Cost(params (string Item, int Count)[]) is free, and one with no UnlockedBy(string) is on the build desk from the start.
- TimbnTalkOptions
Optional settings for a talk added with the plugin's Dialog.AddTalk.
- TimbnTalk<TSelf>
The steps every conversation shares, for talks added with the plugin's Dialog.AddTalk and for quest conversations. Each line is the text itself, and Core turns it into a localization key named after the talk or quest, numbered in the order written, so a lang file can translate it. Named(string) gives a line a name of its own instead, and Line(string, params object[]) leaves the text out of code and reads it from the plugin's lang files by name. The steps play in order, each waiting for the one before.
- TimbnTechBuilder
Describes a technology for the plugin's Techs.Add, a node on the game's tech tree that the player buys with tech points. It needs At(float, float) for its cell and After(string, params string[]) for the tech that comes before it. What the tech unlocks is set from the other side, by the station's or craft's UnlockedBy with this tech's id.
- TimbnUI
Reads and drives the game's own screens, such as which window is open and the fade to black. See the plugin's UI property for things a plugin shows that have to be taken down again.
- TimbnWorld
Finds things in the loaded world, such as the walkable ground of a scene or the objects near a spot, and reads how the world is doing, such as the graveyard, church and town scores, the town's gratitude and the weather. A mod that uses the navigation graph needs its own reference to AstarPathfindingProject.dll from the game's Managed folder.
- TimbnZombieSkins
The looks the game can roll for one kind of zombie. Get it from TimbnZombies.Looks.
- TimbnZombies
Finds the zombies in the loaded save and the looks the game can give them.
Enums
- TimbnCarryRule
How an item handed to the player with Player.Carry sits in and leaves their hands. Each rule adds one restriction to the one before it.
- TimbnComparison
How a station's value is compared with the number a look condition names.
- TimbnFacing
The way one side of a station faces as the camera sees it. The facing is also the edge of the footprint its dock spot is on, where the player or a zombie stands to work it and finished items drop. The values are the rotation indexes the game saves, and R in build mode turns through the facings a station has in this order. Only Left and Right can be mirrored, since a station facing down or up looks the same flipped.
- TimbnWalk
How a person walks to a point.
- TimbnWeekday
The six days of the game's week, named the way the game names them.