2024-05-25 21:51:37 +00:00
|
|
|
{
|
|
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
2024-05-26 19:45:26 +00:00
|
|
|
"$id": "/quest/1.0",
|
2024-05-25 21:51:37 +00:00
|
|
|
"title": "Questionable V1",
|
|
|
|
"description": "A series of quest sequences",
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
|
|
|
"Version": {
|
|
|
|
"description": "Version of the schema",
|
|
|
|
"type": "integer",
|
|
|
|
"minimum": 1,
|
|
|
|
"maximum": 1
|
|
|
|
},
|
|
|
|
"Author": {
|
|
|
|
"description": "Author of the quest sequence",
|
|
|
|
"type": "string"
|
|
|
|
},
|
|
|
|
"Contributors": {
|
|
|
|
"type": "array",
|
|
|
|
"items": {
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"Comment": {
|
|
|
|
"type": "string"
|
|
|
|
},
|
|
|
|
"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-27 19:54:34 +00:00
|
|
|
"type": ["number", "null"],
|
|
|
|
"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-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-05-28 22:17:19 +00:00
|
|
|
"Say",
|
2024-05-25 21:51:37 +00:00
|
|
|
"Emote",
|
2024-05-27 19:54:34 +00:00
|
|
|
"WaitForNpcAtPosition",
|
2024-05-25 21:51:37 +00:00
|
|
|
"ManualAction"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"Disabled": {
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "Unused (TODO)",
|
|
|
|
"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": {
|
|
|
|
"type": ["boolean", "null"],
|
|
|
|
"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-05-26 19:45:26 +00:00
|
|
|
"AetheryteShortcut": {
|
|
|
|
"type": "string",
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "The Aetheryte to teleport to (before moving)",
|
2024-05-26 19:45:26 +00:00
|
|
|
"$comment": "TODO add remaining aetherytes for 2.x/3.x",
|
|
|
|
"enum": [
|
|
|
|
"Limsa Lominsa",
|
|
|
|
"Gridania",
|
|
|
|
"Ul'dah",
|
|
|
|
"Ishgard",
|
2024-05-27 19:54:34 +00:00
|
|
|
"Idyllshire",
|
2024-05-26 19:45:26 +00:00
|
|
|
|
|
|
|
"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",
|
2024-05-27 19:54:34 +00:00
|
|
|
"Ultima Thule - Abode of the Ea",
|
2024-05-26 19:45:26 +00:00
|
|
|
"Ultima Thule - Base Omicron"
|
|
|
|
]
|
|
|
|
},
|
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-05-25 21:51:37 +00:00
|
|
|
"minItems": 2,
|
|
|
|
"maxItems": 2,
|
|
|
|
"items": {
|
|
|
|
"type": "string",
|
|
|
|
"enum": [
|
2024-05-26 13:43:33 +00:00
|
|
|
"[Limsa Lominsa] Aetheryte Plaza",
|
|
|
|
"[Limsa Lominsa] Arcanist's Guild",
|
|
|
|
"[Limsa Lominsa] Fishermen's Guild",
|
|
|
|
"[Limsa Lominsa] Hawker's Alley",
|
|
|
|
"[Limsa Lominsa] The Aftcastle",
|
|
|
|
"[Limsa Lominsa] Culinarian's Guild",
|
|
|
|
"[Limsa Lominsa] Marauder's Guild",
|
|
|
|
"[Limsa Lominsa] Airship Landing",
|
|
|
|
"[Gridania] Aetheryte Plaza",
|
|
|
|
"[Gridania] Archer's Guild",
|
2024-05-27 19:54:34 +00:00
|
|
|
"[Gridania] Leatherworker's Guild & Shaded Bower",
|
2024-05-26 13:43:33 +00:00
|
|
|
"[Gridania] Lancer's Guild",
|
|
|
|
"[Gridania] Conjurer's Guild",
|
|
|
|
"[Gridania] Botanist's Guild",
|
|
|
|
"[Gridania] Mih Khetto's Amphitheatre",
|
|
|
|
"[Gridania] Airship Landing",
|
|
|
|
"[Ul'dah] Aetheryte Plaza",
|
|
|
|
"[Ul'dah] Adventurer's Guild",
|
|
|
|
"[Ul'dah] Thaumaturge's Guild",
|
|
|
|
"[Ul'dah] Gladiator's Guild",
|
|
|
|
"[Ul'dah] Miner's Guild",
|
|
|
|
"[Ul'dah] Weavers' Guild",
|
|
|
|
"[Ul'dah] Goldsmiths' Guild",
|
|
|
|
"[Ul'dah] Sapphire Avenue Exchange",
|
|
|
|
"[Ul'dah] Alchemists' Guild",
|
|
|
|
"[Ul'dah] The Chamber of Rule",
|
|
|
|
"[Ul'dah] 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",
|
|
|
|
"[Idyllshire] Aetheryte Plaza",
|
|
|
|
"[Idyllshire] West Idyllshire",
|
|
|
|
"[Rhalgr's Reach] Aetheryte Plaza",
|
|
|
|
"[Rhalgr's Reach] Western Rhalgr's Reach",
|
|
|
|
"[Rhalgr's Reach] Northeastern Rhalgr's Reach",
|
|
|
|
"[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] Airship Landing",
|
2024-05-26 19:45:26 +00:00
|
|
|
"[Crystarium] Aetheryte Plaza",
|
|
|
|
"[Crystarium] Musica Universalis Markets",
|
|
|
|
"[Crystarium] Themenos Rookery",
|
|
|
|
"[Crystarium] The Dossal Gate",
|
|
|
|
"[Crystarium] The Pendants",
|
|
|
|
"[Crystarium] The Amaro Launch",
|
|
|
|
"[Crystarium] The Crystalline Mean",
|
|
|
|
"[Crystarium] The Cabinet of Curiosity",
|
2024-05-25 21:51:37 +00:00
|
|
|
"[Eulmore] Aetheryte Plaza",
|
|
|
|
"[Eulmore] Southeast Derelicts",
|
|
|
|
"[Eulmore] Nightsoil Pots",
|
|
|
|
"[Eulmore] The Glory Gate",
|
|
|
|
"[Eulmore] The Mainstay",
|
|
|
|
"[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",
|
|
|
|
"[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"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2024-05-27 19:54:34 +00:00
|
|
|
"AetherCurrentId": {
|
|
|
|
"type": "number",
|
|
|
|
"description": "The aether current id, used to check if a given aetheryte is unlocked"
|
|
|
|
},
|
2024-05-26 19:45:26 +00:00
|
|
|
"EnemySpawnType": {
|
|
|
|
"type": "string",
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "Determines how enemy spawning is handled in combat locations",
|
2024-05-26 19:45:26 +00:00
|
|
|
"enum": [
|
|
|
|
"AutoOnEnterArea",
|
|
|
|
"AfterInteraction"
|
|
|
|
]
|
|
|
|
},
|
2024-05-25 21:51:37 +00:00
|
|
|
"KillEnemyDataIds": {
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "The enemy data ids which are supposed to be killed",
|
2024-05-25 21:51:37 +00:00
|
|
|
"type": "array",
|
|
|
|
"items": {
|
|
|
|
"type": "integer"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"Emote": {
|
|
|
|
"type": "string",
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "The emote to use",
|
2024-05-25 21:51:37 +00:00
|
|
|
"enum": [
|
|
|
|
"stretch",
|
|
|
|
"wave",
|
2024-05-26 13:43:33 +00:00
|
|
|
"rally",
|
|
|
|
"deny"
|
2024-05-25 21:51:37 +00:00
|
|
|
]
|
|
|
|
},
|
2024-05-28 22:17:19 +00:00
|
|
|
"ChatMessage": {
|
|
|
|
"type": "string",
|
|
|
|
"description": "The text to use with /say"
|
|
|
|
},
|
2024-05-27 19:54:34 +00:00
|
|
|
"ItemId": {
|
|
|
|
"type": ["number", "null"],
|
|
|
|
"description": "The Item to use",
|
|
|
|
"exclusiveMinimum": 0
|
|
|
|
},
|
2024-05-25 21:51:37 +00:00
|
|
|
"SkipIf": {
|
|
|
|
"type": "array",
|
2024-05-27 19:54:34 +00:00
|
|
|
"description": "TODO Not implemented",
|
2024-05-25 21:51:37 +00:00
|
|
|
"items": {
|
|
|
|
"type": "string",
|
|
|
|
"enum": [
|
|
|
|
"FlyingUnlocked"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"Comment": {
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"required": [
|
|
|
|
"TerritoryId",
|
|
|
|
"InteractionType"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"Comment": {
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"required": [
|
|
|
|
"Sequence"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"required": [
|
|
|
|
"Version",
|
|
|
|
"Author"
|
|
|
|
]
|
|
|
|
}
|