Skip to content

About

An among us API for adding achievements.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

Achievements API

An Among Us API for registering mod achievements, tracking progress, and displaying in-game achievement menus and toast notifications.

License: GPL v3 .NET 6 Discord

Features

  • Property-based or runtime achievement registration
  • Progress counters with persistent state
  • Hidden achievements, rarity tiers, and Skeld Points
  • Achievement tags for filtering and searching (e.g. by role or modifier)
  • In-game menu with categories, filters, details, and toast settings
  • Animated toast notifications with sound and swipe-to-dismiss
  • Mouse, keyboard, and controller support
  • Encrypted, signed save data

Screenshots

Achievements menu with categories, progress bars, and Skeld Points
Achievement menu

Achievement progress toast
Progress notification
Toast settings page with preview
Toast settings and preview

Quick start

Reference AchievementsAPI from your mod and subclass AchievementsTab. Achievements are declared as properties and discovered automatically when your plugin loads:

using Reactor.Localization.Utilities;

[BepInAutoPlugin]
[BepInDependency(AchievementsAPIPlugin.Id)]
public class MyPlugin : BasePlugin
{
    public override void Load() { }
}

public class MyTab : AchievementsTab
{
    private static readonly StringNames TabName = CustomStringName.CreateAndRegister("My Mod");

    public override StringNames Name => TabName;
    public override string IconPath => "MyMod.Resources.Icon.png";

    public BaseAchievement FirstWin { get; set; } =
        new("First Win", "Win a game.", "MyMod.Resources.FirstWin.png", rarity: 1);

    public CountAchievement TenTasks { get; set; } =
        new("Busy Bee", "Complete 10 tasks.", "MyMod.Resources.Tasks.png", 0, 10);
}

Unlock with achievement.Unlock(); count achievements unlock on their own via Increment(amount) once the goal is reached. Keeping the API optional (soft dependency) uses a different pattern; both are covered in the docs.

Documentation

docs/ has the full developer documentation:

Build

The solution targets .NET 6: dotnet build AchievementsAPI.sln. CI runs build.cake and uploads AchievementsAPI.dll as an artifact; pushing a vX.Y.Z tag publishes a GitHub release (see docs/building.md).

Reactor vs VentFramework builds

The same source builds two flavors of the plugin, both named AchievementsAPI.dll with the same BepInEx plugin id — install only one:

  • Reactor (AchievementsAPI/AchievementsAPI.csproj, package CloneC.AchievementsAPI): the standard build; requires the Reactor mod.
  • VentFramework (AchievementsAPI.VF/AchievementsAPI.VF.csproj, package CloneC.AchievementsAPI.VentFramework): the same feature set against VentFramework (com.discussions.VentLib); no Reactor dependency.

Set -p:AmongUs= / -p:AmongUsVF= to copy the respective DLL into a game install on build. See docs/building.md.

Credits

  • satire (rewalo): UI and toast design/implementation, animations, and optimizations
  • atony: UI design and achievement-system improvements
  • pix: Additional help

Support

Join the Discord server for support and discussion.

Note

This mod is not affiliated with or endorsed by Innersloth LLC. Portions of the materials are property of Innersloth LLC. © Innersloth LLC.

About

An among us API for adding achievements.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages