# AdvancementsCore

Welcome to the official documentation for **AdvancementsCore**! This plugin enhances the advancement system in Minecraft by adding custom achievements, a team-based progression system, and an advanced GUI for managing achievements.

**AdvancementsCore** was originally developed for a **Minecraft event**, making it particularly well-suited for events and enhancing even the most basic **Minecraft experiences**.

Over multiple iterations, the plugin has been **refined and improved**, ensuring stability and usability. Now, after continuous enhancements, I have decided to **share it publicly** so others can benefit from its features!

### 🌟 Features

* Custom achievements with configurable requirements.
* Team-based achievement tracking.
* GUI-based menu to filter and manage achievements.
* Objective Pinning that allow players to track a specific achievement progression.
* Customizable toast for completed achievements.
* Integration with NPCs for achievement-related interactions.
* Database support (MySQL & SQLite).
* And more !

#### 👥Team System :

The **AdvancementsCore** team system allows players to create and manage teams via commands and invite other players to join. Teams play a crucial role in the custom achievement system. Once inside a team, players can access other plugin features such as progress tracking and the achievement menu.

Each team is identified by a **unique short ID**, which must be used for management commands. However, multiple teams **can have the same name**, as team differentiation is based on this unique ID.

All progress is **shared among team members**, meaning achievements completed by one member contribute to the team's overall advancement.

*(There is also a **team chat system** that allows players within the same team to communicate privately. When enabled, all messages sent in chat will be directed to the **team chat by default**. However, if a player wants to speak in the **global chat**, they can simply prefix their message with **"!"** to make it visible to everyone.)*

<figure><img src="https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2F7cbWHS6QiABKCArrQ625%2FCapture%20d&#x27;%C3%A9cran%202025-03-01%20222553.png?alt=media&#x26;token=c8dc1412-2a4b-4b34-9ff7-dd4c278de252" alt=""><figcaption><p>Team list command</p></figcaption></figure>

#### 🎖️Achievements System :

The **achievement system** is directly linked to the team system, as mentioned earlier. The **achievement menu** provides an overview of all available custom achievements. To improve visibility, players can filter achievements using three different criteria:

1. **World Filter** – Achievements can be tied to specific worlds, configurable within their settings.
2. **Day Filter** – Ideal for event-based servers (e.g., a "Cité" event), this filter limits the display of achievements to a specific day, configurable via a command. (You can create a cron task to automate it)
3. **Category Filter** – Each achievement belongs to a predefined category, allowing for easier sorting.

*(you can reset filter by shift + left mouse click on the filter)*

By default, achievements are **automatically organized**:

* **Incomplete achievements** appear first and are marked with a **red block**.
* **Completed achievements** are placed at the end and marked with a **green block**.

Each achievement is **fully configurable** through the `achievements.yml` file, and each one can grant a specific number of **points**.

Additionally, the plugin integrates with **Citizens** to support **NPC interactions**. You can assign a specific **NPC ID** so that when a player interacts with the NPC, a **special menu** appears, displaying all achievements categorized under `"NPC_INTERACTION"`. This enables interactive objectives, such as **"Deliver X blocks to an NPC."**

Pinning an Objective: You can Right-Click any achievement in the menu to "pin" it. This marks it as your current priority. This is ideal for players who want to focus on one specific task without constantly reopening the menu.

*(In the menu with the correct permission if you do a shift + left mouse click on a achievement you can get is id)*

<figure><img src="https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2F2yWICIulwvE6XgR3JywT%2FCapture%20d&#x27;%C3%A9cran%202025-03-01%20222526.png?alt=media&#x26;token=20c55788-0f16-4aac-b25f-9ea481ac26da" alt=""><figcaption><p>Achievements Menu</p></figcaption></figure>

<figure><img src="https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2Fer3UaEWu4q8MqUCvbcRM%2FCapture%20d&#x27;%C3%A9cran%202025-03-01%20222939.png?alt=media&#x26;token=c8bb66f1-427f-40a9-9321-58ec96242bcd" alt=""><figcaption><p>Custom Toast</p></figcaption></figure>

<figure><img src="https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2FU3iUizRzgE0AhKUllzQ7%2FCapture%20d&#x27;%C3%A9cran%202025-03-02%20001629.png?alt=media&#x26;token=7c11eb0c-3212-477b-9456-3744fce83c15" alt=""><figcaption><p>Citizen Integration (NPC_INTERACTION menu)</p></figcaption></figure>

You can also use custom textures with plugin like ItemsAdder or with a custom texture pack :![](https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2FHEibfSq5EZlxSRTjiGld%2FCapture%20d'%C3%A9cran%202025-03-20%20195147.png?alt=media\&token=3ecfcafe-899f-491a-9b6c-4547ded25e19)![](https://631026678-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCH7wOqOQsjMLeV2u5ZtB%2Fuploads%2FP5JwINlC07MRgSYmuwkp%2FCapture%20d'%C3%A9cran%202025-03-19%20175440.png?alt=media\&token=acef0bae-0bdd-4b1a-8b45-66c7c7d27b6b)
