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.