Keep your Minecraft server's PySpigot scripts always up-to-date β automatically or manually β by syncing directly from a GitHub repo (even private ones)! Designed with performance, safety, and flexibility in mind.
- π Async GitHub script downloading (supports private repos)
- π§ SHA-based caching to skip unchanged scripts
- π Permission-based access (
script_updater.admin) - π¬ Color-coded, clean in-game reload summary
- π§·
/updatescripts forcesupport - π Auto-sync every X minutes via config
- β
Supports
script_targets: allor specific scripts
- π§΅ Asynchronous file downloads to prevent main-thread lag
- β Synchronous reloading handled safely via main-thread scheduling
- β¨ UTF-8 encoding and color handling via safe replacements (no
ΓΒ§issues) - βοΈ Uses GitHub REST API with base64 decoding for reliable private/public repo access
/updatescripts
/updatescripts force
forcereloads all scripts, ignoring hash cache- Only accessible to users with permission
/updatescripts [force]| Node | Description |
|---|---|
script_updater.admin |
Required to run /updatescripts |
After first run, a config file is generated:
π Path: plugins/PySpigot/configs/script_updater_config.yml
github_repo_url: https://github.com/YourUser/YourRepo
private_repo: true
repo_sub_directory: scripts
github_pat_token: ghp_XXXXXXXXXXXXXXXXXXXX
local_directory: github
script_targets: all # or: script1.py,script2.py
auto_sync_minutes: 10allβ download and reload all.pyscripts in the repo subdirectoryscript1.py,script2.pyβ only update specific scripts by name
MyRepo/
βββ scripts/
βββ example1.py
βββ example2.py
βββ helper.py
Set repo_sub_directory: scripts to point at this folder.
plugins/
βββ PySpigot/
βββ scripts/
β βββ github/
β βββ example1.py
β βββ example2.py
β βββ helper.py
βββ configs/
βββ script_updater_config.yml
βββ .script_updater_hashes.json
local_directory: github puts synced files into scripts/github/.
- Place
script_updater.pyin your PySpigotscripts/folder - Restart the server or run:
/pyspigot reload script_updater.py
- Edit the generated config file to match your GitHub repo
- Use
/updatescripts(orforce) as needed - Set
auto_sync_minutesto enable background auto-updates
Created by LilSadPanda with β€οΈ
Feel free to fork or contribute!