-
-
Notifications
You must be signed in to change notification settings - Fork 15
Getting Started
Note: This guide was designed with at least version 3 of NotQuests in mind.
Recommended video tutorial: https://www.youtube.com/watch?v=OC45_H3Tv8Y
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. It's just an identifier for the Quest.
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. Not adding "--deductQuestPoints" at the end of this command means that the Quest Points won't be deducted from the Player's 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 an objective description and 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 add a condition to the second objective which makes it so the player needs to complete objective 1 first:
/qa edit TheVirus objectives edit 2 conditions add CompletedObjective 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. Let's make a SpawnMob Action:
/qa actions add Spawn15ZombieVillager SpawnMob ZOMBIE_VILLAGER 15 PlayerLocation
This action spawns 15 zombie villagers at the location wherever the player taking this Quest currently is 😄
Now, let's add the trigger with this action to our Quest:
/qa edit TheVirus triggers add Spawn15ZombieVillagers BEGIN --applyon O2 --world_name ALL
This runs the action "Spawn15ZombieVillagers" once we BEGIN O2 (objective 2) in ALL worlds (not limited to any 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 GiveQuestPoints 2
2 Swords: /qa edit TheVirus rewards add GiveItem hand 2
For the Swords reward, 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 (if you have Vault installed): /qa edit TheVirus rewards add GiveMoney 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 false:
/qa edit TheVirus takeEnabled false
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]
or /qa edit TheVirus armorstands add
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) (Note: that quests.yml was made for v2 and is old and not updated yet. Better try to make the Quest yourself via commands!)