Milestone
by Jelo
8
Milestone
Create and manage achievements through an in-engine editor and display them in your game!
Table of Contents
Note
This plugin is still in beta and may contain bugs or incomplete features. Please report any issues you encounter on the GitHub repository.
Features
- Easily create and manage achievements with an in-engine editor
- Customize the look, behavior, and visibility of each achievement
- Display achievements in-game using a simple API
- Track player progress, completion, and rare achievements
- Seamless integration into existing Godot projects
- Lightweight and optimized for performance
Installation
To install Milestone, follow these steps:
- Make sure you have Godot 4.4 or later installed (i didn't test older versions, but i'm using UIDs which weren't really used in 4.3).
- Download the latest release from the releases page.
- Extract the
addons
folder from the downloaded ZIP file into your root project directory. Should look like this:my_game/ ├── addons/ │ └── milestone/ │ ├── autoload/ │ ├── components/ │ ├── scripts/ │ └── ... ├── project.godot └── ...
- Open your Godot project and navigate to the
Project → Project Settings → Plugins
. - Enable the Milestone plugin by checking the box next to it.
- You will see a new
Milestone
tab at the top in the editor. Click on it to open the Milestone manager. Have fun!
Usage
- Open the Milestone manager by clicking on the
Milestone
tab in the editor. - Modify the plugin settings in the
Settings
tab to your liking. - Create and manage your achievements in the
Achievements
tab. - Create a new
AchievementNotifier
node in your scene to allow for displaying achievements in-game. - Modify
AchievementNotifier
properties to change the behavior of the notifications, their position and the notification component. - Use the
AchievementManager
API to track player progress and completion of achievements.
API
The AchievementManager
API provides a simple way to manage and track achievements in your game. You can use the following methods to interact with achievements:
Method | Description |
---|---|
AchievementManager.unlock_achievement(achievement_id: String) |
Unlocks the achievement with the given ID. |
AchievementManager.is_unlocked(achievement_id: String) |
Returns true if the achievement is unlocked. |
AchievementManager.progress_achievement(achievement_id: String, progress_amount: int) |
Progresses the achievement with the given ID using the specified progress amount. |
AchievementManager.get_progress(achievement_id: String) |
Returns the progress of the achievement. |
AchievementManager.reset_achievements() |
Resets all achievements. |
AchievementManager.reset_achievement(achievement_id: String) |
Resets the achievement with the given ID. |
AchievementManager.unlock_all_achievements() |
Unlocks all achievements. |
License
This project is licensed under the MIT License.
Download
Version1.0.0.beta
Download Now
Support
If you need help or have questions about this plugin, please contact the author.
Contact Author