Links
Tags
Creators
Details
1.1.0
Compatibility
Changes
🆕 What's new in 1.1.0
Per-Bot Environment Variables
Each bot in the bots: list can now have its own env: block that overrides the global environment variables — useful for running multiple bots with different tokens.
Memory Monitoring
The web dashboard now shows live RSS memory usage of the bot process (Linux only, reads from /proc/<pid>/status).
Multi-Bot Dashboard Selector
When running multiple bots, the dashboard now shows a bot selector dropdown to switch between bots without leaving the page.
Dashboard Security Hardening
- CSRF protection — All mutating API endpoints now require an
X-PR-Requestheader - Brute-force login protection — Lockout after 5 failed attempts (5 minute cooldown)
- Session pruning — Expired sessions are now cleaned up automatically
Changes
- Dashboard now uses a bounded thread pool (8 threads) instead of an unbounded cached pool
- SSE heartbeats use a shared scheduled executor instead of per-connection threads
- PythonDownloader is now a shared singleton — multiple bots no longer trigger duplicate downloads
- Webhook shutdown is now handled cleanly on plugin disable
Bug Fixes
- Fixed bot not stopping on Linux — now kills the entire process group via
setsid+kill -TERM -<pgid> - Fixed TunnelMC integration not detecting active tunnels correctly
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:GZQD4lHs:O7OIudrv"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:GZQD4lHs:O7OIudrv"
}

