{"id":24805263,"url":"https://github.com/kraftland/mcctl","last_synced_at":"2026-05-08T15:03:46.228Z","repository":{"id":39979760,"uuid":"501532112","full_name":"Kraftland/mcctl","owner":"Kraftland","description":"Minecraft Server manager","archived":false,"fork":false,"pushed_at":"2023-11-25T09:25:46.000Z","size":3049,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-30T07:17:28.361Z","etag":null,"topics":["automated","bash","easy-to-use","geyser","minecraft","paper","paper-plugin","papermc","script","spigot","spigot-plugin","starter","updater"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kraftland.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-06-09T06:31:58.000Z","updated_at":"2023-12-17T15:07:55.000Z","dependencies_parsed_at":"2023-11-25T10:25:13.177Z","dependency_job_id":"69252b6d-53dd-4843-ad1c-d6ae5c7330f8","html_url":"https://github.com/Kraftland/mcctl","commit_stats":null,"previous_names":["kraftland/mcctl"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kraftland%2Fmcctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kraftland%2Fmcctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kraftland%2Fmcctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kraftland%2Fmcctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kraftland","download_url":"https://codeload.github.com/Kraftland/mcctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245423186,"owners_count":20612747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated","bash","easy-to-use","geyser","minecraft","paper","paper-plugin","papermc","script","spigot","spigot-plugin","starter","updater"],"created_at":"2025-01-30T07:17:32.440Z","updated_at":"2026-05-08T15:03:41.200Z","avatar_url":"https://github.com/Kraftland.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mcctl\n\n\n\n[![State-of-the-art Shitcode](https://img.shields.io/static/v1?label=State-of-the-art\u0026message=Shitcode\u0026color=7B5804)](https://github.com/trekhleb/state-of-the-art-shitcode)\n\n------\n\n[![Get it from AUR](https://raw.githubusercontent.com/Kimiblock/mcctl/master/resources/Aur.svg)](https://aur.archlinux.org/packages/mcctl-git)\n\n`mcctl` (aka minecraft-server-control) is a bash script which can automatically run and update your minecraft server.\n\n![](https://raw.githubusercontent.com/Kimiblock/mcctl/master/resources/demo.png \"Demo\")\n\nWarn: Windows and macOS are not supported, use Arch Linux to achieve best experience.\n\n# Usage\n\nFirst set 2 environment variables: `$version` and `$serverPath`. This will tell mcctl your desired version and path to your server \n\n```bash\n[Environment Variables] mcctl --[Options]\n```\n\nExamples:\n\n```bash\nversion=1.19 serverPath=/mnt/main/Cache/Paper bash mcctl --update --autodetect\n```\n\n## Install mcctl as a system command (Not required)\n\nNote: If you haven't installed mcctl to your system, just cd to mcctl and replace `mcctl` with `./mcctl`\n\n### Arch Linux\n\nInstall the [mcctl-git](https://aur.archlinux.org/packages/mcctl-git) from aur\n\nExamples using yay:\n\n```bash\nyay -S mcctl-git\n```\n\n### Other Linux\n\n```bash\ngit clone https://github.com/Kimiblock/mcctl.git \u0026\u0026 cd mcctl \u0026\u0026 ./mcctl --install\n```\n\n## Uninstall mcctl command\n\n```bash\nmcctl --uninstall\n```\n\n## Update your Minecraft server and plugins\n\n### Automatically\n\nTip: Now you can let mcctl automatically detect servers and plugins to install, just type:\n\n```bash\nmcctl --update --autodetect\n```\n\n### Manually\n\n```bash\nmcctl --update --[options]\n```\n\n\n\n| Options        | Effects                                                      |\n| -------------- | ------------------------------------------------------------ |\n| mojang         | Update Mojang server.                                        |\n| spigot         | Update spigot.                                               |\n| paper          | Update paper.                                                |\n| sac            | Update SoaromaSAC                                            |\n| floodgate      | Update floodgate.                                            |\n| geyser         | Update geyser.                                               |\n| --systemupdate | Fully update your system. ( Run with `sudo` when `-unattended` activated! ) |\n| --unsafe       | Disable default protecting.                                  |\n| --newserver    | Automatically create server folder.                          |\n| --clean        | Clean leftovers.                                             |\n| mtvehicles     | Update mtvehicles (Unnecessary because you can update plugin by /mtv update) |\n| multilogin     | Update MultiLogin                                            |\n\n## Snapshots (Expermental)\n\n### Create a snapshot\n\n```bash\nmcctl --create-snapshot\n```\n\nYou can also specify where to store your snapshots by $snapshotPath\n\n### Remove old snapshots\n\nRemove snapshots older than $2 day(s)\n\n```bash\nmcctl --delete-snapshot $2\n```\n\n### Restore a snapshot\n\n\u003cu\u003e***Warning! Turn off your Minecraft server or you might break your system.***\u003c/u\u003e\n\nRestore snapshot $2 day(s) ago:\n\n```\nmcctl --restore-snapshot $2\n```\n\n\n\n## Load server at startup\n\n```bash\n[Environment Variables] mcctl --start [Server name] --d\n```\n\n| Server name | Effects             |\n| ----------- | ------------------- |\n| paper       | Start PaperMC       |\n| spigot      | Start SpigotMC      |\n| mojang      | Start Mojang server |\n\nNote: Install `screen` if you add -d, you can go back to your server session by `screen -r mc`.\n\n## Save your options and environments\n\n```bash\n[Environment Variables] mcctl --save-conf --[Options]\n```\n\nNext time you use `mcctl`, just type `mcctl`. Script will automatically remember what you entered last time.\n\n## Automatically send report mails\n\nTip: Install and setup `ssmtp` first.\n\n```bash\nmcctl --mail-report $2 #replace $2 with your mail address \n```\n\n\n\n## Install requirements (Currently beta, only pacman and apt recive full support)\n\n| Options   | Effects              |\n| --------- | -------------------- |\n| --instreq | Install requirements |\n\n# Tips and tricks\n\nControl what will `mcctl` output. Enter options to control\n\n| Options   | Effects         |\n| --------- | --------------- |\n| --verbose | Output anything |\n| --quiet   | Hide outputs    |\n\n\n\n## Delete BuildTools' cache and script's logs\n\n```bash\nmcctl --clean\n```\n\n## Avoid confirming anything\n\n```bash\nmcctl --unattended\n```\n\n## Avoid entering environment variables\n\n### Method 1\n\nEdit `/etc/environment`, add those lines:\n\n```/etc/environment\nversion=Target Minecraft version\nserverPath=Path to server directory\n```\n\nThen reboot or re-login\n\n### Method 2\n\n`cd` to your server\n\n```bash\nmcctl --currentdirectory --latest [options]\n```\n\nThis will set server path to your current folder and default to the latest version.\n\n## Update `mcctl` command?\n\nJust type `mcctl install` again, script will download the latest version of itself and perform updates.\n\n## Update server everyday?\n\nGet the `cronie` package and enable `cronie.service`.\n\nType `crontab -e` and enter those line:\n\n```\n0 0 * * * mcctl --[Options]\n```\n\nCheck if you have environment variables set, either in `/etc/environment` or before `mcctl`\n\n***\u003cu\u003e\u003cmark\u003eWarning: you have to manually restart the server, otherwise some plugins WON'T use new features.`/reload` or `/reload confirm`\u003c/mark\u003e\u003c/u\u003e***\n\n## How to create a entirely new server?\n\nJust add a `--newserver` option, script will automatically handle it.\n\n# To-dos\n\n1. ~~Save configurations to `~/.config`.~~\n\n# Known bugs\n\n- Spigot's own build tools may occationally crash, `mcctl --clean` might fix it.\n\n- Do not use `zsh` or any other shell, change your default shell to bash `chsh -s /bin/bash` or run mcctl under bash (If your default shell isn't bash, some non-critical problem will occur) \n\n- Can't download sac due to spigotmc.org's unique protection\n\n# Troubleshoot\n\n## Exit code\n\n### Can not create directory\n\nMake sure you have control of the directory\n\n### Non-64-bit system detected\n\n```bash\n[Environment Variables] mcctl --unsafe --[Options]\n```\n\n### Environment variables not set\n\nSet 2 environment variables `serverPath` `version`, either before `mcctl` command or in `/etc/environment`.\n\n### System update failed\n\nCheck if you have full control of your server.\n\n### `BuildTools` failed to start\n\n```bash\nmcctl --currentdirectory --latest\n```\n\n### No jar file detected\n\nCheck if you have specified correct directory.\n\n### Screen not installed\n\nInstall package `screen` or \n\n```bash\nmcctl --instreq  #Currently unstable\n```\n\n### Package manager not supported\n\nmcctl cannot detect which package manager you're using, remove `--systemupdate` and wait for support.\n\n### `Systemd` missing\n\ninstall package `systemd`, its not supported by `--instreq` by default because mess up your init will cause unexpected issues.\n\n### Network unrechable\n\nCan't reach `github.com`, check your network and proxy settings.\n\n### Permission denied\n\nRun the script as root or remove `--unattended`\n\n### mcctl lock file found, make sure you doesn't run another mcctl process\n\nmcctl generates a lock file `~/.mcctl.lock` to prevent multiple mcctl run at the same time.\n\nSeveral `mcctl` process may cause problems which might break your server. If you sure that no `mcctl` running (Check with htop btw), just remove `~/.mcctl.lock`\n\n### Exit code from minecraft detected\n\nYour server throws a exit code, check your screen name by  `screen -ls`  then `screen -r $screenName`\n\n### Internal error\n\nThis is an undefined exit code, you can check  `~/mcctl_debug.log`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkraftland%2Fmcctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkraftland%2Fmcctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkraftland%2Fmcctl/lists"}