summaryrefslogtreecommitdiffstats
path: root/docs/_old_mediawiki/Creating-a-quest.mediawiki
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2023-07-06 14:10:24 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2023-07-06 14:11:42 +0100
commit0aac85ff5c27e98564243a9f43ae58685bd18ff2 (patch)
tree1146693fe615b85be35447cd9fd2457ce1f3d180 /docs/_old_mediawiki/Creating-a-quest.mediawiki
parent4c9a7d83a19828e64ea7f90ddf69f9212bb7a7d9 (diff)
Migrate docs to GitHub pages
Diffstat (limited to 'docs/_old_mediawiki/Creating-a-quest.mediawiki')
-rw-r--r--docs/_old_mediawiki/Creating-a-quest.mediawiki277
1 files changed, 277 insertions, 0 deletions
diff --git a/docs/_old_mediawiki/Creating-a-quest.mediawiki b/docs/_old_mediawiki/Creating-a-quest.mediawiki
new file mode 100644
index 00000000..e4568271
--- /dev/null
+++ b/docs/_old_mediawiki/Creating-a-quest.mediawiki
@@ -0,0 +1,277 @@
+__NOTOC__
+Each file inside the <code>quests</code> 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 [https://github.com/LMBishop/Quests/blob/master/bukkit/src/main/resources/resources/bukkit/quests/example1.yml default configuration].
+
+== Table of contents ==
+
+* [[Creating a quest#Quest ID|Quest ID]]
+* [[Creating a quest#Tasks|Tasks]]
+* [[Creating a quest#Display|Display]]
+** [[Creating a quest#Name|Name]]
+** [[Creating a quest#Normal lore|Normal lore]]
+** [[Creating a quest#Started lore|Started lore]]
+** [[Creating a quest#Type|Type]]
+* [[Creating a quest#Rewards|Rewards]]
+* [[Creating a quest#Start commands|Start commands]]
+* [[Creating a quest#Start string|Start string]]
+* [[Creating a quest#Reward string|Reward string]]
+* [[Creating a quest#Placeholders|Placeholders]]
+* [[Creating a quest#Options|Options]]
+** [[Creating a quest#Category|Category]]
+** [[Creating a quest#Requirements|Requirements]]
+** [[Creating a quest#Permission required|Permission required]]
+** [[Creating a quest#Cancellable|Cancellable]]
+** [[Creating a quest#Counts towards limit|Counts towards limit]]
+** [[Creating a quest#Repeatable|Repeatable]]
+** [[Creating a quest#Cooldown|Cooldown]]
+** [[Creating a quest#Time limit|Time limit]]
+** [[Creating a quest#Sort order|Sort order]]
+** [[Creating a quest#Autostart|Autostart]]
+** [[Creating a quest#completed display|Completed display]]
+** [[Creating a quest#cooldown display|Cooldown display]]
+** [[Creating a quest#permission display|Permission display]]
+** [[Creating a quest#locked display|Locked display]]
+
+== Quest ID ==
+The quest ID is the name of the file (excluding .yml extension) and must alphanumeric and unique. This ID is used as the reference in commands, players' quest progress file and in placeholders.
+== Tasks ==
+:''<code>tasks</code>''
+Tasks are the objectives the player must do to complete the quest. Simalar to quest IDs, there are task IDs. They can be identical to the quest ID but must be unique to each other.
+
+For help on adding the tasks, refer to [[Task configuration layout|task configuration layout]]
+== Display ==
+:''<code>display</code>''
+This is the item which will be shown to the player in the quest GUI.
+=== Name ===
+:''<code>display.name</code>''
+The name of the item. This is also the name used in chat messages.
+```yaml
+display:
+ name: "&cExample I (Single Task)"
+```
+=== Normal lore ===
+:''<code>display.lore-normal</code>''
+The lore (description) of the item as seen if the quest is not started.
+```yaml
+display:
+ ...
+ lore-normal:
+ - "&cThis category is designed to show you the different"
+ - "&cattributes a quest can have."
+ - ""
+ - "&7This quest requires you to:"
+ - "&7 - Break &f30 blocks&7."
+ - ""
+ - "&7Rewards:"
+ - "&7 - &f10 &7diamonds."
+```
+=== Started lore ===
+:''<code>display.lore-started</code>''
+The lore (description) of the item '''appended to <code>lore-normal</code>''' if the quest is started. This is a good place to put progression details. To get the progression of a player in a task, write <code><nowiki>{TASKID:progress}</nowiki></code> and replace <code>TASKID</code> with the ID of the task you want to get the progress for. Alternatively, you can write <code><nowiki>{TASKID:complete}</nowiki></code> to get if the task is complete.
+
+```yaml
+display:
+ ...
+ lore-started:
+ - ""
+ - "&7Your current progression:"
+ - "&7 - &f{mining:progress}&7/30 blocks broken."
+```
+=== Type ===
+:''<code>display.type</code>''
+The type (material name) of item.
+
+```yaml
+display:
+ ...
+ type: "WOODEN_PICKAXE"
+```
+== Rewards ==
+:''<code>rewards</code>''
+'''Optional.''' This is a list of commands which will be executed when the player completes the quest. You can use <code><nowiki>{player}</nowiki></code> and the players name will be substituted in place.
+
+```yaml
+rewards:
+ - "give {player} diamond 10"
+```
+== Start commands ==
+:''<code>startcommands</code>''
+'''Optional.''' This is a list of commands which will be executed when the player starts the quest. You can use <code><nowiki>{player}</nowiki></code> and the player's name will be substituted in place.
+
+```yaml
+startcommands:
+ - "broadcast {player} has started a quest"
+```
+== Start string ==
+:''<code>startstring</code>''
+'''Optional.''' This is a list of messages which will be sent to the player when they start the quest. This is useful for telling the player their objectives.
+
+```yaml
+startstring:
+ - " &8- &7You must break 30 blocks."
+```
+== Reward string ==
+:''<code>rewardstring</code>''
+'''Optional.''' This is a list of messages which will be sent to the player when they complete the quest. This is useful for telling the player their rewards.
+
+```yaml
+rewardstring:
+ - " &8- &7You have received 10 dimaonds."
+```
+== Placeholders ==
+:''<code>placeholders</code>''
+'''Optional.''' This is a set of placeholders which can be accessed using PlaceholderAPI. To get the progression of a player in a task, write <code><nowiki>{TASKID:progress}</nowiki></code> and replace <code>TASKID</code> with the ID of the task you want to get the progress for. Alternatively, you can write <code><nowiki>{TASKID:complete}</nowiki></code> to get if the task is complete.
+
+```yaml
+placeholders:
+ description: "&7Break &f30 blocks &7of any type."
+ progress: " &8- &f{mining:progress}&7/30 broken"
+```
+
+These placeholders will be called using PlaceholderAPI. See [[Quest progress in scoreboard|quest progress in scoreboard]] for a guide which utilises this feature.
+== Options ==
+:''<code>options</code>''
+This section defines quest-specific options.
+=== Category ===
+:''<code>options.category</code>''
+'''Optional.''' The category the quest will be in. You should put the ID of the category here.
+
+
+```yaml
+options:
+ ...
+ category: "example"
+```
+=== Requirements ===
+:''<code>options.requires</code>''
+'''Optional.''' List of Quest IDs the player must complete before being able to start this quest.
+
+```yaml
+options:
+ ...
+ requires:
+ - "quest-id"
+```
+=== Permission required ===
+:''<code>options.permission-required</code>''
+'''Optional.''' Whether or not the quest should require a permission to start. The permission will be <code><nowiki>quests.quest.<id></nowiki></code>.
+
+```yaml
+options:
+ ...
+ permission-required: false
+```
+=== Cancellable ===
+:''<code>options.cancellable</code>''
+'''Optional.''' Whether or not this quest can be cancelled. If global or local quest autostart is enabled, or is cancelling quests is disabled, then this option is ignored.
+
+```yaml
+options:
+ ...
+ cancellable: false
+```
+=== Counts towards limit ===
+:''<code>options.counts-towards-limit</code>''
+'''Optional.''' Whether or not this quest counts towards the players quest started limit. If global quest autostart is enabled, this will have no effect as quest limits are disabled.
+
+```yaml
+options:
+ ...
+ counts-towards-limit: false
+```
+=== Repeatable ===
+:''<code>options.repeatable</code>''
+'''Optional.''' Whether or not the quest can be replayed.
+
+```yaml
+options:
+ ...
+ repeatable: false
+```
+=== Cooldown ===
+:''<code>options.cooldown</code>''
+'''Optional.''' Whether ot not the quest is placed on cooldown or is immediately replayable.
+
+```yaml
+options:
+ ...
+ cooldown:
+ enabled: true
+ time: 1440 # minutes
+```
+=== Time limit ===
+:''<code>options.time-limit</code>''
+'''Optional.''' Whether or not this quest has a time limit to complete it. If the time limit is reached, the quest will be cancelled and progress reset.
+
+```yaml
+options:
+ ...
+ time-limit:
+ enabled: true
+ time: 1440 # minutes
+```
+=== Sort order ===
+:''<code>options.sort-order</code>''
+'''Optional.''' How the plugin sorts the quests in the GUI, lower numbers come first.
+
+```yaml
+options:
+ ...
+ sort-order: 1
+```
+=== Autostart ===
+:''<code>options.autostart</code>''
+'''Optional.''' Whether or not the quest should automatically be started. This is similar to enabling quest autostart for the entire plugin, but specific only to this quest, meaning it cannot be cancelled and counts towards the players quest started limit.
+
+See [[Creating a quest#Counts towards limit|ยง counts towards limit]] if you do not want autostart quests to count towards the quest started limit.
+
+```yaml
+options:
+ ...
+ autostart: true
+```
+
+=== Completed display ===
+:''<code>options.completed-display</code>''
+'''Optional.''' The display item this quest should take if it is completed. This accepts the standard ItemStack definition format described in [[Defining items]]. If this option is not specified, the display item [[GUI-configuration#quest-completed-display|defined in the main config.yml]] will be used.
+
+```yaml
+options:
+ ...
+ completed-display:
+ type: "STEAK"
+```
+
+=== Cooldown display ===
+:''<code>options.cooldown-display</code>''
+'''Optional.''' The display item this quest should take if it is on cooldown. This accepts the standard ItemStack definition format described in [[Defining items]]. If this option is not specified, the display item [[GUI-configuration#quest-cooldown-display|defined in the main config.yml]] will be used.
+
+```yaml
+options:
+ ...
+ cooldown-display:
+ type: "STEAK"
+```
+
+=== Permission display ===
+:''<code>options.permission-display</code>''
+'''Optional.''' The display item this quest should take if the player does not have permission to start it. This accepts the standard ItemStack definition format described in [[Defining items]]. If this option is not specified, the display item [[GUI-configuration#quest-permission-display|defined in the main config.yml]] will be used.
+
+```yaml
+options:
+ ...
+ permission-display:
+ type: "STEAK"
+```
+
+=== Locked display ===
+:''<code>options.locked-display</code>''
+'''Optional.''' The display item this quest should take if the player has not unlocked it. This accepts the standard ItemStack definition format described in [[Defining items]]. If this option is not specified, the display item [[GUI-configuration#quest-locked-display|defined in the main config.yml]] will be used.
+
+```yaml
+options:
+ ...
+ locked-display:
+ type: "STEAK"
+```