1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -114,34 +114,7 @@
"null"
],
"description": "Set if pathfinding should stop closer or further away from the default stop distance",
"minimum": 0.25
},
"LandingZones": {
"description": "Convex polygon boundaries for randomized movement destinations. When present, Position becomes the interaction target and a random point within a zone is used as the movement destination.",
"type": "array",
"items": {
"type": "object",
"properties": {
"Vertices": {
"type": "array",
"items": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json"
},
"minItems": 3
},
"YTolerance": {
"type": [
"number",
"null"
],
"minimum": 0
}
},
"required": [
"Vertices"
],
"additionalProperties": false
}
"minimum": 0
},
"IgnoreDistanceToObject": {
"type": "boolean",
@ -199,7 +172,9 @@
"AcceptQuest",
"CompleteQuest",
"InitiateLeve",
"FateAction"
"FateAction",
"Fish",
"CriticalEncounter"
]
},
"Disabled": {
@ -215,7 +190,15 @@
"boolean",
"null"
],
"description": "If true, will mount regardless of distance to position. If false, will unmount."
"description": "Travel hint: If true, will mount regardless of distance to position. If false, will unmount. Ignored by SmartNav auto-decide when not set. For quest-mechanical mount requirements, use MountRequired/DismountRequired instead."
},
"MountRequired": {
"type": "boolean",
"description": "Quest mechanic: the quest requires the player to be mounted (e.g. mounted escort, chocobo race). Takes priority over Mount and auto-decide."
},
"DismountRequired": {
"type": "boolean",
"description": "Quest mechanic: the quest requires the player to be on foot (e.g. interaction that fails while mounted). Takes priority over Mount and auto-decide."
},
"Fly": {
"type": "boolean",
@ -231,19 +214,6 @@
"null"
]
},
"AetheryteShortcut": {
"description": "The Aetheryte to teleport to (before moving)",
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"AethernetShortcut": {
"type": "array",
"description": "A pair of aethernet locations (from + to) to use as a shortcut",
"minItems": 2,
"maxItems": 2,
"items": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aethernetshard.json"
}
},
"ItemId": {
"type": [
"number",
@ -365,7 +335,7 @@
"type": "number"
},
"TerritoryId": {
"type": "number"
"type": "integer"
}
},
"required": [
@ -385,7 +355,7 @@
"type": "number"
},
"TerritoryId": {
"type": "number"
"type": "integer"
}
},
"required": [
@ -409,115 +379,6 @@
}
},
"additionalProperties": false
},
"AetheryteShortcutIf": {
"type": "object",
"properties": {
"Never": {
"type": "boolean"
},
"InSameTerritory": {
"type": "boolean"
},
"InTerritory": {
"type": "array",
"items": {
"type": "integer"
}
},
"QuestsAccepted": {
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
},
"QuestsCompleted": {
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
},
"AetheryteLocked": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"AetheryteUnlocked": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"RequiredQuestVariablesNotMet": {
"type": "boolean"
},
"NearPosition": {
"type": "object",
"properties": {
"Position": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json"
},
"MaximumDistance": {
"type": "number"
},
"TerritoryId": {
"type": "number"
}
},
"required": [
"Position",
"MaximumDistance",
"TerritoryId"
],
"additionalProperties": false
},
"NotNearPosition": {
"type": "object",
"properties": {
"Position": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-vector3.json"
},
"MaximumDistance": {
"type": "number"
},
"TerritoryId": {
"type": "number"
}
},
"required": [
"Position",
"MaximumDistance",
"TerritoryId"
],
"additionalProperties": false
},
"ExtraCondition": {
"type": "string",
"enum": [
"SkipFreeFantasia"
]
}
},
"additionalProperties": false
},
"AethernetShortcutIf": {
"type": "object",
"properties": {
"Never": {
"type": "boolean"
},
"InSameTerritory": {
"type": "boolean"
},
"AetheryteLocked": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"AetheryteUnlocked": {
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
@ -629,14 +490,14 @@
"then": {
"properties": {
"PickUpItemId": {
"type": "number"
"type": "integer"
},
"GCPurchase": {
"type": "object",
"description": "Configuration for purchasing an item from the Grand Company Exchange shop",
"properties": {
"ItemId": {
"type": "number",
"type": "integer",
"description": "The item ID to purchase from the GC shop"
},
"RankTab": {
@ -899,16 +760,31 @@
"Position",
"EnemySpawnType"
],
"oneOf": [
"allOf": [
{
"required": [
"KillEnemyDataIds"
]
},
{
"required": [
"ComplexCombatData"
]
"if": {
"properties": {
"EnemySpawnType": {
"not": {
"const": "FinishCombatIfAny"
}
}
}
},
"then": {
"oneOf": [
{
"required": [
"KillEnemyDataIds"
]
},
{
"required": [
"ComplexCombatData"
]
}
]
}
}
]
}
@ -1485,6 +1361,28 @@
]
}
},
{
"if": {
"properties": {
"InteractionType": {
"const": "CriticalEncounter"
}
}
},
"then": {
"properties": {
"CriticalEncounterId": {
"type": "integer",
"description": "The DynamicEvent sheet row id of the critical encounter",
"exclusiveMinimum": 0
}
},
"required": [
"TerritoryId",
"CriticalEncounterId"
]
}
},
{
"if": {
"properties": {
@ -1499,7 +1397,8 @@
"type": "string",
"description": "The status to disable",
"enum": [
"Hidden"
"Hidden",
"Transfiguration"
]
}
},
@ -1713,39 +1612,13 @@
"exclusiveMinimum": 0,
"exclusiveMaximum": 3000
},
"Enabled": {
"type": "boolean"
},
"Notes": {
"type": "array",
"items": {
"type": "string"
}
},
"DutyMode": {
"type": "integer",
"description": "Overrides the default duty mode for this specific duty. 0 = Duty Support, 1 = Unsync (Solo), 2 = Unsync (Party). If not specified, uses the global configuration setting.",
"enum": [0, 1, 2]
},
"TestedAutoDutyVersion": {
"type": "string",
"pattern": "^0\\.\\d+\\.\\d+\\.\\d+$"
},
"TestedBossModVersion": {
"type": "string",
"pattern": "^0\\.\\d+\\.\\d+\\.\\d+$"
},
"LowPriority": {
"type": "boolean",
"description": "Indicates that this dungeon is included in the 'Skip certain optional dungeons and raids' option"
},
"$": {
"type": "string"
"type": "string",
"description": "Dev Comment (not visible in-game)"
}
},
"required": [
"ContentFinderConditionId",
"Enabled"
"ContentFinderConditionId"
],
"additionalProperties": false
},
@ -1774,32 +1647,16 @@
"SinglePlayerDutyOptions": {
"type": "object",
"properties": {
"Enabled": {
"type": "boolean"
},
"Notes": {
"type": "array",
"items": {
"type": "string"
}
},
"Index": {
"type": "integer",
"minimum": 0,
"maximum": 1,
"description": "If a quest has multiple solo instances (which affects 5 quests total), indicates which one this is"
},
"TestedBossModVersion": {
"type": "string",
"pattern": "^0\\.\\d+\\.\\d+\\.\\d+$"
},
"$": {
"type": "string"
}
},
"TODO_required": [
"Enabled"
],
"additionalProperties": false
}
}
@ -1833,7 +1690,7 @@
"then": {
"properties": {
"TaxiStandId": {
"type": "number"
"type": "integer"
}
},
"required": [
@ -1904,7 +1761,7 @@
"then": {
"properties": {
"ItemCount": {
"type": "number"
"type": "integer"
},
"RequireHq": {
"type": "boolean",
@ -1934,18 +1791,18 @@
"type": "object",
"properties": {
"ItemId": {
"type": "number"
"type": "integer"
},
"AlternativeItemId": {
"description": "For leves that allow you to gather two items with different chance percentage, this is the preferred item if the gathering chance is 100% (after buffs)",
"type": "number"
"type": "integer"
},
"ItemCount": {
"type": "number",
"type": "integer",
"exclusiveMinimum": 0
},
"Collectability": {
"type": "number",
"type": "integer",
"minimum": 0,
"maximum": 1000
}
@ -1966,24 +1823,49 @@
"if": {
"properties": {
"InteractionType": {
"anyOf": [
{
"const": "WaitForManualProgress"
},
{
"const": "Instruction"
},
{
"const": "Snipe"
}
]
"const": "Fish"
}
}
},
"then": {
"required": [
"Comment"
]
"properties": {
"ItemsToGather": {
"type": "array",
"description": "The fish to catch at the fishing spot.",
"items": {
"type": "object",
"properties": {
"ItemId": {
"type": "integer"
},
"ItemCount": {
"type": "integer",
"exclusiveMinimum": 0
},
"Collectability": {
"type": "integer",
"minimum": 0,
"maximum": 1000
}
},
"required": [
"ItemId",
"ItemCount"
]
}
}
},
"if": {
"required": [
"CompletionQuestVariablesFlags"
]
},
"then": {},
"else": {
"required": [
"ItemsToGather"
]
}
}
},
{