Sueta

Premium Advancements | Custom Achievements

v3.2.1

Create unlimited custom advancements/achievements with a clean editor or GUI. Vault • +45 Triggers • MySQL • MiniMessage & Hex colors • Webhooks • 1.21+ Support

·Plugin
  1. v3.2.1latestPremium Advancements | Custom Achievements v3.2.13 weeks ago
    Fixed {description} placeholder in messages.
    133 downloads
  2. v3.2Premium Advancements | Custom Achievements v3.23 weeks ago

    Changelog

    v3.2

    Features
    !!! Updated Support to 26.3! From on now please use MINIMUM UltimateAdvancementAPI 3.0.0-beta-4 !!! - MythicMobs filter for the KILL trigger - Restrict a KILL advancement to a specific MythicMobs mob, faction, and/or level range. MythicMobs is a soft dependency (optional). - Set the mob's internal name via the in-game GUI (slot 20 of the KILL editor) or the web editor (v3.2+ gated), or directly in YAML (mythicMob, mythicFaction, mythicMinLevel, mythicMaxLevel). - Mob names and factions are matched case-insensitively; the GUI validates the mob ID against the installed MythicMobs before saving. - Kill detection uses MythicMobDeathEvent combined with the standard Bukkit LivingEntity#getKiller() tracking, so the killer is resolved reliably even though MythicMobs' own getKiller() is not populated at death time. - If MythicMobs is missing, filtered advancements are disabled with a console warning and an in-game admin notification , mirroring the existing WorldGuard REGION_ENTER behaviour. - UltimateAdvancementAPI 3.0.0-beta-4 - Upgraded the hard dependency from 3.0.0-beta-3 to 3.0.0-beta-4 (API-compatible and backward-compatible with beta-3). - Hide custom tabs from the vanilla advancements GUI - New hide-tabs-from-vanilla-gui config option. When enabled, PremiumAdvancements custom tabs are not shown in the vanilla advancements screen (the L key), while all advancement functionality (progression, rewards, placeholders, webhooks, /padv commands) keeps working. Useful for using the plugin purely as an advancement backend and building a custom GUI with plugins like CommandPanels. - Silent advancement grant - /padv give <player> <advancement> --silent (also -s, --NoMessages, --NoFeedback) now grants without sending the "You have been granted..." notification or the admin success message. - Minecraft 26.3 support - Added Paper/Spigot/Purpur 26.3 to the CI compatibility matrix. - Web editor icon library expansion - Added ~150 new icons to the icon picker: all wood types (and their stripped variants), copper doors/bars/chains/lanterns/golem-statue with their oxidation and waxed variants, cut copper stairs & slabs, all 23 pottery sherds, leather/iron/golden/diamond horse armor, 10 banner patterns, 19 smithing templates (armor trims + upgrade), 16 colored bundles, 16 colored ghast harnesses, and misc items (spawner, breeze rod, stick). The icon downloader (scripts/download_icons.py) now resolves the correct inventory item textures. - Searchable connection target dropdown - The "Connection Target" field in the web editor is now a single searchable combobox: type directly in the field to filter the advancement list inline, with the first match auto-highlighted , no more scrolling through a long list. - Enchanted icon glint - New "Enchanted Glint" toggle (web editor, and iconEnchanted: true in YAML) that renders the advancement icon with an enchantment glint in the vanilla advancements GUI.
    Fixes
    - Placeholder condition missing from the create GUI - The placeholder condition slot (slot 35, the "redstone powder") now appears in the create GUI, not just in the edit GUI of existing advancements. - `REGION_ENTER` trigger not firing - The region check now uses the player's destination block (PlayerMoveEvent#getTo()) instead of a possibly-stale player.getLocation(), and the region handler no longer silently swallows WorldGuard errors (it logs them). Added diagnostic logging. - `DisposedException` spam / memory pressure on reload - Replaced per-unit incrementProgression() loops with a single batched incrementProgression(player, N) call when restoring progression. A `requiredAmount: 350000` advancement previously queued 350,000 async UAA progression updates per player on load/complete - if a /padv reload happened during the flush, that burst into thousands of AdvancementTab is disposed warnings and allocated large amounts of memory. Each path now sends one update instead of N: - PlayerDataListener.onPlayerLoadCompleted - completed/in-progress restoration uses a single call. - TriggerService.completeAdvancement / completeAdvancementForced - "catch-up to max" uses a single call. - TriggerService.recheckDependents - dependent progression sync uses a single call. ---
    42 downloads
  3. v3.1Premium Advancements | Custom Achievements v3.1Sep 10, 2026

    Changelog

    v3.1

    Features
    - COMMAND trigger - Fires when a player executes a specific command (e.g. /sethome, /home, /spawn). Configure one or more command names via the in-game GUI, the web editor, or directly in YAML (command: sethome). - Matching is case-insensitive and ignores the leading slash. A filter matches the exact command name, the full command, or a command with arguments (sethome also matches /sethome home1). Use sethome home1 to match only that specific argument. - Leave the filter empty to match any command (useful for "run X commands" counters, controlled via amount). - Fully integrated with the existing filter/reward/broadcast/webhook/progression systems. ---
    210 downloads
  4. v3.0Premium Advancements | Custom Achievements v3.0Aug 14, 2026

    Changelog

    v3.0

    Compatibility
    - Minecraft 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.5, 1.20.6 support - The plugin now loads and runs on Paper/Spigot/Purpur 1.20.4+ in addition to 1.21.x and 26.x: - `plugin.yml` - api-version lowered from 1.21 to 1.20, which unblocks loading on 1.20.x servers (Paper previously rejected the plugin at startup with Unsupported API version 1.21 while keeping all modern API behavior on newer servers). - `pom.xml` - the plugin is now compiled against paper-api 1.20.4-R0.1-SNAPSHOT (the lowest supported version), so any API usage missing on 1.20.4 becomes a compile error instead of a runtime NoSuchMethodError/NoSuchFieldError on older servers. All Paper-specific code (AdvancementDisplay, PlayerTradeEvent) already existed in 1.20.4 and remains guarded by runtime checks on plain Spigot. - `AdvancementTriggerListener` - Material.OMINOUS_BOTTLE (added in 1.20.5) was referenced directly in the static DRINKABLE_ITEMS initializer, crashing startup on 1.20.4 with NoSuchFieldError. The set is now built at runtime via Material.getMaterial("OMINOUS_BOTTLE"), so it is silently skipped on versions where it doesn't exist. - Java 17 bytecode - the plugin is now compiled with --release 17, so it also loads on Java 17 servers (the standard runtime for MC 1.20 - 1.20.4). MC 1.20.5+ still runs on Java 21+. - CI - the compat matrix now covers 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.5 and 1.20.6 across Paper/Spigot/Purpur (Java 17 image for 1.20 - 1.20.2, Java 21 for 1.20.4+), in addition to the existing 1.21.x and 26.x combinations.
    Fixes
    - Plugin failing to load on Minecraft 1.21 - Fixed a NoSuchFieldError crash at startup on 1.21 servers: Material.PALE_OAK_LOG and other Pale Garden materials (added in 1.21.4) were referenced directly in static field initializers, which threw `java.lang.NoSuchFieldError: Class org.bukkit.Material does not have member field 'org.bukkit.Material PALE_OAK_LOG'` and prevented the plugin from enabling entirely. - `AdvancementTriggerListener` - the LOG_BLOCKS set (used by CHOP_TREE and the GUI validation) is now built at runtime via Material.getMaterial(name), so materials that don't exist on the running server are silently skipped instead of crashing the class initializer. - `AdvancementManager` - the same runtime resolution was applied to the block types auto-assigned to CHOP_TREE advancements when loading YAML files. - Result: the plugin now loads on 1.21, 1.21.4, 26.1 and 26.2 (Pale Oak simply doesn't count toward CHOP_TREE on versions where it doesn't exist). - Duplicate advancement grants (rewards given multiple times) - Fixed a critical bug where a player could receive the same advancement (and its rewards) repeatedly. Root cause: the 30-second PLACEHOLDER scheduler task ("Task #86") called isGranted() without a try/catch. When UltimateAdvancementAPI hadn't finished loading the player yet (asynchronous user loading, aggravated during the UAA 2.8 → 3.0.0-beta-3 migration), it threw a UserNotLoadedException that crashed the whole task and left the advancement looking "not granted". On subsequent cycles, forceComplete() re-granted and re-distributed rewards in a loop because it had no idempotency guard. - Scheduler (`PremiumAdvancements`) - isGranted() is now wrapped in a try/catch that skips the player's check silently when UserNotLoadedException (or any API error) is thrown, instead of crashing the task or treating the advancement as unearned. - `TriggerService.completeAdvancementForced` - added an idempotency guard (alreadyCompleted check + a database hasAdvancement re-check) before granting. Rewards are no longer given when the grant throws an exception; the player is skipped and a later cycle can retry once the user is loaded. - `TriggerService.completeAdvancement` - same defensive guards applied to the normal grant path, with UserNotLoadedException handled silently (no blocking error log, no reward). ---
    326 downloads
  5. v2.9Premium Advancements | Custom Achievements v2.9Aug 3, 2026

    Changelog

    v2.9

    Fixes
    - Main-thread SQLite blocking during player quit - onPlaytimeQuit, onPlaytimeJoin, and login streak processing now run database operations asynchronously. This eliminates 15-40 second watchdog timeouts when SQLite write contention occurs on the main thread. - savePlaytimeFor() - now wraps setPlayerData() in runTaskAsynchronously - processStreak() - entire body runs async, UAA API calls dispatched to main thread via runTask - incrementStreakSync() / resetStreakSync() - DB writes async, in-memory cache updates stay fast - Removed `Thread.sleep(50)` in `PlayerDataListener.onPlayerQuit()` - the 50ms main-thread block is eliminated; progress sync now uses runTaskAsynchronously - Text support in placeholder conditions - checkPlaceholderCondition() now supports string comparisons (==, !=, contains) when the placeholder returns text instead of a number. Enables filtering triggers by day name (%localtime_time_E% == Fri), player name, biome, etc. - Spigot compatibility for vanilla advancement display - Fixed ClassCastException on Spigot when reading vanilla advancement display data. Uses instanceof check with fallback to Bukkit API (getTitle(), getDescription(), getType()) when Paper API is unavailable. Affects vanilla webhooks and vanilla advancement loading in the editor.
    Fixes - Web Editor
    - Advancement disappearing after ID rename - Fixed _initTabIds() stale cache issue. After renaming an advancement ID (e.g. new_advancement → test), the non-reactive _idSets was never re-synced, causing subsequent operations to overwrite tab.advancementIds and drop renamed advancements from the sidebar. - ID rename silently corrupting on duplicate - Renaming to an ID that already exists in another tab now shows a toast ID "x" already exists in tab "y" and safely reverts the ID instead of silently corrupting the advancement object. - ID rename watch triggering on tab switches - The rename watcher no longer fires when switching tabs or creating new advancements, preventing false "ID already exists" toasts. - Toast disappearing too fast - Fixed timer collision where a new toast inherited the remaining timeout of a previous toast, causing it to vanish almost instantly. - Toast stacking - Multiple toasts now stack on top of each other with slide/fade transitions instead of replacing each other.
    112 downloads
  6. v2.8Premium Advancements | Custom Achievements v2.8Jul 30, 2026
    WARNING FROM ON NOW YOU NEED [v3.0.0-beta-3](https://modrinth.com/plugin/ultimateadvancementapi/versio… ) MINIMUM of UltimateAdvancementAPI for PremiumAdvancement V2.8+ to work.

    Changelog

    v2.8

    Features
    - UltimateAdvancementAPI 3.0.0-beta-3 migration - Full migration from UAA 2.8 to 3.0.0-beta-3. - createAdvancementTab(namespace, background) - background texture now passed directly (removed from RootAdvancement) - AdvancementDisplayBuilder - replaces the deprecated v2.8 constructor - BaseAdvancement parameter order changed to (parent, key, maxProgression, display) - registerAdvancements(root, Set<BaseAdvancement>) - replaces varargs overload for 6+ advancements - All runtime reflection fallback code removed (no more NamespacedKey workaround)
    Fixes
    - `/padv give` error on UAA 3.0 - Fixed adv.getApiAdvancement() == null causing "this advancement is not initialized" message. The root cause was UAA 3.0 changing createAdvancementTab(String) to createAdvancementTab(NamespacedKey), causing silent tab creation failure. - Empty reward messages - Reward confirmation messages (money-received, commands-received) no longer send empty lines to chat when left blank in the language file. - `/padv take <tab:adv>` not persisting - Fixed prefix mismatch: when using tab-qualified IDs (e.g. new_tab:new_advancement), the DB revoke was using the raw input "new_tab:new_advancement" instead of the internal ID "new_advancement". Also added a player-load safety check that auto-corrects any stale UAA grants. ---
    23 downloads
  7. v2.7.2Premium Advancements | Custom Achievements v2.7.2Jul 28, 2026

    Changelog

    v2.7.2

    Features
    - Vanilla broadcast namespace filtering - New vanilla-advancements.namespaces config section. When enabled, only advancements from allowed namespaces (default: minecraft:) receive the custom broadcast. This excludes datapack advancements from being broadcast. Per-advancement overrides in vanilla-messages.yml always take priority regardless of namespace filtering.
    43 downloads
  8. v2.7.1Premium Advancements | Custom Achievements v2.7.1Jul 27, 2026

    Changelog

    v2.7.1

    Bug Fixes
    - Broadcast not visible to completing player - Fixed an issue where the custom vanilla advancement broadcast was not shown to the player who completed the advancement (others saw it fine). Now uses per-player sendMessage() for all players including the completer, and suppresses the vanilla message via event.message(null) to avoid duplicates. - Chat plugin compatibility - Replaced Bukkit.broadcast() with per-player Player.sendMessage() in all broadcast paths to bypass chat formatting plugins (ChitChat, DeluxeChat, etc.) that intercept broadcast messages. ---
    10 downloads
  9. v2.7Premium Advancements | Custom Achievements v2.7Jul 27, 2026

    Changelog

    v2.7

    Bug Fixes
    - ProGuard obfuscation breaking Paper API & Adventure - Added -keep rules for io.papermc.paper.**, net.kyori.adventure.**, and net.kyori.examination.** in the ProGuard config. Without these, the obfuscator would rename Paper and Adventure classes at runtime, breaking vanilla advancement webhooks, AdvancementDisplay title/description retrieval, and Bukkit.broadcast(Component) calls. - Spigot compatibility - The plugin no longer crashes on startup or during runtime on Spigot servers: - PlayerAdvancementDoneEvent webhook listener registered only if the event class exists (Paper-only) - PlayerTradeEvent TRADE trigger moved to PaperCompatibility listener (registered only on Paper) - Adventure API bundled directly in the JAR (unshaded) for Spigot servers that lack it - sendActionBar(String) and Bukkit.broadcast(Component) wrapped with fallbacks for Spigot - `vanillaAdv.getDisplay()` null safety - Added individual null checks and try-catch for display.title() and display.description() to handle edge cases where Paper API returns null Components.
    15 downloads
  10. v2.6Premium Advancements | Custom Achievements v2.6Jul 27, 2026

    Changelog

    v2.6

    Features
    - Global vanilla advancement broadcast - New vanilla-advancements section in config.yml: - enabled: Global toggle for the default broadcast message (per-advancement overrides in vanilla-messages.yml still work independently via /padv gui) - message: Default broadcast format for all vanilla advancements, supports all color formats (&#RRGGBB, <gradient>, & codes, MiniMessage), PlaceholderAPI (%hexnicks_nick_mm% etc.), and %player%/%advancement%/%description% placeholders - Namespace-based webhook filtering — New webhook.namespaces section in config.yml: - enabled: Toggle namespace filtering (default: true) - allowed: List of namespace prefixes allowed to send Discord webhooks (default: ["minecraft:"]) - When enabled, only advancements belonging to allowed namespaces send webhooks - Works for both custom advancements (via tab namespace) and vanilla advancements (minecraft: prefix) - When disabled, all advancements can send webhooks (v2.5 behavior) - Placeholder condition for any trigger — The existing placeholder/placeholderOperator/placeholderValue fields now work as an optional condition on any trigger type (not just PLACEHOLDER). When set, the advancement only progresses if the PlaceholderAPI placeholder meets the condition. Example: trigger: BREAK_BLOCK + placeholder: %player_y% + placeholderOperator: <= + placeholderValue: 100 restricts the advancement to below Y=100. Configured via web editor (v2.6+ gated) or directly in YML.
    Bug Fixes
    - `UserNotLoadedException` crash on `/padv reload` - Fixed a major race condition where UAA ( UltimateAdvancementAPI) would throw UserNotLoadedException when the plugin tried to interact with players too soon after a reload. Added three layers of protection: - UAA pending guard: Players are tracked in a pending set on join/reload; onPlayerMove silently skips them until UAA finishes loading - Safety timeout: Pending entries auto-expire after 15 seconds to prevent players from getting stuck - Tab show retry: showTab() retries up to 5 times with exponential backoff (10 → 20 → 40 → 80 → 160 ticks) if UAA hasn't loaded the player yet - `UserNotLoadedException` crash on `PlayerMoveEvent` - All UAA API calls inside onPlayerMove (isGranted, getProgression, incrementProgression) are now fully protected, eliminating spammy stack traces after join or reload - `NoClassDefFoundError` when WorldGuard not installed - Fixed REGION_ENTER trigger crashing with NoClassDefFoundError: com/sk89q/worldguard/WorldGuard on servers without WorldGuard. Added plugin presence guard at method entry and changed catch (Exception) to catch (Throwable) since NoClassDefFoundError extends Error, not Exception - ConfigUpdater duplicated `vanilla-tab-order` keys — Fixed a bug where vanilla- prefixed tab order keys (vanilla_story, vanilla_nether) were incorrectly added alongside the correct keys during config updates. The updater now skips vanilla-tab-order (user data, not config schema) and migrates any existing corrupted keys to their correct names. - Webhook avatar missing for custom advancements — Fixed author.icon_url / thumbnail.url in webhook.yml not falling back to the default player avatar when PlaceholderAPI replacements leave unresolved placeholders (e.g., %skinsrestorer_texture_id_or_steve%). Now auto-fills with player head if the resolved URL still contains %. ---
    13 downloads
  11. v2.5Premium Advancements | Custom Achievements v2.5Jul 25, 2026

    Changelog

    v2.5

    Features
    - LISTEN_MUSIC trigger - Fires when a player inserts a music disc into a jukebox. Supports filtering by specific music disc via the existing item/material system. - PLAYTIME trigger - Cumulative play time in minutes across all sessions. Checked every 30 seconds. Uses amount. - LOGIN_STREAK trigger - Consecutive daily logins. Streak resets to 0 if a day is missed. Uses amount. - BIOME_ENTER trigger - Enter a specific biome (e.g., MUSHROOM_FIELDS, BADLANDS). Filter by biome name via entity filter. - VANILLA_ADVANCEMENT trigger - Chain custom advancements on vanilla advancement completion. Filter by exact advancement key (e.g., minecraft:story/mine_diamond). - REGION_ENTER trigger - Enter a WorldGuard region (requires WorldGuard on the server). Filter by region name. - Trigger list condensed - In-game GUI now shows first 17 triggers with "and X more triggers" count; current trigger moved to bottom. - 53 total triggers - Up from 48, covering the most requested trigger types.
    Fixes
    - PlaceholderAPI support in webhooks - Custom and vanilla advancement webhooks now resolve PlaceholderAPI placeholders (e.g., nicknames from nick plugins, prefixes from LuckPerms) via PlaceholderAPI.setPlaceholders() - Vanilla broadcast preview colors - Chat preview after setting a vanilla broadcast message now renders all color formats (&#RRGGBB, <rainbow>, <gradient>, & codes) instead of showing raw codes - GUI lore colors - "Current broadcast" in the vanilla advancements GUI now displays formatted colors via AdvancementManager.translateAll() - Vanilla GUI navigation - Added Back button (slot 49) to return to tab selector; empty navigation slots now filled with glass panes - ConfigUpdater language files - Language files are now always replaced on version bump (with backup) to apply value changes like new triggers in trigger-types ---
    37 downloads
  12. v2.4Premium Advancements | Custom Achievements v2.4Jul 20, 2026

    Changelog

    v2.4

    Features
    #### Custom Broadcast Messages for Vanilla Advancements You can now replace the default vanilla Minecraft advancement chat messages with fully customized broadcasts: - New GUI (VanillaAdvancementsGUI): When viewing a vanilla tab in /padv gui, left-click any vanilla advancement to set a custom broadcast message via chat input - Per-advancement messages: Each vanilla advancement can have its own unique broadcast format, stored in vanilla-messages.yml - Full formatting support: &#RRGGBB hex colors, <gradient>, <rainbow>, <color:#XXXXXX>, &# codes, and all standard & color codes - PlaceholderAPI support in custom messages - Hover tooltip: %advancement% automatically shows the advancement description as a hover tooltip in chat (gray text on hover) - Placeholders: %player%, %advancement% (with hover), %description% - Right-click reset: Right-click a vanilla advancement in the GUI to remove its custom message and revert to default - Web editor integration: Tab order for vanilla tabs synced between editor and in-game GUI
    Fixes
    - Fixed vanilla tab order keys being written with vanilla_ prefix instead of proper key names in vanilla-tab-order - Fixed vanilla-messages.yml merge/persist to load existing file before saving (prevents data loss) - Fixed hover tooltip on %advancement% being lost when color formatting is applied
    37 downloads
  13. v2.3Premium Advancements | Custom Achievements v2.3Jul 19, 2026

    Changelog

    v2.3

    Features
    #### Vanilla Advancement Discord Webhooks The plugin now supports sending Discord webhooks for vanilla Minecraft advancement completions (e.g. "Stone Age", " Diamonds!"): - New webhook.vanilla.enabled option in config.yml (default: false) - When enabled, the plugin listens for PlayerAdvancementDoneEvent and sends a webhook for every vanilla advancement a player completes - Uses the same webhook URL and formatting from webhook.yml - Toggle available in the web editor's Editor Settings modal (gear icon) - v2.3+ only - Toggling via the editor and running /padv apply will update config.yml automatically #### NETHER_ROOF Trigger - Reach the Nether Roof New trigger type that fires when a player reaches the bedrock roof of the Nether (Y=128+): - First-time detection: only triggers once per server session - Available as a selectable trigger in the web editor dropdown (Movement category) - Integrates fully with all existing filter/reward/broadcast systems
    Changes
    - WebhookManager now implements Listener to handle vanilla advancement events
    Fixes
    - Reward duplication glitch - Fixed a race condition where rewards/commands could be granted multiple times for a single advancement completion when the async database save hadn't completed before the next trigger fired. Added a pendingDbSave tracking set to distinguish "save in progress" from "external reset"
    19 downloads
  14. v2.2Premium Advancements | Custom Achievements v2.2Jul 14, 2026

    Changelog

    v2.2

    Features
    #### DEATH Trigger - Expanded Death Causes & Entity Types The DEATH trigger now supports 15 built-in death causes and custom entity type matching: - New causes: DROWNING, VOID, EXPLOSION, STARVATION, POISON, WITHER, LIGHTNING, SUFFOCATION, MAGIC, FIRE - EXPLOSION matches both ENTITY_EXPLOSION (creeper) and BLOCK_EXPLOSION (TNT) - Set deathCause to any entity type (e.g. ZOMBIE, ENDERMAN, CREEPER) for mob-specific deaths - In-game GUI: left-click cycles through all built-in causes, right-click opens chat input for custom entity/DamageCause - Web editor: "Custom..." option in Death Cause dropdown (v2.2+ only) with text input field #### Broadcast Tooltip (Hover) When a custom broadcast message is configured, %advancement% now automatically shows the advancement description as a hover tooltip (same as vanilla [Title] behavior). If the template already wraps %advancement% in a <hover:> tag, the auto-hover is skipped and the user's custom hover is respected. MiniMessage <hover:show_text:'...'> and <click:open_url/run_command/suggest_command:'...'> tags are now fully parsed via Adventure's native MiniMessage engine, so hover/click works in custom broadcasts alongside colors, gradients, and formatting.
    Fixes
    - RAID_WIN triggered for all players - now only triggers for players in raid.getHeroes() (actual raid participants) - Duplicate broadcast message - when a custom broadcast is configured, the API's built-in chat announcement is now suppressed (was causing double messages) - `&e` color code leak in broadcast - MiniMessage titles with unclosed <rainbow> tags no longer capture trailing &e from the broadcast template - Reload crash after duplicate advancement IDs - unregisterUI() now properly cleans up partially-initialized tabs, preventing permanent AdvancementTab is already initialised state - Cross-tab connections - advancements referencing a target in a different tab now fall back to root with a clear warning, preventing AdvancementTab is already initialised crash on reload - Web editor broadcast preview - <hover:> and <click:> tags are now stripped from the preview (rendered in-game only), so they don't appear as raw text
    54 downloads
  15. v2.1Premium Advancements | Custom Achievements v2.1Jun 30, 2026

    Changelog

    v2.1

    🎯 Major Features
    #### 🎨 MiniMessage & Hex Color Support (Editor + In-Game) All color formats now work everywhere - web editor preview AND in-game rendering (L menu, GUIs, broadcasts, commands). In-game rendering supports: - Legacy `&` codes - &0-&f, &l/&o/&n/&m/&k/&r (unchanged, always worked) - Hex `&#RRGGBB` - Per-character hex colors rendered with proper §x§R§R§G§G§B§B Bukkit format - MiniMessage named colors - <red>, <blue>, <light_purple>, <gold>, etc. → § codes - MiniMessage formatting - <bold> → §l, <italic> → §o, <underlined> → §n, <strikethrough> → §m, <obfuscated> → §k, <reset> → §r - Gradients - <gradient:gold:yellow>text</gradient> - true per-character color interpolation (visible in L menu). Works with or without closing tag - Rainbow - <rainbow>text</rainbow> - per-character HSL hue cycling. Works with or without closing tag - `<color:#RRGGBB>` and `<color:name>` - Full support for both hex and named MiniMessage color tags Web editor preview: - Color/Format Picker - 🖌️ button next to Title and Description fields with 16 color swatches + 6 format buttons ( B/I/U/S/O/R), inserts & codes at cursor position - Live preview - mcPreview() renders all formats (MiniMessage, hex, gradients, rainbows, & codes) in editor tabs, sidebar, tree view, tooltips - Version-gated - Picker/preview only shown on v2.1+; older versions show plain text - `expandHex()` - Short hex #rgb auto-expands to #rrggbb for correct gradient interpolation - Discord-safe - Webhook embeds strip ALL color codes before sending to prevent raw markup in Discord #### 📑 Tab Order (In-Game GUI Sorting) Tabs in the advancement GUI (L key) are now sorted by configurable tabOrder: - Each tab has a numeric order value (default 999) - Vanilla tabs sorted via config.yml → vanilla-tab-order section (story: 1, nether: 2, end: 3, adventure: 4, husbandry: 5) - Changes survive plugin reload; persists from editor save to config #### 🖼️ Tab Root Icon Custom Model Data Tab settings now support rootIconCustomModelData for resource pack item variants on the tab root icon.
    ✨ Changes
    - Inline command editing - Click a reward command in the editor to edit it directly, instead of deleting and re-adding - Icon browser - Browse and select icons for tab root icon directly from the editor Tab Settings modal - Color hints - Title and description fields now show available color format hints - Color picker popover - Closes on outside click, follows Minecraft button styling - Broadcast color preview - Broadcast message field now has live mcPreview() rendering and a 🖌️ color picker with full swatches + format buttons - Version detection - Editor correctly gates color picker and v2.1 fields via isV21Plus check on editorVersion
    🐛 Fixes
    - CRITICAL: Duplicating an advancement corrupted tab.advancementIds - fixed _syncIds() dedup and removed deep: true from tabs watcher - CRITICAL: Action bar / Toast / Announce toggles not persisting after reload - fixed parseSingleAdvEntry fallback chain - CRITICAL: Empty editor after ID change - removed stale map[oldId].id === oldId guard - CRITICAL: mcPreview() gradient rendering broken - lerpColor() now correctly expands 3-digit hex (#rgb → #rrggbb) via expandHex(), applied in parseColor() and all hex paths - CRITICAL: mcPreview() count stack corruption - close handler now only pops gradient/rainbow when the closing tag name matches - Discord webhook - Title and description now stripped of all color codes (&, &#RRGGBB, MiniMessage tags, §) before sending, preventing raw markup in Discord embed - Firefox modal bottom overflow - max-height now uses min(85vh, 100dvh - 40px) for dynamic viewport - Various z-index and modal layout fixes
    💥 Breaking Changes
    - None - fully backward compatible with v2.0 data
    73 downloads
  16. v2.0Premium Advancements | Custom Achievements v2.0Jun 25, 2026

    Changelog

    v2.0

    🎯 Major Features
    #### 📑 Multi-Tabs Support Advancements are now organized into multiple tabs, each as a separate .yml file in the Advancements/ folder. - Tab System - Each file in Advancements/ creates one tab in the Minecraft advancement menu (L key) - Tab Selector GUI - /padv gui now shows a tab selection screen when multiple tabs exist. Click a tab to view/edit its advancements - Per-Tab Configuration - Each file has its own tab.namespace, root.icon, root.title, root.description, and root.background - Global IDs - Advancement IDs are unique across all tabs. Commands like /padv give, /padv take, /padv list work globally - Tab Placeholders - New placeholders: %premiumadvancements_tab_completed_<ns>%, _tab_total_<ns>%, _tab_percent_<ns>% #### 🔄 Auto-Migration (v1.70 → v2.0) On first startup, if advancements.yml and/or adv-gui.yml are detected at the root: - Backup - Old files are copied to backups/migration_YYYY-MM-DD_HH-mm-ss/ - Merge - A single Advancements/default.yml is created combining adv-gui.yml (tab config) + advancements.yml (advancements) - Rename - Old files are renamed to .migrated (never deleted) - Notification - Admins receive an in-game message with the backup path #### 🌐 Web Editor - Multi-Tab Support The web editor now fully supports multiple tabs: - Tab Selector - Dropdown at the top of the sidebar to switch between tabs - Tab CRUD - Create, rename, configure, and delete tabs directly from the editor - Tab Settings - Configure namespace, title, description, root icon, and background per tab - Move Between Tabs - In the Advanced tab of each advancement, a "Tab" dropdown lets you move advancements between tabs - Version Gating - Multi-tab features are only visible for v2.0+ data (old v1.70 data shows a single-tab editor) - JSON Format - New {tabs: {namespace: {tab: {...}, advancements: {...}}}} format for upload/download
    ✨ Changes
    - /padv tabs - New command listing all tabs with namespace + advancement count - /padv wiki - New command opening the plugin wiki link - /padv info <id> - Now shows which tab the advancement belongs to - /padv reload - Now properly reloads all tabs (unregisters and re-registers all) - /padv apply - Reload completes in 1 tick instead of 20 ticks (near-instant UI update) - /padv gui - Opens the TabSelectorGUI first when multiple tabs exist - GUI: "← Back to Tabs" and "≡ Tabs" buttons in the advancement list - Advancements/ folder auto-created with a default.yml resource file if empty - config.yml editor section validation no longer checks for adv-gui.yml/advancements.yml - 45 trigger types - Added MANUAL (command-only) and PLACEHOLDER (PAPI-based) triggers - 14+ placeholders - Added per-tab placeholders (tab_completed, tab_total, tab_percent) - Web editor - Custom Minecraft-themed dropdowns and scrollbars now properly applied - Web editor - Trust code modal shown on first visit for browser authorization - Web editor - Advancement ID changes now properly update the map key in real-time - Language files - Added gui.back-to-tabs, help.commands.tabs, help.commands.wiki, PLACEHOLDER input prompts #### 🧩 Vanilla Advancement Integration Minecraft's built-in advancements (Story, Adventure, Nether, End, Husbandry) are now loaded read-only: - Auto-loaded - All 125+ vanilla advancements loaded from Bukkit on startup - Read-only - Displayed in the web editor but cannot be edited or deleted - Proper display - Icons, titles, descriptions, and tree positions extracted via Paper API - Hidden toggle - Editor settings gear (⚙ in toolbar) lets you show/hide vanilla tabs in the dropdown - Connection lines - Vanilla parent-child tree structure preserved in the editor tree view - Hidden advancements - Properly filtered with the eye toggle in tree view - No file persistence - Vanilla tabs are never saved to .yml files, always reloaded from Bukkit #### 🖥️ Web Editor - Quality of Life - Editor settings modal - ⚙ gear button in toolbar opens settings with vanilla tabs ON/OFF toggle - Cache busting - Nginx ETag + no-cache headers so editor updates take effect without Ctrl+F5 - __version__ persistence - Editor version preserved in saved data so multi-tab mode survives Save → reload - Tab row layout - Improved button sizing and alignment in tab selector (⚙, +, vanilla toggle) - Lock icon - Vanilla advancements show a read-only lock indicator
    🐛 Fixes
    - CRITICAL: AdvancementTab is already initialised error on reload - now reuses existing RootAdvancement - CRITICAL: /padv gui tab-filtered GUI not responding to clicks - fixed title collision with unfiltered GUI - CRITICAL: /padv apply deleting default.yml - file cleanup now checks YAML namespace, not just filename - CRITICAL: /padv apply failing with DuplicatedException - initSingleTab now catches all exceptions and falls back to getAdvancementTab() - CRITICAL: /padv apply creating vanilla .yml files on each apply - vanilla tabs are now properly flagged and excluded from file saves - CRITICAL: Web editor sidebar showed wrong trigger display - fixed Vue rendering with proper :key bindings - CRITICAL: Web editor advancement ID renames corrupted the map - now properly updates keys and tab lists - CRITICAL: Web editor applyCustomDropdowns and applyCustomScrollbar were never called - added lifecycle hooks - File Name - saveTabToFile() removes old files with matching YAML namespace but different filename (e.g. default.yml → premium_advancements.yml) - Version now correctly shows 2.0 in plugin.yml and PlaceholderAPI expansion - gui.back-to-tabs added to en.yml and fr.yml language files - Missing help.commands.tabs added to both language files - ConfigUpdater: Fixed duplicated comments in config.yml (replaced broken comment re-insertion with backup+merge strategy) - ConfigUpdater: No longer creates adv-gui.yml on fresh installs (prevented unnecessary migration trigger) - Fresh installs: Advancements/default.yml now included as a JAR resource with 41 sample advancements - Vanilla advancement icons now properly display (GRASS_BLOCK fallback replaced with actual Minecraft item icons) - Vanilla advancement tree positions now correctly extracted via NMS reflection
    💥 Breaking Changes
    - File Structure - Advancements are now in Advancements/*.yml instead of advancements.yml + adv-gui.yml - Migration - Automatic on first startup. Old files renamed to .migrated. Manual rollback possible from backups/ - Paper 1.21.4+ - Plugin now requires Paper 1.21.4+ for the AdvancementDisplay API used in vanilla advancement extraction
    50 downloads
  17. v1.70Premium Advancements | Custom Achievements v1.70Jun 20, 2026

    Changelog

    v1.70

    🎯 Major Features
    #### 🌐 Web Editor (Browser-Based GUI) Run /padv editor to get a link to the full-featured browser editor - no local server needed, works via REST API. - Live Tree View - Visual advancement hierarchy with real-time positioning, connection lines between nodes, zoom/pan - Drag & Drop Positioning - Toggle Move Mode (✥ button), click an advancement to pick it up, move the mouse to position it in real-time, click again to drop. ESC cancels and reverts to original position - Undo / Redo - Ctrl+Z / Ctrl+Y or top-right buttons. Works for both drags and keyboard nudges - Arrow Key Nudge - Fine-tune positions with arrow keys (0.5 step, Shift for 1.0) - Full Creation & Edit Wizard - Same 5-tab interface (Basic, Trigger, Display, Rewards, Advanced) with dropdowns, tag inputs, icon browser, toggle switches - Search & Filter - Filter advancements by name/ID in the sidebar - Import / Export JSON - Save and load full advancement presets - Responsive Layout - Works on mobile/tablet - SVG Controls - All buttons now use centered SVG icons (zoom, reset, eye, move) #### 🔔 Discord Webhook Integration Send customizable Discord embeds when players complete advancements. - Per-advancement toggle in the edit GUI (slot 25) and YAML config - Customizable embed: title, description, color, thumbnail, footer - %player% and %advancement% placeholders in title/description - Global webhook URL in webhook.yml - Works alongside all existing reward types
    ✨ Changes
    - /padv editor - Opens the web editor (generates trust token on first use) - /padv editor-trust <code> - Authorizes a browser session for the editor - Webhook toggle in in-game edit GUI (slot 25, below PlayerPoints) - Frame type (TASK/GOAL/CHALLENGE) now correctly displays from display.frame in the web editor - Stats GUI rework - Player head now shows the actual target skin, recent completions condensed to single slot showing only the most recent, progress display clamped to prevent 101/100 overflow, navigation buttons only show when relevant with proper glass decoration
    🐛 Fixes
    - Frame type parsing in web editor: was always showing TASK because display.frame was not read - Various web editor UI fixes (button centering, hint layout, responsive breakpoints) ---
    43 downloads
  18. v1.60Premium Advancements | Custom Achievements v1.60May 24, 2026

    Changelog

    v1.60

    Major
    - No more restart required!!! Create, edit, delete, or reposition any advancement and run /padv reload - it applies instantly. No more waiting for server restarts to see changes. - Hidden advancements - new hidden: true option. Advancements stay invisible until all requires prerequisites are completed. Perfect for secret end-game rewards. - Connection system - visually link any advancement to any other with connection.target. Create tree branches with clear visual lines instead of everything connecting to root. - Multi-material support - specify multiple blocks, items, entities, inputs, or outputs in a single advancement using YAML lists (e.g. break both stone AND deepslate).
    New Trigger
    - CHOP_TREE - breaks any log type automatically (oak, spruce, birch, jungle, acacia, dark oak, mangrove, cherry, pale oak).
    Changes
    - Coordinates must now be >= 0 (both x and y). Negative values are rejected by the API. - Removed all "restart required" warnings from reload command.
    Fixes
    - Hidden advancement unlock messages no longer leak to chat. - Progress restores correctly on rejoin for multi-requirement triggers. - Circular dependency detection prevents infinite loops. - Various GUI slot ordering, pagination, and shutdown fixes.
    110 downloads
  19. v1.50Premium Advancements | Custom Achievements v1.50May 12, 2026

    Changelog — v1.50

    What's New

    PlaceholderAPI Integration
    8 new placeholders to display player progress anywhere on your server: | Placeholder | Description | |-------------|-------------| | %premiumadvancements_completed% | Total completed advancements | | %premiumadvancements_total% | Total available advancements | | %premiumadvancements_progress_<id>% | Per-advancement progress | | %premiumadvancements_completed_<id>% | Completion status (true/false) | | %premiumadvancements_percent% | Overall completion % | | %premiumadvancements_latest% | Name of last completed advancement | | %premiumadvancements_ranking% | Player rank by completions |
    25+ New Trigger Types
    | Trigger | Description | |---------|-------------| | FISH | Catch fish | | BREED | Breed animals | | TAME | Tame animals | | CONSUME | Drink potions/milk/honey | | EAT | Eat food | | HARVEST | Harvest crops | | TRADE | Trade with villagers | | ENCHANT | Enchant with specific enchantment | | POTION_EFFECT | Get a potion effect | | DEATH | Die by specific causes | | DAMAGE_DEALT | Deal damage | | DAMAGE_TAKEN | Take damage | | JUMP | Jump | | DROP_ITEM | Drop specific items | | SHEAR | Shear entities | | MILK | Milk cows/mooshrooms | | ARMOR_EQUIP | Equip armor pieces | | SNIFF | Brush suspicious sand/gravel | | RIPTIDE | Use riptide trident | | RAID_WIN | Win a raid | | TARGET_BLOCK | Hit a target block | | BELL_RING | Ring a bell | | CROSSBOW_SHOT | Shoot a crossbow | | FIREWORK | Launch fireworks | | GLIDE | Glide with elytra | | SWIM | Swim | | CLIMB | Climb | | SLEEP | Sleep in a bed | | FILL_BUCKET | Fill a bucket | | EMPTY_BUCKET | Empty a bucket | | COMPOSTER_USE | Use a composter |
    New Commands
    - /padv info <id> — View advancement details and placeholder IDs - /padv placeholders — List all available placeholders
    GUI Improvements
    - Advancement ID now shown in GUI lore for easier identification
    Bug Fixes
    - Fixed progress not restoring on rejoin for multi-requirement triggers - Fixed mooshroom entity naming (MUSHROOM_COW → MOOSHROOM) - Fixed MUSHROOM_COW entity matching for MILK/BREED/TAME/SHEAR triggers - Fixed sound serialization bugs in BREED trigger GUI - Fixed dot-format sound names across all advancements - Fixed chat input listener issues - Fixed TRAVEL_DIMENSION console error spam - Fixed various database shutdown issues - Many other stability improvements and bug fixes
    49 downloads
  20. v1.40PremiumAdvancements v1.40Jan 4, 2026

    📝 Changelog - Premium Advancements v1.40

    🎉 Major Update: 7 New Trigger Types + Critical Fixes!

    This update introduces 7 brand new advancement triggers, bringing the total to 12 trigger types, plus critical bug fixes and quality-of-life improvements! ---

    🐛 Critical Bug Fixes

    Navigation & UI
    - ✅ Fixed Previous Page button not working in /padv gui - players can now navigate backwards through pages - ✅ Fixed page navigation state management - page position is now properly maintained when reopening GUI - ✅ Fixed pagination display - current page and total pages now show correctly
    Travel Distance Tracking
    - ✅ Fixed TRAVEL_DISTANCE trigger saving/loading - distance and travel mode now persist correctly across server restarts - ✅ Fixed ELYTRA mode counting walking movement - elytra flight is now properly detected and tracked separately - ✅ Fixed BOAT mode counting walking movement - vehicle movement is now correctly isolated from walking - ✅ Fixed distance not resetting after completion - players can now repeat travel achievements properly
    Configuration System
    - ✅ Fixed language file updates not preserving user customizations - merge system now correctly keeps user edits - ✅ Fixed config merge recursion issues - deep nested sections now update properly without corruption - ✅ Fixed backup system creating unnecessary backups - only creates backups when actual changes are detected
    Advancement Registration
    - ✅ Fixed Dynamic Advancement Registration - newly created advancements are now immediately functional without restart - ✅ Fixed UI initialization order - prevents "advancement not initialized" errors ---

    ⭐ New Features

    🆕 Advanced Triggers (7 NEW!)
    Track items crafted by players in crafting tables or inventory crafting. Features: - ✅ Detects crafting table and 2x2 inventory crafting - ✅ Supports shift-clicking (mass crafting) - ✅ Works with vanilla and custom items (ItemsAdder/Oraxen) - ✅ Cumulative tracking across sessions Example:
    master_crafter:
      title: "Master Crafter"
      description: "Craft 64 diamond pickaxes"
      icon: DIAMOND_PICKAXE
      trigger: CRAFT_ITEM
      item: DIAMOND_PICKAXE
      amount: 64
    ---
    🔥 2. SMELT_ITEM Trigger
    Track items smelted in furnaces, blast furnaces, and smokers. Features: - ✅ Works with Furnace, Blast Furnace, and Smoker - ✅ Detects the output item (smelted result) - ✅ Supports item filtering - ✅ Tracks cumulative smelting Example:
    iron_smelter:
      title: "Iron Smelter"
      description: "Smelt 100 iron ingots"
      icon: IRON_INGOT
      trigger: SMELT_ITEM
      item: IRON_INGOT
      amount: 100
    ---
    ⚒️ 3. ANVIL_USE Trigger
    Track anvil usage including renaming, repairing, and combining items. Features: - ✅ Detects all anvil operations - ✅ Optional filtering by input item - ✅ Optional filtering by output item - ✅ Perfect for repair/enchant challenges Example:
    item_repairer:
      title: "Item Repairer"
      description: "Repair items in an anvil 10 times"
      icon: ANVIL
      trigger: ANVIL_USE
      amount: 10
    ---
    🪨 4. GRINDSTONE_USE Trigger
    Track grindstone usage for removing enchantments. Features: - ✅ Detects enchantment removal - ✅ Optional item filtering - ✅ Tracks each grindstone transaction Example:
    disenchanter:
      title: "Disenchanter"
      description: "Remove 5 enchantments using a grindstone"
      icon: GRINDSTONE
      trigger: GRINDSTONE_USE
      amount: 5
    ---
    ✨ 5. ENCHANT_ITEM Trigger
    Track enchanting at enchantment tables. Features: - ✅ Detects enchantment table usage - ✅ Filter by item type (optional) - ✅ Filter by enchantment type (optional) - ✅ Set minimum enchantment level - ✅ Perfect for progression systems Example:
    master_enchanter:
      title: "Master Enchanter"
      description: "Apply Sharpness III or higher"
      icon: ENCHANTING_TABLE
      trigger: ENCHANT_ITEM
      item: DIAMOND_SWORD
    ---
    🌐 6. ENTER_DIMENSION Trigger
    Track when players enter the Nether or End dimensions. Features: - ✅ Detects dimension changes - ✅ Prevents duplicate triggers on teleport loops - ✅ Supports NETHER and END dimensions - ✅ Perfect for exploration achievements Example:
    nether_explorer:
      title: "Nether Explorer"
      description: "Enter the Nether for the first time"
      icon: NETHERRACK
      trigger: ENTER_DIMENSION
      dimensionType: NETHER
    Dimension types: - NETHER - The Nether dimension - END - The End dimension ---
    🏃 7. TRAVEL_DISTANCE Trigger
    Track distance traveled by players with different movement modes. Features: - ✅ Persistent tracking across sessions - ✅ Multiple travel modes (TOTAL, WALKING, BOAT, ELYTRA) - ✅ Shows progress in action bar - ✅ Perfect for exploration challenges Example:
    marathon_runner:
      title: "Marathon Runner"
      description: "Walk 10,000 blocks"
      icon: GOLDEN_BOOTS
      trigger: TRAVEL_DISTANCE
      travelMode: WALKING
      amount: 10000.0
    Travel modes: - TOTAL - Any movement (default) - WALKING - Walking/running only - BOAT - Boat or vehicle movement - ELYTRA - Elytra flight only Progress tracking: - Saved every 10 blocks traveled - Persists across server restarts - Shows live progress in action bar ---

    🔧 Quality of Life Improvements

    Smart Features
    - ✅ Smart ID Generation - advancement IDs are now automatically based on titles (e.g., "Novice Traveler" → novice_traveler) - ✅ Admin Update Notifications - operators are now notified in chat when language files are updated on server start - ✅ Improved Backup System - old language/config files are automatically backed up to backups/ folder with timestamps - ✅ Enhanced Error Messages - clearer feedback when advancements fail to trigger or when conditions aren't met
    User Experience
    - ✅ Better Progress Feedback - action bar shows real-time progress for all counter-based triggers - ✅ Improved GUI Responsiveness - faster navigation and item updates - ✅ Clearer Trigger Types - all triggers now show helpful descriptions in the GUI ---

    🔧 Technical Improvements

    Performance & Stability
    - ✅ Improved event handling for new triggers (minimal performance impact) - ✅ Optimized distance tracking (updates every 10 blocks instead of per-tick) - ✅ Better caching system for dimension changes (prevents spam on rapid teleports) - ✅ Reduced database calls with smarter progress tracking and batching - ✅ Enhanced language file update detection system with smart merging - ✅ Better config merge logic that preserves user customizations - ✅ Improved error handling for dynamic advancement registration - ✅ Fixed memory leaks in cache cleanup methods
    Code Quality
    - ✅ Refactored trigger handling for better maintainability - ✅ Added comprehensive null checks for item metadata - ✅ Improved async/sync task separation for database operations - ✅ Better exception handling in advancement listeners
    GUI Updates
    - ✅ New configuration options for all 7 triggers - ✅ Enhanced input validation - ✅ Better error messages for invalid configurations
    Language Support
    - ✅ Full English translations for new triggers - ✅ Full French translations for new triggers - ✅ 50+ new translation keys
    Database
    - ✅ Improved progress tracking for distance-based advancements - ✅ Better async saving for travel distance - ✅ Optimized storage for cumulative tracking ---

    🐛 Additional Bug Fixes

    Trigger-Specific Fixes
    - ✅ Fixed shift-click crafting not being tracked properly in CRAFT_ITEM - ✅ Fixed dimension change spam on world teleports in ENTER_DIMENSION - ✅ Fixed travel distance not persisting on server restart - ✅ Improved item detection for custom model data items (ItemsAdder/Oraxen) - ✅ Fixed SMELT_ITEM not detecting Blast Furnace and Smoker operations - ✅ Fixed ANVIL_USE triggering on empty anvil clicks - ✅ Fixed GRINDSTONE_USE not properly detecting enchantment removal - ✅ Fixed ENCHANT_I
    123 downloads
  21. v1.32PremiumAdvancements 1.32Dec 31, 2025

    🔄 Changelog – v1.32

    - Fixed Woodcutter Default Advancement. - Fixed all untranslated English texts in French - Added automatic configuration migration system, your configs now update seamlessly between versions while preserving custom changes - Fixed Create Advancement GUI not displaying all configuration options on first open
    24 downloads
  22. v1.31PremiumAdvancements 1.31Dec 30, 2025
    - Added Support for Formatted Chats e.g &b,&e,&c... - Fixed SLF4J Error - Manual advancement editing is now supported without GUI override
    22 downloads
  23. v1.3PremiumAdvancements 1.3Dec 29, 2025

    🔄 Changelog – v1.3

    - Fixed update checker reliability and stability - Added advancement dependencies system (requires) - Prevented advancements from being unlocked before required ones - Enabled full progression trees for custom advancements - Added per-world advancement conditions - Added permission-based advancement conditions - Reworked the advancements display GUI (/padv gui) - Advancements are now correctly listed and ordered in the GUI - Added multi-page support to the advancements GUI - Improved validation when unlocking advancements - Minor internal optimizations and cleanup
    29 downloads
  24. v1.2PremiumAdvancements 1.2Dec 29, 2025
    Added Update Checker Added Multiple Language Support Added Custom model Data Advancement Icon Support
    27 downloads
  25. v1.1PremiumAdvancements 1.1-SNAPSHOTDec 21, 2025
    The first version
    28 downloads

Similar projects

Plugin →