Namespace DaggerfallWorkshop.Game.Questing.Actions
Classes
AddFace
Adds an NPC or Foe portrait to HUD which indicates player is escorting this NPC or Foe.
ClearTask
Unsets 1 or more tasks so they can be triggered again
Climate
DFU extension action. Triggers when the player is at a location with the right climate
CreateNpc
Places a Person to a random building in their home town within current region.
CreateNpcAt
Tipton calls this "create npc at" but its true function seems to reserve a quest site before linking resources. "create npc at" is usually followed by "place npc" but can also be followed by "place item" or "create foe" for example. This action likely initiates some book-keeping in Daggerfall's quest system. In Daggerfall Unity this creates a SiteLink in QuestMachine.
CurePcDisease
Cure specific disease on player through quest system.
DropFace
Drops an NPC or Foe portrait from HUD that player is currently escorting.
DroppedItemAtPlace
EndQuest
GetItem
Give a quest Item to player. Currently ignoring "get item from" as it appears to behave identically to "get item".
GiveItem
GivePc
Give a quest Item to player. This has three formats:
- "give pc anItem" - Displays QuestComplete success message and opens loot window with reward. Could probably be called "give quest reward anItem".
- "give pc nothing" - Also displays QuestComplete success message but does not open loot window as no reward.
- "give pc anItem notify nnnn" - Places item directly into player's inventory and says message ID nnnn.
HideNpc
Hide NPC from world temporarily.
InjuredFoe
Triggers when a Foe has been injured. Will not fire if Foe dies immediately (e.g. player one-shots enemy).
JournalNote
Adds a text entry to the player journal as a note.
JuggleAction
Example action to give contributors a starting point. This action simulates the player juggling some number of objects with a chance to drop each frame. Inherits from ActionTemplate which implements basics of IQuestAction.
KilledFoe
KillFoe
Kills a specified foe instantly
LogMessage
Adds Qrc text message to player journal
MakePcDiseased
Inflicts a disease on player through quest system.
PayMoney
Take an amount from player, and start a task depending on if they could pay. Amount can be gold, letter of credit, or a combination.
PcAt
Condition which checks if player character at a specific place.
PickOneOf
This action triggers a random task
PlaceFoe
PlaceItem
Moves item into world at a reserved site.
PlaceNpc
Moves NPC to a reserved site. Fixed NPCs always starts in their home location but quests can move them around as needed. Random NPCs are instantiated to target location only as they don't otherwise exist in world. Site must be reserved before moving NPC to that location.
PlaySound
PlayVideo
Plays one of the ANIMXXXX.VID videos for quest
Prompt
Prompt which displays a yes/no dialog that executes a different task based on user input.
PromptMulti
Prompt which displays a dialog with 2-4 buttons that each execute a different task based on user selection.
Example usage: promptmulti 1072 4:noChoice dirRand 24:south headS 25:west headW 28:swest headSW
RemoveFoe
RemoveLogMessage
Removes Qrc text message from player journal
RestoreNpc
Restore NPC previously hidden from world.
RestrainFoe
Makes a foe non-hostile until player strikes them again. Quest authors should also use a popup message to inform player that foe is no longer aggressive.
Say
Displays a prompt which user can click to dismiss.
StartStopTimer
Starts and stops a Clock resource timer.
StartTask
Starts a task by setting it active. Added alternate form "setvar taskname".
TakeItem
Remove a quest Item from player.
TotingItemAndClickedNpc
Condition triggers when player clicks on NPC while holding a quest Item in their inventory. Superficially very similar to ClickedNpc but also requires item check to be true. NOTES:
- Will clear click after handling if player clicks NPC while holding specified item.
- If used in combination with ClickedNpc on same NPC elsewhere in quest, always call TotingItemAndClickedNpc check BEFORE ClickedNpc.
UnsetTask
Unsets one or more tasks. Unlike clear, which simply rearms a task, unset will permanently disable that task.
Weather
DFU extension action. Triggers when the current weather matches the condition
WhenPcEntersExits
Trigger for player entering or exiting an exterior type as defined in places table.
Structs
AddFace.SaveData_v1
ClearTask.SaveData_v1
Climate.SaveData_v1
CreateNpc.SaveData_v1
CreateNpcAt.SaveData_v1
CurePcDisease.SaveData_v1
DropFace.SaveData_v1
DroppedItemAtPlace.SaveData_v1
EndQuest.SaveData_v1
GetItem.SaveData_v1
GiveItem.SaveData_v1
GivePc.SaveData_v1
HideNpc.SaveData_v1
InjuredFoe.SaveData_v1
JournalNote.SaveData_v1
JuggleAction.MySaveData
Data to serialize action state can be placed in a struct. It's a good idea to version struct in case you need to migrate between very different state setups in future. For basic changes (e.g. just adding a new field with a sensible default) no migration should be needed. See FullSerializer versioning docs for more: https://github.com/jacobdufault/fullserializer/wiki/Versioning