Links
Tags
Creators
Details
1.1.0
Compatibility
Changes
🆕 What's new in 1.1.0
Auto-Restart & Crash Loop Protection
Tunnels now restart automatically if the ngrok process exits unexpectedly. Crash loop protection kicks in if a tunnel fails too many times within a configurable time window, stopping the retry cycle to prevent runaway restarts. Both the restart delay and failure threshold are fully configurable.
Health Checks
TunnelMC now periodically verifies each tunnel is still alive by querying ngrok's local API. If a tunnel silently dies without crashing, the health check catches it and triggers an automatic restart. The check interval is configurable, or can be disabled entirely.
/tunnel download Command
You can now trigger the ngrok binary download manually at any time from in-game or console with /tunnel download. Useful if the initial download failed or you want to re-fetch the binary without restarting your server.
NodeRunner & PyRunner Integration
If NodeRunner or PyRunner is installed and one of your configured tunnel ports matches their dashboard port, TunnelMC will print a helpful suggestion in console. This is purely informational — these bot runners are never auto-started by TunnelMC.
Config changes
Four new options have been added to config.yml:
auto-restart: true
restart-delay-seconds: 10
max-restarts: 5
crash-window-seconds: 60
health-check-interval-seconds: 30
integrations:
noderunner-suggestion: true
pyrunner-suggestion: true
Existing configs remain fully compatible — all new keys will use their defaults if not present.
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:cEYrTBi3:ha3A91lR"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:cEYrTBi3:ha3A91lR"
}

