Skip to content
RONiN edited this page Oct 4, 2021 · 4 revisions

SkyblockCore Documentation

GitHub release (latest by date including pre-releases) GitHub issues

This project consists on an advanced Skyblock core made to scale massively.

To start, the plugin requires a SQL connection, used to store the islands and all the player data If you do not have/need a SQL connection, change the storage type to SQLITE on the config.yml file


Technical Aspects

Each player currently occupies ~32.5KB max, with each island occupying ~4MB max on the SQL / MongoDB database. This means that group islands are heavily optimized, as each player stores an Island UUID, which is then referenced to get the Island itself.

All storage operations are done async (Island saving, pasting and regenerating) when possible.

Player inventories are stored via SQL aswell, meaning you can have 20 servers hosting this same plugin connected to the same database and it will seem as one.

Now for RAM / DISK usage on the instance itself, I'd say around 2GB DISK and 2GB RAM per instance

The islands are either saved in .mca (Mojang's format) or in .schematic (FAWE), format set in island-config.yml

Islands have their own worlds, which are loaded on demand

Servers communicate using the Plugin Messaging API, when doing any proxy <-> instance communication, or Redis when doing any proxy <-> proxy communication. The communication is done via a Packet system, that is implemented in the shared package


Some thoughts

SkyblockCore is incredibly difficult to develop, unlike a regular core, there is a lot of thought put into every line of code, the plugin is supposed to expect players switching across servers, proxies, players leaving mid-loading, different proxies for the same team members, all of it while handling all of the commands on the spigot side, so players on a survival server can't run skyblock commands.

It might not seem like it, but this project is absolutely massive on its current state, and I'd say it's about 15% done.

If you'd like to help with the project, even as someone without any code experience, here are some things that would greatly help me out:

  • Testing
  • Helping with the wiki
  • Writing issues
  • Planning
  • Donating (purely your choice, there's no benefit other than making me happy)

Wiki content

  • t
  • -t
  • t
  • t
  • t
  • t