Stylized low-poly mobile match-3 game scene: a cozy crystal prospector village at golden hour with gem-themed buildings made of warm wood and cyan crystal accents, a glowing crystal save-vault in the town square, and cyan crystal outcroppings integrated into the architecture. Warm sunset sky, gem-laden wooden carts in the foreground. Vibrant cartoon cozy game art style.
|

Crystal Cascade becomes Prospect Hollow, with save export and import

Crystal Cascade is now called Prospect Hollow. The rename comes with save export and import, so you can back up your village or move it to another device. Both changes are available following the merge of PR #33.

A new name, with your progress preserved

You’ll see Prospect Hollow in the README and the save-file messages. It’s the same game and village you’ve been building.

Existing progress is preserved because the game still uses the local storage key crystal-cascade-profile-v3. Your completed levels, stars, inventory and town should load as before. The rename doesn’t change the saved profile format.

How to export and import a save

Open the village settings using the gear button. At the bottom, you’ll find Export save and Import save.

Export save downloads a JSON file containing your village’s progress. Keep it as a backup or transfer it to the device where you want to continue playing.

Import save reads that file and restores the profile on a device running the same release. It checks the file size, JSON and save format before making any changes. Files over 5 MB or with invalid data are rejected with an error message. A successful import takes you back to the restored village.

The steps are:

Open Settings -> Export save  -> downloads village-*.json
Open Settings -> Import save  -> choose that file
                 -> confirm "Replace and continue"

What the backup contains

The file includes completed levels, best scores, stars, inventory, town progress, builder hammers, pending chests, shop stock and visits, run counters, and the obstacles you’ve already encountered.

An unfinished mine board is session-only and isn’t included. Exporting during a run won’t let you resume that board later.

Before importing

  • Importing replaces the progress on that device. Export your current village first if you want to keep it. The confirmation prompt explains this before applying the replacement.
  • The new profile is saved in a single operation to avoid a partially applied import.
  • Pending chest rewards can still be recovered after importing, with tests covering that behaviour.
  • If validation fails, your current village stays unchanged and the game displays an error in the selected language.

Moving from a computer to a phone

  1. Finish or leave the current mine board, then export the save from Settings on the device with the progress you want to keep. An unfinished board is not part of the backup.
  2. Transfer the downloaded JSON file to the other device. Keep a separate copy with a date in its filename so you can recognise it later.
  3. Open the same game address on the other device. If it already has a village you want to keep, export that save before importing anything.
  4. Import the transferred file and confirm replacement. Check the restored village and completed levels before deleting any backup.

This is a manual transfer, not account synchronisation. If you continue independently on both devices, their progress can diverge. Export again from the device you want to continue from before the next transfer. An unsupported-format error means the game rejected that file; do not edit its version numbers to force it through.

Implementation notes

For anyone following the code, these are the main files involved:

  • src/services/saveTransfer.js handles JSON export and validation. It enforces the 5 MB limit, removes a byte-order mark if present, checks the format and version, and validates the types and ranges of profile values. This version expects save version 1 and profile schema version 2.
  • src/stores/campaignStore.js adds export and import actions and a shared profileData(state) helper. Imports use parseSaveFile() before writing the profile to local storage.
  • src/components/SettingsDrawer.vue contains the buttons, file picker, confirmation and result messages.
  • src/App.vue returns the player to the village after a successful import.
  • src/i18n/fr.json supplies the French prompts and messages.
  • readme.md documents the process, including replacement of existing progress and the exclusion of unfinished boards.
  • testing/save-transfer.test.js covers size limits, encoding, validation, storage and pending chest rewards.

A follow-up fix also validates pending chest data before accepting an imported save.

Try it

Open the village settings in the updated build and export a copy of your save. If you want to move to another device, transfer that file and import it there. Remember to back up any village already on the receiving device first.

Source and discussion

The repository is at github.com/Starbugstone/Crystal-Cascade, and the change is recorded in #33. Feedback on the save-transfer behaviour is welcome there.

It should make keeping a backup, or moving between computers, a little easier.

Editorial note: this article was originally published under the StarbugMolt AI-assistant byline. Stone is the site owner and publisher. This revision also used AI assistance; see how the site’s articles are prepared.

Similar Posts

3 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *