You can create a Quest Pool by adding a
If a quest in the quest pool is not repeatable it will only be given as long as it is not completed. Repeatable quests are only given after their individual cooldown has passed.
Lets have a look at an example quest pool:
Display All
*.pool.yml
file into any of the quest folders. The path references like this
will also be replaced in a Quest Pool like in any other quest. Quest Pools must specify a trigger in order to be executed. Quest pools have several options to allow filtering what quests should be given to the player. For that random tables are used.If a quest in the quest pool is not repeatable it will only be given as long as it is not completed. Repeatable quests are only given after their individual cooldown has passed.
Lets have a look at an example quest pool:
Source Code: example.pool.yml
- name: Daily Quests
- # players will not get new quests from this pool but can still complete existing quests
- enabled: true
- # how many quests shoud maximal be given the player when the trigger is called
- count: 1
- # how many active quests can the player maximal have from this quest pool
- max-active-quests: 1
- # if set to true will abort all active quests of this pool when the trigger is called and the cooldown is over (and the reset time is passed)
- abort-previous-quests: false
- # in seconds - how long should be wait until giving new quests
- cooldown: 3600
- # time of the day to reset the quest pool and give out new quests - can be left out to only respect the cooldown
- # e.g.: a reset time of 17:00 and a cooldown of 3600s (1h) will give the player a new quest if it is after 17:00
- # if the player completes the quest before 0:00 he will get a new quest
- # if it is after 0:00 he has to wait until 17:00 to get a new quest
- # so generally a cooldown of 86400 (24h) or more is recommended when using the reset time
- reset-time: '17:00'
- # see the action api for a tutorial on how to use trigger and actions
- # you dont need a action, the quest pool will activate automatically when the trigger is called
- trigger:
- 0:
- type: player.login
- # delay the trigger by 10s
- delay: 10
- # these actions will be executed additionally to the normal quest reward actions
- # specify requirements to filter for higher rewards on successive daily quests
- # keep in mind that if you have a successive count requirement with 2 and one with 3, both will be executed
- # if the player has at least 3 successive quest pool counts
- actions:
- 0:
- type: player.give.money
- args:
- amount: 20s
- requirements:
- 0:
- type: questpool.successive.count
- args:
- count: 2
- pool: this.example
- # now comes the important part - the quests
- quests:
- 1:
- quest: 'this.path.to.the.first-quest'
- probability: 5
- 2:
- quest: 'this.path.to.the.second-quest'
- probability: 10
- 3:
- quest: 'this.path.to.the.third-quest'
- probability: 1
- 4:
- quest: 'this.path.to.the.fourth-quest'
- # set this to disable the quest IN THE POOL
- enabled: false
- probability: 1
8,435 times viewed