[Server Hosting] Quest Objectives Configuration - CommanderBeelo/DayZ-Expansion-Scripts GitHub Wiki

WORK IN PROGRESS - Please note that the content of this page may chage in the future and is not final!

Main Objective Configuration Parameters:

"ConfigVersion"

Integer.

Current config file verstion. NEVER CHANGE THIS!

"ID"

Integer.

Unique objective ID. Make sure this ID is different for every single objective in this objective category! You can use the same ID for a different objective configuration in a different objective category but never use the same ID in the same category twice!

"ObjectiveType"

Integer.

Objective Type of this objective configuration. As every objective type uses and handles different parameters and values we need to tell the system what kind of objective this is. Always needs to be the category where the config file is located.

TARGET = 2
TRAVEL = 3
COLLECT = 4
DELIVERY = 5
TREASUREHUNT = 6
AIPATROL = 7
AICAMP = 8
AIVIP = 9
ACTION = 10

There is different objective types that all do something different when added to a quest and every objective has a different configuration depending on the objective type:

TARGET = Quest player/s will need to kill certain amount of mobs/players. (Optional: With a special weapon).
TRAVEL = Quest player/s will need to go to location XY.
COLLECT = Quest player/s will need to collect/find a certain amount of an item. 
DELIVERY = Quest player will need to deliver a given item to a certain position and NPC.
TREASUREHUNT = Quest player/s will need to find a certain location that contains a stashed treasure.
AIPATROL = Quest player/s will need to clear a AI patrol. (Optional: With a special weapon).
AICAMP = Quest player/s will need to clear a AI Camp. (Optional: With a special weapon).
AIVIP = Quest player/s will need to protect and escort a AI to a certain location.
ACTION = Quest player/s will need to execute a certain Action.

"ObjectiveText"

String.

Objective text that will get displayed in the quest-log and quest hud when the objective is active and displayed.

"TimeLimit"

Integer.

Time limit in seconds the quest player/s has/have to complete this objective. This should be set and added in the quest configuration file that will contain this objective in its objectives array as it allows you to reuse this objective in other quests with different time limit values or without one.


Action Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 1,
    "ID": 1,
    "ObjectiveType": 10,
    "ObjectiveText": "",
    "TimeLimit": -1,
    "ActionNames": [
        "ExpansionVehicleActionPickLock",
        "ExpansionActionPickVehicleLockBase",
        "ExpansionActionPickVehicleLock"
    ]
}
  • "ActionNames" Array[String]. Class names of the action classes that will trigger this objective.

AI Camp Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 4,
    "ID": 1,
    "ObjectiveType": 8,
    "ObjectiveText": "Kill all 10 bandits at the market location",
    "TimeLimit": -1,
    "AICamp": {
        "Positions": [
            [
                8091.22998046875,
                15.369999885559082,
                10832.400390625
            ],
            [
                8095.06982421875,
                15.619999885559082,
                10865.400390625
            ],
            [
                8121.9599609375,
                16.09000015258789,
                10850.599609375
            ],
            [
                8124.990234375,
                20.459999084472658,
                10852.5
            ],
            [
                8082.31982421875,
                15.369999885559082,
                10838.599609375
            ],
            [
                8123.080078125,
                15.300000190734864,
                10819.7001953125
            ],
            [
                8151.75,
                15.449999809265137,
                10815.7001953125
            ],
            [
                8165.89013671875,
                15.8100004196167,
                10840.5
            ],
            [
                8172.0,
                15.899999618530274,
                10886.2001953125
            ],
            [
                8117.52001953125,
                15.229999542236329,
                10864.7998046875
            ]
        ],
        "NPCSpeed": "RUN",
        "NPCMode": "HALT",
        "NPCFaction": "West",
        "NPCLoadoutFile": "BanditLoadout.json",
        "ClassNames": [
            "eAI_SurvivorM_Mirek",
            "eAI_SurvivorM_Denis",
            "eAI_SurvivorM_Boris",
            "eAI_SurvivorM_Cyril",
            "eAI_SurvivorM_Elias",
            "eAI_SurvivorM_Francis",
            "eAI_SurvivorM_Guo",
            "eAI_SurvivorM_Hassan",
            "eAI_SurvivorM_Indar",
            "eAI_SurvivorM_Jose",
            "eAI_SurvivorM_Kaito",
            "eAI_SurvivorM_Lewis",
            "eAI_SurvivorM_Manua",
            "eAI_SurvivorM_Niki",
            "eAI_SurvivorM_Oliver",
            "eAI_SurvivorM_Peter",
            "eAI_SurvivorM_Quinn",
            "eAI_SurvivorM_Rolf",
            "eAI_SurvivorM_Seth",
            "eAI_SurvivorM_Taiki",
            "eAI_SurvivorF_Linda",
            "eAI_SurvivorF_Maria",
            "eAI_SurvivorF_Frida",
            "eAI_SurvivorF_Gabi",
            "eAI_SurvivorF_Helga",
            "eAI_SurvivorF_Irena",
            "eAI_SurvivorF_Judy",
            "eAI_SurvivorF_Keiko",
            "eAI_SurvivorF_Eva",
            "eAI_SurvivorF_Naomi",
            "eAI_SurvivorF_Baty"
        ],
        "SpecialWeapon": 0,
        "AllowedWeapons": []
    },
    "MinDistRadius": 50.0,
    "MaxDistRadius": 150.0
}
  • "Positions" Array[Vector]. Positions where a AI unit will spawn at. The amount of vector positions in this array also controlls the amout of units the player/s has/have to kill to complete this objective.
  • "NPCSpeed" String. NPC speed definition. Same as for AI patrol settings.
  • "NPCMode" String. NPC mode definition. Same as for AI patrol settings.
  • "NPCFaction" String. NPC faction definition. Same as for AI patrol settings.
  • "NPCLoadoutFile" String. NPC loadout file. Same as for AI patrol settings.
  • "ClassNames" Array[String]. Class names that will be used to control kills. If a unit get killed that is not in this array the kill will not count for this objective.
  • "SpecialWeapon" Boolean. If enabled the kills will only get counted when the killed unit has been killed with a weapon defined in the "AllowedWeapons" array.
  • "AllowedWeapons" Array[String] If "SpecialWeapon" is enabled then this array controlls the allowed weapons the quest players can and need to use to kill the certain objective targets.

AI Patrol Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 4,
    "ID": 1,
    "ObjectiveType": 7,
    "ObjectiveText": "Kill all 4 units of the bandit patrol at the market location",
    "TimeLimit": -1,
    "AIPatrol": {
        "NPCUnits": 4,
        "Waypoints": [
            [
                6307.7001953125,
                14.399999618530274,
                11810.599609375
            ],
            [
                6519.89990234375,
                17.299999237060548,
                11901.599609375
            ],
            [
                6967.39990234375,
                6.5,
                11884.599609375
            ],
            [
                7216.60009765625,
                10.147000312805176,
                11843.099609375
            ],
            [
                7405.77978515625,
                23.18000030517578,
                11655.7998046875
            ]
        ],
        "NPCSpeed": "RUN",
        "NPCMode": "REVERSE",
        "NPCFaction": "West",
        "NPCLoadoutFile": "BanditLoadout.json",
        "ClassNames": [
            "eAI_SurvivorM_Mirek",
            "eAI_SurvivorM_Denis",
            "eAI_SurvivorM_Boris",
            "eAI_SurvivorM_Cyril",
            "eAI_SurvivorM_Elias",
            "eAI_SurvivorM_Francis",
            "eAI_SurvivorM_Guo",
            "eAI_SurvivorM_Hassan",
            "eAI_SurvivorM_Indar",
            "eAI_SurvivorM_Jose",
            "eAI_SurvivorM_Kaito",
            "eAI_SurvivorM_Lewis",
            "eAI_SurvivorM_Manua",
            "eAI_SurvivorM_Niki",
            "eAI_SurvivorM_Oliver",
            "eAI_SurvivorM_Peter",
            "eAI_SurvivorM_Quinn",
            "eAI_SurvivorM_Rolf",
            "eAI_SurvivorM_Seth",
            "eAI_SurvivorM_Taiki",
            "eAI_SurvivorF_Linda",
            "eAI_SurvivorF_Maria",
            "eAI_SurvivorF_Frida",
            "eAI_SurvivorF_Gabi",
            "eAI_SurvivorF_Helga",
            "eAI_SurvivorF_Irena",
            "eAI_SurvivorF_Judy",
            "eAI_SurvivorF_Keiko",
            "eAI_SurvivorF_Eva",
            "eAI_SurvivorF_Naomi",
            "eAI_SurvivorF_Baty"
        ],
        "SpecialWeapon": 0,
        "AllowedWeapons": []
    },
    "MinDistRadius": 50.0,
    "MaxDistRadius": 150.0
}

AI VIP Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 1,
    "ID": 1,
    "ObjectiveType": 9,
    "ObjectiveText": "Bring the VIP to the marked location.",
    "TimeLimit": -1,
    "Position": [
        8348.3896484375,
        0.0,
        10724.7001953125
    ],
    "MaxDistance": 20.0,
    "AIVIP": {
        "NPCClassName": "",
        "NPCSpeed": "RUN",
        "NPCMode": "HALT",
        "NPCFaction": "Passive",
        "NPCLoadoutFile": "BanditLoadout.json"
    },
    "MarkerName": "Escort VIP"
}

Collection Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 1,
    "ID": 1,
    "ObjectiveType": 4,
    "ObjectiveText": "Collect a Survivor Dogtag",
    "TimeLimit": -1,
    "Collection": {
        "Amount": 1,
        "ClassName": "Dogtag_Survivor"
    }
}

Delivery Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 1,
    "ID": 1,
    "ObjectiveType": 5,
    "ObjectiveText": "Deliver the note to Steve",
    "TimeLimit": -1,
    "Deliveries": [
        {
            "Amount": 1,
            "ClassName": "ExpansionQuestItemPaper"
        }
    ],
    "Position": [
        8348.3896484375,
        0.0,
        10724.7001953125
    ],
    "MaxDistance": 20.0,
    "MarkerName": "Talk to Steve"
}

Target Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 1,
    "ID": 1,
    "ObjectiveType": 2,
    "ObjectiveText": "Kill 10 infected with a sledge hammer",
    "TimeLimit": -1,
    "Position": [
        8224.9296875,
        0.0,
        10811.0
    ],
    "MaxDistance": 150.0,
    "Target": {
        "Amount": 10,
        "ClassNames": [
            "ZmbM_CitizenASkinny_Base",
            "ZmbM_CitizenASkinny_LT_Base",
            "ZmbM_CitizenBFat_Base",
            "ZmbM_ClerkFat_Base",
            "ZmbM_ClerkFat_LT_Base",
            "ZmbM_CommercialPilotOld_Base",
            "ZmbM_CommercialPilotOld_LT_Base",
            "ZmbM_ConstrWorkerNormal_Base",
            "ZmbM_DoctorFat_Base",
            "ZmbM_FarmerFat_Base",
            "ZmbM_FarmerFat_LT_Base",
            "ZmbM_FirefighterNormal_Base",
            "ZmbM_FishermanOld_Base",
            "ZmbM_HandymanNormal_Base",
            "ZmbM_HeavyIndustryWorker_Base",
            "ZmbM_HermitSkinny_Base",
            "ZmbM_HikerSkinny_Base",
            "ZmbM_HunterOld_Base",
            "ZmbM_Jacket_Base",
            "ZmbM_Jacket_LT_Base",
            "ZmbM_JoggerSkinny_Base",
            "ZmbM__Runner_Base",
            "ZmbM_JournalistSkinny_Base",
            "ZmbM_MechanicSkinny_Base",
            "ZmbM_MotobikerFat_Base",
            "ZmbM_OffshoreWorker_Base",
            "ZmbM_ParamedicNormal_Base",
            "ZmbM_PatientSkinny_Base",
            "ZmbM_PolicemanFat_Base",
            "ZmbM_PolicemanSpecForce_Base",
            "ZmbM_priestPopSkinny_Base",
            "ZmbM_PrisonerSkinny_Base",
            "ZmbM_SkaterYoung_Base",
            "ZmbM_SkaterYoung_LT_Base",
            "ZmbM_SurvivorDean_Base",
            "ZmbM_VillagerOld_Base",
            "ZmbM_VillagerOld_LT_Base",
            "ZmbF_BlueCollarFat_Base",
            "ZmbF_CitizenANormal_Base",
            "ZmbF_CitizenANormal_LT_Base",
            "ZmbF_CitizenBSkinny_Base",
            "ZmbF_Clerk_Normal_Base",
            "ZmbF_ClerkFat_Base",
            "ZmbF_Clerk_Normal_LT_Base",
            "ZmbF_DoctorSkinny_Base",
            "ZmbF_HikerSkinny_Base",
            "ZmbF_JoggerSkinny_Base",
            "ZmbF_Runner_Base",
            "ZmbF_JournalistNormal_Base",
            "ZmbF_JournalistNormal_LT_Base",
            "ZmbF_MechanicNormal_Base",
            "ZmbF_MilkMaidOld_Base",
            "ZmbF_MilkMaidOld_LT_Base",
            "ZmbF_NurseFat_Base",
            "ZmbF_ParamedicNormal_Base",
            "ZmbF_PatientOld_Base",
            "ZmbF_PoliceWomanNormal_Base",
            "ZmbF_ShortSkirt_Base",
            "ZmbF_ShortSkirt_LT_Base",
            "ZmbF_SkaterYoung_Base",
            "ZmbF_SkaterYoung_LT_Base",
            "ZmbF_SurvivorNormal_Base",
            "ZmbF_SurvivorNormal_LT_Base",
            "ZmbF_VillagerOld_Base",
            "ZmbF_VillagerOld_LT_Base"
        ],
        "SpecialWeapon": 1,
        "AllowedWeapons": [
            "SledgeHammer"
        ]
    }
}

Travel Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 4,
    "ID": 1,
    "ObjectiveType": 3,
    "ObjectiveText": "Get to the Village",
    "TimeLimit": -1,
    "Position": [
        8224.9296875,
        0.0,
        10811.0
    ],
    "MaxDistance": 20.0,
    "MarkerName": "Get to the Village",
    "ShowDistance": 1
}

Treasure Hunt Objective Configuration Parameters:

Example:

{
    "ConfigVersion": 4,
    "ID": 1,
    "ObjectiveType": 6,
    "ObjectiveText": "Find the location of the treasure",
    "TimeLimit": -1,
    "ShowDistance": 1,
    "TreasureHunt": {
        "Positions": [
            [
                8541.4599609375,
                15.387800216674805,
                10299.099609375
            ]
        ],
        "Items": {
            "Zucchini": 1,
            "MoneyRuble": 100
        }
    }
}