{"id":23905,"date":"2026-06-01T11:01:50","date_gmt":"2026-06-01T08:01:50","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/"},"modified":"2026-06-01T11:01:50","modified_gmt":"2026-06-01T08:01:50","slug":"autostopper","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/","title":{"rendered":"AutoStopper"},"content":{"rendered":"<p align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/cdn.modrinth.com\/data\/PG4gqnzX\/images\/b2003a220072c1bfbb6255af452a39dab08a5377.png\" width=\"200\" alt=\"AutoStopper Logo\">\n<\/p>\n<p># AutoStopper<\/p>\n<p>AutoStopper is a Velocity proxy plugin that automatically stops and starts Minecraft server containers based on player activity. It helps server administrators save resources by shutting down inactive Docker-based Minecraft servers.<\/p>\n<p>## Download links<\/p>\n<p>&#8211; Modrinth<\/p>\n<p>## Features<\/p>\n<p>&#8211; Automatically monitors server activity<br \/>\n&#8211; Stops inactive Docker containers after a configurable timeout<br \/>\n&#8211; Starts servers on-demand when players try to connect<br \/>\n&#8211; Seamlessly connects players to servers after starting them<br \/>\n&#8211; Maintains server state tracking<\/p>\n<p>## Requirements<\/p>\n<p>&#8211; Velocity proxy server (3.3.0 or newer)<br \/>\n&#8211; Docker environment with itzg\/minecraft-server containers<br \/>\n&#8211; Docker socket mounted to the Velocity container<br \/>\n&#8211; Java 21+<\/p>\n<p>## Installation<\/p>\n<p>1. Download the latest AutoStopper JAR from the releases page<br \/>\n2. Place the JAR in your Velocity server&#8217;s `plugins` directory<br \/>\n3. Start (or restart) your Velocity server<br \/>\n4. Edit the generated configuration file to match your setup<\/p>\n<p>## Configuration<\/p>\n<p>After the first run, AutoStopper will generate a `config.yml` in the `plugins\/AutoStopper` directory:<\/p>\n<p>&#8220;`yaml<br \/>\n# Time in seconds before an inactive server is stopped<br \/>\ninactivity_timeout_seconds: 900<\/p>\n<p># List of servers AutoStopper should manage<br \/>\nmonitored_servers:<br \/>\n  &#8211; server_name: purpur<br \/>\n    container_name: purpur-server<br \/>\n  &#8211; server_name: fabric<br \/>\n    container_name: fabric-server<br \/>\n&#8220;`<\/p>\n<p>### Configuration Options<\/p>\n<p>&#8211; `inactivity_timeout_seconds`: Time in seconds a server must be inactive before being shut down (default: 900 seconds\/15 minutes)<br \/>\n&#8211; `monitored_servers`: List of server mappings<br \/>\n  &#8211; `server_name`: Name of the server in Velocity configuration<br \/>\n  &#8211; `container_name`: Corresponding Docker container name<\/p>\n<p>## Docker Setup<\/p>\n<p>AutoStopper requires the Docker socket to be mounted in your Velocity container. Here&#8217;s an example `docker-compose.yml` setup:<\/p>\n<p>&#8220;`yaml<br \/>\nservices:<br \/>\n  velocity:<br \/>\n    image: itzg\/mc-proxy<br \/>\n    container_name: velocity-server<br \/>\n    environment:<br \/>\n      TYPE: &#8220;VELOCITY&#8221;<br \/>\n      ONLINE_MODE: &#8220;true&#8221;<br \/>\n      VELOCITY_VERSION: &#8220;latest&#8221;<br \/>\n      VELOCITY_BUILD_ID: &#8220;latest&#8221;<br \/>\n      REPLACE_ENV_VARIABLES: &#8220;true&#8221;<br \/>\n    ports:<br \/>\n      &#8211; &#8220;25565:25565&#8221;<br \/>\n    volumes:<br \/>\n      &#8211; .\/velocity_server:\/server<br \/>\n      &#8211; \/var\/run\/docker.sock:\/var\/run\/docker.sock  # Required for AutoStopper<br \/>\n    networks:<br \/>\n      &#8211; mc-network<br \/>\n    restart: unless-stopped<br \/>\n    entrypoint: bash -c<br \/>\n    command: ><br \/>\n      &#8220;if [ ! -f \/usr\/bin\/docker ]; then<br \/>\n        apt-get update &#038;&#038; apt-get install -y docker.io &#038;&#038; apt-get clean;<br \/>\n      fi &#038;&#038;<br \/>\n      SOCKET_GID=$$(stat -c &#8216;%g&#8217; \/var\/run\/docker.sock) &#038;&#038;<br \/>\n      if ! getent group $$SOCKET_GID > \/dev\/null; then groupadd -g $$SOCKET_GID docker_sock; fi &#038;&#038;<br \/>\n      GROUP_NAME=$$(getent group $$SOCKET_GID | cut -d: -f1) &#038;&#038;<br \/>\n      usermod -aG $$GROUP_NAME bungeecord &#038;&#038;<br \/>\n      exec \/usr\/bin\/run-bungeecord.sh&#8221;<\/p>\n<p>  # Example Minecraft servers that can be managed by AutoStopper<br \/>\n  purpur:<br \/>\n    image: itzg\/minecraft-server:java21<br \/>\n    container_name: purpur-server<br \/>\n    environment:<br \/>\n      TYPE: &#8220;PURPUR&#8221;<br \/>\n      VERSION: &#8220;1.21.4&#8221;<br \/>\n      EULA: &#8220;TRUE&#8221;<br \/>\n      ONLINE_MODE: &#8220;FALSE&#8221;<br \/>\n    volumes:<br \/>\n      &#8211; .\/purpur_data:\/data<br \/>\n    networks:<br \/>\n      &#8211; mc-network<br \/>\n    restart: &#8220;no&#8221;  # Important: Let AutoStopper manage the container lifecycle<\/p>\n<p>  fabric:<br \/>\n    image: itzg\/minecraft-server:java21<br \/>\n    container_name: fabric-server<br \/>\n    environment:<br \/>\n      TYPE: &#8220;FABRIC&#8221;<br \/>\n      VERSION: &#8220;1.21.4&#8221;<br \/>\n      EULA: &#8220;TRUE&#8221;<br \/>\n      ONLINE_MODE: &#8220;FALSE&#8221;<br \/>\n    volumes:<br \/>\n      &#8211; .\/fabric_data:\/data<br \/>\n    networks:<br \/>\n      &#8211; mc-network<br \/>\n    restart: &#8220;no&#8221;  # Important: Let AutoStopper manage the container lifecycle<\/p>\n<p>networks:<br \/>\n  mc-network:<br \/>\n    driver: bridge<br \/>\n&#8220;`<\/p>\n<p>### Important Docker Configuration Notes<\/p>\n<p>1. The Velocity container must have Docker CLI installed, which is why the entrypoint script installs it<br \/>\n2. The Docker socket must be mounted (`\/var\/run\/docker.sock:\/var\/run\/docker.sock`)<br \/>\n3. The script automatically handles permissions by detecting the socket group ID and adding the server user to it.<br \/>\n4. Set `restart: &#8220;no&#8221;` for managed servers so Docker doesn&#8217;t automatically restart them<br \/>\n5. Keep any hub\/lobby servers with `restart: unless-stopped` if you want them to always be available<\/p>\n<p>## Commands<\/p>\n<p>&#8211; `\/autostopper` or `\/as` &#8211; Main command<br \/>\n&#8211; `\/autostopper help` &#8211; Displays help information<br \/>\n&#8211; `\/autostopper status` &#8211; Shows the status of all monitored servers<br \/>\n&#8211; `\/autostopper reload` &#8211; Reloads the configuration (requires `autostopper.admin` permission)<\/p>\n<p>## Permissions<\/p>\n<p>&#8211; `autostopper.admin` &#8211; Allows use of the reload command<\/p>\n<p>## How It Works<\/p>\n<p>1. When a player attempts to connect to a monitored server:<br \/>\n   &#8211; If the server is running, the connection proceeds normally<br \/>\n   &#8211; If the server is stopped, AutoStopper:<br \/>\n     &#8211; Starts the Docker container<br \/>\n     &#8211; Waits for the server to fully initialize<br \/>\n     &#8211; Automatically connects the player once the server is ready<\/p>\n<p>2. The plugin tracks the last activity time for each server<br \/>\n3. A scheduled task checks for inactive servers and stops them after the configured timeout period<br \/>\n4. Servers that are always needed (like hubs\/lobbies) can be excluded from monitoring<\/p>\n<p>## Building from Source<\/p>\n<p>1. Clone the repository<br \/>\n2. Build using Maven:<\/p>\n<p>   &#8220;`bash<br \/>\n   mvn clean package<br \/>\n   &#8220;`<\/p>\n<p>3. Find the JAR file in `target\/AutoStopper-1.1.2.jar`<\/p>\n<p>## License<\/p>\n<p>This project is licensed under the [MIT License](LICENSE). See the LICENSE file for details.<\/p>\n<p>## Credits<\/p>\n<p>&#8211; Built for Velocity by Criseda<br \/>\n&#8211; Uses itzg\/minecraft-server<br \/>\n&#8211; Uses itzg\/mc-proxy<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Velocity proxy plugin that automatically stops and starts Minecraft server containers based on player activity<\/p>\n","protected":false},"featured_media":23785,"template":"","meta":{"_minecraft_slug":"autostopper","_minecraft_project_id":"PG4gqnzX","_minecraft_author":"Criseda","_minecraft_license":"MIT","_minecraft_downloads":52,"_minecraft_follows":2,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"autostopper.zip","_minecraft_size_bytes":643083,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T21:02:08.509454Z","_minecraft_date_created":"2025-04-20T18:22:45.696782Z","_minecraft_date_modified":"2026-01-14T16:59:08.773826Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/autostopper","_minecraft_icon_attachment_id":23785,"_minecraft_imported_at":"2026-06-01T08:01:51+00:00","_minecraft_import_hash":"7f1bc156e86526a04579b283d74f0063","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[126,90,91,92,985],"mod_loader":[986],"minecraft_version":[60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-23905","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-management","mod_category-optimization","mod_category-storage","mod_category-utility","mod_category-velocity","mod_loader-velocity","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AutoStopper - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AutoStopper - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A Velocity proxy plugin that automatically stops and starts Minecraft server containers based on player activity\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.modrinth.com\/data\/PG4gqnzX\/images\/b2003a220072c1bfbb6255af452a39dab08a5377.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/\",\"name\":\"AutoStopper - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp\",\"datePublished\":\"2026-06-01T08:01:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autostopper\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AutoStopper\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AutoStopper - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/","og_locale":"en_US","og_type":"article","og_title":"AutoStopper - Minecraft","og_description":"A Velocity proxy plugin that automatically stops and starts Minecraft server containers based on player activity","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/cdn.modrinth.com\/data\/PG4gqnzX\/images\/b2003a220072c1bfbb6255af452a39dab08a5377.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/","name":"AutoStopper - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp","datePublished":"2026-06-01T08:01:50+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autostopper-icon-4c3ffbc1c1183a6932ddbd1103bc4b91f5231636_96-2.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autostopper\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"AutoStopper"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/23905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/23785"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=23905"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=23905"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=23905"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=23905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}