2024-05-25 21:51:37 +00:00
{
"$schema" : "https://json-schema.org/draft/2020-12/schema" ,
2024-07-26 23:32:17 +00:00
"$id" : "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json" ,
2024-05-25 21:51:37 +00:00
"title" : "Questionable V1" ,
"description" : "A series of quest sequences" ,
"type" : "object" ,
"properties" : {
2024-07-14 10:39:02 +00:00
"$schema" : {
"type" : "string" ,
2024-07-26 23:32:17 +00:00
"const" : "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json"
2024-07-14 10:39:02 +00:00
} ,
2024-05-25 21:51:37 +00:00
"Author" : {
"description" : "Author of the quest sequence" ,
2024-07-21 00:06:33 +00:00
"type" : [
"string" ,
"array"
] ,
2024-05-25 21:51:37 +00:00
"items" : {
"type" : "string"
}
} ,
2024-07-15 21:09:09 +00:00
"Disabled" : {
"type" : "boolean"
} ,
2024-05-25 21:51:37 +00:00
"Comment" : {
"type" : "string"
} ,
2024-07-14 10:44:31 +00:00
"$" : {
"type" : "string" ,
"description" : "Dev Comment (not visible in-game)"
} ,
2024-05-25 21:51:37 +00:00
"TerritoryBlacklist" : {
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"QuestSequence" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
"properties" : {
"Sequence" : {
"type" : "integer" ,
"minimum" : 0 ,
"maximum" : 255
} ,
"Steps" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
"properties" : {
"DataId" : {
"type" : "integer" ,
2024-05-27 19:54:34 +00:00
"description" : "The data id of the NPC/Object/Aetheryte/Aether Current" ,
2024-05-25 21:51:37 +00:00
"exclusiveMinimum" : 0
} ,
"Position" : {
"type" : "object" ,
2024-05-27 19:54:34 +00:00
"description" : "Position to (typically) walk to" ,
2024-05-25 21:51:37 +00:00
"properties" : {
"X" : {
"type" : "number"
} ,
"Y" : {
"type" : "number"
} ,
"Z" : {
"type" : "number"
}
} ,
"required" : [
"X" ,
"Y" ,
"Z"
]
} ,
2024-05-26 19:45:26 +00:00
"StopDistance" : {
2024-05-30 21:38:50 +00:00
"type" : [
"number" ,
"null"
] ,
2024-05-27 19:54:34 +00:00
"description" : "Set if pathfinding should stop closer or further away from the default stop distance" ,
2024-05-26 19:45:26 +00:00
"exclusiveMinimum" : 0
} ,
2024-07-13 20:01:06 +00:00
"IgnoreDistanceToObject" : {
"type" : "boolean" ,
"description" : "Most interactions with objects are checked for a Y (height) difference of 2 in-game units. If set to true, the game won't attempt to get any closer if the height difference is larger than this."
} ,
2024-05-25 21:51:37 +00:00
"TerritoryId" : {
"type" : "integer" ,
2024-05-27 19:54:34 +00:00
"description" : "The territory id associated with the location" ,
2024-05-25 21:51:37 +00:00
"exclusiveMinimum" : 0
} ,
2024-05-28 20:24:06 +00:00
"TargetTerritoryId" : {
"type" : "integer" ,
"description" : "If set, this step is complete (movement-wise) if this territory id is reached" ,
"exclusiveMinimum" : 0
} ,
2024-05-25 21:51:37 +00:00
"InteractionType" : {
"type" : "string" ,
2024-05-27 19:54:34 +00:00
"description" : "What to do at the position" ,
2024-05-25 21:51:37 +00:00
"enum" : [
"Interact" ,
2024-05-26 13:43:33 +00:00
"WalkTo" ,
2024-05-27 19:54:34 +00:00
"AttuneAethernetShard" ,
2024-05-25 21:51:37 +00:00
"AttuneAetheryte" ,
2024-05-26 13:43:33 +00:00
"AttuneAetherCurrent" ,
2024-05-25 21:51:37 +00:00
"Combat" ,
"UseItem" ,
2024-06-13 15:35:33 +00:00
"EquipItem" ,
2024-05-28 22:17:19 +00:00
"Say" ,
2024-05-25 21:51:37 +00:00
"Emote" ,
2024-07-10 19:01:41 +00:00
"Action" ,
2024-05-27 19:54:34 +00:00
"WaitForNpcAtPosition" ,
2024-05-31 23:49:11 +00:00
"WaitForManualProgress" ,
"Duty" ,
"SinglePlayerDuty" ,
2024-06-01 12:30:20 +00:00
"Jump" ,
2024-07-24 18:47:08 +00:00
"Dive" ,
2024-06-24 16:15:45 +00:00
"Instruction" ,
"AcceptQuest" ,
"CompleteQuest"
2024-05-25 21:51:37 +00:00
]
} ,
"Disabled" : {
2024-05-29 19:22:58 +00:00
"description" : "Whether this step is disabled (see SkipIf for more control)" ,
2024-05-27 19:54:34 +00:00
"type" : "boolean"
} ,
"DisableNavmesh" : {
"description" : "If true, will go to the position in a straight line instead of using pathfinding" ,
2024-05-25 21:51:37 +00:00
"type" : "boolean"
} ,
2024-05-27 19:54:34 +00:00
"Mount" : {
2024-05-30 21:38:50 +00:00
"type" : [
"boolean" ,
"null"
] ,
2024-05-27 19:54:34 +00:00
"description" : "If true, will mount regardless of distance to position. If false, will unmount."
} ,
2024-05-27 21:51:11 +00:00
"Fly" : {
"type" : "boolean" ,
"description" : "If true and flying is unlocked in a zone, will use a flight path"
} ,
2024-07-12 21:58:48 +00:00
"Land" : {
"type" : "boolean" ,
"description" : "If true and flying, will attempt to land on the ground"
} ,
2024-06-01 16:46:57 +00:00
"Sprint" : {
"type" : [
"boolean" ,
"null"
]
} ,
2024-07-27 13:39:47 +00:00
"AetheryteShortcutIf" : {
2024-05-27 19:54:34 +00:00
"description" : "The Aetheryte to teleport to (before moving)" ,
2024-07-17 10:58:08 +00:00
"$ref" : "#/$defs/Aetheryte"
2024-05-26 19:45:26 +00:00
} ,
2024-05-25 21:51:37 +00:00
"AethernetShortcut" : {
"type" : "array" ,
2024-05-27 19:54:34 +00:00
"description" : "A pair of aethernet locations (from + to) to use as a shortcut" ,
2024-06-13 15:35:33 +00:00
"minItems" : 2 ,
2024-05-25 21:51:37 +00:00
"maxItems" : 2 ,
"items" : {
2024-07-17 10:58:08 +00:00
"$ref" : "#/$defs/AethernetShard"
2024-05-25 21:51:37 +00:00
}
} ,
2024-05-27 19:54:34 +00:00
"ItemId" : {
2024-05-30 21:38:50 +00:00
"type" : [
"number" ,
"null"
] ,
2024-05-27 19:54:34 +00:00
"description" : "The Item to use" ,
"exclusiveMinimum" : 0
} ,
2024-05-25 21:51:37 +00:00
"SkipIf" : {
2024-07-27 13:39:47 +00:00
"type" : "null" ,
"deprecationMessage" : "Please use SkipConditions instead"
} ,
"SkipConditions" : {
"type" : "object" ,
"properties" : {
"StepIf" : {
"type" : "object" ,
"properties" : {
"Never" : {
"type" : "boolean"
} ,
"Flying" : {
"type" : "string" ,
"enum" : [
"Locked" ,
"Unlocked"
]
} ,
"Chocobo" : {
"type" : "string" ,
"enum" : [
"Locked" ,
"Unlocked"
]
} ,
"NotTargetable" : {
"type" : "boolean"
} ,
"InTerritory" : {
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"NotInTerritory" : {
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"Item" : {
"type" : "object" ,
"properties" : {
"NotInInventory" : {
"type" : "boolean"
}
}
} ,
"QuestsAccepted" : {
"type" : "array" ,
"items" : {
"type" : "number"
}
} ,
"QuestsCompleted" : {
"type" : "array" ,
"items" : {
"type" : "number"
}
} ,
"ExtraCondition" : {
"type" : "string" ,
"enum" : [
"WakingSandsMainArea"
]
}
}
} ,
"AetheryteShortcutIf" : {
"type" : "object" ,
"properties" : {
"Never" : {
"type" : "boolean"
} ,
"InSameTerritory" : {
"type" : "boolean"
}
}
}
} ,
"additionalProperties" : false
2024-05-25 21:51:37 +00:00
} ,
2024-06-01 16:46:57 +00:00
"CompletionQuestVariablesFlags" : {
2024-07-14 19:31:07 +00:00
"$ref" : "#/$defs/CompletionFlags"
2024-06-01 16:46:57 +00:00
} ,
2024-07-20 17:09:51 +00:00
"RequiredQuestVariables" : {
"type" : "array" ,
"description" : "Certain quests (primarily beast tribes/allied societies) have a RNG element to spawning targets, and the step should be skipped in its entirety if none of the sets below match" ,
"minItems" : 6 ,
"maxItems" : 6 ,
"items" : {
2024-07-21 00:06:33 +00:00
"type" : [
"array" ,
"null"
] ,
2024-07-20 17:09:51 +00:00
"items" : {
"type" : [
"number" ,
"object"
] ,
"properties" : {
"High" : {
"type" : [
"number" ,
"null"
] ,
"minimum" : 0 ,
"maximum" : 15
} ,
"Low" : {
"type" : [
"number" ,
"null"
] ,
"minimum" : 0 ,
"maximum" : 15
}
} ,
"minimum" : 0 ,
"maximum" : 255
}
}
} ,
2024-06-18 15:48:45 +00:00
"DelaySecondsAtStart" : {
"description" : "Time to wait before starting" ,
"type" : [
"number" ,
"null"
]
} ,
2024-06-01 20:01:50 +00:00
"Comment" : {
"type" : "string"
}
} ,
"required" : [
"TerritoryId" ,
"InteractionType"
] ,
"allOf" : [
{
"if" : {
"properties" : {
"InteractionType" : {
2024-06-15 21:32:58 +00:00
"anyOf" : [
{
"const" : "Interact"
} ,
{
"const" : "SinglePlayerDuty"
}
]
2024-06-01 20:01:50 +00:00
}
}
} ,
"then" : {
"required" : [
"DataId"
]
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "WalkTo"
}
}
} ,
"then" : {
"required" : [
"Position"
]
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
2024-07-17 10:58:08 +00:00
"const" : "AttuneAetheryte"
2024-06-01 20:01:50 +00:00
}
}
} ,
"then" : {
2024-07-17 10:58:08 +00:00
"properties" : {
"Aetheryte" : {
"$ref" : "#/$defs/Aetheryte"
} ,
"DataId" : {
"type" : "null"
} ,
"Position" : {
"type" : "null"
}
} ,
2024-06-01 20:01:50 +00:00
"required" : [
2024-07-17 10:58:08 +00:00
"Aetheryte"
]
2024-07-17 18:40:38 +00:00
} ,
"else" : {
"properties" : {
"Aetheryte" : {
"type" : "null"
}
}
2024-07-17 10:58:08 +00:00
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "AttuneAethernetShard"
}
}
} ,
"then" : {
"properties" : {
"AethernetShard" : {
"$ref" : "#/$defs/AethernetShard"
} ,
"DataId" : {
"type" : "null"
} ,
"Position" : {
"type" : "null"
}
} ,
"required" : [
"AethernetShard"
2024-06-01 20:01:50 +00:00
]
2024-07-17 18:40:38 +00:00
} ,
"else" : {
"properties" : {
"AethernetShard" : {
"type" : "null"
}
}
2024-06-01 20:01:50 +00:00
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "AttuneAetherCurrent"
}
}
} ,
"then" : {
"properties" : {
"AetherCurrentId" : {
"type" : "integer" ,
"description" : "The aether current id, used to check if a given aetheryte is unlocked" ,
"exclusiveMinimum" : 0
}
} ,
"required" : [
"DataId" ,
"Position" ,
"AetherCurrentId"
]
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Combat"
}
}
} ,
"then" : {
2024-06-01 16:46:57 +00:00
"properties" : {
2024-06-01 20:01:50 +00:00
"EnemySpawnType" : {
"type" : "string" ,
"description" : "Determines how enemy spawning is handled in combat locations" ,
"enum" : [
"AutoOnEnterArea" ,
"AfterInteraction" ,
"AfterItemUse" ,
"OverworldEnemies"
]
2024-06-01 16:46:57 +00:00
} ,
2024-06-01 20:01:50 +00:00
"KillEnemyDataIds" : {
"description" : "The enemy data ids which are supposed to be killed" ,
"type" : "array" ,
"items" : {
"type" : "integer"
}
2024-07-14 19:31:07 +00:00
} ,
"ComplexCombatData" : {
"description" : "If multiple different enemies are supposed to be killed in a single quest step, this typically is handled via items" ,
"type" : "array" ,
"items" : {
"type" : "object" ,
"properties" : {
"DataId" : {
"description" : "The enemy data id which is supposed to be killed" ,
"type" : "integer"
} ,
2024-07-15 18:20:46 +00:00
"MinimumKillCount" : {
"description" : "Overworld mobs: If this number of mobs has been killed, will wait a bit before attempting to pull another mob to see if the quest progresses" ,
"type" : "integer"
} ,
2024-07-14 19:31:07 +00:00
"RewardItemId" : {
"type" : "integer"
} ,
"RewardItemCount" : {
"type" : "integer"
} ,
"CompletionQuestVariablesFlags" : {
"$ref" : "#/$defs/CompletionFlags"
2024-07-21 19:33:38 +00:00
} ,
"IgnoreQuestMarker" : {
"type" : "boolean"
2024-07-14 19:31:07 +00:00
}
} ,
"required" : [
"DataId"
]
}
2024-07-21 19:33:38 +00:00
} ,
"CombatDelaySecondsAtStart" : {
"type" : "number"
2024-06-01 16:46:57 +00:00
}
} ,
"required" : [
2024-06-01 20:01:50 +00:00
"Position" ,
2024-07-14 19:31:07 +00:00
"EnemySpawnType"
] ,
"oneOf" : [
{
"required" : [
"KillEnemyDataIds"
]
} ,
{
"required" : [
"ComplexCombatData"
]
}
2024-06-01 16:46:57 +00:00
]
}
} ,
2024-06-13 23:10:05 +00:00
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "UseItem"
} ,
"ItemId" : {
"not" : {
"const" : 30362
}
}
}
} ,
"then" : {
"required" : [
"Position"
]
}
} ,
2024-06-01 20:01:50 +00:00
{
"if" : {
2024-07-21 00:06:33 +00:00
"anyOf" : [
{
"properties" : {
"InteractionType" : {
"const" : "UseItem"
}
}
} ,
{
"properties" : {
"InteractionType" : {
"const" : "Combat"
} ,
"EnemySpawnType" : {
"const" : "AfterItemUse"
}
}
2024-06-01 20:01:50 +00:00
}
2024-07-21 00:06:33 +00:00
]
2024-06-01 20:01:50 +00:00
} ,
"then" : {
"properties" : {
"GroundTarget" : {
"type" : [
"boolean" ,
"null"
] ,
"default" : false
}
} ,
"required" : [
"ItemId"
]
}
} ,
2024-06-13 15:35:33 +00:00
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "EquipItem"
}
}
} ,
"then" : {
"required" : [
"ItemId"
]
}
} ,
2024-06-01 20:01:50 +00:00
{
"if" : {
"properties" : {
"InteractionType" : {
2024-07-08 18:46:01 +00:00
"anyOf" : [
{
"const" : "Emote"
} ,
{
"const" : "AcceptQuest"
} ,
{
"const" : "CompleteQuest"
}
]
2024-06-01 20:01:50 +00:00
}
}
} ,
"then" : {
"properties" : {
"Emote" : {
"type" : "string" ,
"description" : "The emote to use" ,
"enum" : [
"stretch" ,
"wave" ,
"rally" ,
"deny" ,
2024-06-13 15:35:33 +00:00
"pray" ,
"slap" ,
"doubt" ,
2024-07-07 16:36:53 +00:00
"psych" ,
"cheer" ,
2024-07-08 18:46:01 +00:00
"happy" ,
"poke" ,
2024-07-11 00:56:42 +00:00
"flex" ,
2024-07-12 21:58:48 +00:00
"soothe" ,
2024-07-13 19:58:41 +00:00
"me" ,
"welcome" ,
2024-07-17 02:31:54 +00:00
"imperialsalute" ,
2024-07-17 18:40:38 +00:00
"pet" ,
2024-07-18 14:33:48 +00:00
"dance" ,
2024-07-18 16:38:23 +00:00
"respect" ,
2024-07-24 01:33:03 +00:00
"lookout" ,
2024-07-25 00:18:17 +00:00
"kneel" ,
"bow"
2024-06-01 20:01:50 +00:00
]
}
2024-07-08 18:46:01 +00:00
}
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Emote"
}
}
} ,
"then" : {
2024-06-01 20:01:50 +00:00
"required" : [
"Position" ,
"Emote"
]
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Say"
}
}
} ,
"then" : {
"properties" : {
"ChatMessage" : {
2024-06-03 12:20:02 +00:00
"type" : "object" ,
"description" : "The text to use with /say" ,
"properties" : {
"ExcelSheet" : {
"type" : "string"
} ,
"Key" : {
"type" : "string"
}
} ,
"required" : [
"Key"
]
2024-06-01 20:01:50 +00:00
}
} ,
"required" : [
"ChatMessage"
]
}
} ,
2024-07-10 19:01:41 +00:00
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Action"
}
}
} ,
"then" : {
"properties" : {
"Action" : {
"type" : "string" ,
"description" : "The action to use" ,
"enum" : [
2024-07-12 21:58:48 +00:00
"Esuna" ,
2024-07-24 13:45:03 +00:00
"Physick" ,
2024-07-20 17:09:51 +00:00
"Siphon Snout" ,
2024-07-12 21:58:48 +00:00
"Red Gulal" ,
"Yellow Gulal" ,
"Blue Gulal"
2024-07-10 19:01:41 +00:00
]
}
} ,
"required" : [
"Action"
]
}
} ,
2024-06-01 20:01:50 +00:00
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Jump"
}
}
} ,
"then" : {
"properties" : {
"JumpDestination" : {
"type" : "object" ,
"properties" : {
"Position" : {
"type" : "object" ,
"description" : "Position to try reaching after the jump" ,
"properties" : {
"X" : {
"type" : "number"
} ,
"Y" : {
"type" : "number"
} ,
"Z" : {
"type" : "number"
}
} ,
"required" : [
"X" ,
"Y" ,
"Z"
]
} ,
"StopDistance" : {
"type" : [
"number" ,
"null"
] ,
"description" : "Set if pathfinding should stop closer or further away from the default stop distance" ,
"exclusiveMinimum" : 0
} ,
"DelaySeconds" : {
"type" : [
"number" ,
"null"
]
2024-07-24 18:47:08 +00:00
} ,
"Type" : {
"type" : "string" ,
"enum" : [
"SingleJump" ,
"RepeatedJumps"
] ,
"default" : "SingleJump"
2024-06-01 20:01:50 +00:00
}
} ,
"required" : [
"Position"
]
}
} ,
"required" : [
"Position" ,
"JumpDestination"
]
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
2024-06-06 16:49:49 +00:00
"anyOf" : [
{
"const" : "Interact"
} ,
{
"const" : "SinglePlayerDuty"
} ,
{
"const" : "WaitForManualProgress"
2024-07-07 16:36:53 +00:00
} ,
{
"const" : "AcceptQuest"
} ,
{
"const" : "CompleteQuest"
2024-07-17 18:40:38 +00:00
} ,
{
"const" : "Instruction"
2024-07-24 18:47:08 +00:00
} ,
2024-07-26 17:12:34 +00:00
{
"const" : "Say"
} ,
2024-07-24 18:47:08 +00:00
{
"const" : "Emote"
} ,
{
"const" : "UseItem"
2024-06-06 16:49:49 +00:00
}
]
2024-06-01 20:01:50 +00:00
}
}
} ,
"then" : {
"properties" : {
"DialogueChoices" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
"properties" : {
2024-06-03 21:17:35 +00:00
"Type" : {
"type" : "string" ,
"enum" : [
"YesNo" ,
2024-06-12 16:03:48 +00:00
"List"
2024-06-03 21:17:35 +00:00
]
} ,
2024-06-01 20:01:50 +00:00
"ExcelSheet" : {
"type" : "string"
}
} ,
"required" : [
2024-06-12 16:03:48 +00:00
"Type"
2024-06-03 21:17:35 +00:00
] ,
"allOf" : [
{
"if" : {
"properties" : {
"Type" : {
2024-06-12 16:03:48 +00:00
"const" : "YesNo"
2024-06-03 21:17:35 +00:00
}
}
} ,
"then" : {
"properties" : {
2024-06-12 16:03:48 +00:00
"Prompt" : {
"type" : [
"string" ,
"integer"
]
} ,
2024-06-03 21:17:35 +00:00
"Yes" : {
"type" : "boolean" ,
"default" : true
}
} ,
"required" : [
2024-06-12 16:03:48 +00:00
"Prompt" ,
2024-06-03 21:17:35 +00:00
"Yes"
]
}
} ,
{
"if" : {
"properties" : {
"Type" : {
2024-06-12 16:03:48 +00:00
"const" : "List"
2024-06-03 21:17:35 +00:00
}
}
} ,
"then" : {
"properties" : {
2024-06-12 16:03:48 +00:00
"Prompt" : {
"type" : [
"string" ,
"integer" ,
"null"
]
} ,
2024-06-03 21:17:35 +00:00
"Answer" : {
2024-06-12 16:03:48 +00:00
"type" : [
"string" ,
"integer"
]
2024-06-03 21:17:35 +00:00
}
} ,
"required" : [
2024-06-12 16:03:48 +00:00
"Prompt" ,
2024-06-03 21:17:35 +00:00
"Answer"
]
}
}
2024-06-01 20:01:50 +00:00
]
}
2024-07-09 14:58:26 +00:00
} ,
"PointMenuChoices" : {
"type" : "array" ,
"items" : {
"type" : "integer" ,
"minimum" : 0
}
2024-06-01 20:01:50 +00:00
}
2024-06-03 21:17:35 +00:00
}
2024-06-01 20:01:50 +00:00
}
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "Duty"
}
}
} ,
"then" : {
"properties" : {
"ContentFinderConditionId" : {
"type" : "integer" ,
2024-07-17 10:58:08 +00:00
"exclusiveMinimum" : 0 ,
"exclusiveMaximum" : 3000
} ,
"DataId" : {
"type" : "null"
} ,
"Position" : {
"type" : "null"
2024-06-01 20:01:50 +00:00
}
} ,
"required" : [
"ContentFinderConditionId"
]
}
2024-06-16 16:27:07 +00:00
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "WaitForNpcAtPosition"
}
}
} ,
"then" : {
"properties" : {
"NpcWaitDistance" : {
"type" : "number" ,
"exclusiveMinimum" : 0
}
}
}
2024-06-24 16:15:45 +00:00
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "AcceptQuest"
}
}
} ,
"then" : {
"properties" : {
2024-07-11 00:56:42 +00:00
"PickUpQuestId" : {
2024-06-24 16:15:45 +00:00
"type" : [
"null" ,
"number"
] ,
"description" : "Determines the quest which should be accepted. If empty/null, accepts the quest corresponding to the file name."
}
}
}
2024-07-11 00:56:42 +00:00
} ,
{
"if" : {
"properties" : {
"InteractionType" : {
"const" : "CompleteQuest"
}
}
} ,
"then" : {
"properties" : {
"TurnInQuestId" : {
"type" : [
"null" ,
"number"
] ,
"description" : "Determines the quest which should be turned in. If empty/null, turns in the quest corresponding to the file name."
} ,
"NextQuestId" : {
"type" : [
"null" ,
"number"
] ,
"description" : "For quest chains (e.g. DT healer role quests) Which quest to do next, given that you meet the required level."
}
}
}
2024-05-25 21:51:37 +00:00
}
]
}
} ,
"Comment" : {
"type" : "string"
}
} ,
"required" : [
"Sequence"
2024-07-14 01:42:30 +00:00
] ,
"additionalProperties" : false
2024-05-25 21:51:37 +00:00
}
}
} ,
"required" : [
2024-07-14 10:39:02 +00:00
"$schema" ,
2024-06-01 20:01:50 +00:00
"QuestSequence" ,
2024-05-25 21:51:37 +00:00
"Author"
2024-07-14 01:42:30 +00:00
] ,
2024-07-14 19:31:07 +00:00
"additionalProperties" : false ,
"$defs" : {
2024-07-17 10:58:08 +00:00
"Aetheryte" : {
"type" : "string" ,
"enum" : [
"Gridania" ,
"Central Shroud - Bentbranch Meadows" ,
"East Shroud - Hawthorne Hut" ,
"South Shroud - Quarrymill" ,
"South Shroud - Camp Tranquil" ,
"North Shroud - Fallgourd Float" ,
"Ul'dah" ,
"Western Thanalan - Horizon" ,
"Central Thanalan - Black Brush Station" ,
"Eastern Thanalan - Camp Drybone" ,
"Southern Thanalan - Little Ala Mhigo" ,
"Southern Thanalan - Forgotten Springs" ,
"Northern Thanalan - Camp Bluefog" ,
"Northern Thanalan - Ceruleum Processing Plant" ,
"Limsa Lominsa" ,
"Middle La Noscea - Summerford Farms" ,
"Lower La Noscea - Moraby Drydocks" ,
"Eastern La Noscea - Costa Del Sol" ,
"Eastern La Noscea - Wineport" ,
"Western La Noscea - Swiftperch" ,
"Western La Noscea - Aleport" ,
"Upper La Noscea - Camp Bronze Lake" ,
"Outer La Noscea - Camp Overlook" ,
"Coerthas Central Highlands - Camp Dragonhead" ,
"Mor Dhona" ,
"Gold Saucer" ,
"Wolves' Den Pier" ,
"Ishgard" ,
"Idyllshire" ,
"Coerthas Western Highlands - Falcon's Nest" ,
"The Sea of Clouds - Camp Cloudtop" ,
"The Sea of Clouds - Ok' Zundu" ,
"Azys Lla - Helix" ,
"The Dravanian Forelands - Tailfeather" ,
"The Dravanian Forelands - Anyx Trine" ,
"The Churning Mists - Moghome" ,
"The Churning Mists - Zenith" ,
"Rhalgr's Reach" ,
"Fringes - Castrum Oriens" ,
"Fringes - Peering Stones" ,
"Peaks - Ala Gannha" ,
"Peaks - Ala Ghiri" ,
"Lochs - Porta Praetoria" ,
"Lochs - Ala Mhigan Quarter" ,
"Kugane" ,
"Ruby Sea - Tamamizu" ,
"Ruby Sea - Onokoro" ,
"Yanxia - Namai" ,
"Yanxia - House of the Fierce" ,
"Azim Steppe - Reunion" ,
"Azim Steppe - Dawn Throne" ,
"Azim Steppe - Dhoro Iloh" ,
"Doman Enclave" ,
"Crystarium" ,
"Eulmore" ,
"Lakeland - Fort Jobb" ,
"Lakeland - Ostall Imperative" ,
"Kholusia - Stilltide" ,
"Kholusia - Wright" ,
"Kholusia - Tomra" ,
"Amh Araeng - Mord Souq" ,
"Amh Araeng - Inn at Journey's Head" ,
"Amh Araeng - Twine" ,
"Rak'tika - Slitherbough" ,
"Rak'tika - Fanow" ,
"Il Mheg - Lydha Lran" ,
"Il Mheg - Pia Enni" ,
"Il Mheg - Wolekdorf" ,
"Tempest - Ondo Cups" ,
"Tempest - Macarenses Angle" ,
"Old Sharlayan" ,
"Radz-at-Han" ,
"Labyrinthos - Archeion" ,
"Labyrinthos - Sharlayan Hamlet" ,
"Labyrinthos - Aporia" ,
"Thavnair - Yedlihmad" ,
"Thavnair - Great Work" ,
"Thavnair - Palaka's Stand" ,
"Garlemald - Camp Broken Glass" ,
"Garlemald - Tertium" ,
"Mare Lamentorum - Sinus Lacrimarum" ,
"Mare Lamentorum - Bestways Burrow" ,
"Elpis - Anagnorisis" ,
"Elpis - Twelve Wonders" ,
"Elpis - Poieten Oikos" ,
"Ultima Thule - Reah Tahra" ,
"Ultima Thule - Abode of the Ea" ,
"Ultima Thule - Base Omicron" ,
"Tuliyollal" ,
"Solution Nine" ,
"Urqopacha - Wachunpelo" ,
"Urqopacha - Worlar's Echo" ,
"Kozama'uka - Ok'hanu" ,
"Kozama'uka - Many Fires" ,
"Kozama'uka - Earthenshire" ,
"Yak T'el - Iq Br'aax" ,
"Yak T'el - Mamook" ,
"Shaaloani - Hhusatahwi" ,
"Shaaloani - Sheshenewezi Springs" ,
"Shaaloani - Mehwahhetsoan" ,
"Heritage Found - Yyasulani Station" ,
"Heritage Found - The Outskirts" ,
"Heritage Found - Electrope Strike" ,
"Living Memory - Leynode Mnemo" ,
"Living Memory - Leynode Pyro" ,
"Living Memory - Leynode Aero"
]
} ,
"AethernetShard" : {
"type" : "string" ,
"enum" : [
"[Gridania] Aetheryte Plaza" ,
"[Gridania] Archers' Guild" ,
"[Gridania] Leatherworkers' Guild & Shaded Bower" ,
"[Gridania] Lancers' Guild" ,
"[Gridania] Conjurers' Guild" ,
"[Gridania] Botanists' Guild" ,
"[Gridania] Mih Khetto's Amphitheatre" ,
"[Gridania] Blue Badger Gate (Central Shroud)" ,
"[Gridania] Yellow Serpent Gate (North Shroud)" ,
"[Gridania] White Wolf Gate (Central Shroud)" ,
"[Gridania] Airship Landing" ,
"[Ul'dah] Aetheryte Plaza" ,
"[Ul'dah] Adventurers' Guild" ,
"[Ul'dah] Thaumaturges' Guild" ,
"[Ul'dah] Gladiators' Guild" ,
"[Ul'dah] Miners' Guild" ,
"[Ul'dah] Weavers' Guild" ,
"[Ul'dah] Goldsmiths' Guild" ,
"[Ul'dah] Sapphire Avenue Exchange" ,
"[Ul'dah] Alchemists' Guild" ,
"[Ul'dah] Gate of the Sultana (Western Thanalan)" ,
"[Ul'dah] Gate of Nald (Central Thanalan)" ,
"[Ul'dah] Gate of Thal (Central Thanalan)" ,
"[Ul'dah] The Chamber of Rule" ,
"[Ul'dah] Airship Landing" ,
"[Limsa Lominsa] Aetheryte Plaza" ,
"[Limsa Lominsa] Arcanists' Guild" ,
"[Limsa Lominsa] Fishermens' Guild" ,
"[Limsa Lominsa] Hawkers' Alley" ,
"[Limsa Lominsa] The Aftcastle" ,
"[Limsa Lominsa] Culinarians' Guild" ,
"[Limsa Lominsa] Marauders' Guild" ,
"[Limsa Lominsa] Zephyr Gate (Middle La Noscea)" ,
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)" ,
"[Limsa Lominsa] Airship Landing" ,
"[Ishgard] Aetheryte Plaza" ,
"[Ishgard] The Forgotten Knight" ,
"[Ishgard] Skysteel Manufactory" ,
"[Ishgard] The Brume" ,
"[Ishgard] Athenaeum Astrologicum" ,
"[Ishgard] The Jeweled Crozier" ,
"[Ishgard] Saint Reymanaud's Cathedral" ,
"[Ishgard] The Tribunal" ,
"[Ishgard] The Last Vigil" ,
"[Ishgard] The Gates of Judgement (Coerthas Central Highlands)" ,
"[Idyllshire] Aetheryte Plaza" ,
"[Idyllshire] West Idyllshire" ,
2024-07-18 23:46:31 +00:00
"[Idyllshire] Prologue Gate (Western Hinterlands)" ,
"[Idyllshire] Epilogue Gate (Eastern Hinterlands)" ,
2024-07-17 10:58:08 +00:00
"[Rhalgr's Reach] Aetheryte Plaza" ,
"[Rhalgr's Reach] Western Rhalgr's Reach" ,
"[Rhalgr's Reach] Northeastern Rhalgr's Reach" ,
"[Rhalgr's Reach] Fringes Gate" ,
"[Rhalgr's Reach] Peaks Gate" ,
"[Kugane] Aetheryte Plaza" ,
"[Kugane] Shiokaze Hostelry" ,
"[Kugane] Pier #1" ,
"[Kugane] Thavnairian Consulate" ,
"[Kugane] Kogane Dori Markets" ,
"[Kugane] Bokairo Inn" ,
"[Kugane] The Ruby Bazaar" ,
"[Kugane] Sekiseigumi Barracks" ,
"[Kugane] Rakuza District" ,
"[Kugane] The Ruby Price" ,
"[Kugane] Airship Landing" ,
"[Crystarium] Aetheryte Plaza" ,
"[Crystarium] Musica Universalis Markets" ,
"[Crystarium] Temenos Rookery" ,
"[Crystarium] The Dossal Gate" ,
"[Crystarium] The Pendants" ,
"[Crystarium] The Amaro Launch" ,
"[Crystarium] The Crystalline Mean" ,
"[Crystarium] The Cabinet of Curiosity" ,
"[Crystarium] Tessellation (Lakeland)" ,
"[Eulmore] Aetheryte Plaza" ,
"[Eulmore] Southeast Derelicts" ,
"[Eulmore] Nightsoil Pots" ,
"[Eulmore] The Glory Gate" ,
"[Eulmore] The Mainstay" ,
"[Eulmore] The Path to Glory (Kholusia)" ,
"[Old Sharlayan] Aetheryte Plaza" ,
"[Old Sharlayan] The Studium" ,
"[Old Sharlayan] The Baldesion Annex" ,
"[Old Sharlayan] The Rostra" ,
"[Old Sharlayan] The Leveilleur Estate" ,
"[Old Sharlayan] Journey's End" ,
"[Old Sharlayan] Scholar's Harbor" ,
"[Old Sharlayan] The Hall of Artifice (Labyrinthos)" ,
"[Radz-at-Han] Aetheryte Plaza" ,
"[Radz-at-Han] Meghaduta" ,
"[Radz-at-Han] Ruveydah Fibers" ,
"[Radz-at-Han] Airship Landing" ,
"[Radz-at-Han] Alzadaal's Peace" ,
"[Radz-at-Han] Hall of the Radiant Host" ,
"[Radz-at-Han] Mehryde's Meyhane" ,
"[Radz-at-Han] Kama" ,
"[Radz-at-Han] The High Crucible of Al-Kimiya" ,
"[Radz-at-Han] The Gate of First Sight (Thavnair)" ,
"[Tuliyollal] Aetheryte Plaza" ,
"[Tuliyollal] Dirigible Landing" ,
"[Tuliyollal] The Resplendent Quarter" ,
"[Tuliyollal] The For'ard Cabins" ,
"[Tuliyollal] Bayside Bevy Marketplace" ,
"[Tuliyollal] Vollok Shoonsa" ,
"[Tuliyollal] Wachumeqimeqi" ,
"[Tuliyollal] Brightploom Post" ,
"[Tuliyollal] Arch of the Dawn (Urqopacha)" ,
"[Tuliyollal] Arch of the Dawn (Kozama'uka)" ,
"[Tuliyollal] Ihuykatumu (Kozama'uka)" ,
"[Tuliyollal] Dirigible Landing (Yak T'el)" ,
"[Tuliyollal] Xak Tural Skygate (Shaaloani)" ,
"[Solution Nine] Aetheryte Plaza" ,
"[Solution Nine] Information Center" ,
"[Solution Nine] True Vue" ,
"[Solution Nine] Neon Stein" ,
"[Solution Nine] The Arcadion" ,
"[Solution Nine] Resolution" ,
"[Solution Nine] Nexus Arcade" ,
"[Solution Nine] Residential Sector" ,
"[Solution Nine] Scanning Port Nine (Heritage Found)"
]
} ,
2024-07-14 19:31:07 +00:00
"CompletionFlags" : {
"type" : "array" ,
"description" : "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset" ,
"items" : {
"type" : [
"integer" ,
"null"
] ,
"enum" : [
null ,
1 ,
2 ,
4 ,
8 ,
16 ,
32 ,
64 ,
128 ,
-1 ,
-2 ,
-4 ,
-8 ,
-16 ,
-32 ,
-64 ,
-128
]
} ,
"minItems" : 6 ,
"maxItems" : 6
}
}
2024-05-25 21:51:37 +00:00
}