Skyblock is online again!

Published on 25 Jan 2020 by Lekro

We are pleased to announce that the 1.15.1 update for Skyblock is live on CubeKrowd! This update was a rough ride for Skyblock, so we want to document here what happened and how we solved it. We transferred 18201 islands and 29144 players to a new plugin called BentoBox, and migrated all configurations to the new format.

Skyblock on CK has a rich history. Our first skyblock used the uSkyBlock plugin, until April 1, 2015, when we switched to ASkyBlock and reset the world to the current one. This world has seen a lot - almost as much as the creative world! If you lost your island during the hard drive crash long ago and log into your island and find that it is “unowned” (check /is info), contact a moderator to have your island manually reassigned to you!

Special thanks

As usual, the skyblock update was not a developer-only effort, so we would like to provide special acknowledgments to the following very helpful people:

  • zorua162: migrating all the challenges, greenhouses, and block value configurations to the new format, and working with Doskeys on design
  • Doskeys: designing new challenges, greenhouses, and block value
  • TALLPUP: designing challenges and making game balance decisions
  • Poslovitch from the BentoBox development team: providing useful insight and help on writing our own converter

And as usual, the CK moderation team worked together to design new challenges, greenhouses, and the in-game experience!

Known issues

Those interested in immediately returning to their skyblock islands should be advised of the following.

  • Island names have been reset.
  • Greenhouses have been reset. You will need to reregister greenhouses with the /g command.
  • The island level calculation algorithm has changed slightly.
  • The spawn cow’s name is now always CubeCow and island sign is empty.
  • While converting, we found that 44 players likely lost an old island and decided to play on a new one. These players now have two islands. If you are one of the affected players, you will receive a /mail in /ckc (lobby) or a Discord message. Please contact the moderation team in this case. We were able to pick the right island (the developed, non-starter one) for 30 players, but sent mails/Discord messages to 14 players.

Changelog

  • CK Skyblock has been updated from 1.12.2 to 1.15.1.
  • We have switched from ASkyBlock to BentoBox/BSkyBlock.
  • The starter chest now contains three wool to help avoid phantoms more easily.
  • Because emeralds are so much easier to obtain since 1.14, emerald blocks now have a value of 25.
  • To encourage efficiency in hopper usage, hoppers now have a value of -10.
  • Re-added JL’s Yogurt biome.
  • Many commands have changed! Run /is help and /is team help for more information.
  • Added new 1.13.2 and 1.14.4 related challenges. (Thanks zorua162 and Doskeys)
    • Renamed challenge tiers Novice to Beginner, Competent to Novice, Expert to Competent.
    • Added a new Expert challenge tier and moved DJ, Gem Collector, Culinary Artist, Head Hunter, It Takes a Village, It’s a Party!, and It’s a Monster Party! to the new tier.
    • Added new challenges: Bamboozled (Beginner), Kelp Harvest (Beginner), Nautilus Catcher (Novice), Notch Snack (Competent), Fish Bucket (Advanced), Blue Ice Bling (Expert), and Membrane Scavenger (Expert).
    • Moved Enderpearls to Novice and added an extra blaze rod to its initial reward.
    • Added parrot eggs to rewards for Seedbank.
    • Removed bed requirement for Homestead.
    • Reduced repeat spawn eggs rewarded by 1 and increased repeat shulker shells rewarded to 4 for Purple Thumb.
    • Swapped icons for Baker and It’s a Party!
    • Decreased initial reward rails from 256 to 32 and repeat reward rails to 10 for Pioneer. We encourage players to use rail dupers!
    • Beaconator now awards 9 iron blocks and a bell instead of different variants of stone.
    • My Precious was renamed to Iron Giant.
    • Replaced reward for It Takes a Village from 4 hoppers to an emerald block.
    • Added an iron block to rewards for Island Master.
    • Added a gold block to rewards for Island Duke.
    • Added an extra diamond block and emerald block to rewards for Island King.
    • Added an extra diamond block to rewards for Island Overlord.
    • Added 2 extra diamond blocks to rewards for Island Demigod.
    • Changed XP rewards to be fully consistent within each tier. Beginner challenges now award 30 initial and 10 repeat XP, Novice challenges reward 50 initial and 15 repeat XP, Competent challenges reward 75 initial and 20 repeat XP, Advanced challenges reward 100 initial and 20 repeat XP, Expert challenges reward 200 initial and 20 repeat XP, and Elite challenges reward 300 initial and 30 repeat XP.
  • /bulkc aliases to /c complete now. [added 2020-01-28]

The migration story

The migration of player and island data from ASkyBlock to BSkyBlock posed a challenge, particularly for CK, because our ASB player files have been through at least one stage of corruption and one hard disk crash! As a result, we had player files split between three directories and a number of islands missing from the database.

The major problem we had during the 1.13 update was that ASkyBlock was to be superseded by BentoBox/BSkyBlock and the authors decided to drop support for the plugin. There was also no migration tool available to convert ASkyBlock configs to BSkyBlock format. So, we thought it would be best to fork ASkyBlock and update it to 1.13, but this turned out to be more difficult than we initially thought. Forking the project would mean that we would have all the maintenance burden in the future as well, and we already have quite a few projects to maintain!

After putting skyblock on the backburner for a while, we found out that the BentoBox folks released an official converter! We were able to then see how BentoBox would work for CK Skyblock. zorua162 provided greenhouse, blockvalue, and challenge configurations. Initial results using the converter were promising, but had a number of problems:

  • Homes and challenge completions did not convert. We wrote python scripts to transfer these.
  • Certain islands failed to convert.
  • Islands were missing due to problems with our ASB data.

Specifically, missing islands caused BentoBox 1.9.2 to take a very long time to search for valid island locations, and development snapshots of BentoBox 1.10.0 used these missing islands as valid locations, which caused new island generation to happen right on top of old missing islands. Of course, neither of these would be acceptable for CK, so it was necessary to find some way to “mark” these islands as invalid spots for generation. As a result, we decided to write our our own conversion script which would take care of all issues unique to CK’s ASB files.

pya2b was developed over the course of a few weeks and aimed to provide BSB versions of players, islands, challenge completions, warps, homes, island levels, and the top ten scoreboard. All other database values and configurations were simply copied from the ones used with upstream’s converter. We added extra island and player file reconstruction:

  • Player files of island members also contained the team leader uuid and island center, so we were able to reconstruct islands from island members’ player files.
  • All islands had one bedrock at the center with y=115. We were able to mark bedrock blocks whose coordinates were not included in any player files, and turn them into “unowned” islands.
  • Certain islands were present in older backups of the configs, but not the latest version. We were able to restore these islands, provided they did not coincide with islands described in later versions of player files.

With all this in place, we were able to reconstruct even islands that were inaccessible/corrupted in ASkyBlock. After some finishing touches, Skyblock is ready!