[Server Hosting] Quest 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!

Configuration Parameters:

"ConfigVersion"

Integer.

Current config file verstion. NEVER CHANGE THIS!

"ID"

Integer.

Unique quest ID. Make sure this ID is different for every single quest.

"Type"

Integer.

Quest type from ExpansionQuestType enumeration. Make sure the quest type is the same as the main objective type of the quest.

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

"Title"

String.

Quest title.

"Descriptions"

Array.

Should have only max. 3 entries in the array! Each index has its own use in the system.

0 - Description on getting quest.
1 - Description while quest is active.
2 - Description when take in quest.

"ObjectiveText"

String.

Short objective desctiption text.

"PreQuest"

Integer.

Pre-Quest Quest ID. If this quest requires a other quest to be completed before it can be displayed/accepted add the quast ID of the quest that has to be completed here.

"FollowUpQuest"

Integer.

Follow-up Quest ID. If this quest has a follow quest you need to add the quest ID of the follow-up quest here so it will be automaticaly shared to the player when he completes the pre-quest.

"QuestGiverID"

Integer.

Unique quest NPC ID from the quest NPC configuration of the NPC that will head out the quest.

"QuestTurnInID"

Integer.

Unique quest NPC ID from the quest NPC configuration of the NPC that will turn-in the quest when completed.

"IsAchivement"

Bolean.

Quest is a achiment quest and gets added to new players when they join the server for the first time automatically.

"Repeatable"

Bolean.

Quest is a repeatable quest.

"IsDailyQuest"

Bolean.

Quest is daylie quest and has a daylie reset.

"IsWeeklyQuest"

Bolean.

Quest is a weekly quest and has a weekly cooldown.

"CancelQuestOnPlayerDeath"

Bolean.

Quest will be cancled if the quest player (or one of his group members when its a group quest) dies.

"Autocomplete"

Bolean.

Quest will be autocompleted when all quest ojectives are completed.

"IsGroupQuest"

Bolean.

Quest is a group quest.

"IsBanditQuest"

Bolean.

Quest for bandits only

"IsHeroQuest"

Bolean.

Quest for heros only

"ObjectSetFileName"

String.

Can be used to spawn a set of objects in when a quest player starts the certain quest. Add the file name of the .map file that will get loaded without the .map extention.

The .map file need to be located in the mission directory at: MISSION.MAPNAME/expansion/quests/objects.

"Objectives"

Array.

Quest objectives that the player need to complete to get the quest rewards.

{
    "ID": 1,
    "ObjectiveType": 2,
    "ObjectiveText": ""
}
  • "ID" Integer. Objective ID from the objective configuration.
  • "ObjectiveType" Integer. Objective Type from the objective configuration.
TARGET = 2
TRAVEL = 3
COLLECT = 4
DELIVERY = 5
TREASUREHUNT = 6
AIPATROL = 7
AICAMP = 8
AIVIP = 9
ACTION = 10
  • "ObjectiveText" String. Objective text. Mainly used for marker test labels if the Expansion Navigation mod is also loaded.

"QuestItems"

Array.

Quest items that the player will recive when starting the quest. These items get deleted from the quest player/s when the quest is cancled/completed or the player logs out/server restarts. If the player reconnects the items get added back to the quest players as long as the quest is not completed.

{
    "ClassName": "SledgeHammer",
    "Amount": 1
}
  • "ClassName" Class name of the quest item.
  • "Amount" How many units/items the player should get of the item.

"Rewards"

Array.

Quest rewards that the player will revice when turning in the quest and all objectives are completed.

{
    "ClassName": "TaloonBag_Blue",
    "Amount": 1
}
  • "ClassName" Class name of the reward item.
  • "Amount" How many units/items the player should get of the item.

"NeedToSelectReward"

Boolean.

If enabled and there is multiple rewards for the quest in the Rewards array the player need to select one reward when he turns-in the quest from the given rewards.

"RewardsForGroupOwnerOnly"

Boolean.

If enabled and the quest is a group quest only the group owner (quest owner) will recive the rewards added to the Rewards array.

"HumanityReward"

Integer.

Only used if the Hardline mod is loaded and the "UseHumanity" setting in the HardlineSettings.JSON is enabled. Humanity reward the quest players will recive on quest completion. Can be a positive or negative value!


Example configuration JSON file:

{
    "ConfigVersion": 3,
    "ID": 3,
    "Type": 5,
    "Title": "Peter's package",
    "Descriptions": [
        "Oh right, here's what Peter wants. Bring it to him and he will be satisfied. Don't even think about opening the package! Just go and bring it to him.",
        "What are you doing still here? Go to Peter!",
        "Why did this take so long?..You go what I wanted? ** (He looks at the package in your hands with wide eyes and rips it out of your hands) ** Good!....What? Your way out? Well what should i say but i lied to you. There is no fucking way out from this hell and you will die here as we all. You can have this backpack and try your luck out there. I am sorry i lied to you but we all have to see how we somehow survive here. I wish you good luck out there...you will need it."
    ],
    "ObjectiveText": "Go back to peter and give him the package from Steve.",
    "PreQuest": 2,
    "FollowUpQuest": -1,
    "QuestGiverID": 2,
    "QuestTurnInID": 1,
    "IsAchivement": 0,
    "Repeatable": 0,
    "IsDailyQuest": 0,
    "IsWeeklyQuest": 0,
    "CancelQuestOnPlayerDeath": 0,
    "Autocomplete": 0,
    "IsGroupQuest": 0,
    "IsBanditQuest": 0,
    "IsHeroQuest": 0,
    "ObjectSetFileName": "",
    "QuestClassName": "",
    "Objectives": [
        {
            "ConfigVersion": 1,
            "ID": 2,
            "ObjectiveType": 5,
            "ObjectiveText": "",
            "TimeLimit": -1
        }
    ],
    "QuestItems": [],
    "Rewards": [
        {
            "ClassName": "TaloonBag_Blue",
            "Amount": 1
        },
        {
            "ClassName": "TaloonBag_Green",
            "Amount": 1
        },
        {
            "ClassName": "TaloonBag_Orange",
            "Amount": 1
        },
        {
            "ClassName": "TaloonBag_Violet",
            "Amount": 1
        }
    ],
    "NeedToSelectReward": 1,
    "RewardsForGroupOwnerOnly": 0,
    "HumanityReward": 0
}

Special Quest Configurations:

There is certain different quest configurations that change the behavior or handling of the quest with different results.

Auto-Start Quest

A Auto-start quest will get added to the player on first server connection.

Need to have the following parameter values to work as intended:

"PreQuest": -1, //! Make sure the quest has no pre-quest!
"QuestGiverID": -1, //! Make sure the quest has no quest giver ID!
"IsAchivement": 0, //! Make sure the quest is not flagged as achivement quest!
"IsGroupQuest": 0, //! Make sure the quest is not flagged as group quest!

Achievement Quest

A Achievement quest will get added to the player on first server connection but the difference here is that the player will never be notified about this quest except from when he complets the quest (all quest objectives completed).

Need to have the following parameter values to work as intended:

"PreQuest": -1, //! Make sure the quest has no pre-quest!
"QuestGiverID": -1, //! Make sure the quest has no quest giver ID!
"IsAchivement": 1, //! Make sure the quest is not flagged as achivement quest!
"Autocomplete": 1, //! Make sure the quest is auto-completed when all quest objectives are completed!
"IsGroupQuest": 0, //! Make sure the quest is not flagged as group quest!

Daily Quest

Daily quests can be completed once per day and then get set on a cooldown until the servers daily quest reset happens on the next day. The servers daily reset time is controlled by the quest settings [LINK TO SETTING]. Need to have the following parameter values to work as intended:

"Repeatable": 1, //! Make sure the quest is repeatable!
"IsDailyQuest": 1,
"IsWeeklyQuest": 0, //! Make sure its only a daily or weekly quest!

Weekly Quest

Weekly quests can be completed once per week and then get set on a cooldown until the servers weekly quest reset happens on the next week. The servers weekly reset time and day is controlled by the quest settings [LINK TO SETTING]. Need to have the following parameter values to work as intended:

"Repeatable": 1, //! Make sure the quest is repeatable!
"IsDailyQuest": 0, //! Make sure its only a daily or weekly quest!
"IsWeeklyQuest": 1,
⚠️ **GitHub.com Fallback** ⚠️