aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/Configuration-problems.md77
-rw-r--r--docs/Creating-a-quest-or-category.md10
-rw-r--r--docs/Gemfile.lock81
-rw-r--r--docs/Getting-started.md22
-rw-r--r--docs/PlaceholderAPI.md117
-rw-r--r--docs/Task-types.md67
-rw-r--r--docs/_Sidebar.md38
-rw-r--r--docs/_config.yml32
-rw-r--r--docs/commands-and-permissions.md (renamed from docs/Commands-and-permissions.md)8
-rw-r--r--docs/configuration/basic-options.md (renamed from docs/Basic-options.md)73
-rw-r--r--docs/configuration/colour-codes.md (renamed from docs/Colour-codes.md)17
-rw-r--r--docs/configuration/configuration-problems.md96
-rw-r--r--docs/configuration/creating-a-category.md (renamed from docs/Creating-a-category.md)14
-rw-r--r--docs/configuration/creating-a-quest.md (renamed from docs/Creating-a-quest.md)52
-rw-r--r--docs/configuration/custom-gui-items.md (renamed from docs/Custom-GUI-items.md)9
-rw-r--r--docs/configuration/defining-items.md (renamed from docs/Defining-items.md)96
-rw-r--r--docs/configuration/global-configurations.md (renamed from docs/Global-configurations.md)36
-rw-r--r--docs/configuration/gui-configuration.md (renamed from docs/GUI-configuration.md)11
-rw-r--r--docs/configuration/index.md7
-rw-r--r--docs/configuration/storage-providers.md (renamed from docs/Storage-providers.md)56
-rw-r--r--docs/contributing-to-the-wiki.md (renamed from docs/Contributing-to-the-wiki.md)14
-rw-r--r--docs/developer/api.md (renamed from docs/API.md)11
-rw-r--r--docs/developer/index.md7
-rw-r--r--docs/developer/new-task-type.md (renamed from docs/New-task-type.md)19
-rw-r--r--docs/download.md (renamed from docs/Download.md)6
-rw-r--r--docs/getting-started.md15
-rw-r--r--docs/guides/index.md7
-rw-r--r--docs/guides/quest-progress-in-scoreboard.md (renamed from docs/Quest-progress-in-scoreboard.md)16
-rw-r--r--docs/index.md16
-rw-r--r--docs/task-type/askyblock_level-(task-type).md15
-rw-r--r--docs/task-type/bentobox_level-(task-type).md15
-rw-r--r--docs/task-type/blockbreak-(task-type).md14
-rw-r--r--docs/task-type/blockplace-(task-type).md12
-rw-r--r--docs/task-type/breeding-(task-type).md11
-rw-r--r--docs/task-type/brewing-(task-type).md11
-rw-r--r--docs/task-type/bucketempty-(task-type).md11
-rw-r--r--docs/task-type/bucketfill-(task-type).md11
-rw-r--r--docs/task-type/citizens_deliver-(task-type).md15
-rw-r--r--docs/task-type/citizens_interact-(task-type).md15
-rw-r--r--docs/task-type/command-(task-type).md11
-rw-r--r--docs/task-type/consume-(task-type).md11
-rw-r--r--docs/task-type/crafting-(task-type).md11
-rw-r--r--docs/task-type/dealdamage-(task-type).md11
-rw-r--r--docs/task-type/distancefrom-(task-type).md11
-rw-r--r--docs/task-type/enchanting-(task-type).md11
-rw-r--r--docs/task-type/essentials_balance-(task-type).md15
-rw-r--r--docs/task-type/essentials_moneyearn-(task-type).md15
-rw-r--r--docs/task-type/expearn-(task-type).md11
-rw-r--r--docs/task-type/fabledskyblock_level-(task-type).md15
-rw-r--r--docs/task-type/farming-(task-type).md19
-rw-r--r--docs/task-type/fishing-(task-type).md14
-rw-r--r--docs/task-type/index.md7
-rw-r--r--docs/task-type/inventory-(task-type).md12
-rw-r--r--docs/task-type/iridiumskyblock_value-(task-type).md15
-rw-r--r--docs/task-type/milking-(task-type).md11
-rw-r--r--docs/task-type/mobkilling-(task-type).md12
-rw-r--r--docs/task-type/mythicmobs_killing-(task-type).md15
-rw-r--r--docs/task-type/permission-(task-type).md13
-rw-r--r--docs/task-type/placeholderapi_evaluate-(task-type).md17
-rw-r--r--docs/task-type/playerkilling-(task-type).md12
-rw-r--r--docs/task-type/playtime-(task-type).md14
-rw-r--r--docs/task-type/position-(task-type).md11
-rw-r--r--docs/task-type/shearing-(task-type).md12
-rw-r--r--docs/task-type/shopguiplus_buy-(task-type).md16
-rw-r--r--docs/task-type/shopguiplus_sell-(task-type).md16
-rw-r--r--docs/task-type/smelting-(task-type).md12
-rw-r--r--docs/task-type/superiorskyblock_level-(task-type).md15
-rw-r--r--docs/task-type/superiorskyblock_worth-(task-type).md17
-rw-r--r--docs/task-type/taming-(task-type).md11
-rw-r--r--docs/task-type/uskyblock_level-(task-type).md15
-rw-r--r--docs/task-type/votingplugin_vote-(task-type).md15
-rw-r--r--docs/task-type/walking-(task-type).md11
-rw-r--r--docs/tips.md (renamed from docs/Tips.md)7
-rw-r--r--docs/tools/data-migration-tool.md (renamed from docs/Data-migration-tool.md)10
-rw-r--r--docs/tools/index.md7
-rw-r--r--docs/tools/placeholderapi.md148
-rw-r--r--docs/tools/quest-debugger.md (renamed from docs/Quest-debugger.md)18
77 files changed, 1224 insertions, 560 deletions
diff --git a/docs/Configuration-problems.md b/docs/Configuration-problems.md
deleted file mode 100644
index 258cbf86..00000000
--- a/docs/Configuration-problems.md
+++ /dev/null
@@ -1,77 +0,0 @@
-**Configuration problems** are designed to inform you when you have an **error** or **potential misconfiguration**. They may appear when reloading Quests, for example:
-
-![](https://i.imgur.com/5o7EyVm.png)
-
-These problems are designed to be as readable as possible, allowing self-diagnosis for your configuration. Warnings are also used to spot common misconfigurations, which may lead to quests not working as expected, thus being interpreted as a bug.
-
-## Types of problem
-|Type|Description|
-| :---: | --- |
-|Error|Errors prevent the specific quest from loading. These can be overidden in the config at `options.error-checking.override-errors`. Examples include an incorrect quest ID or malformed YML file.|
-|Warning|Warnings have no impact other than to inform you that a quest may not work as expected. Examples include an invalid material for a blockbuildcertain task, or a required quest which does not exist.|
-
-## Understanding the problems
-Problems generally follow this format:
-```
-<name of file> ----
- | - <type of problem>: <description of problem> :<location of problem>
-```
-
-**Example 1**
-
-The following error will show if you try to create a `blockbreakcertain` task without specifying how many blocks or what block you need to break.
-```
-example1.yml ----
- | - E: Required field 'amount' is missing for task type 'blockbreakcertain' :tasks.miningcertain.amount
- | - E: Required field 'block' is missing for task type 'blockbreakcertain' :tasks.miningcertain.block
-```
-In the above example, the problem is an Error (as denoted by E) and will prevent the quest (`example1`) from loading. At the end, it shows you exactly where the error comes from in the YML file, which looks like this:
-```yaml
-tasks:
- miningcertain:
- type: "blockbreakcertain"
-```
-Where it says the location `:tasks.miningcertain.amount`, each dot deontes a level of indentation. So in this case, it is expecting values at `amount` and `block`, but they are not defined. Below is the fixed version.
-```yaml
-tasks:
- miningcertain:
- type: "blockbreakcertain"
- amount: 10
- block: DIAMOND_ORE
-```
-**Example 2**
-
-```
-example2.yml ----
- | - E: Expected an integer for 'amount', but got 'hey' instead :tasks.inventory.amount
- | - W: Material 'thisisnotablock' does not exist :tasks.inventory.item
- | - W: Quest requirement 'example' does not exist :options.requires
-```
-```yaml
-tasks:
- inventory:
- type: "inventory"
- amount: hey
- item: thisisnotablock
-...
-options:
- requires:
- - "example"
- ...
-```
-In this case, the task is broken since instead of numbers for the amount of items needed, the string "hey" is there instead, causing an error. The source of the error is indicated by the location at the end `tasks.inventory.amount`.
-
-Also, a warning is shown for the item "thisisnotablock" at `tasks.inventory.item` and for the requirement "example" at `options.requires`. These warnings are informing you that the task may not work as "thisisnotablock" is not a real item, and that the quest "example" which is required to have been completed in order to start this quest does not exist.
-
-Below is a fixed version:
-```yaml
-tasks:
- inventory:
- type: "inventory"
- amount: 10
- item: DIAMOND
-...
-options:
- # requirements section removed
- ...
-``` \ No newline at end of file
diff --git a/docs/Creating-a-quest-or-category.md b/docs/Creating-a-quest-or-category.md
deleted file mode 100644
index a109d3e3..00000000
--- a/docs/Creating-a-quest-or-category.md
+++ /dev/null
@@ -1,10 +0,0 @@
-***
-
-### 🗑️ ***This page is subject to removal***
-*This page has been superseded, is unmaintained, or is not required. The information contained here may be inaccurate or incomplete.*
-
-***
-
-**This page has been moved, please see the following pages instead:**
-- [Creating a quest](Creating-a-quest)
-- [Creating a category](Creating-a-category) \ No newline at end of file
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
new file mode 100644
index 00000000..778d0bd7
--- /dev/null
+++ b/docs/Gemfile.lock
@@ -0,0 +1,81 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.8.4)
+ public_suffix (>= 2.0.2, < 6.0)
+ colorator (1.1.0)
+ concurrent-ruby (1.2.2)
+ em-websocket (0.5.3)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0)
+ eventmachine (1.2.7)
+ ffi (1.15.5)
+ forwardable-extended (2.6.0)
+ google-protobuf (3.23.3-x86_64-linux)
+ http_parser.rb (0.8.0)
+ i18n (1.14.1)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.3.2)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (>= 2.0, < 4.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 2.3, >= 2.3.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (>= 0.3.6, < 0.5)
+ pathutil (~> 0.9)
+ rouge (>= 3.0, < 5.0)
+ safe_yaml (~> 1.0)
+ terminal-table (>= 1.8, < 4.0)
+ webrick (~> 1.7)
+ jekyll-default-layout (0.1.5)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-sass-converter (3.0.0)
+ sass-embedded (~> 1.54)
+ jekyll-seo-tag (2.8.0)
+ jekyll (>= 3.8, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ just-the-docs (0.5.4)
+ jekyll (>= 3.8.5)
+ jekyll-seo-tag (>= 2.0)
+ rake (>= 12.3.1)
+ kramdown (2.4.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.4)
+ listen (3.8.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ mercenary (0.4.0)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (5.0.1)
+ rake (13.0.6)
+ rb-fsevent (0.11.2)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.5)
+ rouge (4.1.2)
+ safe_yaml (1.0.5)
+ sass-embedded (1.63.6-x86_64-linux-gnu)
+ google-protobuf (~> 3.23)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
+ unicode-display_width (2.4.2)
+ webrick (1.8.1)
+
+PLATFORMS
+ x86_64-linux
+
+DEPENDENCIES
+ jekyll (~> 4.3.2)
+ jekyll-default-layout
+ just-the-docs
+
+BUNDLED WITH
+ 2.4.13
diff --git a/docs/Getting-started.md b/docs/Getting-started.md
deleted file mode 100644
index d5c3bece..00000000
--- a/docs/Getting-started.md
+++ /dev/null
@@ -1,22 +0,0 @@
-***
-
-### 🔨 ***This page is under construction***
-*The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).*
-
-Refer to the following pages instead:
-* [Creating a quest or category](https://github.com/LMBishop/Quests/wiki/Creating-A-Quest-Or-Category)
-* [Task configuration layout](https://github.com/LMBishop/Quests/wiki/Task-Configuration-Layout)
-* [Global configurations](https://github.com/LMBishop/Quests/wiki/Global-Configurations)
-* [Storage providers](https://github.com/LMBishop/Quests/wiki/Storage-Providers)
-* [Configuration problems](https://github.com/LMBishop/Quests/wiki/Configuration-Problems)
-
-These are also listed on the sidebar.
-
-***
-
-Welcome to Quests! This wiki should help you with creating your own custom quests on your server.
-
-### What is a quest?
-A **quest** is simply a **group of tasks** which a player must complete in return for a reward.
-
-Each **task** may have a different **task type**, which range from breaking blocks to reaching a certain position in the world. Quests provides over 30 different types you can use, listed on [this page](https://github.com/LMBishop/Quests/wiki/Task-Types).
diff --git a/docs/PlaceholderAPI.md b/docs/PlaceholderAPI.md
deleted file mode 100644
index b726450c..00000000
--- a/docs/PlaceholderAPI.md
+++ /dev/null
@@ -1,117 +0,0 @@
-📜 **No PAPI eCloud download is necessary - placeholders come with the plugin.**
-
-Jump to section:
-* [Common placeholders (quest counters and lists)](#common-placeholders)
-* [Advanced placeholders (quest details, per-category counters and lists)](#common-placeholders)
-* [Caching placeholders](#caching-placeholders)
-
-## Common placeholders
-### Quest counters
-|Placeholder|Description|
-|---|---|
-|`%quests_all%`|Returns the **number** of quests on the server.|
-|`%quests_completed%`|**\*** Returns the **number** of quests the player has completed.|
-|`%quests_completedbefore%`|Returns the **number** of quests the player has completed **at least once**.|
-|`%quests_started%`|Returns the **number** of quests which are active for the player.|
-|`%quests_categories%`|Returns the **number** of categories on the server.|
-### Quest lists
-|Placeholder|Description|
-|---|---|
-|`%quests_all_list%`|Returns a **comma-seperated\*\* list** of quest **names** on the server.|
-|`%quests_completed_list%`|\* Returns a **comma-seperated\*\* list** of quest **names** the player has completed.|
-|`%quests_completedbefore_list%`|Returns a **comma-seperated\*\* list** of quest **names** the player has completed **at least once**.|
-|`%quests_started_list%`|Returns a **comma-seperated\*\* list** of quest **names** which are active for the player.|
-|`%quests_categories_list%`|Returns a **comma-seperated\*\* list** of category **names** on the server.|
-### Quest ID lists
-|Placeholder|Description|
-|---|---|
-|`%quests_all_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** on the server.|
-|`%quests_completed_listid%`|\* Returns a **comma-seperated\*\* list** of quest **IDs** the player has completed.|
-|`%quests_completedbefore_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** the player has completed **at least once**.|
-|`%quests_started_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** which are active for the player.|
-|`%quests_categories_listid%`|Returns a **comma-seperated\*\* list** of category **IDs** on the server.|
-
-**\*** *this does not include quests which have been repeated and not yet completed*
-
-**\*\*** *the delimiter can be changed by adding it in at the end: for example `%quests_completed_listid_ / %` will return a list of completed quests **seperated by the characters ` / ` (including the spaces around it)***
-
-## Advanced placeholders
-### Quest details
-|Placeholder|Description|
-|---|---|
-|`%quests_quest:<quest-id>%`|Returns the **display name** of the quest **`<quest-id>`**.|
-|`%quests_quest:<quest-id>_started%`|Returns **true/false** on whether or not the quest **`<quest-id>`** is started by the player.|
-|`%quests_quest:<quest-id>_starteddate%`|Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the quest **`<quest-id>`** was started by the player.|
-|`%quests_quest:<quest-id>_completed%`|**\*** Returns **true/false** on whether or not the quest **`<quest-id>`** is completed by the player.|
-|`%quests_quest:<quest-id>_completedbefore%`|Returns **true/false** on whether or not the quest **`<quest-id>`** is completed by the player **at least once**.|
-|`%quests_quest:<quest-id>_completiondate%`|Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the quest **`<quest-id>`** was completed by the player.|
-|`%quests_quest:<quest-id>_cooldown%`|Returns a **time in seconds** of the cooldown for quest **`<quest-id>`**.|
-|`%quests_quest:<quest-id>_canaccept%`|Returns **true/false** on whether or not the quest **`<quest-id>`** can be started by the player.|
-|`%quests_quest:<quest-id>_meetsrequirements%`|Returns **true/false** on whether or not the player has completed the required quests for the quest **`<quest-id>`**.|
-|`%quests_quest:<quest-id>_task:<task-id>_progress%`|Returns the **progress** of task **`task-id`** on the quest **`<quest-id>`**.|
-|`%quests_quest:<quest-id>_task:<task-id>_completed%`|Returns **true/false** on whether or not the task **`task-id`** on the quest **`<quest-id>`** is completed by the player.|
-|`%quests_quest:<quest-id>_p:<placeholder>%`|Returns the **local quest placeholder `<placeholder>`** for the quest **`<quest-id>`**.|
-
-|Placeholder|Description|
-|---|---|
-|`%quests_tracked%`|Returns the **display name** of the **players tracked quest** (or "No tracked quest").|
-|`%quests_tracked_started%`|Returns **true/false** on whether or not the **players tracked quest** is started.|
-|`%quests_tracked_starteddate%`|Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the **players tracked quest** was started by the player.|
-|`%quests_tracked_completed%`|**\*** Returns **true/false** on whether or not the **players tracked quest** is completed.|
-|`%quests_tracked_completedbefore%`|Returns **true/false** on whether or not the **players tracked quest** is completed **at least once**.|
-|`%quests_tracked_completiondate%`|Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the **players tracked quest** was completed by the player.|
-|`%quests_tracked_cooldown%`|Returns a **time in seconds** of the cooldown for the **players tracked quest**.|
-|`%quests_tracked_canaccept%`|Returns **true/false** on whether or not the **players tracked quest** can be started by the player.|
-|`%quests_tracked_meetsrequirements%`|Returns **true/false** on whether or not the player has completed the required quests for the **players tracked quest**.|
-|`%quests_tracked_task:<task-id>_progress%`|Returns the **progress** of task **`task-id`** on the **players tracked quest**.|
-|`%quests_tracked_task:<task-id>_completed%`|Returns **true/false** on whether or not the task **`task-id`** on the **players tracked quest** is completed by the player.|
-|`%quests_tracked_p:<placeholder>%`|Returns the **local quest placeholder `<placeholder>`** for the **players tracked quest**.|
-
-### Per-category quest counters
-|Placeholder|Description|
-|---|---|
-|`%quests_category:<category-id>%`|Returns the **id** of the category **`<category-id>`** (useful to check if it is a valid reference).|
-|`%quests_category:<category-id>_all%`|Returns the **number** of quests in the category **`<category-id>`**.|
-|`%quests_category:<category-id>_completed%`|**\*** Returns the **number** of quests in the category **`<category-id>`** the player has completed.|
-|`%quests_category:<category-id>_completedbefore%`|Returns the **number** of quests in the category **`<category-id>`** the player has completed **at least once**.|
-|`%quests_category:<category-id>_started%`|Returns the **number** of quests in the category **`<category-id>`** which are active for the player.|
-
-### Per-category quest lists
-|Placeholder|Description|
-|---|---|
-|`%quests_category:<category-id>_all_list%`|Returns a **comma-seperated\*\* list** of quest **names** on the server.|
-|`%quests_category:<category-id>_completed_list%`|\* Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** the player has completed.|
-|`%quests_category:<category-id>_completedbefore_list%`|Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** the player has completed **at least once**.|
-|`%quests_category:<category-id>_started_list%`|Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** which are active for the player.|
-
-### Per-category quest ID lists
-|Placeholder|Description|
-|---|---|
-|`%quests_category:<category-id>_all_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** on the server.|
-|`%quests_category:<category-id>_completed_listid%`|\* Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** the player has completed.|
-|`%quests_category:<category-id>_completedbefore_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** the player has completed **at least once**.|
-|`%quests_category:<category-id>_started_listid%`|Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** which are active for the player.|
-
-**\*** *this does not include quests which have been repeated and not yet completed*
-
-**\*\*** *the delimiter can be changed by adding it in at the end: for example `%quests_category:<category-id>_completed_listid_ / %` will return a list of completed quests **seperated by the characters ` / ` (including the spaces around it)***
-
-**\*\*\*** *the date format may be adjusted by including it at the end: for example `%quests_q:<quest-name>_completiondate_dd/MM HH:mm:ss%` will return a the date of compltion **formatted as `dd/MM HH:mm:ss`** - you may use any letter listed [here](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)*
-
-## Caching placeholders
-Placeholders may be cached for a short period (10 seconds by default) to help improve performance. To do this, **simply add `_cache` to the end of any placeholder**. Note: date formats are automatically cached as parsing them may be heavy.
-
-**Examples:**
-```
-%quests_all_cache%
-%quests_completedbefore_listid_cache%
-%quests_quest:<quest-id>_task:<task-id>_progress_cache%
-```
-
-The length of time Quests retains this cache can be configured in the configuration under `options.placeholder-cache-time`. By default, this cache is **10 seconds**.
-
-```yaml
-options:
- ...
- placeholder-cache-time: 10
-``` \ No newline at end of file
diff --git a/docs/Task-types.md b/docs/Task-types.md
deleted file mode 100644
index 089fb464..00000000
--- a/docs/Task-types.md
+++ /dev/null
@@ -1,67 +0,0 @@
-Jump to section:
-* [Non-dependent task types](#non-dependent-task-types)
-* [Dependent task types](#dependent-task-types)
-* [External task types](#external-task-types)
-
-## Non-dependent task types
-The following Task Types come with the plugin and are activated automatically
-### Spigot
-* **[blockplace](https://github.com/LMBishop/Quests/wiki/blockplace-(task-type))** - Place a set amount of blocks.
-* **[blockbreak](https://github.com/LMBishop/Quests/wiki/blockbreak-(task-type))** - Break a set amount of blocks.
-* **[breeding](https://github.com/LMBishop/Quests/wiki/breeding-(task-type))** - Breed a set amount of animals.
-* **[brewing](https://github.com/LMBishop/Quests/wiki/brewing-(task-type))** - Brew a set amount of potions.
-* **[bucketempty](https://github.com/LMBishop/Quests/wiki/bucketempty-(task-type))** - Empty a specific bucket.
-* **[bucketfill](https://github.com/LMBishop/Quests/wiki/bucketfill-(task-type))** - Fill a specific bucket.
-* **[command](https://github.com/LMBishop/Quests/wiki/command-(task-type))** - Execute a specific command.
-* **[consume](https://github.com/LMBishop/Quests/wiki/consume-(task-type))** - Consume a specific item.
-* **[crafting](https://github.com/LMBishop/Quests/wiki/crafting-(task-type))** - Craft a specific item.
-* **[dealdamage](https://github.com/LMBishop/Quests/wiki/dealdamage-(task-type))** - Deal a certain amount of damage.
-* **[distancefrom](https://github.com/LMBishop/Quests/wiki/distancefrom-(task-type))** - Be a set distance away from certain co-ordinates.
-* **[enchanting](https://github.com/LMBishop/Quests/wiki/enchanting-(task-type))** - Enchant a certain amount of items.
-* **[expearn](https://github.com/LMBishop/Quests/wiki/expearn-(task-type))** - Earn a set amount of exp after starting the quest.
-* **[farming](https://github.com/LMBishop/Quests/wiki/farming-(task-type))** - Farm a set amount of any crop.
-* **[fishing](https://github.com/LMBishop/Quests/wiki/fishing-(task-type))** - Catch a set amount of items from the sea.
-* **[inventory](https://github.com/LMBishop/Quests/wiki/inventory-(task-type))** - Obtain a set of items.
-* **[milking](https://github.com/LMBishop/Quests/wiki/milking-(task-type))** - Milk a set amount of cows.
-* **[mobkilling](https://github.com/LMBishop/Quests/wiki/mobkilling-(task-type))** - Kill a set amount of entities.
-* **[permission](https://github.com/LMBishop/Quests/wiki/permission-(task-type))** - Test if a player has a permission.
-* **[playerkilling](https://github.com/LMBishop/Quests/wiki/playerkilling-(task-type))** - Kill a set amount of players.
-* **[playtime](https://github.com/LMBishop/Quests/wiki/playtime-(task-type))** - Play for a certain amount of time.
-* **[position](https://github.com/LMBishop/Quests/wiki/position-(task-type))** - Reach a set of co-ordinates.
-* **[shearing](https://github.com/LMBishop/Quests/wiki/shearing-(task-type))** - Shear a set amount of sheep.
-* **[taming](https://github.com/LMBishop/Quests/wiki/taming-(task-type))** - Tame a set amount of animals.
-* **[walking](https://github.com/LMBishop/Quests/wiki/walking-(task-type))** - Walk a set distance.
-* **[smelting](https://github.com/LMBishop/Quests/wiki/smelting-(task-type))** - Smelt a set amount of items.
-
-## Dependent task types
-The following Task Types come with the plugin, but require another plugin installed to activate:
-### ASkyBlock
-* **[askyblock_level](https://github.com/LMBishop/Quests/wiki/askyblock_level-(task-type))** - Reach a certain island level using ASkyBlock.
-### Citizens
-* **[citizens_deliver](https://github.com/LMBishop/Quests/wiki/citizens_deliver-(task-type))** - Deliver a set of items to a NPC.
-* **[citizens_interact](https://github.com/LMBishop/Quests/wiki/citizens_interact-(task-type))** - Interact with an NPC to complete the task.
-### uSkyBlock
-* **[uskyblock_level](https://github.com/LMBishop/Quests/wiki/uskyblock_level-(task-type))** - Reach a certain island level using uSkyBlock.
-### MythicMobs
-* **[mythicmobs_killing](https://github.com/LMBishop/Quests/wiki/mythicmobs_killing-(task-type))** - Kill a set amount of a MythicMobs entity.
-### BentoBox
-* **[bentobox_level](https://github.com/LMBishop/Quests/wiki/bentobox_level-(task-type))** - Reach a certain island level in the level addon for BentoBox.
-### IridiumSkyblock
-* **[iridiumskyblock_value](https://github.com/LMBishop/Quests/wiki/iridiumskyblock_value-(task-type))** - Reach a certain island value for IridiumSkyblock.
-### PlaceholderAPI
-* **[placeholderapi_evaluate](https://github.com/LMBishop/Quests/wiki/placeholderapi_evaluate-(task-type))** - Parse any placeholder and evaluate its result.
-### Essentials
-* **[essentials_balance](https://github.com/LMBishop/Quests/wiki/essentials_balance-(task-type))** - Reach a certain balance.
-* **[essentials_moneyearn](https://github.com/LMBishop/Quests/wiki/essentials_moneyearn-(task-type))** - Earn a certain amount of money.
-### ShopGUI+
-* **[shopguiplus_buy](https://github.com/LMBishop/Quests/wiki/shopguiplus_buy-(task-type))** - Buy something from a ShopGUI+ shop.
-* **[shopguiplus_sell](https://github.com/LMBishop/Quests/wiki/shopguiplus_sell-(task-type))** - Sell something to a ShopGUI+ shop.
-### FabledSkyblock
-* **[fabledskyblock_level](https://github.com/LMBishop/Quests/wiki/fabledskyblock_level-(task-type))**- Reach a certain island level for FabledSkyblock.
-### SuperiorSkyblock2
-* **[superiorskyblock_level](superiorskyblock_level-(task-type))** - Reach a certain island level for SuperiorSkyblock.
-* **[superiorskyblock_worth](superiorskyblock_worth-(task-type))** - Reach a certain island worth for SuperiorSkyblock.
-### VotingPlugin
-* **[votingplugin_vote](votingplugin_vote-(task-type))** - Vote a certain amount of times.
-## External task types
-Quests makes it easy for other developers to create their own task types. You can find help at [this page](https://github.com/LMBishop/Quests/wiki/New-Task-Type). \ No newline at end of file
diff --git a/docs/_Sidebar.md b/docs/_Sidebar.md
index 8b576e3c..fc25c8c6 100644
--- a/docs/_Sidebar.md
+++ b/docs/_Sidebar.md
@@ -4,24 +4,24 @@
## [Home / FAQs](https://github.com/LMBishop/Quests/wiki)
-[Getting started](Getting-started)
+[Getting started](getting-started)
[Downloading](download)
-[Tips](Tips)
+[Tips](tips)
-[Commands and permissions](Commands-and-permissions)
+[Commands and permissions](commands-and-permissions)
### **Configuration**
-* [Basic options](Basic-options)
-* [Creating a quest](Creating-a-quest)
-* [Creating a category](Creating-a-category)
+* [Basic options](configuration/basic-options.md)
+* [Creating a quest](configuration/creating-a-quest.md)
+* [Creating a category](configuration/creating-a-category.md)
* [Global configurations](Global-Configurations)
-* [GUI configuration](GUI-configuration)
-* [Custom GUI items](Custom-GUI-items)
-* [Configuration problems](Configuration-problems)
-* [Storage providers](Storage-providers)
-* [Defining items](Defining-items)
-* [Colour (color) codes](Colour-codes)
+* [GUI configuration](configuration/gui-configuration.md)
+* [Custom GUI items](configuration/custom-gui-items.md)
+* [Configuration problems](configuration/configuration-problems.md)
+* [Storage providers](configuration/storage-providers.md)
+* [Defining items](configuration/defining-items.md)
+* [Colour (color) codes](configuration/colour-codes.md)
* [Default configuration](Default-configuration)
### **Task Types**
@@ -72,16 +72,16 @@
### **API**
-* [API](API)
-* [New task type](New-task-type)
+* [API](developer/api.md)
+* [New task type](developer/new-task-type.md)
### **Guides**
-* [Quest progress in scoreboard](Quest-progress-in-scoreboard)
+* [Quest progress in scoreboard](guides/quest-progress-in-scoreboard.md)
### **Other**
-* [PlaceholderAPI](PlaceholderAPI)
-* [Quest debugger](Quest-debugger)
-* [Data migration tool](Data-migration-tool)
-* [Contributing to the wiki](Contributing-to-the-wiki) \ No newline at end of file
+* [PlaceholderAPI](tools/placeholderapi.md)
+* [Quest debugger](tools/quest-debugger.md)
+* [Data migration tool](tools/data-migration-tool.md)
+* [Contributing to the wiki](contributing-to-the-wiki) \ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
index 7569680c..f41d5a4e 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -1,7 +1,35 @@
-title: Quests documentation
+title: Quests
description: Documentation for the Quests plugin
-
theme: just-the-docs
+url: https://lmbishop.github.io
+
+callouts_level: quiet
+callouts:
+ highlight:
+ color: yellow
+ how-to-read:
+ title: How to read this page
+ color: grey-dk
+ important:
+ title: Important
+ color: blue
+ new:
+ title: New
+ color: green
+ note:
+ title: Note
+ color: purple
+ caution:
+ title: Caution
+ color: yellow
+ warning:
+ title: Warning
+ color: red
+
+nav_external_links:
+ - title: Quests on GitHub
+ url: https://github.com/LMBishop/Quests
+
plugins:
- jekyll-default-layout \ No newline at end of file
diff --git a/docs/Commands-and-permissions.md b/docs/commands-and-permissions.md
index dcef33d3..8e10b845 100644
--- a/docs/Commands-and-permissions.md
+++ b/docs/commands-and-permissions.md
@@ -1,3 +1,11 @@
+---
+title: Commands and permissions
+nav_order: 4
+---
+# Commands and permissions
+This page lists all commands and permissions for Quests. Commands can
+also be viewed in-game by simply running `/quests`.
+
## Commands
- **/quests \[or /q\]** - opens quest GUI
diff --git a/docs/Basic-options.md b/docs/configuration/basic-options.md
index 29b255cf..24927b12 100644
--- a/docs/Basic-options.md
+++ b/docs/configuration/basic-options.md
@@ -1,47 +1,32 @@
+---
+title: Basic options
+parent: Configuration
+nav_order: 1
+---
+# Basic options
+{: .no_toc }
+
Quests allows you to configure **basic options** for the
plugin. These can all be located in the `config.yml`.
+{: .how-to-read }
+> Each option is laid out with its path underneath the title.
+> A dot in the path means an extra level of indentation, for example
+> `options.categories-enabled` represents:
+>
+> ```yaml
+> options:
+> categories-enabled: [value]
+> ```
+>
+> You should have a working knowledge of how to format YAML files
+> before configuring this plugin.
+
## Table of contents
+{: .no_toc .text-delta }
-- [Categories enabled](Basic_options#Categories_enabled "wikilink")
-- [Trim gui size](Basic_options#Trim_gui_size "wikilink")
-- [Titles enabled](Basic_options#Titles_enabled "wikilink")
-- [Quest started limit](Basic_options#Quest_started_limit "wikilink")
-- [Quset limit](Basic_options#Quest_limit "wikilink")
-- [Allow quest cancel](Basic_options#Allow_quest_cancel "wikilink")
-- [Allow quest track](Basic_options#Allow_quest_track "wikilink")
-- [Task type exclusions](Basic_options#Task_type_exclusions "wikilink")
-- [Guinames](Basic_options#Guinames "wikilink")
-- [Sounds](Basic_options#Sounds "wikilink")
-- [GUI hide locked](Basic_options#GUI_hide_locked "wikilink")
-- [GUI confirm cancel](Basic_options#GUI_confirm_cancel "wikilink")
-- [GUI hide quests if no
- permission](Basic_options#GUI_hide_quests_if_no_permission "wikilink")
-- [GUI hide categoires if no
- permission](Basic_options#GUI_hide_categories_if_no_permission "wikilink")
-- [GUI use
- PlaceholderAPI](Basic_options#GUI_use_PlaceholderAPI "wikilink")
-- [GUI truncate
- requirements](Basic_options#GUI_truncate_requirements "wikilink")
-- [GUI actions](Basic_options#GUI_actions "wikilink")
-- [Quest autostart](Basic_options#Quest_autostart "wikilink")
-- [Quest autotrack](Basic_options#Quest_autotrack "wikilink")
-- [Verbose logging
- level](Basic_options#Verbose_logging_level "wikilink")
-- [Quests use
- PlaceholderAPI](Basic_options#Quests_use_PlaceholderAPI "wikilink")
-- [Verify quest exists on
- load](Basic_options#Verify_quest_exists_on_load "wikilink")
-- [Performance tweaking](Basic_options#Performance_tweaking "wikilink")
-- [Tab completion](Basic_options#Tab_completion "wikilink")
-- [Error checking](Basic_options#Error_checking "wikilink")
-- [Placeholder cache
- time](Basic_options#Placeholder_cache_time "wikilink")
-- [Global task configuration
- override](Basic_options#Global_task_configuration_override "wikilink")
-- [Global quest display configuration
- override](Basic_options#Global_quest_display_configuration_override "wikilink")
-- [Storage](Basic_options#Storage "wikilink")
+1. TOC
+{:toc}
## Categories enabled
@@ -88,12 +73,12 @@ options:
## Quest started limit
-
*`options.quest-started-limit`*
-⛔️ **This option has been removed in version 3.8 and this wiki entry is
-subject to removal.** *Please see [Basic options#Quest
-limit](Basic_options#Quest_limit "wikilink") instead.*
+{: .warning }
+**This option has been removed in version 3.8 and this wiki entry is
+subject to removal.** Please see [quest limit](#quest-limit "wikilink")
+instead.
Choose the number of quests players can start at one time. This will
include quests which have [quest-specific
@@ -135,7 +120,7 @@ options:
```
Group permissions are also documented in [Commands and permissions §
-Permissions](Commands-and-permissions#permissions "wikilink").
+Permissions](commands-and-permissions#permissions "wikilink").
## Allow quest cancel
diff --git a/docs/Colour-codes.md b/docs/configuration/colour-codes.md
index aba83ee4..6c7339c0 100644
--- a/docs/Colour-codes.md
+++ b/docs/configuration/colour-codes.md
@@ -1,10 +1,14 @@
-Jump to section:
-* [Using Colour Codes](#using-colour-codes)
-* [Using Hexadecimal Colour](#using-hexadecimal-colour)
+---
+title: Colour codes
+parent: Configuration
+nav_order: 8
+---
+# Colour (color) codes
You can use colour codes anywhere the plugin accepts a message (plugin messages, display items, and in task configurations themselves).
-Your server version dictates which codes are allowed:
+The following table shows the colour capabilities of specific server versions:
+
| | Before 1.16 | 1.16+ |
| ---- | ---- | ---- |
| Colour Codes | ✔️ | ✔️ |
@@ -41,7 +45,10 @@ The plugin will automatically translate colour codes from '&' to '§' for you.
## Hexadecimal colour
For compatible Minecraft versions, the plugin will also translate hex colour codes for you.
-You can include a hex colour code as you would with a normal colour code: `&#<hex colour code>`. **Note: the `#` is important and must be there.**
+You can include a hex colour code as you would with a normal colour code: `&#<hex colour code>`.
+
+{: .important }
+The `#` symbol indicates a hexadecimal colour code. These must be exactly six characters long.
For example, the following messages are identical:
```
diff --git a/docs/configuration/configuration-problems.md b/docs/configuration/configuration-problems.md
new file mode 100644
index 00000000..a55bbfde
--- /dev/null
+++ b/docs/configuration/configuration-problems.md
@@ -0,0 +1,96 @@
+---
+title: Configuration problems
+parent: Configuration
+nav_order: 9
+---
+
+# Configuration problems
+
+If you have a configuration error, Quests will log details both to the console and in-game (if you use `/q a reload`).
+
+![](https://i.imgur.com/5o7EyVm.png)
+
+These problems are designed to be as readable as possible, allowing self-diagnosis for your configuration. Warnings are also used to spot common misconfigurations, which may lead to quests not working as expected, thus being interpreted as a bug.
+
+Most problems have extended descriptions if you mouse-over them in-game.
+
+## Types of problem
+
+| Type | Description |
+|:-------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Error | Errors prevent the specific quest from loading. These can be overidden in the config at `options.error-checking.override-errors`. Examples include an incorrect quest ID or malformed YAML file. |
+| Warning | Warnings have no impact other than to inform you that a quest may not work as expected. Examples include an invalid material for a blockbuildcertain task, or a required quest which does not exist. |
+
+## Understanding a problem
+Problems generally follow this format:
+```
+<name of file> ----
+ | - <type of problem>: <description of problem> :<location of problem>
+```
+
+**Example 1**
+
+Take the following configuration.
+
+```yaml
+tasks:
+ damage:
+ type: "dealdamage"
+```
+The following error will show if you try to create a `dealdamage` task without specifying how much damage needs to be dealt.
+```
+example1.yml ----
+ | - E: Required field 'amount' is missing for task type 'dealdamage' :tasks.damage.amount
+```
+In the above example, the problem is an error (as denoted by E) and will prevent the quest (`example1`) from loading.
+The descriptor at the end shows you exactly where the error comes from in the YML file, which looks like this:
+
+The source of the error is given by `:tasks.damage.amount`, where each dot denotes a level of indentation. In this case, it is expecting a value at `amount`, but it is not defined.
+
+Below is the fixed version.
+
+```yaml
+tasks:
+ damage:
+ type: "dealdamage"
+ amount: 10
+```
+
+**Example 2**
+
+```
+example2.yml ----
+ | - E: Expected an integer for 'amount', but got 'ten' instead :tasks.inventory.amount
+ | - W: Material 'notablock' does not exist :tasks.inventory.item
+ | - W: Quest requirement 'example' does not exist :options.requires
+```
+```yaml
+tasks:
+ inventory:
+ type: "inventory"
+ amount: ten
+ item: notablock
+...
+options:
+ requires:
+ - "example"
+ ...
+```
+In this case, the task is broken since instead of numbers for the amount of items needed (`amount`), the string "ten" is there instead, causing an error. The source of the error is indicated by the location at the end `tasks.inventory.amount`.
+
+Also, a warning is shown for the item "thisisnotablock" at `tasks.inventory.item` and for the requirement "example" at `options.requires`. These warnings are informing you that the task may not work as expected, as "thisisnotablock" is not a real item, and that the quest "example" which is required to have been completed in order to start this quest does not exist.
+
+Unlike errors, warnings do not prevent quests from being loaded.
+
+Below is a fixed version:
+```yaml
+tasks:
+ inventory:
+ type: "inventory"
+ amount: 10
+ item: DIAMOND
+...
+options:
+ # requirements section removed
+ ...
+``` \ No newline at end of file
diff --git a/docs/Creating-a-category.md b/docs/configuration/creating-a-category.md
index f41d919d..e777b260 100644
--- a/docs/Creating-a-category.md
+++ b/docs/configuration/creating-a-category.md
@@ -1,9 +1,23 @@
+---
+title: Creating a category
+parent: Configuration
+nav_order: 3
+---
+
# Creating a category
+{: .no_toc }
Categories are stored in `categories.yml`. On older versions of Quests
they were stored in the main `config.yml`; quests will read categories
from `config.yml` if a `categories.yml` file is not present.
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
## Category ID
ID of category, this is the text you should enter when putting quests
diff --git a/docs/Creating-a-quest.md b/docs/configuration/creating-a-quest.md
index fe85bdea..6e3b7283 100644
--- a/docs/Creating-a-quest.md
+++ b/docs/configuration/creating-a-quest.md
@@ -1,41 +1,25 @@
+---
+title: Creating a quest
+parent: Configuration
+nav_order: 2
+---
+
+# Creating a quest
+{: .no_toc }
+
Each file inside the `quests` subfolder represents a
single quest. The **name** of the file represents the **quest id** and
must be alphanumeric (excluding the .yml extension).
-An example can be seen with the [default
+{: .note }
+An example can be seen in the [default
configuration](https://github.com/LMBishop/Quests/blob/master/bukkit/src/main/resources/resources/bukkit/quests/example1.yml).
## Table of contents
+{: .no_toc .text-delta }
-- [Quest ID](Creating_a_quest#Quest_ID "wikilink")
-- [Tasks](Creating_a_quest#Tasks "wikilink")
-- [Display](Creating_a_quest#Display "wikilink")
- - [Name](Creating_a_quest#Name "wikilink")
- - [Normal lore](Creating_a_quest#Normal_lore "wikilink")
- - [Started lore](Creating_a_quest#Started_lore "wikilink")
- - [Type](Creating_a_quest#Type "wikilink")
-- [Rewards](Creating_a_quest#Rewards "wikilink")
-- [Start commands](Creating_a_quest#Start_commands "wikilink")
-- [Start string](Creating_a_quest#Start_string "wikilink")
-- [Reward string](Creating_a_quest#Reward_string "wikilink")
-- [Placeholders](Creating_a_quest#Placeholders "wikilink")
-- [Options](Creating_a_quest#Options "wikilink")
- - [Category](Creating_a_quest#Category "wikilink")
- - [Requirements](Creating_a_quest#Requirements "wikilink")
- - [Permission
- required](Creating_a_quest#Permission_required "wikilink")
- - [Cancellable](Creating_a_quest#Cancellable "wikilink")
- - [Counts towards
- limit](Creating_a_quest#Counts_towards_limit "wikilink")
- - [Repeatable](Creating_a_quest#Repeatable "wikilink")
- - [Cooldown](Creating_a_quest#Cooldown "wikilink")
- - [Time limit](Creating_a_quest#Time_limit "wikilink")
- - [Sort order](Creating_a_quest#Sort_order "wikilink")
- - [Autostart](Creating_a_quest#Autostart "wikilink")
- - [Completed display](Creating_a_quest#completed_display "wikilink")
- - [Cooldown display](Creating_a_quest#cooldown_display "wikilink")
- - [Permission display](Creating_a_quest#permission_display "wikilink")
- - [Locked display](Creating_a_quest#locked_display "wikilink")
+1. TOC
+{:toc}
## Quest ID
@@ -375,7 +359,7 @@ options:
completed. This accepts the standard ItemStack definition format
described in [Defining items](Defining_items "wikilink"). If this option
is not specified, the display item [defined in the main
-config.yml](GUI-configuration#quest-completed-display "wikilink") will
+config.yml](gui-configuration#quest-completed-display "wikilink") will
be used.
``` yaml
@@ -394,7 +378,7 @@ options:
cooldown. This accepts the standard ItemStack definition format
described in [Defining items](Defining_items "wikilink"). If this option
is not specified, the display item [defined in the main
-config.yml](GUI-configuration#quest-cooldown-display "wikilink") will be
+config.yml](gui-configuration#quest-cooldown-display "wikilink") will be
used.
``` yaml
@@ -414,7 +398,7 @@ not have permission to start it. This accepts the standard ItemStack
definition format described in [Defining
items](Defining_items "wikilink"). If this option is not specified, the
display item [defined in the main
-config.yml](GUI-configuration#quest-permission-display "wikilink") will
+config.yml](gui-configuration#quest-permission-display "wikilink") will
be used.
``` yaml
@@ -433,7 +417,7 @@ options:
not unlocked it. This accepts the standard ItemStack definition format
described in [Defining items](Defining_items "wikilink"). If this option
is not specified, the display item [defined in the main
-config.yml](GUI-configuration#quest-locked-display "wikilink") will be
+config.yml](gui-configuration#quest-locked-display "wikilink") will be
used.
``` yaml
diff --git a/docs/Custom-GUI-items.md b/docs/configuration/custom-gui-items.md
index 97cc27f1..3ce97b15 100644
--- a/docs/Custom-GUI-items.md
+++ b/docs/configuration/custom-gui-items.md
@@ -1,3 +1,10 @@
+---
+title: Custom GUI items
+parent: Configuration
+nav_order: 7
+---
+# Custom GUI items
+
**Custom GUI items** are dummy items added to the category menu and the
quest menu. This can be used to help stylise your quests GUI.
@@ -46,7 +53,7 @@ These custom elements take precedence over quest items, as quests and
categories will fill empty slots once all the custom items have been
set.
-<https://i.imgur.com/5odcqM9.png>
+![Example of how custom GUI items are laid out](https://i.imgur.com/5odcqM9.png)
To add a custom item within the quest menu itself, you must specify the
category, or if categories are disabled you can specify "quests"
diff --git a/docs/Defining-items.md b/docs/configuration/defining-items.md
index e8312f6d..fddec792 100644
--- a/docs/Defining-items.md
+++ b/docs/configuration/defining-items.md
@@ -1,51 +1,27 @@
+---
+title: Defining items
+parent: Configuration
+nav_order: 5
+---
+
+# Defining items
+{: .no_toc }
+
An **ItemStack** is a **representation of an item** in an inventory.
Every configured ItemStack in Quests is parsed the exact same way. This
page gives guidance on how to define items with specific attributes.
-## Table of contents
-
-- [Configurable options](Defining_items#Configurable_options "wikilink")
- - [Configuration
- layout](Defining_items#Configuration_layout "wikilink")
- - [Examples](Defining_items#Examples "wikilink")
- - [Name](Defining_items#Name "wikilink")
- - [Item](Defining_items#Item "wikilink")
- - [Lore](Defining_items#Lore "wikilink")
- - [Enchantments](Defining_items#Enchantments "wikilink")
- - [Item flags](Defining_items#Item_flags "wikilink")
- - [Unbreakable](Defining_items#Unbreakable "wikilink")
- - [Attribute
- modifiers](Defining_items#Attribute_modifiers "wikilink")
- - [Custom model data](Defining_items#Custom_model_data "wikilink")
- - [Owner](Defining_items#Owner "wikilink")
-- [Quest items](Defining_items#Quest_items "wikilink")
- - [Importing items](Defining_items#Importing_items "wikilink")
- - [Manually defined
- items](Defining_items#Manually_defined_items "wikilink")
- - [Defined](Defining_items#Defined "wikilink")
- - [MMOItems](Defining_items#MMOItems "wikilink")
- - [Slimefun](Defining_items#Slimefun "wikilink")
- - [ExecutableItems](Defining_items#ExecutableItems "wikilink")
- - [Referencing a quest
- item](Defining_items#Referencing_a_quest_item "wikilink")
-
-## Configurable options
+{: .note }
+The information on this page describes how to define items across every
+configuration file.
-| Field | Optional | Minecraft Version | More Information |
-|----------------------|------------------|-------------------|-------------------------------------------------------|
-| `item` | ❌ | \- | [Jump](Defining_items#Item "wikilink") |
-| `name` | ✅ <sup>\*</sup> | \- | [Jump](Defining_items#Name "wikilink") |
-| `lore` | ✅ | \- | [Jump](Defining_items#Lore "wikilink") |
-| `enchantments` | ✅ | \- | [Jump](Defining_items#Enchantments "wikilink") |
-| `itemflags` | ✅ | 1.8+ | [Jump](Defining_items#Item_flags "wikilink") |
-| `unbreakable` | ✅ | 1.13+ | [Jump](Defining_items#Unbreakable "wikilink") |
-| `attributemodifiers` | ✅ | 1.13+ | [Jump](Defining_items#Attribute_modifiers "wikilink") |
-| `custommodeldata` | ✅ | 1.14+ | [Jump](Defining_items#Custom_model_data "wikilink") |
-| `owner-[...]` | ✅ | 1.8+ | [Jump](Defining_items#Owner_(skulls) "wikilink") |
+## Table of contents
+{: .no_toc .text-delta }
-<sup>\*: The name must be defined for the display item of Quests.</sup>
+1. TOC
+{:toc}
-### Configuration layout
+## Layout
``` yaml
item:
@@ -57,12 +33,26 @@ item:
# etc.
```
-### Examples
+## Options
+
+| Field | Optional | Minecraft Version | More Information |
+|----------------------|-----------------|-------------------|-----------------------------------------|
+| `item` | ❌ | \- | [Jump](#item "wikilink") |
+| `name` | ✅ <sup>\*</sup> | \- | [Jump](#name "wikilink") |
+| `lore` | ✅ | \- | [Jump](#lore "wikilink") |
+| `enchantments` | ✅ | \- | [Jump](#enchantments "wikilink") |
+| `itemflags` | ✅ | 1.8+ | [Jump](#item-flags "wikilink") |
+| `unbreakable` | ✅ | 1.13+ | [Jump](#unbreakable "wikilink") |
+| `attributemodifiers` | ✅ | 1.13+ | [Jump](#attribute-modifiers "wikilink") |
+| `custommodeldata` | ✅ | 1.14+ | [Jump](#custom-model-data "wikilink") |
+| `owner-[...]` | ✅ | 1.8+ | [Jump](#owner "wikilink") |
+
+<sup>\*: The name must be defined for the display item of Quests.</sup>
-#### Item
+### Item
-*`item` or `type`material</code>*
+*`item` or `type` or `material`*
The item is the material the itemstack is made out of. Please see the
[latest
@@ -78,7 +68,7 @@ item:
...
```
-#### Name
+### Name
*`name`*
@@ -92,7 +82,7 @@ item:
...
```
-#### Lore
+### Lore
*`lore`*
@@ -108,7 +98,7 @@ item:
...
```
-#### Enchantments
+### Enchantments
The format of enchantments depends on your Minecraft version.
@@ -127,7 +117,7 @@ item:
...
```
-#### Item flags
+### Item flags
Item flags can be added to hide enchantment names, etc. A full list of
itemflags is available on the [Spigot
@@ -140,7 +130,7 @@ item:
...
```
-#### Unbreakable
+### Unbreakable
- *1.13+*'
@@ -150,7 +140,7 @@ item:
...
```
-#### Attribute modifiers
+### Attribute modifiers
**1.13+** Adds specific attribute modifiers to the items. The UUID
should always be specified otherwise the server will randomly generate
@@ -179,7 +169,7 @@ item:
...
```
-#### Custom model data
+### Custom model data
**1.14+**
@@ -189,7 +179,7 @@ item:
...
```
-#### Owner
+### Owner
This only applies if you have a skull item stack (`PLAYER_HEAD` 1.13+,
`SKULL_ITEM` 1.8-1.12). There are three ways to define the player for
@@ -251,7 +241,7 @@ item. Your item will be saved to file items/\<id\>.yml, **with the type
<https://i.imgur.com/6lsld61.png> <https://i.imgur.com/Pg2eO9a.png>
-### Manually defining items
+### Defining items
You can manually define an item by creating a new `yml` file within the
items/ directory. You must specify a `type` and the item itself under
diff --git a/docs/Global-configurations.md b/docs/configuration/global-configurations.md
index a575ebc8..6be6b744 100644
--- a/docs/Global-configurations.md
+++ b/docs/configuration/global-configurations.md
@@ -1,3 +1,11 @@
+---
+title: Global configurations
+parent: Configuration
+nav_order: 4
+---
+
+# Global configurations
+
**Global configurations** are intended to be used in place of
**quest-specific configurations**. This helps reduce repetition across
your configuration as you copy common elements from quest to quest, and
@@ -20,9 +28,11 @@ global-task-configuration:
```
This will add to *all* tasks configurations with `type: inventory`
-across *all* quests the following: `update-progress: true`. *'Note that
-any errors coming from here will appear as if they are coming from
-individual quests.*
+across *all* quests the following: `update-progress: true`.
+
+{: .note }
+Any errors which arise from global task configurations will appear as
+if they are coming from individual quests.
Quest-level configurations will override anything set here. To change
this behaviour, modify the [global task configuration
@@ -53,20 +63,17 @@ global-quest-display:
- "&eRight Click &7to cancel this quest."
```
-<https://i.imgur.com/l0FI5Ma.png>
+<img src="https://i.imgur.com/l0FI5Ma.png" width="450px">
If you do not want this, simply remove the section.
## Global macros
-Global macros are designed to help you reduce repetition across your
-configuration files by centralizing values in your config.yml. Think of
-them as your own variables/placeholders which you can use in your quest
-files.
+Global macros help you reduce repetition across your configuration
+files by centralizing values in your config.yml. Think of them as your
+own variables/placeholders which you can use in your quest files.
-To explain this feature, an example is more appropriate.
-
-In your config.yml, you can add a macro under the `global-macros`
+You can define macros in your `config.yml`, under the `global-macros`
section:
global-macros:
@@ -74,7 +81,7 @@ section:
# <name of macro>: <string value of macro>
top-bar: "&6---&7---&6---"
-To use these in your quests, simply reference it by using
+To use these in your quests, reference it by using
`<$m name-of-macro $m>`. Macro names **cannot have spaces**.
For example, to use the `top-bar` macro in `example-quest.yml`:
@@ -89,3 +96,8 @@ display:
- "..."
...
```
+
+{: .caution }
+Macros are replaced by a pre-processor before a configuration is
+parsed. This means they have the ability to cause syntax errors in
+ways you do not expect if you are not careful. \ No newline at end of file
diff --git a/docs/GUI-configuration.md b/docs/configuration/gui-configuration.md
index fb63d1f1..6a40629a 100644
--- a/docs/GUI-configuration.md
+++ b/docs/configuration/gui-configuration.md
@@ -1,4 +1,11 @@
-
+---
+title: GUI configuration
+parent: Configuration
+nav_order: 6
+---
+
+# GUI configuration
+
*See also [Custom GUI items](Custom_GUI_items "wikilink") and [Defining
items](Defining_items "wikilink").*
@@ -114,7 +121,7 @@ The `{requirements}` variable represents the display names of the quests
needed to unlock this quest. By default, this name is truncated to show
only the first quest, with a number after (e.g. "Example II +4 more").
This behaviour is defined at [Basic options § GUI-truncate
-requirements](Basic-options#GUI-truncate-requirements "wikilink")
+requirements](basic-options.md#GUI-truncate-requirements "wikilink")
## Quest permission display
diff --git a/docs/configuration/index.md b/docs/configuration/index.md
new file mode 100644
index 00000000..32f9e38e
--- /dev/null
+++ b/docs/configuration/index.md
@@ -0,0 +1,7 @@
+---
+title: Configuration
+nav_order: 5
+has_children: true
+---
+
+# Configuration \ No newline at end of file
diff --git a/docs/Storage-providers.md b/docs/configuration/storage-providers.md
index 41467dad..f8d68886 100644
--- a/docs/Storage-providers.md
+++ b/docs/configuration/storage-providers.md
@@ -1,3 +1,12 @@
+---
+title: Storage providers
+parent: Configuration
+nav_order: 10
+---
+
+# Storage providers
+{: .no_toc }
+
A **storage provider** is a source for player data
(sometimes referred to as quest progress files). Quests requires that
one storage system be configured to allow the plugin to initialise. If
@@ -12,16 +21,10 @@ When changing storage systems, **the plugin must be restarted for the
changes to have effect**.
## Table of contents
+{: .no_toc .text-delta }
-- [Supported storage
- systems](Storage_providers#Supported_storage_systems "wikilink")
- - [Flatfile](Storage_providers#Flatfile "wikilink")
- - [YAML](Storage_providers#YAML "wikilink")
- - [Network](Storage_providers#Network "wikilink")
- - [MySQL](Storage_providers#MySQL "wikilink")
-- [Data
- synchronisation](Storage_providers#Data_synchronisation "wikilink")
- - [Delay loading](Storage_providers#Delay_loading "wikilink")
+1. TOC
+{:toc}
## Supported storage systems
@@ -46,24 +49,21 @@ consistency issues.
### Network
-
-⚠️ **Using Quests on a BungeeCord network may lead to a possible race
-condition.** Allowing players to to connect directly to another server
-running Quests may result in the new server loading old data. This
-occurs as BungeeCord establishes a connection with the new server before
-disconnecting the player from the old one, leading to the new server
-loading player data before the old server has saved it.
-
-<!-- -->
-
-
-Quests offers a workaround, which is to [delay the loading of player
-data](Storage_providers#Delay_loading "wikilink"). You may want to
-consider forcing players to switch servers through a hub server, or
-decreasing the autosave period. In either case, the race condition still
-exists; there is not an easy way to coordinate the loading/saving due to
-how BungeeCord works. **You must understand this warning before using
-Quests in this way.**
+{: .warning }
+> ️**Using Quests on a BungeeCord network may lead to a possible race
+> condition.** Allowing players to to connect directly to another server
+> running Quests may result in the new server loading old data. This
+> happens because BungeeCord establishes a connection with the new server
+> before disconnecting the player from the old one, leading to the new
+> server loading player data before the old server has saved it.
+>
+> Quests offers a workaround, which is to [delay the loading of player
+> data](#delay-loading "wikilink"). You may also want to
+> consider forcing players to switch servers through a hub server, or
+> decreasing the autosave period. In either case, the race condition still
+> exists; there is not an easy way to coordinate the loading/saving due to
+> how BungeeCord works. **You must understand this warning before using
+> Quests in this way.**
#### MySQL
@@ -134,4 +134,4 @@ same network as your Minecraft server. Again, this **does not solve the
race condition**, but it should help mitigate it.
See the issue in the issue tracker:
-[1](https://github.com/LMBishop/Quests/issues/180)
+[Issue 180](https://github.com/LMBishop/Quests/issues/180)
diff --git a/docs/Contributing-to-the-wiki.md b/docs/contributing-to-the-wiki.md
index 16caa497..7a7a3c52 100644
--- a/docs/Contributing-to-the-wiki.md
+++ b/docs/contributing-to-the-wiki.md
@@ -1,3 +1,13 @@
+---
+title: Contributing to the wiki
+nav_order: 10
+---
+
+# Contributing to the wiki
+
+{: .caution }
+This information is out of date since the wiki migration.
+
If you spot any errors in the wiki, or want to add more information of
you own, then we would be happy to review potential changes. Due to the
restrictions of the GitHub wiki pages, it is not possible to open pull
@@ -7,10 +17,6 @@ tracker](https://github.com/LMBishop/Quests/issues/new?assignees=&labels=docs%2C
## Submitting edits
-
-✍️ **The primary wiki format is Wikitext, edits using Markdown will not
-be accepted.**
-
If you want to add information or edit the wiki, it would be beneficial
if you submitted the source code of the page within backticks to make it
easy to change the wiki.
diff --git a/docs/API.md b/docs/developer/api.md
index 03ea4d8a..5bc91ff2 100644
--- a/docs/API.md
+++ b/docs/developer/api.md
@@ -1,9 +1,12 @@
-***
+---
+title: API
+parent: Developer
+---
-### 🔨 ***This page is under construction***
-*The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).*
+# API
-***
+{: .highlight }
+**This page is under construction.** The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).
Quests provides an API for other people to use. **This API is experimental and may be subject to change.** For usages, it is best to take a look into the plugin itself.
diff --git a/docs/developer/index.md b/docs/developer/index.md
new file mode 100644
index 00000000..cc6268b6
--- /dev/null
+++ b/docs/developer/index.md
@@ -0,0 +1,7 @@
+---
+title: Developer
+has_children: true
+nav_order: 9
+---
+
+# Developer \ No newline at end of file
diff --git a/docs/New-task-type.md b/docs/developer/new-task-type.md
index 4a3eb5dc..cedc3711 100644
--- a/docs/New-task-type.md
+++ b/docs/developer/new-task-type.md
@@ -1,9 +1,13 @@
-***
+---
+title: New task type
+parent: Developer
+---
-### 🔨 ***This page is under construction***
-*The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).*
+# New task type
+
+{: .highlight }
+**This page is under construction.** The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).
-***
The following information is for developers who are interested in integrating Quests into their own plugin.
@@ -24,9 +28,10 @@ How a task type works generally follows this format:
Quests handles the completion of all tasks within a quest and dispatches rewards. **A task type simply handles the events which increment a single task.**
-⚠ Task Types **MUST** be registered before the actual quests from the config are registered. They can be registered in between Quests inital activation and before the server is fully started. For example: you can register new Task Types inside of the `onEnable()` and add Quests to the `depend` or `softdepend` section of your `plugin.yml` to make sure that Quests is ready to accept your registration.
-
-Attempting to register a task type after the registration period has closed will throw a `IllegalStateException`. The registration period closes and quests are loaded after every plugin has finished loading (on the first server [tick](https://github.com/LMBishop/Quests/blob/master/src/main/java/com/leonardobishop/quests/Quests.java#L129)).
+{: .caution }
+> Task Types **MUST** be registered before the actual quests from the config are registered. They can be registered in between Quests inital activation and before the server is fully started. For example: you can register new Task Types inside of the `onEnable()` and add Quests to the `depend` or `softdepend` section of your `plugin.yml` to make sure that Quests is ready to accept your registration.
+>
+> Attempting to register a task type after the registration period has closed will throw a `IllegalStateException`. The registration period closes and quests are loaded after every plugin has finished loading (on the first server [tick](https://github.com/LMBishop/Quests/blob/master/src/main/java/com/leonardobishop/quests/Quests.java#L129)).
## Writing task types
Your new Task Type must extend the [`TaskType`](https://github.com/LMBishop/Quests/blob/master/common/src/main/java/com/leonardobishop/quests/common/tasktype/TaskType.java) class. **`BukkitTaskType` implements `Listener` and automatically registers as an event listener if used with the `BukkitTaskTypeManager`.** Your subclass must pass the name of the Task Type into the constructor, and optionally the authors name and a brief description of the task.
diff --git a/docs/Download.md b/docs/download.md
index cbee853d..799cf804 100644
--- a/docs/Download.md
+++ b/docs/download.md
@@ -1,3 +1,9 @@
+---
+title: Download
+nav_order: 3
+---
+# Download
+
Release builds of Quests are officially distributed at the
sites on this page. Sources not listed here may contain modified, or
outdated versions.
diff --git a/docs/getting-started.md b/docs/getting-started.md
new file mode 100644
index 00000000..c25ba9cc
--- /dev/null
+++ b/docs/getting-started.md
@@ -0,0 +1,15 @@
+---
+title: Getting started
+nav_order: 2
+---
+# Getting started
+
+{: .highlight }
+**This page is under construction.** The information contained here may be inaccurate or incomplete. You can help by [contributing information to the wiki](https://github.com/LMBishop/Quests/wiki/Contributing-to-the-wiki).
+
+Welcome to Quests! This wiki should help you with creating your own custom quests on your server.
+
+### What is a quest?
+A **quest** is simply a **group of tasks** which a player must complete in return for a reward.
+
+Each **task** may have a different **task type**, which range from breaking blocks to reaching a certain position in the world. Quests provides over 30 different types you can use, listed on [this page](https://github.com/LMBishop/Quests/wiki/Task-Types).
diff --git a/docs/guides/index.md b/docs/guides/index.md
new file mode 100644
index 00000000..e9349e10
--- /dev/null
+++ b/docs/guides/index.md
@@ -0,0 +1,7 @@
+---
+title: Guides
+has_children: true
+nav_order: 8
+---
+
+# Guides \ No newline at end of file
diff --git a/docs/Quest-progress-in-scoreboard.md b/docs/guides/quest-progress-in-scoreboard.md
index 5d05b8b4..aa429dac 100644
--- a/docs/Quest-progress-in-scoreboard.md
+++ b/docs/guides/quest-progress-in-scoreboard.md
@@ -1,3 +1,10 @@
+---
+title: Quest progress in scoreboard
+parent: Guides
+---
+
+# Quest progress in scoreboard
+
This guide will show you how to show quest progress in a scoreboard. The
plugin
[<https://www.spigotmc.org/resources/animatedscoreboard.20848/>](AnimatedScoreboard "wikilink")
@@ -12,7 +19,7 @@ accepting PlaceholderAPI.
The final result will look like this:
-<https://i.imgur.com/NkcZTB2.png> <https://i.imgur.com/EIWAwb2.png>
+<img src="https://i.imgur.com/NkcZTB2.png"> <img src="https://i.imgur.com/EIWAwb2.png">
## Adding local quest placeholders
@@ -37,7 +44,7 @@ These placeholders will be called using PlaceholderAPI using the
AnimatedScoreboard plugin. For example, using the placeholder
`%quests_q:example1_p:description%` with PlaceholderAPI will return
`&7Break &f30 blocks &7of any type.`. These are known as [local quest
-placeholders](PlaceholderAPI#Quest_details "wikilink").
+placeholders](../tools/placeholderapi.md#Quest_details "wikilink").
Our `description` placeholder provides a description of the quest. The
\`progress\` placeholder will show the players progression with the
@@ -53,8 +60,9 @@ To see the full quest (with comments), click
## Configuring AnimatedScoreboard
-⚠️ **This guide assumes you have a basic understanding of the plugin
-[<https://www.spigotmc.org/resources/animatedscoreboard.20848/>](AnimatedScoreboard "wikilink").**
+{: .note }
+This guide assumes you have a basic understanding of the plugin
+[<https://www.spigotmc.org/resources/animatedscoreboard.20848/>](AnimatedScoreboard "wikilink").
For our config with AnimatedScoreboard, we will create two seperate
scoreboards: one with tracked quest information and one informing the
diff --git a/docs/index.md b/docs/index.md
index 1e63fec2..84855e52 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,15 +1,25 @@
+---
+title: Home
+nav_order: 1
+---
+<div style="float: right">
+<img src="https://leonardobishop.com/~/artwork/questcompass2-256.png" width="200" height="200"><br>
+</div>
+
+# Quests documentation
+
Welcome to the Quests Wiki! Please use the sidebar for navigation around
the wiki.
**🌟 New & Highlighted Articles**
-- [Tips](Tips "wikilink")
+- [Tips](tips "wikilink")
- [Basic options](Basic_options "wikilink")
- [Creating a quest](Creating_a_quest "wikilink")
- [Creating a category](Creating_a_category "wikilink")
- [Custom GUI items](Custom_GUI_items "wikilink")
- [Task types](Task_types "wikilink")
-- [PlaceholderAPI](PlaceholderAPI "wikilink")
+- [PlaceholderAPI](tools/placeholderapi.md "wikilink")
Spot a mistake or ambiguous information? Please consider [contributing
to the wiki](contributing_to_the_wiki "wikilink").
@@ -91,7 +101,7 @@ Q. Does this plugin support PlaceholderAPI?
<!-- -->
-Yes, see [PlaceholderAPI](PlaceholderAPI "wikilink").
+Yes, see [PlaceholderAPI](tools/placeholderapi.md "wikilink").
<!-- -->
diff --git a/docs/task-type/askyblock_level-(task-type).md b/docs/task-type/askyblock_level-(task-type).md
index 11a46bf0..823a79a6 100644
--- a/docs/task-type/askyblock_level-(task-type).md
+++ b/docs/task-type/askyblock_level-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the ASkyBlock plugin to activate.*
+---
+title: askyblock_level
+parent: Task types
+nav_order: 27
+---
+
+# askyblock_level (task type)
+
+Since v1.7.1
+{: .label .label-green }
+
+Plugin 'ASkyBlock' required
+{: .label }
Reach a certain ASkyBlock level.
diff --git a/docs/task-type/bentobox_level-(task-type).md b/docs/task-type/bentobox_level-(task-type).md
index 1abc4302..933ee21d 100644
--- a/docs/task-type/bentobox_level-(task-type).md
+++ b/docs/task-type/bentobox_level-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the BentoBox plugin to activate.*
+---
+title: bentobox_level
+parent: Task types
+nav_order: 28
+---
+
+# bentobox_level (task type)
+
+Since v2.12
+{: .label .label-green }
+
+Plugin 'BentoBox' required
+{: .label }
Reach a certain BentoBox level.
diff --git a/docs/task-type/blockbreak-(task-type).md b/docs/task-type/blockbreak-(task-type).md
index a719bcb1..66595b5a 100644
--- a/docs/task-type/blockbreak-(task-type).md
+++ b/docs/task-type/blockbreak-(task-type).md
@@ -1,5 +1,17 @@
-Breaka set amount of blocks.
+---
+title: blockbreak
+parent: Task types
+nav_order: 1
+---
+# blockbreak (task type)
+
+Since v1.0
+{: .label .label-green }
+
+Break a set amount of blocks.
+
+{: .note }
Since Quests v3.13, `blockbreakcertain` and `blockbreak` have been
merged into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/blockplace-(task-type).md b/docs/task-type/blockplace-(task-type).md
index d5892423..e39538c8 100644
--- a/docs/task-type/blockplace-(task-type).md
+++ b/docs/task-type/blockplace-(task-type).md
@@ -1,5 +1,17 @@
+---
+title: blockplace
+parent: Task types
+nav_order: 2
+---
+
+# blockplace (task type)
+
+Since v1.0
+{: .label .label-green}
+
Place a set amount of blocks.
+{: .note }
Since Quests v3.13, `blockplacecertain` and `blockplace` have been
merged into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/breeding-(task-type).md b/docs/task-type/breeding-(task-type).md
index 58797cb4..66459f7d 100644
--- a/docs/task-type/breeding-(task-type).md
+++ b/docs/task-type/breeding-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: breeding
+parent: Task types
+nav_order: 3
+---
+
+# breeding (task type)
+
+Since v2.2
+{: .label .label-green }
+
Breed a certain amount of animals.
## Options
diff --git a/docs/task-type/brewing-(task-type).md b/docs/task-type/brewing-(task-type).md
index d7fc9f28..312e3dfb 100644
--- a/docs/task-type/brewing-(task-type).md
+++ b/docs/task-type/brewing-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: brewing
+parent: Task types
+nav_order: 4
+---
+
+# brewing (task type)
+
+Since v2.0.13
+{: .label .label-green }
+
Brew a set amount of potions.
## Options
diff --git a/docs/task-type/bucketempty-(task-type).md b/docs/task-type/bucketempty-(task-type).md
index cbce8af8..49806d17 100644
--- a/docs/task-type/bucketempty-(task-type).md
+++ b/docs/task-type/bucketempty-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: bucketempty
+parent: Task types
+nav_order: 5
+---
+
+# bucketempty (task type)
+
+Since v3.9
+{: .label .label-green }
+
Empty a bucket.
## Options
diff --git a/docs/task-type/bucketfill-(task-type).md b/docs/task-type/bucketfill-(task-type).md
index d9969808..3648d06e 100644
--- a/docs/task-type/bucketfill-(task-type).md
+++ b/docs/task-type/bucketfill-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: bucketfill
+parent: Task types
+nav_order: 6
+---
+
+# bucketfill (task type)
+
+Since v3.9
+{: .label .label-green }
+
Fill a bucket up.
## Options
diff --git a/docs/task-type/citizens_deliver-(task-type).md b/docs/task-type/citizens_deliver-(task-type).md
index 3be9cdaa..14f56f20 100644
--- a/docs/task-type/citizens_deliver-(task-type).md
+++ b/docs/task-type/citizens_deliver-(task-type).md
@@ -1,5 +1,16 @@
-
-*This requires the Citizens plugin to activate.*
+---
+title: citizens_deliver
+parent: Task types
+nav_order: 29
+---
+
+# citizens_deliver (task type)
+
+Since v2.0.15
+{: .label .label-green }
+
+Plugin 'Citizens' required
+{: .label }
Deliver a set of items to a Citizens NPC.
diff --git a/docs/task-type/citizens_interact-(task-type).md b/docs/task-type/citizens_interact-(task-type).md
index eb744f27..f25e9844 100644
--- a/docs/task-type/citizens_interact-(task-type).md
+++ b/docs/task-type/citizens_interact-(task-type).md
@@ -1,5 +1,16 @@
-
-*This requires the Citizens plugin to activate.*
+---
+title: citizens_interact
+parent: Task types
+nav_order: 30
+---
+
+# citizens_interact (task type)
+
+Since v2.0.15
+{: .label .label-green }
+
+Plugin 'Citizens' required
+{: .label }
Interact with a Citizens NPC.
diff --git a/docs/task-type/command-(task-type).md b/docs/task-type/command-(task-type).md
index a5a42960..4e2d426f 100644
--- a/docs/task-type/command-(task-type).md
+++ b/docs/task-type/command-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: command
+parent: Task types
+nav_order: 7
+---
+
+# command (task type)
+
+Since v2.12
+{: .label .label-green }
+
Execute a specific command.
This task may not work for commands not properly registered with the
diff --git a/docs/task-type/consume-(task-type).md b/docs/task-type/consume-(task-type).md
index b0d3acd4..4b748c89 100644
--- a/docs/task-type/consume-(task-type).md
+++ b/docs/task-type/consume-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: consume
+parent: Task types
+nav_order: 8
+---
+
+# consume (task type)
+
+Since v3.9
+{: .label .label-green }
+
Consume a specific item.
## Options
diff --git a/docs/task-type/crafting-(task-type).md b/docs/task-type/crafting-(task-type).md
index de9147b0..1622c502 100644
--- a/docs/task-type/crafting-(task-type).md
+++ b/docs/task-type/crafting-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: crafting
+parent: Task types
+nav_order: 9
+---
+
+# crafting (task type)
+
+Since v3.0
+{: .label .label-green }
+
Craft a set of items.
## Options
diff --git a/docs/task-type/dealdamage-(task-type).md b/docs/task-type/dealdamage-(task-type).md
index 2683e647..426f76e2 100644
--- a/docs/task-type/dealdamage-(task-type).md
+++ b/docs/task-type/dealdamage-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: dealdamage
+parent: Task types
+nav_order: 10
+---
+
+# dealdamage (task type)
+
+Since v2.2
+{: .label .label-green }
+
Deal a certain amount of damage.
## Options
diff --git a/docs/task-type/distancefrom-(task-type).md b/docs/task-type/distancefrom-(task-type).md
index 3fa7fdae..5c0e8305 100644
--- a/docs/task-type/distancefrom-(task-type).md
+++ b/docs/task-type/distancefrom-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: distancefrom
+parent: Task types
+nav_order: 11
+---
+
+# distancefrom (task type)
+
+Since v2.12
+{: .label .label-green }
+
Travel away from a set of co-ordinates.
## Options
diff --git a/docs/task-type/enchanting-(task-type).md b/docs/task-type/enchanting-(task-type).md
index c22907b7..1e2b6c80 100644
--- a/docs/task-type/enchanting-(task-type).md
+++ b/docs/task-type/enchanting-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: enchanting
+parent: Task types
+nav_order: 12
+---
+
+# enchanting (task type)
+
+Since v2.2
+{: .label .label-green }
+
Enchant an item.
## Options
diff --git a/docs/task-type/essentials_balance-(task-type).md b/docs/task-type/essentials_balance-(task-type).md
index ab600bc1..6d246376 100644
--- a/docs/task-type/essentials_balance-(task-type).md
+++ b/docs/task-type/essentials_balance-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the Essentials plugin to activate.*
+---
+title: essentials_balance
+parent: Task types
+nav_order: 31
+---
+
+# essentials_balance (task type)
+
+Since v2.12
+{: .label .label-green }
+
+Plugin 'Essentials' required
+{: .label }
Reach a certain balance.
diff --git a/docs/task-type/essentials_moneyearn-(task-type).md b/docs/task-type/essentials_moneyearn-(task-type).md
index bf5c8efd..eba692fa 100644
--- a/docs/task-type/essentials_moneyearn-(task-type).md
+++ b/docs/task-type/essentials_moneyearn-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the Essentials plugin to activate.*
+---
+title: essentials_moneyearn
+parent: Task types
+nav_order: 32
+---
+
+# essentials_moneyearn (task type)
+
+Since v2.12
+{: .label .label-green }
+
+Plugin 'Essentials' required
+{: .label }
Earn a certain amount of money after starting quest.
diff --git a/docs/task-type/expearn-(task-type).md b/docs/task-type/expearn-(task-type).md
index f4de7c5b..86cbf5ca 100644
--- a/docs/task-type/expearn-(task-type).md
+++ b/docs/task-type/expearn-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: expearn
+parent: Task types
+nav_order: 13
+---
+
+# expearn (task type)
+
+Since v2.2
+{: .label .label-green }
+
Earn a set amount of exp after starting the quest.
## Options
diff --git a/docs/task-type/fabledskyblock_level-(task-type).md b/docs/task-type/fabledskyblock_level-(task-type).md
index ec689b56..eecf2dc0 100644
--- a/docs/task-type/fabledskyblock_level-(task-type).md
+++ b/docs/task-type/fabledskyblock_level-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the FabledSkyblock plugin to activate.*
+---
+title: fabledskyblock_level
+parent: Task types
+nav_order: 33
+---
+
+# fabledskyblock_level (task type)
+
+Since v3.5
+{: .label .label-green }
+
+Plugin 'FabledSkyblock' required
+{: .label }
Reach a certain FabledSkyblock level.
diff --git a/docs/task-type/farming-(task-type).md b/docs/task-type/farming-(task-type).md
index de5c5d6a..57406c00 100644
--- a/docs/task-type/farming-(task-type).md
+++ b/docs/task-type/farming-(task-type).md
@@ -1,9 +1,22 @@
-
-*Requires Minecraft 1.13+. For previous versions, use
-[blockbreak](blockbreak_(task_type) "wikilink").*
+---
+title: farming
+parent: Task types
+nav_order: 14
+---
+
+# farming (task type)
+
+Since v3.5
+{: .label .label-green }
+
+Minecraft 1.13+ required
+{: .label .label-purple }
+
+*For previous versions, use [blockbreak](blockbreak_(task_type) "wikilink").*
Farm a set amount of crops.
+{: .note }
Since Quests v3.13, `farmingcertain` and `farming` have been merged into
one. Both names can be used to refer to this task.
diff --git a/docs/task-type/fishing-(task-type).md b/docs/task-type/fishing-(task-type).md
index fa63358f..0143bbe4 100644
--- a/docs/task-type/fishing-(task-type).md
+++ b/docs/task-type/fishing-(task-type).md
@@ -1,7 +1,19 @@
+---
+title: fishing
+parent: Task types
+nav_order: 15
+---
+
+# fishing (task type)
+
+Since v2.0
+{: .label .label-green }
+
Fish a set amount of items.
+{: .note }
Since Quests v3.13, `fishingcertain` and `fishing` have been merged into
-one.
+one. Both names can be used to refer to this task.
## Options
diff --git a/docs/task-type/index.md b/docs/task-type/index.md
new file mode 100644
index 00000000..4b0e657f
--- /dev/null
+++ b/docs/task-type/index.md
@@ -0,0 +1,7 @@
+---
+title: Task types
+has_children: true
+nav_order: 6
+---
+
+# Task types \ No newline at end of file
diff --git a/docs/task-type/inventory-(task-type).md b/docs/task-type/inventory-(task-type).md
index e5e22b15..67354434 100644
--- a/docs/task-type/inventory-(task-type).md
+++ b/docs/task-type/inventory-(task-type).md
@@ -1,3 +1,15 @@
+---
+title: inventory
+parent: Task types
+nav_order: 16
+---
+
+# inventory (task type)
+
+Since v1.4
+{: .label .label-green }
+
+
Obtain a set of items.
## Options
diff --git a/docs/task-type/iridiumskyblock_value-(task-type).md b/docs/task-type/iridiumskyblock_value-(task-type).md
index c465c049..40ca8a8c 100644
--- a/docs/task-type/iridiumskyblock_value-(task-type).md
+++ b/docs/task-type/iridiumskyblock_value-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the IridiumSkyblock plugin to activate.*
+---
+title: iridiumskyblock_value
+parent: Task types
+nav_order: 34
+---
+
+# iridiumskyblock_value (task type)
+
+Since v3.5
+{: .label .label-green }
+
+Plugin 'IridiumSkyblock' required - version 2.x only
+{: .label }
Reach a certain IridiumSkyblock value.
diff --git a/docs/task-type/milking-(task-type).md b/docs/task-type/milking-(task-type).md
index dcf296b2..75c2ed86 100644
--- a/docs/task-type/milking-(task-type).md
+++ b/docs/task-type/milking-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: milking
+parent: Task types
+nav_order: 17
+---
+
+# milking (task type)
+
+Since v2.0
+{: .label .label-green }
+
Milk a set amount of cows.
## Options
diff --git a/docs/task-type/mobkilling-(task-type).md b/docs/task-type/mobkilling-(task-type).md
index 6b7565d7..8ad286a3 100644
--- a/docs/task-type/mobkilling-(task-type).md
+++ b/docs/task-type/mobkilling-(task-type).md
@@ -1,5 +1,17 @@
+---
+title: mobkilling
+parent: Task types
+nav_order: 18
+---
+
+# mobkilling (task type)
+
+Since v2.0
+{: .label .label-green }
+
Kill a set amount of mobs.
+{: .note }
Since Quests v3.13, `mobkillingcertain` and `mobkilling` have been
merged into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/mythicmobs_killing-(task-type).md b/docs/task-type/mythicmobs_killing-(task-type).md
index 14f1a0ee..4862f66d 100644
--- a/docs/task-type/mythicmobs_killing-(task-type).md
+++ b/docs/task-type/mythicmobs_killing-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the MythicMobs plugin to activate.*
+---
+title: mythicmobs_killing
+parent: Task types
+nav_order: 35
+---
+
+# mythicmobs_killing (task type)
+
+Since v2.3
+{: .label .label-green }
+
+Plugin 'MythicMobs' required
+{: .label }
Kill a certain MythicMobs mob.
diff --git a/docs/task-type/permission-(task-type).md b/docs/task-type/permission-(task-type).md
index 631a462e..aa55c00a 100644
--- a/docs/task-type/permission-(task-type).md
+++ b/docs/task-type/permission-(task-type).md
@@ -1,5 +1,18 @@
+---
+title: permission
+parent: Task types
+nav_order: 19
+---
+
+# permission (task type)
+
+Since v2.9.5
+{: .label .label-green }
+
Test if a player has a permission.
+This task works by regularly polling a player at a certain interval.
+
## Options
| Key | Description | Type | Required | Default | Notes |
diff --git a/docs/task-type/placeholderapi_evaluate-(task-type).md b/docs/task-type/placeholderapi_evaluate-(task-type).md
index ae678193..87079d7f 100644
--- a/docs/task-type/placeholderapi_evaluate-(task-type).md
+++ b/docs/task-type/placeholderapi_evaluate-(task-type).md
@@ -1,7 +1,18 @@
-
-*Requires the PlaceholderAPI plugin to activate.*
+---
+title: placeholderapi_evaluate
+parent: Task types
+nav_order: 36
+---
-Reach a certain PlaceholderAPI level.
+# placeholderapi_evaluate (task type)
+
+Since v2.9.5
+{: .label .label-green }
+
+Plugin 'PlaceholderAPI' required
+{: .label }
+
+Evaluate a certain PlaceholderAPI placeholder and compare it against a given condition.
## Options
diff --git a/docs/task-type/playerkilling-(task-type).md b/docs/task-type/playerkilling-(task-type).md
index 62cc2343..4aee13bf 100644
--- a/docs/task-type/playerkilling-(task-type).md
+++ b/docs/task-type/playerkilling-(task-type).md
@@ -1,3 +1,15 @@
+---
+title: playerkilling
+parent: Task types
+nav_order: 20
+---
+
+# playerkilling (task type)
+
+Since v2.0
+{: .label .label-green }
+
+
Kill a set amount of players.
## Options
diff --git a/docs/task-type/playtime-(task-type).md b/docs/task-type/playtime-(task-type).md
index f3b827df..649b0db4 100644
--- a/docs/task-type/playtime-(task-type).md
+++ b/docs/task-type/playtime-(task-type).md
@@ -1,5 +1,19 @@
+---
+title: playtime
+parent: Task types
+nav_order: 21
+---
+
+# playtime (task type)
+
+Since v1.8
+{: .label .label-green }
+
Play for a certain amount of time after starting the quest.
+{: .note }
+Before Quests v2.0, this task was known as `TIMEPLAYED`.
+
## Options
| Key | Description | Type | Required | Default | Notes |
diff --git a/docs/task-type/position-(task-type).md b/docs/task-type/position-(task-type).md
index dfa85e9a..bf990ca8 100644
--- a/docs/task-type/position-(task-type).md
+++ b/docs/task-type/position-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: position
+parent: Task types
+nav_order: 22
+---
+
+# position (task type)
+
+Since v2.0.3
+{: .label .label-green }
+
Reach a set of co-ordinates.
## Options
diff --git a/docs/task-type/shearing-(task-type).md b/docs/task-type/shearing-(task-type).md
index 4d65861d..5c81e1e7 100644
--- a/docs/task-type/shearing-(task-type).md
+++ b/docs/task-type/shearing-(task-type).md
@@ -1,3 +1,15 @@
+---
+title: shearing
+parent: Task types
+nav_order: 23
+---
+
+# shearing (task type)
+
+Since v2.0
+{: .label .label-green }
+
+
Shear a set amount of sheep.
## Options
diff --git a/docs/task-type/shopguiplus_buy-(task-type).md b/docs/task-type/shopguiplus_buy-(task-type).md
index 888a1384..85c03ae9 100644
--- a/docs/task-type/shopguiplus_buy-(task-type).md
+++ b/docs/task-type/shopguiplus_buy-(task-type).md
@@ -1,8 +1,20 @@
-
-*Requires the ShopGUI+ plugin to activate.*
+---
+title: shopguiplus_buy
+parent: Task types
+nav_order: 37
+---
+
+# shopguiplus_buy (task type)
+
+Since v2.15
+{: .label .label-green }
+
+Plugin 'ShopGUI+' required
+{: .label }
Buy a certain number of items from a ShopGUI+ shop.
+{: .note }
Since Quests v3.13, `shopguiplus_buycertain` and `shopguiplus_buy` have
been merged into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/shopguiplus_sell-(task-type).md b/docs/task-type/shopguiplus_sell-(task-type).md
index 144e2a42..a1c94a10 100644
--- a/docs/task-type/shopguiplus_sell-(task-type).md
+++ b/docs/task-type/shopguiplus_sell-(task-type).md
@@ -1,8 +1,20 @@
-
-*Requires the ShopGUI+ plugin to activate.*
+---
+title: shopguiplus_sell
+parent: Task types
+nav_order: 38
+---
+
+# shopguiplus_sell (task type)
+
+Since v2.15
+{: .label .label-green }
+
+Plugin 'ShopGUI+' required
+{: .label }
Sell a certain number of items to a ShopGUI+ shop.
+{: .note }
Since Quests v3.13, `shopguiplus_sellcertain` and `shopguiplus_sell`
have been merged into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/smelting-(task-type).md b/docs/task-type/smelting-(task-type).md
index edfd41d9..6a6f3f49 100644
--- a/docs/task-type/smelting-(task-type).md
+++ b/docs/task-type/smelting-(task-type).md
@@ -1,5 +1,17 @@
+---
+title: smelting
+parent: Task types
+nav_order: 24
+---
+
+# smelting (task type)
+
+Since v3.12
+{: .label .label-green }
+
Cook a set amount of an item.
+{: .note }
Since Quests v3.13, `smeltingcertain` and `smelting` have been merged
into one. Both names can be used to refer to this task.
diff --git a/docs/task-type/superiorskyblock_level-(task-type).md b/docs/task-type/superiorskyblock_level-(task-type).md
index 6289fc83..c23996b6 100644
--- a/docs/task-type/superiorskyblock_level-(task-type).md
+++ b/docs/task-type/superiorskyblock_level-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the SuperiorSkyblock plugin to activate.*
+---
+title: superiorskyblock_level
+parent: Task types
+nav_order: 39
+---
+
+# superiorskyblock_level (task type)
+
+Since v3.7
+{: .label .label-green }
+
+Plugin 'SuperiorSkyblock' required
+{: .label }
Reach a certain SuperiorSkyblock level.
diff --git a/docs/task-type/superiorskyblock_worth-(task-type).md b/docs/task-type/superiorskyblock_worth-(task-type).md
index 51572258..a47d50fe 100644
--- a/docs/task-type/superiorskyblock_worth-(task-type).md
+++ b/docs/task-type/superiorskyblock_worth-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the SuperiorSkyblock plugin to activate.*
+---
+title: superiorskyblock_worth
+parent: Task types
+nav_order: 40
+---
+
+# superiorskyblock_worth (task type)
+
+Since v3.7
+{: .label .label-green }
+
+Plugin 'SuperiorSkyblock' required
+{: .label }
Reach a certain SuperiorSkyblock worth.
@@ -7,7 +18,7 @@ Reach a certain SuperiorSkyblock worth.
| Key | Description | Type | Required | Default | Notes |
|---------|---------------------|---------|----------|---------|-------|
-| `worth` | The worth to worth. | Integer | Yes | \- | \- |
+| `worth` | The worth to reach. | Integer | Yes | \- | \- |
## Examples
diff --git a/docs/task-type/taming-(task-type).md b/docs/task-type/taming-(task-type).md
index 775ff567..1847bda4 100644
--- a/docs/task-type/taming-(task-type).md
+++ b/docs/task-type/taming-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: taming
+parent: Task types
+nav_order: 25
+---
+
+# taming (task type)
+
+Since v3.13
+{: .label .label-green }
+
Tame a set amount of animals.
## Options
diff --git a/docs/task-type/uskyblock_level-(task-type).md b/docs/task-type/uskyblock_level-(task-type).md
index 2ae22ca4..729ca5c6 100644
--- a/docs/task-type/uskyblock_level-(task-type).md
+++ b/docs/task-type/uskyblock_level-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the uSkyBlock plugin to activate.*
+---
+title: uskyblock_level
+parent: Task types
+nav_order: 41
+---
+
+# uskyblock_level (task type)
+
+Since v1.7.1
+{: .label .label-green }
+
+Plugin 'uSkyBlock' required
+{: .label }
Reach a certain uSkyBlock level.
diff --git a/docs/task-type/votingplugin_vote-(task-type).md b/docs/task-type/votingplugin_vote-(task-type).md
index fec37347..6a17abac 100644
--- a/docs/task-type/votingplugin_vote-(task-type).md
+++ b/docs/task-type/votingplugin_vote-(task-type).md
@@ -1,5 +1,16 @@
-
-*Requires the VotingPlugin plugin to activate.*
+---
+title: votingplugin_vote
+parent: Task types
+nav_order: 42
+---
+
+# votingplugin_vote (task type)
+
+Since v3.7
+{: .label .label-green }
+
+Plugin 'VotingPlugin' required
+{: .label }
Vote a number of times using VotingPlugin.
diff --git a/docs/task-type/walking-(task-type).md b/docs/task-type/walking-(task-type).md
index c2bc492e..4c38fc27 100644
--- a/docs/task-type/walking-(task-type).md
+++ b/docs/task-type/walking-(task-type).md
@@ -1,3 +1,14 @@
+---
+title: walking
+parent: Task types
+nav_order: 26
+---
+
+# walking (task type)
+
+Since v2.0
+{: .label .label-green }
+
Walk a set distance.
## Options
diff --git a/docs/Tips.md b/docs/tips.md
index b7e1ea42..871a9968 100644
--- a/docs/Tips.md
+++ b/docs/tips.md
@@ -1,3 +1,10 @@
+---
+title: Tips
+nav_order: 11
+---
+
+# Tips
+
Creating and editing quests can seem daunting at first, but the plugin
is designed to be as easy as possible to use.
diff --git a/docs/Data-migration-tool.md b/docs/tools/data-migration-tool.md
index 2022f285..891862c7 100644
--- a/docs/Data-migration-tool.md
+++ b/docs/tools/data-migration-tool.md
@@ -1,3 +1,10 @@
+---
+title: Data migration tool
+parent: Tools
+---
+
+# Data migration tool
+
The **data migration tool** is a tool that allows you to migrate your
data from one [storage provider](Storage_providers "wikilink") to
another. This can also be used as a backup tool. The tool can be
@@ -16,7 +23,8 @@ migration, run the following command:
/quests admin migratedata execute
-⚠️ **It is advised that you do this process on a server with no players
+{: .warning }
+**It is advised that you do this process on a server with no players
online.** You should set a whitelist, or turn on maintenence mode,
before migrating data, and these commands should be done through your
server console. Trying this process with players online may result in
diff --git a/docs/tools/index.md b/docs/tools/index.md
new file mode 100644
index 00000000..83c7f894
--- /dev/null
+++ b/docs/tools/index.md
@@ -0,0 +1,7 @@
+---
+title: Tools
+has_children: true
+nav_order: 7
+---
+
+# Tools \ No newline at end of file
diff --git a/docs/tools/placeholderapi.md b/docs/tools/placeholderapi.md
new file mode 100644
index 00000000..cc932600
--- /dev/null
+++ b/docs/tools/placeholderapi.md
@@ -0,0 +1,148 @@
+---
+title: PlaceholderAPI
+parent: Tools
+---
+
+# PlaceholderAPI
+{: .no_toc }
+
+This plugin integrates with PlaceholderAPI and exposes certain values via
+placeholders. This can be used with other plugins.
+
+{: .important }
+> **No PAPI eCloud download is necessary - placeholders come with the plugin.**
+The eCloud extension called 'Quests' is not for this plugin, do not download it!
+>
+> {: .warning }
+> > Once again, **do not download the eCloud extension**. There will be errors
+> > if you do so.
+
+## Table of contents
+{: .no_toc .text-delta }
+
+1. TOC
+{:toc}
+
+
+## Common placeholders
+
+### Quest counters
+
+| Placeholder | Description |
+|----------------------------|------------------------------------------------------------------------------|
+| `%quests_all%` | Returns the **number** of quests on the server. |
+| `%quests_completed%` | **\*** Returns the **number** of quests the player has completed. |
+| `%quests_completedbefore%` | Returns the **number** of quests the player has completed **at least once**. |
+| `%quests_started%` | Returns the **number** of quests which are active for the player. |
+| `%quests_categories%` | Returns the **number** of categories on the server. |
+
+### Quest lists
+
+| Placeholder | Description |
+|---------------------------------|-------------------------------------------------------------------------------------------------------|
+| `%quests_all_list%` | Returns a **comma-seperated\*\* list** of quest **names** on the server. |
+| `%quests_completed_list%` | \* Returns a **comma-seperated\*\* list** of quest **names** the player has completed. |
+| `%quests_completedbefore_list%` | Returns a **comma-seperated\*\* list** of quest **names** the player has completed **at least once**. |
+| `%quests_started_list%` | Returns a **comma-seperated\*\* list** of quest **names** which are active for the player. |
+| `%quests_categories_list%` | Returns a **comma-seperated\*\* list** of category **names** on the server. |
+
+### Quest ID lists
+
+| Placeholder | Description |
+|-----------------------------------|-----------------------------------------------------------------------------------------------------|
+| `%quests_all_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** on the server. |
+| `%quests_completed_listid%` | \* Returns a **comma-seperated\*\* list** of quest **IDs** the player has completed. |
+| `%quests_completedbefore_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** the player has completed **at least once**. |
+| `%quests_started_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** which are active for the player. |
+| `%quests_categories_listid%` | Returns a **comma-seperated\*\* list** of category **IDs** on the server. |
+
+**\*** *this does not include quests which have been repeated and not yet completed*
+
+**\*\*** *the delimiter can be changed by adding it in at the end: for example `%quests_completed_listid_ / %` will return a list of completed quests **seperated by the characters ` / ` (including the spaces around it)***
+
+## Advanced placeholders
+
+### Quest details
+
+| Placeholder | Description |
+|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
+| `%quests_quest:<quest-id>%` | Returns the **display name** of the quest **`<quest-id>`**. |
+| `%quests_quest:<quest-id>_started%` | Returns **true/false** on whether or not the quest **`<quest-id>`** is started by the player. |
+| `%quests_quest:<quest-id>_starteddate%` | Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the quest **`<quest-id>`** was started by the player. |
+| `%quests_quest:<quest-id>_completed%` | **\*** Returns **true/false** on whether or not the quest **`<quest-id>`** is completed by the player. |
+| `%quests_quest:<quest-id>_completedbefore%` | Returns **true/false** on whether or not the quest **`<quest-id>`** is completed by the player **at least once**. |
+| `%quests_quest:<quest-id>_completiondate%` | Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the quest **`<quest-id>`** was completed by the player. |
+| `%quests_quest:<quest-id>_cooldown%` | Returns a **time in seconds** of the cooldown for quest **`<quest-id>`**. |
+| `%quests_quest:<quest-id>_canaccept%` | Returns **true/false** on whether or not the quest **`<quest-id>`** can be started by the player. |
+| `%quests_quest:<quest-id>_meetsrequirements%` | Returns **true/false** on whether or not the player has completed the required quests for the quest **`<quest-id>`**. |
+| `%quests_quest:<quest-id>_task:<task-id>_progress%` | Returns the **progress** of task **`task-id`** on the quest **`<quest-id>`**. |
+| `%quests_quest:<quest-id>_task:<task-id>_completed%` | Returns **true/false** on whether or not the task **`task-id`** on the quest **`<quest-id>`** is completed by the player. |
+| `%quests_quest:<quest-id>_p:<placeholder>%` | Returns the **local quest placeholder `<placeholder>`** for the quest **`<quest-id>`**. |
+
+| Placeholder | Description |
+|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
+| `%quests_tracked%` | Returns the **display name** of the **players tracked quest** (or "No tracked quest"). |
+| `%quests_tracked_started%` | Returns **true/false** on whether or not the **players tracked quest** is started. |
+| `%quests_tracked_starteddate%` | Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the **players tracked quest** was started by the player. |
+| `%quests_tracked_completed%` | **\*** Returns **true/false** on whether or not the **players tracked quest** is completed. |
+| `%quests_tracked_completedbefore%` | Returns **true/false** on whether or not the **players tracked quest** is completed **at least once**. |
+| `%quests_tracked_completiondate%` | Returns a **date formatted as DD/MM/YYYY\*\*\*, or "Never"** on when the **players tracked quest** was completed by the player. |
+| `%quests_tracked_cooldown%` | Returns a **time in seconds** of the cooldown for the **players tracked quest**. |
+| `%quests_tracked_canaccept%` | Returns **true/false** on whether or not the **players tracked quest** can be started by the player. |
+| `%quests_tracked_meetsrequirements%` | Returns **true/false** on whether or not the player has completed the required quests for the **players tracked quest**. |
+| `%quests_tracked_task:<task-id>_progress%` | Returns the **progress** of task **`task-id`** on the **players tracked quest**. |
+| `%quests_tracked_task:<task-id>_completed%` | Returns **true/false** on whether or not the task **`task-id`** on the **players tracked quest** is completed by the player. |
+| `%quests_tracked_p:<placeholder>%` | Returns the **local quest placeholder `<placeholder>`** for the **players tracked quest**. |
+
+### Per-category quest counters
+
+| Placeholder | Description |
+|---------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
+| `%quests_category:<category-id>%` | Returns the **id** of the category **`<category-id>`** (useful to check if it is a valid reference). |
+| `%quests_category:<category-id>_all%` | Returns the **number** of quests in the category **`<category-id>`**. |
+| `%quests_category:<category-id>_completed%` | **\*** Returns the **number** of quests in the category **`<category-id>`** the player has completed. |
+| `%quests_category:<category-id>_completedbefore%` | Returns the **number** of quests in the category **`<category-id>`** the player has completed **at least once**. |
+| `%quests_category:<category-id>_started%` | Returns the **number** of quests in the category **`<category-id>`** which are active for the player. |
+
+### Per-category quest lists
+
+|Placeholder|Description|
+|---|---|
+|`%quests_category:<category-id>_all_list%`|Returns a **comma-seperated\*\* list** of quest **names** on the server.|
+|`%quests_category:<category-id>_completed_list%`|\* Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** the player has completed.|
+|`%quests_category:<category-id>_completedbefore_list%`|Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** the player has completed **at least once**.|
+|`%quests_category:<category-id>_started_list%`|Returns a **comma-seperated\*\* list** of quest **names** in the category **`<category-id>`** which are active for the player.|
+
+### Per-category quest ID lists
+
+| Placeholder | Description |
+|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
+| `%quests_category:<category-id>_all_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** on the server. |
+| `%quests_category:<category-id>_completed_listid%` | \* Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** the player has completed. |
+| `%quests_category:<category-id>_completedbefore_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** the player has completed **at least once**. |
+| `%quests_category:<category-id>_started_listid%` | Returns a **comma-seperated\*\* list** of quest **IDs** in the category **`<category-id>`** which are active for the player. |
+
+**\*** *this does not include quests which have been repeated and not yet completed*
+
+**\*\*** *the delimiter can be changed by adding it in at the end: for example `%quests_category:<category-id>_completed_listid_ / %` will return a list of completed quests **seperated by the characters ` / ` (including the spaces around it)***
+
+**\*\*\*** *the date format may be adjusted by including it at the end: for example `%quests_q:<quest-name>_completiondate_dd/MM HH:mm:ss%` will return a the date of compltion **formatted as `dd/MM HH:mm:ss`** - you may use any letter listed [here](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)*
+
+## Caching placeholders
+
+Placeholders may be cached for a short period (10 seconds by default) to help improve performance. To do this, **simply add `_cache` to the end of any placeholder**. Note: date formats are automatically cached as parsing them may be heavy.
+
+**Examples:**
+```
+%quests_all_cache%
+%quests_completedbefore_listid_cache%
+%quests_quest:<quest-id>_task:<task-id>_progress_cache%
+```
+
+The length of time Quests retains this cache can be configured in the configuration under `options.placeholder-cache-time`. By default, this cache is **10 seconds**.
+
+```yaml
+options:
+ ...
+ placeholder-cache-time: 10
+``` \ No newline at end of file
diff --git a/docs/Quest-debugger.md b/docs/tools/quest-debugger.md
index 8533a2e2..1ffcaabd 100644
--- a/docs/Quest-debugger.md
+++ b/docs/tools/quest-debugger.md
@@ -1,3 +1,10 @@
+---
+title: Quest debugger
+parent: Tools
+---
+
+# Quest debugger
+
The **quests debugger** allows you to see why a quest may not be working
as intended. When turned on for a quest, it will print out what a task
type is doing and how it is evaluating it. This can be helpful to see
@@ -10,7 +17,7 @@ The debugger can be enabled with **/q a debug quest \<quest/\*\>
quests. Enabling it for all will show debug logs for every player,
whereas self will show it for just yourself.
-<https://i.imgur.com/Sb5DrpJ.png>
+<img src="https://i.imgur.com/Sb5DrpJ.png" height=50>
## Example
@@ -27,16 +34,17 @@ tasks:
reverse-if-placed: false
```
-When breaking PACKED_ICE, the debugger sends this output:
-<https://i.imgur.com/2GKba8i.png>
+When breaking `PACKED_ICE`, the debugger sends this output:
+
+<img src="https://i.imgur.com/2GKba8i.png">
Here it is telling us that the task type is checking the broken block
against all the blocks in the `blocks` list, and not finding a match,
thus skipping this task.
-Now, when breaking DARK_OAK_PLANKS:
+Now, when breaking `DARK_OAK_PLANKS`:
-<https://i.imgur.com/2nI8uCH.png>
+<img src="https://i.imgur.com/2nI8uCH.png">
The debugger tells us that it finds a match and increments the task
progress.