├── .gitignore ├── create-snapshot.sh ├── update-submodules.sh ├── delete-old-snapshots.sh ├── .github └── workflows │ ├── recursive-checkout.yaml │ └── weekly-release-snapshot.yaml ├── README.MD └── .gitmodules /.gitignore: -------------------------------------------------------------------------------- 1 | *.zip 2 | -------------------------------------------------------------------------------- /create-snapshot.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | mkdir -p snapshots 4 | 5 | git submodule foreach ' 6 | echo "Creating zip for $name at $path..." 7 | zipname=$(basename $path) 8 | zip -r $zipname.zip . -x "*.git*" 9 | mv $zipname.zip $toplevel/snapshots/ 10 | ' 11 | 12 | cd snapshots 13 | zip -r snapshot.zip *.zip 14 | -------------------------------------------------------------------------------- /update-submodules.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | git submodule update --init --recursive 4 | git submodule foreach ' 5 | git fetch origin 6 | git checkout $(git rev-parse --abbrev-ref HEAD) 7 | git reset --hard origin/HEAD 8 | ' 9 | if git rev-parse --verify --quiet submodule-update-tracking; then 10 | git branch -d submodule-update-tracking 11 | fi 12 | git checkout -b submodule-update-tracking 13 | git add . 14 | git commit -m "Update all submodules to the latest HEAD" 15 | -------------------------------------------------------------------------------- /delete-old-snapshots.sh: -------------------------------------------------------------------------------- 1 | set -eu 2 | 3 | test $GH_TOKEN # Mandatory 4 | echo "Using GitHub token: $GH_TOKEN" 5 | 6 | # Local tags may be out of sync (just delete any offenders) 7 | git fetch --prune --prune-tags origin 8 | 9 | # Delete all but the latest snapshot (no point in storing them) 10 | OUTDATED_RELEASE_TAGS=$(git tag --sort=-creatordate | tail -n +2) 11 | TAG_COUNT=$(git tag --sort=-creatordate | tail -n +2 | wc -l) 12 | 13 | echo "Found $TAG_COUNT outdated release tags" 14 | 15 | for TAG in $OUTDATED_RELEASE_TAGS; do 16 | echo "Deleting tagged release $TAG" 17 | gh release delete "$TAG" --yes --cleanup-tag 18 | done 19 | -------------------------------------------------------------------------------- /.github/workflows/recursive-checkout.yaml: -------------------------------------------------------------------------------- 1 | name: Recursive Clone 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths-ignore: 8 | - '**.md' 9 | pull_request: 10 | types: [opened, synchronize, reopened, ready_for_review] 11 | branches: 12 | - main 13 | paths-ignore: 14 | - '**.md' 15 | create: 16 | # Any branch or tag 17 | concurrency: 18 | group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} 19 | cancel-in-progress: true 20 | 21 | jobs: 22 | build: 23 | if: github.event.pull_request.draft == false 24 | name: Check submodule availability 25 | runs-on: ubuntu-latest 26 | 27 | steps: 28 | - name: Check out Git repository 29 | uses: actions/checkout@v4 30 | with: 31 | submodules: recursive 32 | -------------------------------------------------------------------------------- /.github/workflows/weekly-release-snapshot.yaml: -------------------------------------------------------------------------------- 1 | name: Weekly Release Snapshot 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: "0 0 * * 0" 7 | 8 | jobs: 9 | archive: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout git repository 13 | uses: actions/checkout@v4 14 | 15 | - name: Configure git user 16 | run: | 17 | git config user.name "github-actions[bot]" 18 | git config user.email "github-actions[bot]@users.noreply.github.com" 19 | 20 | - name: Update submodules 21 | run: ./update-submodules.sh 22 | 23 | - name: Create snapshot 24 | run: ./create-snapshot.sh 25 | 26 | - name: Generate version tag 27 | run: echo "VERSION_TAG=$(date '+v%Y.%m.%d')" >> $GITHUB_ENV 28 | 29 | - uses: actions/upload-artifact@v4 30 | with: 31 | name: snapshot.zip 32 | path: snapshots/snapshot.zip 33 | 34 | - name: Create GitHub Release 35 | uses: softprops/action-gh-release@v1 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | with: 39 | files: snapshots/snapshot.zip 40 | name: Snapshot (${{ env.VERSION_TAG }}) 41 | tag_name: ${{ env.VERSION_TAG }} -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # Community Projects Mirror 2 | 3 | This repository tracks various projects created and published by the RO community. 4 | 5 | ## Goals 6 | 7 | Many old projects have become difficult to find due to the passage of time (dead links, obscure forum posts, buried in spam, ...). Since they may still be of interest to researchers, this repository attempts to aggregate them. 8 | 9 | ## Checkout Notice 10 | 11 | Make sure to check out the repository *recursively* since it uses [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules): 12 | 13 | ```bash 14 | git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --recursive 15 | ``` 16 | 17 | Be aware that *all* dependencies will be fetched, some of which are quite large (several gigabytes). 18 | 19 | If you aren't interested in getting the complete commit history, you can speed up this process: 20 | 21 | ```bash 22 | git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --recursive --shallow-submodules 23 | ``` 24 | 25 | To further reduce the time needed to clone, you may want to skip nested dependencies as well: 26 | 27 | ```bash 28 | git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --shallow-submodules 29 | ``` 30 | 31 | Finally, you could override the parallelism factor, which defaults to an overly conservative value: 32 | 33 | ```bash 34 | git clone https://github.com/RagnarokResearchLab/CommunityProjects.git --shallow-submodules --jobs=8 35 | ``` 36 | 37 | The difference will be quite signitifcant, as shown by the following comparison table: 38 | 39 | | Recursive | Shallow | Jobs | Time | Disk Usage | 40 | | :---: | :---: | :---: | :---: | :---: | 41 | | NO | NO | 0 (auto) | 0.929 sec | 246 KB | 42 | | YES | NO | 0 (auto) | 8 min 4 sec | 4.8 GB | 43 | | YES | YES | 8 | 3 min 58 sec | 3.1 GB | 44 | | YES | YES | 0 (auto) | 5 min 56 sec | 3.1 GB | 45 | 46 | ## Licensing Information 47 | 48 | This repository contains no actual code. All community projects have first been published by their respective authors. 49 | 50 | The original license terms still apply. For details, please consult the individual projects' README or LICENSE file (etc). 51 | 52 | ## Contributing 53 | 54 | If you know of (or have created) a project that isn't listed here, please add it! :) 55 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Tools/BrowEdit"] 2 | path = Tools/BrowEdit 3 | url = https://github.com/Borf/browedit 4 | shallow = true 5 | [submodule "Tools/BrowEdit3"] 6 | path = Tools/BrowEdit3 7 | url = https://github.com/Borf/BrowEdit3 8 | shallow = true 9 | [submodule "Clients/Korangar"] 10 | path = Clients/Korangar 11 | url = https://github.com/vE5li/korangar 12 | shallow = true 13 | [submodule "Clients/roBrowser"] 14 | path = Clients/roBrowser 15 | url = https://github.com/MrAntares/roBrowserLegacy 16 | shallow = true 17 | [submodule "Clients/UnityRO"] 18 | path = Clients/UnityRO 19 | url = https://github.com/guilhermelhr/unityro 20 | shallow = true 21 | [submodule "Clients/midgarts"] 22 | path = Clients/midgarts 23 | url = https://github.com/rdw-forks/midgarts 24 | shallow = true 25 | [submodule "Clients/Aesir"] 26 | path = Clients/Aesir 27 | url = https://github.com/Temtaime/aesir 28 | shallow = true 29 | [submodule "Clients/RagnarokRebuild"] 30 | path = Clients/RagnarokRebuild 31 | url = https://github.com/Doddler/RagnarokRebuild 32 | shallow = true 33 | [submodule "Clients/RagnarokRebuildTCP"] 34 | path = Clients/RagnarokRebuildTCP 35 | url = https://github.com/Doddler/RagnarokRebuildTcp 36 | shallow = true 37 | [submodule "Clients/RagnarokJS"] 38 | path = Clients/RagnarokJS 39 | url = https://github.com/GodLesZ/rangarok-js 40 | shallow = true 41 | [submodule "Clients/Fimbulwinter"] 42 | path = Clients/Fimbulwinter 43 | url = https://github.com/rdw-forks/fimbulclient 44 | shallow = true 45 | [submodule "Clients/OpenRagnarok"] 46 | path = Clients/OpenRagnarok 47 | url = https://github.com/open-ragnarok/open-ragnarok 48 | shallow = true 49 | [submodule "Servers/RustRO"] 50 | path = Servers/RustRO 51 | url = https://github.com/nmeylan/rust-ro 52 | shallow = true 53 | [submodule "Servers/rAthena"] 54 | path = Servers/rAthena 55 | url = https://github.com/rathena/rathena 56 | shallow = true 57 | [submodule "Servers/Hercules"] 58 | path = Servers/Hercules 59 | url = https://github.com/HerculesWS/Hercules 60 | shallow = true 61 | [submodule "Servers/Midgard"] 62 | path = Servers/Midgard 63 | url = https://github.com/ViteFalcon/midgard 64 | shallow = true 65 | [submodule "Clients/Rustarok"] 66 | path = Clients/Rustarok 67 | url = https://github.com/bbodi/rustarok 68 | shallow = true 69 | [submodule "Tools/ro-str-viewer"] 70 | path = Tools/ro-str-viewer 71 | url = https://github.com/ADHSoft/ro-str-viewer 72 | shallow = true 73 | [submodule "Clients/Dolori"] 74 | path = Clients/Dolori 75 | url = https://gitlab.com/Dolori/Dolori.git 76 | shallow = true 77 | [submodule "Clients/Apocalypse"] 78 | path = Clients/Apocalypse 79 | url = https://github.com/JohoSleipnir/Apocalypse 80 | shallow = true 81 | [submodule "Clients/Gullinkambi"] 82 | path = Clients/Gullinkambi 83 | url = https://github.com/meh/Gullinkambi 84 | shallow = true 85 | [submodule "Clients/MidgardClient"] 86 | path = Clients/MidgardClient 87 | url = https://github.com/shikazu/MidgardClient 88 | shallow = true 89 | [submodule "Tools/zgrf"] 90 | path = Tools/zgrf 91 | url = https://github.com/zhad3/zgrf 92 | shallow = true 93 | [submodule "Tools/zrenderer"] 94 | path = Tools/zrenderer 95 | url = https://github.com/zhad3/zrenderer 96 | shallow = true 97 | [submodule "Tools/zextractor"] 98 | path = Tools/zextractor 99 | url = https://github.com/zhad3/zextractor 100 | shallow = true 101 | [submodule "Tools/GrfUnpack"] 102 | path = Tools/GrfUnpack 103 | url = https://github.com/exectails/GrfUnpack 104 | shallow = true 105 | [submodule "Tools/grf-reader"] 106 | path = Tools/grf-reader 107 | url = https://github.com/EmanuelJr/grf-reader 108 | shallow = true 109 | [submodule "Tools/RRF-Parser"] 110 | path = Tools/RRF-Parser 111 | url = https://github.com/Tokeiburu/Rrf-Parser.git 112 | shallow = true 113 | [submodule "Clients/UnityRO-SDK"] 114 | path = Clients/UnityRO-SDK 115 | url = https://github.com/def-not-a-game-studio/unityro-sdk.git 116 | shallow = true 117 | [submodule "Servers/aliter"] 118 | path = Servers/aliter 119 | url = https://github.com/rdw-forks/aliter 120 | shallow = true 121 | [submodule "Servers/exAthena"] 122 | path = Servers/exAthena 123 | url = https://github.com/supaMOBA/exAthena 124 | shallow = true 125 | [submodule "Tools/ROplusplus"] 126 | path = Tools/ROplusplus 127 | url = https://github.com/phaicm/ROplusplus.git 128 | shallow = true 129 | [submodule "Tools/GRFEditor"] 130 | path = Tools/GRFEditor 131 | url = https://github.com/Tokeiburu/GRFEditor.git 132 | shallow = true 133 | [submodule "Tools/ActEditor"] 134 | path = Tools/ActEditor 135 | url = https://github.com/Tokeiburu/ActEditor.git 136 | shallow = true 137 | [submodule "Tools/RSM2"] 138 | path = Tools/RSM2 139 | url = https://github.com/Tokeiburu/RSM2.git 140 | shallow = true 141 | [submodule "Servers/Helios"] 142 | path = Servers/Helios 143 | url = https://github.com/Tsusai/Ragnarok-HeliosEmulator/ 144 | shallow = true 145 | [submodule "Tools/roint"] 146 | path = Tools/roint 147 | url = https://github.com/open-ragnarok/roint 148 | shallow = true 149 | [submodule "Tools/luadec"] 150 | path = Tools/luadec 151 | url = https://github.com/viruscamp/luadec 152 | shallow = true 153 | [submodule "Clients/bevy_ro_client"] 154 | path = Clients/bevy_ro_client 155 | url = https://github.com/hukasu/bevy_ro_client 156 | shallow = true 157 | [submodule "Clients/roBrowser__RemoteClientPHP"] 158 | path = Clients/roBrowser__RemoteClientPHP 159 | url = https://github.com/MrAntares/roBrowserLegacy-RemoteClient-PHP.git 160 | shallow = true 161 | [submodule "Clients/roBrowser__RemoteClientJS"] 162 | path = Clients/roBrowser__RemoteClientJS 163 | url = https://github.com/FranciscoWallison/roBrowserLegacy-RemoteClient-JS 164 | shallow = true 165 | [submodule "Clients/roBrowser__Plugins"] 166 | path = Clients/roBrowser__Plugins 167 | url = https://github.com/MrAntares/roBrowserLegacy-plugins 168 | shallow = true 169 | [submodule "Clients/roBrowser__wsProxy"] 170 | path = Clients/roBrowser__wsProxy 171 | url = https://github.com/MrAntares/roBrowserLegacy-wsProxy 172 | shallow = true 173 | [submodule "Servers/horizon"] 174 | path = Servers/horizon 175 | url = https://github.com/rdw-forks/horizon.git 176 | shallow = true 177 | [submodule "Tools/gr2-web"] 178 | path = Tools/gr2-web 179 | url = https://github.com/herenow/gr2-web.git 180 | shallow = true 181 | [submodule "Tools/opengr2-bevy"] 182 | path = Tools/opengr2-bevy 183 | url = https://github.com/NoFr1ends/opengr2-bevy.git 184 | shallow = true 185 | [submodule "Tools/opengr2-viewer"] 186 | path = Tools/opengr2-viewer 187 | url = https://github.com/NoFr1ends/opengr2-viewer.git 188 | shallow = true 189 | [submodule "Tools/opengr2-rs"] 190 | path = Tools/opengr2-rs 191 | url = https://github.com/NoFr1ends/opengr2-rs.git 192 | shallow = true 193 | [submodule "Tools/opengr2"] 194 | path = Tools/opengr2 195 | url = https://github.com/arves100/opengr2.git 196 | shallow = true 197 | [submodule "Tools/Granny2-research"] 198 | path = Tools/Granny2-research 199 | url = https://github.com/arves100/Granny2-research.git 200 | shallow = true 201 | [submodule "Tools/GrannyConverterLibrary"] 202 | path = Tools/GrannyConverterLibrary 203 | url = https://github.com/Anohros/GrannyConverterLibrary.git 204 | shallow = true 205 | [submodule "Tools/liboodle"] 206 | path = Tools/liboodle 207 | url = https://github.com/LunaticInAHat/liboodle.git 208 | shallow = true 209 | [submodule "Tools/Knit"] 210 | path = Tools/Knit 211 | url = https://github.com/yretenai/Knit.git 212 | shallow = true 213 | [submodule "Clients/ragnarok-offline"] 214 | path = Clients/ragnarok-offline 215 | url = https://github.com/arkadeleon/ragnarok-offline.git 216 | shallow = true --------------------------------------------------------------------------------