Tags
Creators
Details
2.1.0
Compatibility
Required content
Changes
[2.1.0] — 2026-05-19 - XP has a stage requirement, translations, web dashboard & more !
Added
-
XP as a stage requirement: Stages can now require experience points in addition to items. New config field:
borderExpansionDurationSeconds(default 10 seconds for border animation). New stage field:xpRequirements(list of{ "count": <int> }). New command:/bq submitxp <amount>— donate XP points toward the current stage objective. XP progress is shown in/bq status, the tab-list sidebar HUD, and the web dashboard. XP donations are taken from the player's total experience points (not levels). Translation keys added:borderquest.status.xp_*,borderquest.submit.xp_*,borderquest.hud.xp_progress. -
Translation system: All mod messages are now translatable via JSON language files. Added
borderquest.command.languageconfig option ("en_us"by default,"fr_fr"also bundled). New files:ModTranslations.java,TranslationKeys.java,lang/en_us.json,lang/fr_fr.json. -
Web dashboard + admin panel: Embedded HTTP server (JDK
HttpServer, zero dependencies) serving a live dashboard and admin panel on a configurable port (default 8123).- Public dashboard: stage progress, resource checklist, donation leaderboard, altar list, player count — auto-refreshes every 5 seconds.
- Admin panel (password-protected): buttons for
/bq reload,/bq skip,/bq reset, and a JSON config editor with save/reload. - Admin password randomly generated on first launch, printed once in server log, modifiable via config file or the admin panel itself.
- Config section:
"dashboard": { "enabled": true, "port": 8123, "bindAddress": "127.0.0.1", "password": "..." } - Thread-safe: all state reads/writes scheduled via
server.execute()withCompletableFuture. New files:DashboardServer.java,DashboardApi.java,dashboard.html.
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:rnhBP8JZ:wRMHhRMi"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:rnhBP8JZ:wRMHhRMi"
}

