Table of Contents

Namespace SkyrimForge

Classes

BytePatch

Replaces bytes within the expected bytes, such as the constant of one instruction.

BytePattern

A byte sequence in which some positions match any byte, written as hexadecimal pairs separated by spaces, such as "48 8D 0D ?? ?? ?? ??".

CallPatch

Replaces whole instructions with a call to Target, after which the code following the expected bytes runs.

CodePatch

A patch ICodePatcher applies to code once the bytes at its address match the expected ones.

ConsoleCommandRegistrarExtensions

Provides extension members for IConsoleCommandRegistrar.

DialogueTopic

A player dialogue topic in a dialogue branch that IDialogueBranchFactory creates.

EnumerableExtensions

Provides extension members for IEnumerable<T>.

GameEventExtensions

Provides extension members for IGameEvent<TArgs> of FrameEventArgs.

GameEvent<TArgs>

The subscribers behind an IGameEvent<TArgs>. Whoever raises the event uses this concrete type.

GameEventsExtensions

Provides extension members for IGameEvents.

GameTarget

The game hosted in this process, through which a plugin accesses the player and the game's singleton managers. The framework constructs it and supplies it to a plugin.

InputEventArgsExtensions

Provides extension members for InputEventArgs.

InsertionPatch

Inserts machine code at an address. The expected bytes become a jump to allocated memory, which runs the code and the displaced instructions, then jumps back.

InstructionHook

Runs a handler on each thread that reaches the instruction at Address, before that instruction runs.

JumpPatch

Replaces whole instructions with a jump, so the code at Address continues at Target.

LinkedRefPackage

A package record whose location or target is the linked reference of the actor running it, with the keyword of that link.

PluginIdentityAttribute

States the name under which a plugin's saved state and log file are stored, the plugin being an IPlugin class or a class marked [PapyrusScript].

QuestAlias

A named placeholder of a quest, the base of QuestReferenceAlias and QuestLocationAlias.

QuestLocationAlias

A named placeholder for a location, equivalent to a Creation Kit location alias.

QuestLocationAliasExtensions

Provides extension members for QuestLocationAlias.

QuestObjective

An objective that a QuestStage displays, completes, or fails.

QuestReferenceAlias

A named placeholder for a reference, equivalent to a Creation Kit reference alias.

QuestReferenceAliasExtensions

Provides extension members for QuestReferenceAlias.

QuestScene

A scene of a runtime quest, made of phases played in order.

QuestStage

A stage of a quest, which SetAsync() sets once.

SavedStateEntriesExtensions

Provides extension members for ISavedStateEntries.

SceneAction

One action of a ScenePhase, such as a SceneLine, a SceneTimer, or a ScenePackage.

SceneActorSettings

The flags and behaviors of one actor of a QuestScene. An actor the scene lists none for has the defaults.

SceneConversation

A conversation the actor filling an alias opens with the player in a ScenePhase.

SceneLine

A dialogue action of a ScenePhase, in which the actor filling an alias says responses.

SceneLineLoop

The repetition of a SceneLine, said again after a delay from MinimumDelay to MaximumDelay until its phase ends.

ScenePackage

An AI package the actor filling an alias runs in a ScenePhase.

ScenePhase

A phase of a QuestScene, whose actions start together.

SceneTimer

A timer action of a ScenePhase, which does not end before the timer has elapsed.

SessionValue<T>

A value created anew for each game, whether from a new character or a loaded save.

TaskExtensions

Provides extension members for Task.

TopicResponse

One response a speaker says, shown as a subtitle, in reply to a DialogueTopic the player chooses or in a SceneLine.

UtilityExtensions

Provides extension members for IUtility.

Structs

ActionEventArgs

Arguments for OnAction, SKSE's ActionEvent.

ActivateEventArgs

Arguments for OnActivate, the game's TESActivateEvent.

ActiveEffectApplyRemoveEventArgs

Arguments for OnActiveEffectApplyRemove, the game's TESActiveEffectApplyRemoveEvent.

ActorCellEventArgs

Arguments for OnActorCell, the game's BGSActorCellEvent.

ActorDeathEventArgs

Arguments for OnActorDeath, the game's BGSActorDeathEvent, for which CommonLib declares no public fields.

ActorKillEventArgs

Arguments for OnActorKill, the game's ActorKill::Event.

ActorLocationChangeEventArgs

Arguments for OnActorLocationChange, the game's TESActorLocationChangeEvent.

AnimationEventArgs

One annotation on an actor's animation, matching the game's BSAnimationGraphEvent.

BookReadEventArgs

Arguments for OnBookRead, the game's TESBookReadEvent.

BooksReadEventArgs

Arguments for OnBooksRead, the game's BooksRead::Event.

CalendarTimerElapsedEventArgs

Arguments for OnElapsed.

CameraEventArgs

Arguments for OnCamera, SKSE's CameraEvent.

CellAttachDetachEventArgs

Arguments for OnCellAttachDetach, the game's TESCellAttachDetachEvent.

CellFullyLoadedEventArgs

Arguments for OnCellFullyLoaded, the game's TESCellFullyLoadedEvent.

CellReadyToApplyDecalsEventArgs

Arguments for OnCellReadyToApplyDecals, the game's TESCellReadyToApplyDecalsEvent, for which CommonLib declares no public fields.

ChestsLootedEventArgs

Arguments for OnChestsLooted, the game's ChestsLooted::Event, for which CommonLib declares no public fields.

CombatEventArgs

Arguments for OnCombat, the game's TESCombatEvent.

ContainerChangedEventArgs

Arguments for OnContainerChanged, the game's TESContainerChangedEvent.

ConversationEndEventArgs

Arguments for OnConversationEnd.

CpuContext

The registers of a thread that reached an InstructionHook, as they are before the hooked instruction runs.

CriticalHitEventArgs

Arguments for OnCriticalHit, the game's CriticalHit::Event.

CrosshairRefEventArgs

Arguments for OnCrosshairRef, SKSE's CrosshairRefEvent.

DataLoadedEventArgs

The game has loaded its data files.

DeathEventArgs

Arguments for OnDeath, the game's TESDeathEvent.

DestructionStageChangedEventArgs

Arguments for OnDestructionStageChanged, the game's TESDestructionStageChangedEvent, for which CommonLib declares no public fields.

DialogueTopicContext

Arguments for OnBegin and OnEnd.

DisarmedEventArgs

Arguments for OnDisarmed, the game's DisarmedEvent::Event.

DragonSoulsGainedEventArgs

Arguments for OnDragonSoulsGained, the game's DragonSoulsGained::Event.

EnterBleedoutEventArgs

Arguments for OnEnterBleedout, the game's TESEnterBleedoutEvent.

EquipEventArgs

Arguments for OnEquip, the game's TESEquipEvent.

EventProcessedEventArgs

Arguments for OnEventProcessed, the game's BGSEventProcessedEvent, for which CommonLib declares no public fields.

FormDeleteEventArgs

Arguments for OnFormDelete, the game's TESFormDeleteEvent.

FrameEventArgs

Arguments for OnFrame.

FurnitureEventArgs

Arguments for OnFurniture, the game's TESFurnitureEvent.

GameFunction

A game function, by its Address Library identifier on each runtime.

GameOffset

How far into a function an instruction sits, in bytes, stated separately for each runtime.

GameVariable

A game variable, by its Address Library identifier on each runtime.

GrabReleaseEventArgs

Arguments for OnGrabRelease, the game's TESGrabReleaseEvent.

HitEventArgs

Arguments for OnHit, the game's TESHitEvent.

InitScriptEventArgs

Arguments for OnInitScript, the game's TESInitScriptEvent.

InputEventArgs

Arguments for OnInput, the game's InputEvent.

InputLoadedEventArgs

The game has loaded its input. The event has no other data.

InventoryEventArgs

Arguments for OnInventory, the game's Inventory::Event.

ItemCraftedEventArgs

Arguments for OnItemCrafted, the game's ItemCrafted::Event.

ItemHarvestedEventArgs

Arguments for OnItemHarvested, the game's TESHarvestedEvent::ItemHarvested.

ItemsPickpocketedEventArgs

Arguments for OnItemsPickpocketed, the game's ItemsPickpocketed::Event.

LevelIncreaseEventArgs

Arguments for OnLevelIncrease, the game's LevelIncrease::Event.

LoadGameEventArgs

Arguments for OnLoadGame, the game's TESLoadGameEvent, for which CommonLib declares no public fields.

LocationClearedEventArgs

Arguments for OnLocationCleared, the game's LocationCleared::Event, for which CommonLib declares no public fields.

LocationDiscoveryEventArgs

Arguments for OnLocationDiscovery, the game's LocationDiscovery::Event.

LockChangedEventArgs

Arguments for OnLockChanged, the game's TESLockChangedEvent.

MagicEffectApplyEventArgs

Arguments for OnMagicEffectApply, the game's TESMagicEffectApplyEvent.

MagicWardHitEventArgs

Arguments for OnMagicWardHit, the game's TESMagicWardHitEvent, for which CommonLib declares no public fields.

MenuModeChangeEventArgs

Arguments for OnMenuModeChange, the game's MenuModeChangeEvent.

MenuOpenCloseEventArgs

Arguments for OnMenuOpenClose, the game's MenuOpenCloseEvent.

ModCallbackEventArgs

Arguments for OnModCallback, SKSE's ModCallbackEvent.

MoveAttachDetachEventArgs

Arguments for OnMoveAttachDetach, the game's TESMoveAttachDetachEvent.

NewGameEventArgs

A new character was made. The event has no other data.

NewGameOrSaveLoadingEventArgs

A new game started or a save started loading. The event has no other data.

NiNodeUpdateEventArgs

Arguments for OnNiNodeUpdate, SKSE's NiNodeUpdateEvent.

NoteReadEventArgs

Arguments for OnRead.

ObjectLoadedEventArgs

Arguments for OnObjectLoaded, the game's TESObjectLoadedEvent.

ObjectREFRTranslationEventArgs

Arguments for OnObjectREFRTranslation, the game's TESObjectREFRTranslationEvent, for which CommonLib declares no public fields.

ObjectiveStateEventArgs

Arguments for OnObjectiveState, the game's ObjectiveState::Event.

OpenCloseEventArgs

Arguments for OnOpenClose, the game's TESOpenCloseEvent.

PackageEventArgs

Arguments for OnPackage, the game's TESPackageEvent, for which CommonLib declares no public fields.

PapyrusLogEventArgs

Arguments for OnPapyrusLog, the game's LogEvent.

PapyrusStatsEventArgs

Arguments for OnPapyrusStats, the game's StatsEvent.

PerkEntryRunEventArgs

Arguments for OnPerkEntryRun, the game's TESPerkEntryRunEvent, for which CommonLib declares no public fields.

PlayerBowShotEventArgs

Arguments for OnPlayerBowShot, the game's TESPlayerBowShotEvent.

PlayerLocationEnterEventArgs

Arguments for OnEnter.

PositionPlayerEventArgs

Arguments for OnPositionPlayer, the game's PositionPlayerEvent.

PostLoadEventArgs

Every SKSE plugin has been loaded. The event has no other data.

PostPostLoadEventArgs

Every SKSE plugin has received OnPostLoad. The event has no other data.

QuestInitEventArgs

Arguments for OnQuestInit, the game's TESQuestInitEvent.

QuestSceneActionEndEventArgs

Arguments for OnActionEnd.

QuestSceneBeginEventArgs

Arguments for OnBegin.

QuestSceneEndEventArgs

Arguments for OnEnd.

QuestSceneLineEventArgs

Arguments for OnLineBegin and OnLineEnd.

QuestScenePhaseEventArgs

Arguments for OnPhaseBegin and OnPhaseEnd.

QuestStageContext

Arguments for OnSet.

QuestStageEventArgs

Arguments for OnQuestStage, the game's TESQuestStageEvent.

QuestStageItemDoneEventArgs

Arguments for OnQuestStageItemDone, the game's TESQuestStageItemDoneEvent, for which CommonLib declares no public fields.

QuestStartStopEventArgs

Arguments for OnQuestStartStop, the game's TESQuestStartStopEvent.

QuestStatusEventArgs

Arguments for OnQuestStatus, the game's QuestStatus::Event.

ResetEventArgs

Arguments for OnReset, the game's TESResetEvent.

ResolveNPCTemplatesEventArgs

Arguments for OnResolveNPCTemplates, the game's TESResolveNPCTemplatesEvent.

SaveEventArgs

The save that OnSaveLoading, OnSaveWriting, or OnSaveDeleted concerns.

SaveLoadedEventArgs

The game has finished trying to read a save. The event has no other data.

ScaleformMovieCreatedEventArgs

Arguments for OnMovieCreated.

SceneActionEventArgs

Arguments for OnSceneAction, the game's TESSceneActionEvent, for which CommonLib declares no public fields.

SceneEventArgs

Arguments for OnScene, the game's TESSceneEvent, for which CommonLib declares no public fields.

ScenePhaseEventArgs

Arguments for OnScenePhase, the game's TESScenePhaseEvent, for which CommonLib declares no public fields.

SellEventArgs

Arguments for OnSell, the game's TESSellEvent, for which CommonLib declares no public fields.

ShoutAttackEventArgs

Arguments for OnShoutAttack, the game's ShoutAttack::Event.

SkillIncreaseEventArgs

Arguments for OnSkillIncrease, the game's SkillIncrease::Event.

SksePluginMessage

A message one SKSE plugin sends another.

SleepStartEventArgs

Arguments for OnSleepStart, the game's TESSleepStartEvent, for which CommonLib declares no public fields.

SleepStopEventArgs

Arguments for OnSleepStop, the game's TESSleepStopEvent.

SoulsTrappedEventArgs

Arguments for OnSoulsTrapped, the game's SoulsTrapped::Event.

SpawnPosition

A position FindSpawnPosition(float, float, IEnumerable<NiPoint3>?) finds.

SpellCastEventArgs

Arguments for OnSpellCast, the game's TESSpellCastEvent.

SpellsLearnedEventArgs

Arguments for OnSpellsLearned, the game's SpellsLearned::Event.

StoryEventArgs

Arguments for OnStoryEvent.

StoryEventValue

One value of a story event, named as the game names it and read as its kind directs.

SwitchRaceCompleteEventArgs

Arguments for OnSwitchRaceComplete, the game's TESSwitchRaceCompleteEvent.

TopicInfoEventArgs

Arguments for OnTopicInfo, the game's TESTopicInfoEvent.

TrackedStatsEventArgs

Arguments for OnTrackedStats, the game's TESTrackedStatsEvent.

TrapHitEventArgs

Arguments for OnTrapHit, the game's TESTrapHitEvent, for which CommonLib declares no public fields.

TriggerEnterEventArgs

Arguments for OnTriggerEnter, the game's TESTriggerEnterEvent.

TriggerEventArgs

Arguments for OnTrigger, the game's TESTriggerEvent.

TriggerLeaveEventArgs

Arguments for OnTriggerLeave, the game's TESTriggerLeaveEvent.

TriggerZoneEventArgs

Arguments for OnEnter and OnLeave.

UniqueIDChangeEventArgs

Arguments for OnUniqueIDChange, the game's TESUniqueIDChangeEvent.

UserEventEnabledEventArgs

Arguments for OnUserEventEnabled, the game's UserEventEnabled.

WaitStartEventArgs

Arguments for OnWaitStart, the game's TESWaitStartEvent, for which CommonLib declares no public fields.

WaitStopEventArgs

Arguments for OnWaitStop, the game's TESWaitStopEvent.

Xmm

One 128-bit SSE register, as an InstructionHandler reads and changes it through CpuContext.

Interfaces

IAnimationEvents

An actor's animation events, which are the annotations on its animations. Each is raised on the frame the animation arrives at it.

IBookMenuPresenter

Shows runtime text in the book menu.

ICalendarTimer

A timer on the game's calendar that ICalendarTimerFactory creates.

ICalendarTimerFactory

Creates timers on the game's calendar that are saved with the game.

ICodePatcher

Changes the machine code of the game, or of a native SKSE plugin, where it matches the bytes each patch expects.

IConsole

Writes to the game's console, which the player opens with the console key.

IConsoleCommandRegistrar

Adds console commands that run managed handlers.

IConsoleCommands

Runs the console commands the game declares, and reports the arguments one of them declares.

ICooldown

A span of UnpausedTime from each start, which a plugin tests to prevent an action, such as a reaction to a hit, from repeating within it. A new game or a save load ends it.

ICourier

Sends items to the player by the game's courier.

ICustomMenuRegistrar

Registers a menu of the plugin's own, which the game then constructs, shows, and drives as it does its own.

IDebug

The game's debug functions, which surface information while it runs.

IDialogueBranch

A dialogue branch created by IDialogueBranchFactory.

IDialogueBranchFactory

Creates dialogue branches at runtime, without an .esp file, from DialogueTopic trees.

IFollowers

Sets and dismisses the player's follower and animal through the game's DialogueFollower quest (000750BA).

IForceGreet

Makes an actor walk to the player and start a conversation, using the game's force-greet package.

IFunctionHooks

Hooks a game function at a virtual method table entry, a call instruction, or the function's entry.

IGameEvent<TArgs>

A game event to which a plugin can subscribe.

IGameEvents

The game events the framework exposes to plugins.

IGameFileSystem

The files under the game's Data folder, whether loose or packed in a .bsa archive. A loose file is read in preference to an archived one at the same path.

IGameSession

The current game, from a new character or a loaded save until the next one.

IGreetingSilencer

Silences the greetings an actor says as a conversation with the player opens and to the player nearby outside one, and the remarks it says unprompted outside a conversation: idle chatter and the lines said on noticing a corpse.

ILog

A destination for log lines from the framework or a plugin.

IMessageBoxPrompter

Puts a question on the screen and reports which button was pressed.

IModEvents

Sends mod events. Every registration for an event's name receives it, including the sending plugin's own.

IPerPluginSavedState

A plugin's state between sessions, stored in the SKSE co-save beside the player's save file rather than in a file of the plugin's own.

IPlayerLocationEvents

Events for the location the player is in.

IPlayerPositionHistory

The positions the player has stood on in the loaded game, and the search for a position near the player to place an actor.

IPlugin

A unit of behavior loaded into a game.

IPluginCollection

A collection of IPlugin. Allows one IPlugin to look up another to access its public members.

IPluginServiceSource

Adds a library's services so plugins can declare them as constructor parameters for dependency injection.

IQuestLocationAliasEvents

The game's events about the player and the location a QuestLocationAlias is filled with.

IQuestObjectives

The objectives of an IRuntimeQuest.

IQuestReferenceAliasEvents

The events of IGameEvents that name the reference a QuestReferenceAlias is filled with at the time of the raise.

IQuestSceneEvents

The events of one scene or of every scene of a quest.

IQuestScenes

The scenes of an IRuntimeQuest as a group.

IQuestStages

The stages of an IRuntimeQuest.

IReadableNotes

Makes references readable notes whose pages a plugin writes at runtime.

IRuntimeQuest

A quest created by IRuntimeQuestFactory.

IRuntimeQuestFactory

Creates quests that the journal lists, at runtime and without an .esp file.

ISavedStateDictionary<TKey, TValue>

A dictionary in a saved-state store whose values are stored as text.

ISavedStateEntries

The text and form IDs a plugin stores under keys it chooses.

ISavedStateEntriesDictionary<TKey>

A dictionary in a saved-state store whose values are stores of their own.

ISavedStateFormPair<TForm>

One form ID in a saved-state store, with the key beside it so a caller names it once.

ISavedStateList

A list in a saved-state store, whose elements are stores of their own.

ISavedStatePair<T>

One entry of a saved-state store, with the key beside it so a caller names it once and reads and writes it as T.

ISavedStateRecordPair<T>

One record in a saved-state store, read and written as T under one key.

ISavedStateStringPair

One text entry in a saved-state store.

ISavedStateStringSet

A set of text in a saved-state store.

IScaleformFunctionRegistrar

Puts a function on a Scaleform movie that ActionScript calls and this plugin implements, which is the direction ICustomMenuRegistrar and ScaleformValue do not cover: those reach into a movie, and this lets the movie reach back.

IServiceRegistrar

Registers services for dependency injection.

ISkseLogDirectory

The folder that receives SKSE's logs for the running game, SkyrimForge's own log among them.

ISksePluginMessenger

Sends messages to the other SKSE plugins in the load order and receives what they send.

This is one of the two ways a plugin reaches another. The commoner is an exported function the publisher names and the consumer finds through its module, which needs nothing from the framework: NativeLibrary.TryGetExport reaches it and a function pointer calls it. This is the other way, and it is the only one by which another plugin reaches a plugin here unprompted.

IStoryEvents

The story manager's events: crafting, arrest, a killing, a relationship changing, and every other kind the game registers.

ISubscription

A handle to one registration a plugin made, such as a handler subscribed to an event or a package added to an alias.

ITaskQueue

Queues work to run at a moment the game is stopped for it, which is how a plugin calls the game from a thread of its own.

ITriggerZone

A zone ITriggerZoneFactory creates.

ITriggerZoneFactory

Creates zones around references that raise events as the player enters and leaves them.

IUnvoicedSpeech

Shows dialogue lines that have no voice recording as subtitles under the speaker, with a timed mouth animation.

IUtility

Waits and cooldowns measured by UnpausedTime.

IWorldMapMarkers

Adds markers to the world map at runtime, each a place the player can fast travel to.

Enums

ConversationEndReason

The way a conversation that showed a dialogue branch ended.

DisplacedPlacement

The order of an InsertionPatch's code and the instructions it displaces.

QuestOutcome

How a QuestStage ends the quest or its open objectives.

QuestSceneEndReason

The way a QuestScene ended.

QuestSceneStartResult

The result of Start(int) and ForceStart(int).

SceneInterruption

The effect an event involving a scene's actor has on the scene.

ScenePlayerControls

The player controls a QuestScene disables while it plays. Each member is named for a parameter of Papyrus's Game.DisablePlayerControls.

SpawnPositionSource

The source a SpawnPosition was found in, in the order FindSpawnPosition(float, float, IEnumerable<NiPoint3>?) tests them.

StoryEventValueKind

The type of one value of a story event.

Delegates

AsyncGameEventHandler<TArgs>

Handles a game event asynchronously. The game waits for the handler to return its task.

GameEventHandler<TArgs>

Handles a game event. The game waits for the handler to return.

InstructionHandler

Runs on a thread that reaches an InstructionHook, before the hooked instruction.