Tags
Creators
Details
2.0.0-ALPHA.build.001
Compatibility
Changes
BMAPS 2.0.0 (Alpha)
⚠️ This is an alpha release. Expect bugs, breaking changes, and incomplete features. Not recommended for production servers yet.
Overview
Complete rewrite of BMAPS as a modern, modular navigation plugin. Players can browse an in-game menu of categories (e.g. states/regions/cities) and teleport to warps inside them. No more YAML-based city/warp management — everything now runs on SQLite.
Architecture
- Rebuilt as a multi-module Gradle project (
core+paper, more platforms planned) coremodule is fully platform-agnostic (no Bukkit/Paper dependencies) so future modules (Fabric, Velocity, etc.) can reuse the same data layer and business logic- Built for Paper 1.21.8+, Java 21, with Folia support
- Native Paper Brigadier command system (no legacy
plugin.yml/onCommand)
Data & Storage
- Switched from YAML files to SQLite, connected through a HikariCP connection pool
- Single
nodestable holds both categories and warps, linked viaparent_id— supports unlimited nesting depth (e.g. State → County → City → Warp) - Automatic schema migrations on startup (e.g. added
permissioncolumn without breaking existing databases)
In-Game GUI
/bmapsopens a navigable inventory menu- Click a category to go deeper, click a warp to teleport (uses
teleportAsync, Folia-safe) - Back button to return to the parent category
- Pagination: categories with more than 45 entries automatically get Previous/Next Page buttons, no menu reopening needed
Bedrock / Geyser Support
- Added optional Floodgate integration (soft dependency, plugin works fine without it)
- Bedrock players automatically get a native Cumulus form menu instead of the Java inventory GUI
- Same permission filtering and pagination logic as the Java GUI
Permissions Per Node
- Categories and warps can now have an optional permission node attached
- Players without the required permission simply don't see the entry — including everything nested inside a locked category (implicit inheritance through navigation)
Admin Commands
All admin commands require the bmaps.admin permission (default: op).
/bmaps addcategory <path>— creates categories along a path, auto-creating missing parents (mkdir -pstyle); icon = held item/bmaps addwarp <path>— creates a warp at your current position; last path segment is the warp name; icon = held item/bmaps updatecategory <path>— updates a category's icon (held item)/bmaps updatewarp <path>— updates a warp's icon (held item)/bmaps setdescription <path> <text>— sets/clears a description (-orclearremoves it)/bmaps setpermission <path> <permission|clear>— sets/removes a required permission node/bmaps move <from> <to>— moves and/or renames a node, with cycle protection and collision protection/bmaps removenode <path>— deletes a node and all its children (cascading)/bmaps reload— reloads the navigation tree from the database
Known Limitations / Not Yet Implemented
- No Velocity module yet (planned after other platform modules)
- No Fabric/Forge/NeoForge/Quilt/BungeeCord modules yet
- No text-based
/bmaps listcommand (tree is only browsable via the GUI)
Optional dependencies
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:dyDJtDQl:RL3GFCRe"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:dyDJtDQl:RL3GFCRe"
}

