-
-
Notifications
You must be signed in to change notification settings - Fork 15
Getting Started
After installing the plugin, get started by making your first Quest. There are 2 types of commands: /q
for the Quest user commands and /qa
for the admin commands, which we will use to create the quest!
To create your first quest type: /qa create <Quest Name>
Once all your Quests are created, you have to give the players the following permission: notnot.quests.use Otherwise, they won't be able to take any Quests.
After creating the Quest, you need to edit them in order to add functionality. You can add Objectives, Rewards, Requirements and so-called Triggers.
First, type /qa edit <Quest Name>
. Replace <Quest Name>
with the name of the Quest you would like to edit.
Now, this command is not done yet - but just run it anyways. It will show you all the available options of what you can edit :)
Helpful Tip: After each argument in any command, you can simply press enter & run command — even if the command is not finished. This will show a useful error message with a mini-tutorial and an explanation about what the heck the next argument is.
Let's create an example Quest together. We'll name it TheVirus. First, create the Quest by typing /qa create TheVirus
.
Now, the initial Quest Name cannot have any spaces. However, we can give it a display name which can have spaces - and that's the name the player will actually see!
/qa edit TheVirus displayName A Deadly Virus
Next, we want to add a description to the Quest, which will be displayed in multiple places, for example if the player tries to preview or take the Quest:
/qa edit TheVirus description A deadly virus has infected the people of Winterfell. You have to murder the infected villagers to prevent the virus from spreading further.
Without any requirements, every single player will be able to accept your Quest. However, that Quest we're gonna make will be quite tricky! Let's require the player to have at least 10 Quest Points until they can accept the Quest:
/qa edit TheVirus requirements add QuestPoints 10
Quest Points can be earned by completing Quests, or they can be given out manually. If we don't specify "--deductQuestPoints" at the end of this command means that the Quest Points won't be deducted from the Players balance once they accept it.
Let's add our first objective! First, the player has to free up the road from all the shit the infected Zombies made:
/qa edit TheVirus objectives add BreakBlocks DIRT 64
This objective will be completed once the player breaks 64 dirt.
Now, let's add a description for that objective:
/qa edit TheVirus objectives edit 1 description set The infected Zombies shat on the street. Clean it up by breaking 64 dirt blocks!
And a name:
/qa edit TheVirus objectives edit 1 displayName set Stinky Street
Onto our next objective! The street is clear! The player should now kill all the infected villagers:
/qa edit TheVirus objectives add KillMobs ZOMBIE_VILLAGER 15
After 15 kills of Zombie Villagers, that objective will be completed! Now let's add a description and a name:
/qa edit TheVirus objectives edit 2 description set You can see the infected villagers in front of you! Murder them all to stop the virus from spreading!
/qa edit TheVirus objectives edit 2 displayName set Zombies ahead!
After accepting this Quest, you will see this:
As you see, both objectives are visible. You can also complete them in no particular order.
However, we want the second Objective, "Zombies ahead!" to only be visible and complete-able after the first Objective is completed.
To accomplish that, we need to make the second objective depend on the first one:
/qa edit TheVirus objectives edit 2 dependencies add 1
Done! If we take the Quest now, the second objective is hidden:
With Triggers, we can add some action to the Quest!
When the user reaches the second objective and has to kill the Zombie Villagers, he will notice one thing: There are no Zombie Villagers to kill. Why would they?
Let's make NotQuests spawn some Zombie Villagers for him once he reaches the second objective.
First, we need to create the action which spawns the zombie villagers. Actions can be created outside of Quests and re-used for every quest. It's basically a console command which runs. Let's make one:
/qa actions add Spawn15ZombieVillagers spawnmob zombievillager 15 {PLAYER}
This action uses the /spawnmob command from the plugin EssentialsX. You need to have EssentialsX installed for it to work. EssentialsX limits the maximum amount of spawnmobs per-command to 15. You can increase it in their config.
Now, let's add the trigger with this action to our Quest:
/qa edit TheVirus triggers add Spawn15ZombieVillagers BEGIN O2 ALL
This runs the action "Spawn15ZombieVillagers" once we BEGIN O2 (objective 2) in ALL worlds (not limited to and world). Feel free to test it out — it will work ;)
Your players will murder you if they waste their time on this super hard Quest without receiving any rewards. So let's add some:
+2 Quest Points: /qa edit TheVirus rewards add QuestPoints 2
2 Swords: /qa edit TheVirus rewards add Item hand 2
For the Swords, you have to hold the item in your hand while running that command. Otherwise, you can also run /qa edit TheVirus rewards add Item WOODEN_SWORD 2
300 Money (command needs EssentialsX): /qa edit TheVirus rewards add ConsoleCommand eco give {PLAYER} 300
NOTE: Since version 1.4.6 you can also use /qa edit TheVirus rewards add Money 300
Done!
We don't want the player to take this Quest over and over and over and over again after they completed it. Let's limit that.
First, let's make it, so they can only accept it once every 20 hours:
/qa edit TheVirus acceptCooldown 1200
1200 minutes = 20 hours. Now, let's give it a hard limit of 10 Quest completions. After 10 completions, the player cannot accept the Quest anymore, no matter how long they wait:
/qa edit TheVirus maxAccepts 10
At last, let's set takeEnabled to No:
/qa edit TheVirus takeEnabled No
This will make it, so the player cannot take the Quest using the /q take TheVirus command. Instead, they have to take it by either right-clicking a Quest Giver NPC or a Quest Giver armor stand. More regarding that in the next section:
Use /q take TheVirus
to take the Quest! You can also bind it to either Citizens NPCs or Armor stands using /qa edit TheVirus npcs add [NPC ID] yes
or /qa edit TheVirus armorstands add yes
You can download the finished Quest here: https://github.com/AlessioGr/NotQuests/blob/main/Demo%20Quests/Deadly%20Virus/quests.yml (The quest is saved in the quests.yml file)