|
1 | | -> This is a Minestom-implementation of a Hypixel-SkyBlock recreation hosted on my server at discord.gg/paper. This implementation is nowhere near complete and is not ready for production. There are still portions of the codebase which are messy and aren't following proper Minestom standard practice. |
2 | 1 | # Hypixel SkyBlock |
3 | 2 |
|
4 | | -[<img src="https://discordapp.com/assets/e4923594e694a21542a489471ecffa50.svg" alt="" height="55" />](https://discord.gg/paper) |
5 | | - |
6 | | -A 1.21.11 recreation of Hypixel SkyBlock utilizing Minestom, with the intention of actually having a properly abstracted, scalable codebase. This project is sisters with the [HypixelForums](https://github.com/Swofty-Developments/HypixelForums) project and optionally, can be used together. |
7 | | - |
8 | | -#### Releases |
9 | | - |
10 | | -Releases are auto deployed on push onto the GitHub releases page which can be found [here](https://github.com/Swofty-Developments/HypixelSkyBlock/releases). Updates are also periodically sent within my discord server located at [discord.gg/paper](https://discord.gg/discord.gg/paper). |
11 | | - |
12 | | -#### Javadocs |
13 | | - |
14 | | -Javadocs can be found [here](https://swofty-developments.github.io/HypixelSkyBlock/). |
15 | | - |
16 | | -## Recommended Device Specifications |
17 | | -This project is not meant to be a small server, and as such, it requires a decent amount of resources to run. The following are the minimum specifications for running this server: |
18 | | -- 16GB of RAM (4GB for MongoDB, 12GB across servers and services) |
19 | | -- 6 Cores (For sufficient multi-threading) |
20 | | -- 15GB of Storage |
21 | | - |
22 | | -## Setup Guide |
23 | | -A video of me going through the guide [can be found here](https://www.youtube.com/watch?v=pxzJbjjQL-M) |
24 | | -1. Ensure that you meet the recommended device specifications above. |
25 | | -2. Start a MongoDB service either locally or remotely, a guide for installation can be found [here](https://www.mongodb.com/try/download/community?tck=docs_server). |
26 | | -3. Ensure you have the `Java 25` SDK installed. |
27 | | -4. Start a Redis server, if you're on Windows you can run an installer [here](https://www.memurai.com/) |
28 | | -5. Follow the 'Proxy Setup Guide' below. (Note, if you want to run a cracked server, you must set "require-authentication" to true in your config) |
29 | | -6. Follow the 'Game Server Setup Guide' below. (Note, if you want to run a cracked server, you must set "require-authentication" to true in your config) |
30 | | -7. Follow the 'Service Setup Guide' below. |
31 | | -8. Follow the 'Resource Pack Setup Guide' below. |
32 | | -9. To give yourself ADMIN, log in and out of the server, go into your MongoDB compass, click on Minestom -> profiles and set your rank to "ADMIN". If there is not a rank field, create one just like `rank: ""ADMIN""`, log back in and you'll have it. |
33 | | - |
34 | | -### Proxy Setup Guide |
35 | | -1. Download 'SkyBlockProxy.jar' from the releases page [here](https://github.com/Swofty-Developments/HypixelSkyBlock/releases/tag/latest) |
36 | | -2. Download the Velocity proxy from [here](https://fill-data.papermc.io/v1/objects/303f9c60d5d75c52585c9e95efbc46d43ae8683efe7dee8763a16d6506681ee1/velocity-3.4.0-SNAPSHOT-528.jar) |
37 | | -3. Download `velocity.toml` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration) and move it to where you want your Proxy server to run. |
38 | | -4. Move your Velocity proxy JAR into that folder as well, and run the proxy using `java -jar velocity-3.4.0-SNAPSHOT-528.jar` as a command in that directory. |
39 | | -5. Close this proxy once it has generated the `plugins` folder, just by pressing `CTRL + C` or closing the CMD Prompt. |
40 | | -6. Move the `SkyBlockProxy.jar` from earlier into the plugins' folder. |
41 | | -7. Make a new folder where your `velocity.toml` is and call it `configuration` |
42 | | -8. Download `resources.json` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration) |
43 | | -9. Move this file into the `configuration` folder you just made. |
44 | | -10. Start the proxy again using `java -jar velocity-3.4.0-SNAPSHOT-528.jar`. This will need to be on for your game servers to work. |
45 | | - |
46 | | -### Game Server Setup Guide |
47 | | -1. Download 'HypixelCore.jar' from the releases page [here](https://github.com/Swofty-Developments/HypixelSkyBlock/releases/tag/latest) |
48 | | -2. Make a folder called `configuration` in the same directory as the JAR file. (Note this should be placed differently to where your Proxy is) |
49 | | -3. Download `resources.json` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration) |
50 | | -4. Move this file into the `configuration` folder you just made. |
51 | | -5. Create a folder called `skyblock` in the existing configuration folder. |
52 | | -6. Download the [world files for the SkyBlock Hub, Prototype Lobby, and Island worlds.](https://www.mediafire.com/file/xxnxgkqejlh17fn/HypixelRecreationWorlds.zip/file) |
53 | | -7. Get the Hypixel SkyBlock hub from the above download and put it in the configuration/skyblock/islands/ folder you made under the name `hypixel_skyblock_hub`, and the Island Template under `hypixel_skyblock_island_template`. |
54 | | -8. Get the Prototype lobby from the above download and put it in the configuration folder under the name `hypixel_prototype_lobby`.. |
55 | | -9. Get the item and collection folders from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) and put them into your configuration/skyblock/ folder. |
56 | | -10. There should be a `forwarding.secret` file where your Velocity JAR is, take this and put it into your `resources.json` under `velocity-secret`. |
57 | | -11. Run the jar using `java -jar {Insert the JAR file} SKYBLOCK_ISLAND`, this will create an Island server that will latch onto your running proxy. |
58 | | -12. To make other game servers for the other islands merely run the command above again but with different island types, you can see all the possible types [here](https://github.com/Swofty-Developments/HypixelSkyBlock/blob/7df2db59ef0f14281f332d2cf43fdbf8ab09e574/commons/src/main/java/net/swofty/commons/ServerType.java#L4). |
59 | | -13. Download `NanoLimbo.jar` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration), and download its configuration file from the same place. Start it in the background using `java -jar NanoLimbo-1.9.8.jar`. After running, a `settings.yml` file will be generated. Open it and scroll down till you see `secret: ''`. Put your velocity forwarding secret in there. Make sure that the `type` is set to `MODERN`. |
60 | | -14. Download `Minestom.regions.csv` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) and upload them to the `regions` collection made in your Mongo after starting the server. Once you have done this restart your server. |
61 | | -15. If you wish to have fairy souls, download `Minestom.fairysouls.csv` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) and upload them to the `fairysouls` collection made in your Mongo after starting the server. Once you have done this restart your server. |
62 | | -16. If you wish to have the Hub crystals (you can also just `/addcrystal`), download `Minestom.crystals.csv` from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) and upload them to the `crystals` collection made in your Mongo after starting the server. Once you have done this restart your server. |
63 | | -17. (OPTIONAL) If you wish to have Songs on your server, copy the `songs` folder from [here](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock), and put it inside your configuration folder. |
64 | | - |
65 | | -### Service Setup Guide |
66 | | -1. Due to the nature of SkyBlock, there may be a variety of services that need to be run. Go to the releases page [here](https://github.com/Swofty-Developments/HypixelSkyBlock/releases/tag/latest) and download any .JAR files that start with `Service`. |
67 | | -2. Move these JAR files into the same directory as your Game Servers, they will share the configuration JSON with the services. |
68 | | -3. Run them using `java -jar {Insert the JAR file}`. |
69 | | - |
70 | | -### Forums Website Setup Guide |
71 | | -1. Ensure that your API service is running. |
72 | | -2. Follow the steps found at [the HypixelForums repository](https://github.com/Swofty-Developments/HypixelForums). |
73 | | - |
74 | | -### Resource Pack Setup Guide |
75 | | -1. In preparation for SkyBlock version 1, we already have a resource pack system setup. To start, download the `SkyBlockPacker.jar` from the releases page [here](https://github.com/Swofty-Developments/HypixelSkyBlock/releases/tag/latest). |
76 | | -2. Download the [pack_textures](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) and [SkyBlockPack](https://github.com/Swofty-Developments/HypixelSkyBlock/tree/master/configuration/skyblock) folders and move them where the packer JAR is. |
77 | | -3. Run the packer JAR using `java -jar SkyBlockPacker.jar -v (Location of SkyBlockPack) -o (Output Directory) -t (Location of Pack Textures)`. |
78 | | -4. Once this has finished, you should have a resource pack in the output directory you specified. Merely apply this on Minecraft and you'll be good to go. |
79 | | - |
80 | | - |
81 | | -## 🐋 Running with Docker |
82 | | -- Install the git repository using `git clone https://github.com/Swofty-Developments/HypixelSkyBlock.git` |
83 | | - |
84 | | -Most parts about downloading and setting up files will be automated for you, but you will need to add the following files to the `configuration` folder: |
85 | | - |
86 | | -- Download the [world files for the Hub and Island worlds](https://www.mediafire.com/file/xxnxgkqejlh17fn/HypixelRecreationWorlds.zip/file). Make sure they are named as **world.zip** |
87 | | - |
88 | | -- In your configuration file Remove the default `resources.json` and rename `resources.json.docker` to `resources.json` |
89 | | - |
90 | | -## Running the containers! |
91 | | - |
92 | | -- (Recommended) Install Docker Desktop from [here](https://www.docker.com/products/docker-desktop). |
93 | | -- Open Docker Desktop/Docker and ensure that it is running. |
94 | | -- Open a terminal and navigate to the directory where you cloned the repository. |
95 | | -- Run the following command to build and run the containers (Your Server): |
| 3 | +[<img src="https://discordapp.com/assets/e4923594e694a21542a489471ecffa50.svg" alt="Discord" height="55" />](https://discord.gg/ZaGW5wzUJ3) |
96 | 4 |
|
97 | | -```bash |
98 | | -docker-compose up --build |
99 | | -``` |
| 5 | +A 1.21.11 Minestom-based recreation of Hypixel SkyBlock with a properly abstracted, scalable microservices architecture. |
100 | 6 |
|
101 | | -- If you want to run the server in detached mode, you can use the `-d` flag: |
| 7 | +> **Note**: This implementation is under active development and is not yet production-ready. |
102 | 8 |
|
103 | | -```bash |
104 | | -docker-compose up --build -d |
105 | | -``` |
106 | | -> Note: If you have already run the server before with `docker-compose up --build` you can just run `docker-compose up` to start the server without rebuilding the images making it faster. |
| 9 | +## Documentation |
107 | 10 |
|
108 | | -- To stop the containers, you can use: |
| 11 | +Full documentation is available at **[opensource.swofty.net](https://opensource.swofty.net)** |
109 | 12 |
|
110 | | -```bash |
111 | | -docker-compose down |
112 | | -``` |
| 13 | +- [Getting Started](https://opensource.swofty.net/docs/introduction) |
| 14 | +- [Requirements](https://opensource.swofty.net/docs/requirements) |
| 15 | +- [Setup Guide](https://opensource.swofty.net/docs/setup/proxy) |
| 16 | +- [Docker Deployment](https://opensource.swofty.net/docs/docker/setup) |
| 17 | +- [Server Types Reference](https://opensource.swofty.net/docs/reference/server-types) |
| 18 | +- [Services Reference](https://opensource.swofty.net/docs/reference/services) |
| 19 | +- [Troubleshooting](https://opensource.swofty.net/docs/troubleshooting) |
113 | 20 |
|
114 | | -Or click the stop button in Docker Desktop. |
115 | | - |
116 | | -### How to add new servers using Docker? |
117 | | -To add new servers like the Hub, Islands or Farming Island follow these steps: |
118 | | -1. Open the `docker-compose.yml` file. |
119 | | -2. Modify the following template and add it to the `docker-compose.yml`. (Make sure to use proper indentation): |
120 | | - |
121 | | -```yaml |
122 | | -<server_name>: |
123 | | - image: game_server_prepared |
124 | | - container_name: <server_name> |
125 | | - restart: "unless-stopped" |
126 | | - environment: |
127 | | - SERVICE_CMD: java -jar HypixelCore.jar <ServerType> |
128 | | - depends_on: |
129 | | - proxy: |
130 | | - condition: service_healthy |
131 | | - game_server_builder: |
132 | | - condition: service_started |
133 | | - volumes: |
134 | | - - ./configuration:/app/configuration_files |
135 | | - networks: |
136 | | - - hypixel_network |
137 | | -``` |
| 21 | +## Quick Links |
138 | 22 |
|
139 | | -3. Replace `<server_name>` with a unique name for your server (e.g., `hub`, `island_1`, etc.). |
140 | | - |
141 | | -4. Replace `<ServerType>` with the appropriate server type (e.g., `SKYBLOCK_HUB`, `SKYBLOCK_ISLAND`, etc.) |
142 | | - |
143 | | -Example: |
144 | | - |
145 | | -```yaml |
146 | | -hypixelcore_hub2: |
147 | | - image: game_server_prepared |
148 | | - container_name: hypixelcore_hub2 |
149 | | - restart: "unless-stopped" |
150 | | - environment: |
151 | | - SERVICE_CMD: java -jar HypixelCore.jar SKYBLOCK_HUB |
152 | | - depends_on: |
153 | | - proxy: |
154 | | - condition: service_healthy |
155 | | - game_server_builder: |
156 | | - condition: service_started |
157 | | - volumes: |
158 | | - - ./configuration:/app/configuration_files |
159 | | - networks: |
160 | | - - hypixel_network |
161 | | -``` |
| 23 | +- [Releases](https://github.com/Swofty-Developments/HypixelSkyBlock/releases) |
| 24 | +- [Javadocs](https://swofty-developments.github.io/HypixelSkyBlock/) |
| 25 | +- [Discord](https://discord.gg/ZaGW5wzUJ3) |
| 26 | +- [Video Guide](https://www.youtube.com/watch?v=pxzJbjjQL-M) |
162 | 27 |
|
163 | | -## Common Issues |
164 | | -1. `redis.clients.jedis.exceptions.JedisConnectionException: Failed to connect to any host resolved for DNS name.` |
| 28 | +## Features |
165 | 29 |
|
166 | | - ⇒ Your Memurai isn't running. If this can not be fixed, try out [this](https://github.com/tporadowski/redis/releases) instead. |
167 | | -2. Having issues connecting to the server? |
| 30 | +- **Multi-Server Architecture** - 13 server types (SkyBlock + BedWars) |
| 31 | +- **Microservices** - 8 independent services (Auctions, Bazaar, Party, etc.) |
| 32 | +- **Redis Communication** - Real-time inter-service messaging |
| 33 | +- **MongoDB Storage** - Persistent data storage |
| 34 | +- **Velocity Proxy** - Load balancing and player routing |
| 35 | +- **Docker Support** - Full Docker Compose deployment |
| 36 | +- **Java 25** - Modern Java with virtual threads |
168 | 37 |
|
169 | | - ⇒ Check if your velocity secret is the same everywhere including the limbo config. |
| 38 | +## Requirements |
170 | 39 |
|
171 | | -3. `You have strayed too far from the spawn! Teleporting you back...` when joining an island? |
| 40 | +- 16GB+ RAM |
| 41 | +- 6+ CPU Cores |
| 42 | +- Java 25 |
| 43 | +- MongoDB |
| 44 | +- Redis |
172 | 45 |
|
173 | | - ⇒ You didn't import your regions (correctly). |
| 46 | +See the [full requirements](https://opensource.swofty.net/docs/requirements) for details. |
174 | 47 |
|
175 | | -4. Still having issues? |
| 48 | +## Quick Start |
176 | 49 |
|
177 | | - ⇒ Make sure that you followed everything correctly. If that didn't help, join our discord and ask for help in #code-help. Please provide screenshots of all your consoles! |
178 | | -### Pinging staff members won't solve your issue faster! |
| 50 | +```bash |
| 51 | +# Clone the repository |
| 52 | +git clone https://github.com/Swofty-Developments/HypixelSkyBlock.git |
| 53 | + |
| 54 | +# Docker deployment |
| 55 | +docker-compose up --build |
| 56 | +``` |
| 57 | + |
| 58 | +For manual setup, follow the [documentation](https://opensource.swofty.net/docs/setup/proxy). |
| 59 | + |
| 60 | +## Related Projects |
| 61 | + |
| 62 | +- [HypixelForums](https://github.com/Swofty-Developments/HypixelForums) - Web forum integration |
179 | 63 |
|
180 | 64 | ## Credits |
181 | 65 |
|
182 | | -Thanks to: |
183 | | -* All the lovely people in the Minestom discord for single-handedly carrying all of my knowledge about this API. |
184 | | -* Myself and any other contributors, who can be viewed [HERE](https://github.com/Swofty-Developments/HypixelSkyBlock/graphs/contributors). |
| 66 | +Thanks to the Minestom community and all [contributors](https://github.com/Swofty-Developments/HypixelSkyBlock/graphs/contributors). |
| 67 | + |
| 68 | +## License |
| 69 | + |
| 70 | +See repository for license details. |
0 commit comments