📰 **Big 2.0 News**
Hello, we have a bunch of changes and new features for you:
__**IMPORTANT**__
The package `enabled` boolean was moved to the new `package` section. If you have disabled packages you need to move this setting to it's new place under `package.enabled`. Otherwise all disabled QuestPackages will now be loaded.
```yaml
package:
enabled: false
```
🆕 __**Quest Templates**__
Thanks to Wolf2323's efforts, we are finally able to release **Quest Templates**
**What is a Quest Template?**
Do you have quest parts that need to be repeated all over again? Therefore, you just copy and paste them? Or do you have something like a utility quest package? Then Templates are perfect for you.
With Templates you now have a `QuestTemplates` folder beside your `QuestPackages` folder. In this folder you can write quests, as you are used to. But they will not get loaded as a quest. Instead you can reference them from any quest package. Then this template will be merged together with the quest package as if it's contents were defined in the quest package. This does not modify the files but happens in the background (Similar to how inheritance works in object oriented programming).
With this concept it is possible to centralise quest code in one place. You can also override specific values from the template per quest package.
Additionally, you can use other templates inside a template. And of course a quest package can also inherit from multiple templates!
➡️ https://docs.betonquest.org/2.0.0-DEV/Documentation/Packages-%26-Templates/#templates
📋 __**Additional Updates**__
```diff
-Fixes
```
- `pickrandom` event did not calculated chance correctly
``` diff
-Changes
```
- `tag remove` is no longer allowed. Only `tag delete` works in order to ensure a consistent syntax. Use search and replace to easily update your configs.
```diff
+Additions
```
- `objective` event now supports a comma separated list of objectives
- The journal can now have a custom skin based on the `journal.custom_model_data` setting.
- The objective `mmoprofessionlevelup` can now check the main character level as well.
- `consume` objective now has `amount` argument.
- `mmobkill` objective now supports the `marked` and `deathRadiusAllPlayers` argument
- A written book quest item can now be read.
- The BlockObjective now has native absolute properties (e.g. `absoluteLeft`) so that math.calc is no longer needed for well-formatted output.
- The variable condition now supports variables as both the input and the regular expression.
- `bossbar` notify style now supports variables for the `progress` argument
```diff
+New Documentation
```
- Yuyukey added a tutorial for quest packages: https://docs.betonquest.org/2.0.0-DEV/Tutorials/Syntax/Quest-Packages/
- SaltyAimbOtter added a guide for common regular expression use cases: https://docs.betonquest.org/2.0.0-DEV/Documentation/Reference/#regex-regular-expressions
If you like our changes consider helping the project by **funding future updates**: https://opencollective.com/betonquest
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }