qstbak/SeasonalDutyPaths/Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema
2026-03-26 14:56:12 +10:00

104 lines
2.9 KiB
Text

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/SeasonalDutyPaths/seasonaldutydefinition-v1.json",
"title": "Seasonal Duty Definition V1",
"description": "A seasonal duty farming definition",
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"Name": {
"description": "Display name of the seasonal duty",
"type": "string"
},
"TerritoryId": {
"description": "Territory ID where the NPC is located",
"type": "integer",
"minimum": 1
},
"Aetheryte": {
"description": "Nearest aetheryte for teleporting",
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"AethernetShortcut": {
"description": "Aethernet shortcut to use after teleporting",
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2
},
"NpcDataId": {
"description": "Data ID of the NPC to interact with",
"type": "integer",
"minimum": 1
},
"NpcPosition": {
"description": "Position of the NPC",
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json"
},
"DialogueChoices": {
"description": "Dialogue choices when interacting with the NPC to enter the duty",
"type": "array",
"items": {
"type": "object"
}
},
"DutyTerritoryId": {
"description": "Territory ID of the duty instance",
"type": "integer",
"minimum": 1
},
"DataIds": {
"description": "Data IDs of objects to interact with inside the duty",
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 1
},
"WaypointPositions": {
"description": "Waypoint positions to navigate through inside the duty",
"type": "array",
"items": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json"
}
},
"Action": {
"description": "Action to perform on each object",
"type": "string"
},
"StopDistance": {
"description": "Distance at which to stop and perform the action",
"type": "number",
"minimum": 0
},
"RequiredQuestId": {
"description": "Quest ID that must be completed before this duty can be farmed",
"type": "integer",
"minimum": 1
},
"EventExpiry": {
"description": "Date and time (in UTC) when the seasonal event ends",
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"$schema",
"Name",
"TerritoryId",
"NpcDataId",
"NpcPosition",
"DutyTerritoryId",
"DataIds",
"Action"
],
"additionalProperties": false
}