Milestone

by Jelo

8

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:

  1. 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).
  2. Download the latest release from the releases page.
  3. 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
    └── ...
    
  4. Open your Godot project and navigate to the Project → Project Settings → Plugins.
  5. Enable the Milestone plugin by checking the box next to it.
  6. You will see a new Milestone tab at the top in the editor. Click on it to open the Milestone manager. Have fun!

Usage

  1. Open the Milestone manager by clicking on the Milestone tab in the editor.
  2. Modify the plugin settings in the Settings tab to your liking.
  3. Create and manage your achievements in the Achievements tab.
  4. Create a new AchievementNotifier node in your scene to allow for displaying achievements in-game.
  5. Modify AchievementNotifier properties to change the behavior of the notifications, their position and the notification component.
  6. 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.

Version

1.0.0.beta

Engine

4.4

Category

Tools

Download

Version1.0.0.beta
Download

Support

If you need help or have questions about this plugin, please contact the author.

Contact Author