Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ WoW Script Downloader

A configurable bash script to download scripts from any World of Warcraft private server GitHub repos. Add your repos, run the script, done.

The script comes with 4 TrinityCore repos pre-configured. You can add more, remove some, or swap them out entirely.


๐Ÿ“ What You Get

WoW_Script_Downloader/
โ”œโ”€โ”€ download_wow_scripts.sh     โ† the script
โ”œโ”€โ”€ README.md                   โ† this file
โ”‚
โ”‚   (created after running the script โ†“)
โ”‚
โ”œโ”€โ”€ Scripts/                    โ† all downloaded scripts
โ”‚   โ”œโ”€โ”€ TrinityCore_Master/
โ”‚   โ”‚   โ””โ”€โ”€ master/src/server/scripts/...
โ”‚   โ”œโ”€โ”€ TrinityCore_3.3.5/
โ”‚   โ”‚   โ””โ”€โ”€ 3.3.5/src/server/scripts/...
โ”‚   โ”œโ”€โ”€ TrinityCore_CataClassic/
โ”‚   โ”‚   โ””โ”€โ”€ cata_classic/src/server/scripts/...
โ”‚   โ””โ”€โ”€ TrinityCore_WotLKClassic/
โ”‚       โ””โ”€โ”€ wotlk_classic/src/server/scripts/...
โ””โ”€โ”€ Scripts_log.txt             โ† timestamped log of everything downloaded

โœ… Requirements

Tool Why Install
Git Clones repos via sparse checkout git-scm.com
Bash Runs the script Built into macOS/Linux, use Git Bash on Windows

Windows Users

Install Git for Windows (includes Git Bash). Right-click in the folder โ†’ Git Bash Here โ†’ run the script.

macOS / Linux

Open Terminal, cd into this folder, and run.


๐Ÿš€ Quick Start

Step 1 โ€” Make the script executable (first time only)

chmod +x download_wow_scripts.sh

Step 2 โ€” Run it

./download_wow_scripts.sh

That's it. It downloads all repos listed in the script into the Scripts/ folder and writes Scripts_log.txt.

Step 3 โ€” Check the results

  • Browse the Scripts/ folder for your files.
  • Open Scripts_log.txt to see what was downloaded, timestamps, and file counts.

๐Ÿ“‹ What's Pre-Configured (4 repos)

The script comes ready to run with these 4 TrinityCore current branches:

# Group Name Branch What it is
1 TrinityCore_Master master The War Within โ€” latest mainline
2 TrinityCore_3.3.5 3.3.5 WotLK 3.3.5a maintenance branch
3 TrinityCore_CataClassic cata_classic Cataclysm Classic
4 TrinityCore_WotLKClassic wotlk_classic WotLK Classic

โš™๏ธ How to Configure โ€” Add, Remove, or Change Repos

Open download_wow_scripts.sh in any text editor and find the REPOS=() section near the top (starts around line 30).

Entry format

Each repo is one line inside the REPOS=( ... ) block, using pipe (|) separators:

"GROUP_NAME|BRANCH|REPO_URL|SPARSE_PATH"
Field Required What it means
GROUP_NAME โœ… Yes Folder name inside Scripts/. Use anything โ€” no spaces.
BRANCH โœ… Yes Git branch, tag, or release name to download.
REPO_URL โœ… Yes Full .git URL of the repository.
SPARSE_PATH โŒ Optional Folder path inside the repo to download. If left blank, defaults to src/server/scripts.

โž• How to ADD a repo

Add a new line inside the REPOS=( ... ) block:

REPOS=(
    "TrinityCore_Master|master|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_3.3.5|3.3.5|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_CataClassic|cata_classic|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_WotLKClassic|wotlk_classic|https://github.com/TrinityCore/TrinityCore.git"

    # --- I added this one ---
    "AzerothCore_Master|master|https://github.com/azerothcore/azerothcore-wotlk.git"
)

With a custom path (if scripts aren't in src/server/scripts):

    "My_Custom|main|https://github.com/username/repo.git|src/custom/scripts"

There are also pre-written example lines commented out inside the script โ€” just remove the # to enable them:

    # Uncomment the line below to enable AzerothCore:
    # "AzerothCore_Master|master|https://github.com/azerothcore/azerothcore-wotlk.git"

Remove the # to make it active:

    "AzerothCore_Master|master|https://github.com/azerothcore/azerothcore-wotlk.git"

โž– How to REMOVE a repo

Option A โ€” Comment it out (put # in front):

    # "TrinityCore_WotLKClassic|wotlk_classic|https://github.com/TrinityCore/TrinityCore.git"

Option B โ€” Delete the entire line.

Either way, that repo won't be downloaded on the next run.


โœ๏ธ How to CHANGE a repo

Edit the values on its line. For example, to change a branch from master to main:

Before:

    "TrinityCore_Master|master|https://github.com/TrinityCore/TrinityCore.git"

After:

    "TrinityCore_Master|main|https://github.com/TrinityCore/TrinityCore.git"

๐Ÿ“ Full examples

Example 1 โ€” Only 2 repos:

REPOS=(
    "TrinityCore_Master|master|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_3.3.5|3.3.5|https://github.com/TrinityCore/TrinityCore.git"
)

Example 2 โ€” 6 repos with mixed paths:

REPOS=(
    "TrinityCore_Master|master|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_3.3.5|3.3.5|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_CataClassic|cata_classic|https://github.com/TrinityCore/TrinityCore.git"
    "TrinityCore_WotLKClassic|wotlk_classic|https://github.com/TrinityCore/TrinityCore.git"
    "AzerothCore_Master|master|https://github.com/azerothcore/azerothcore-wotlk.git"
    "CMaNGOS_WotLK|master|https://github.com/cmangos/mangos-wotlk.git|src/game/ScriptMgr.cpp"
)

๐Ÿ“œ Scripts_log.txt

Every run creates a fresh Scripts_log.txt that records:

  • Timestamps for every action
  • Repo URL, branch, and sparse path used
  • File count per download
  • Skipped repos (already downloaded)
  • Warnings if a sparse path doesn't exist
  • Final summary with totals

Example log output

[2026-06-05 14:30:01] ========================================
[2026-06-05 14:30:01] Downloading: TrinityCore_Master -> master
[2026-06-05 14:30:01]   Repo:   https://github.com/TrinityCore/TrinityCore.git
[2026-06-05 14:30:01]   Path:   src/server/scripts
[2026-06-05 14:30:01]   Target: ./Scripts/TrinityCore_Master/master
[2026-06-05 14:30:01] ========================================
[2026-06-05 14:30:15]   [DONE] TrinityCore_Master/master โ€” 949 files downloaded
...
[2026-06-05 14:31:00] ============================================================
[2026-06-05 14:31:00]   ALL DONE!
[2026-06-05 14:31:00]   Downloaded: 4 repos
[2026-06-05 14:31:00]   Skipped:    0 repos (already existed)
[2026-06-05 14:31:00]   Failed:     0 repos
[2026-06-05 14:31:00]   Total files in Scripts/: 3420
[2026-06-05 14:31:00]   Saved to:   ./Scripts
[2026-06-05 14:31:00]   Log saved:  ./Scripts_log.txt
[2026-06-05 14:31:00] ============================================================

๐Ÿ”„ Re-Downloading

The script skips repos that already exist. To re-download:

Remove a single repo:

rm -rf Scripts/TrinityCore_Master

Remove everything and start fresh:

rm -rf Scripts

Then run the script again.


๐Ÿ› ๏ธ Troubleshooting

Problem Solution
command not found: git Install Git from git-scm.com
Permission denied Run chmod +x download_wow_scripts.sh
Branch not found error Check the branch name exists on the GitHub repo
Sparse path warning The repo doesn't have that folder โ€” check the 4th field or leave it blank
Nothing downloaded Check your internet connection and repo URLs
Want to update a repo Delete its folder in Scripts/ and re-run

๐Ÿ“Œ Notes

  • Uses --depth 1 for fast, shallow clones (only the latest commit)
  • Uses --sparse to only download the scripts folder, not the entire repo
  • Each repo is isolated in its own subfolder โ€” no conflicts
  • Safe to re-run anytime โ€” skips anything that already exists
  • Works on macOS, Linux, and Windows (via Git Bash)

Made for the WoW private server development community.

About

A configurable bash script to download scripts from any World of Warcraft private server GitHub repos. Add your repos, run the script, done.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages