Tags
Creators
Details
v2.0
Compatibility
Required content
Changes
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 guinow 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, androot.background - Global IDs - Advancement IDs are unique across all tabs. Commands like
/padv give,/padv take,/padv listwork 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.ymlis created combiningadv-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.ymlresource file if empty config.ymleditor section validation no longer checks foradv-gui.yml/advancements.yml- 45 trigger types - Added
MANUAL(command-only) andPLACEHOLDER(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
.ymlfiles, 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 initialisederror on reload - now reuses existing RootAdvancement - CRITICAL:
/padv guitab-filtered GUI not responding to clicks - fixed title collision with unfiltered GUI - CRITICAL:
/padv applydeletingdefault.yml- file cleanup now checks YAML namespace, not just filename - CRITICAL:
/padv applyfailing withDuplicatedException- initSingleTab now catches all exceptions and falls back togetAdvancementTab() - CRITICAL:
/padv applycreating vanilla.ymlfiles 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
applyCustomDropdownsandapplyCustomScrollbarwere 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.0in plugin.yml and PlaceholderAPI expansion gui.back-to-tabsadded toen.ymlandfr.ymllanguage files- Missing
help.commands.tabsadded 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.ymlon fresh installs (prevented unnecessary migration trigger) - Fresh installs:
Advancements/default.ymlnow 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/*.ymlinstead ofadvancements.yml+adv-gui.yml - Migration - Automatic on first startup. Old files renamed to
.migrated. Manual rollback possible frombackups/ - Paper 1.21.4+ - Plugin now requires Paper 1.21.4+ for the AdvancementDisplay API used in vanilla advancement extraction
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:CyWijK8l:7o3D8CoL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:CyWijK8l:7o3D8CoL"
}

