Skip to main content


Github
GD Storage

Hide any file inside a Geometry Dash level

Features • Installation • Usage • How It Works • Configuration • Acknowledgments • License

Features

  • Upload to GD Servers - Store files on RobTop's servers, get a level ID to share
  • Fetch from GD Servers - Download and decode files using just a level ID
  • Local Save Support - Inject encoded levels directly into your GD save file
  • Cross-Platform - Works on Windows, macOS, and Linux (via Proton)
  • Configurable - Custom GD save paths for non-standard installations
  • Secure - Path traversal protection, input validation, overwrite confirmation

Installation

Requires Python 3.10+

pip install gd-storage

Or install in development mode:

git clone https://github.com/c4k3ss/GD-Storage
cd GD-Storage
pip install -e .

Usage

# Upload a file to GD servers
gd-storage --upload photo.png

# Download and decode from GD servers
gd-storage --fetch 123456789

# Encode and inject into local GD save
gd-storage --encode document.pdf

# Decode from local GD save
gd-storage --decode "LevelName"

# Configure GD save path (for non-standard installations)
gd-storage --config

How It Works

Files are encoded using a base-9999 group encoding method:

  1. Compression - The file is gzip compressed with the filename prepended
  2. Chunking - Binary data is split into 8-byte chunks
  3. Base Conversion - Each chunk is converted to 5 base-9999 numbers (1-9999)
  4. Object Encoding - Numbers are stored in GD object group properties
  5. Level String - Objects are serialized into a valid GD level string

Why Base-9999?

GD supports 10 groups per object (1-9999). By treating group numbers as digits in a base-9999 number system, we can efficiently pack 8 bytes into just 5 group values, achieving ~62.5% space efficiency.

Configuration

On first run, GD Storage auto-detects your save path:

  • Windows: %LOCALAPPDATA%\GeometryDash
  • macOS: ~/Library/Application Support/GeometryDash

For custom paths (Linux/Proton, custom installs), run:

gd-storage --config

Config is saved to ~/.config/gd-storage/config.json

Platform Support

Platform Local Save Upload/Fetch
Windows Yes Yes
macOS Yes Yes
Linux Yes* Yes

*Linux requires configuring the Proton GD save path manually

Dependencies

Acknowledgments

Save file handling is based on a modified version of PyCCGameManager.

License

GD Storage is licensed under the MIT License

Disclaimer

This project is for educational purposes. Use responsibly and don't abuse GD's servers.


GitHub @c4k3ss  ·  Twitter @_c4k3ss  ·  Bluesky @c4k3ss

Metadata

Release files for gd-storage 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gd-storage 1.0.9
File Size Uploaded
gd_storage-1.0.9.tar.gz 18.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gd-storage 1.0.9
File Interpreter ABI Platform
gd_storage-1.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 39.6 kB

Release files / gd_storage-1.0.9.tar.gz

Download URL gd_storage-1.0.9.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b7a6cd26f41cea2ec87d3b9bdc2136d77dddfb25ede6c204c1108f2c3f4cb8b9
BLAKE2b-256 checksum
How to use checksums
13cacaf91713497755ceb91617b6a93931220bd50338c281e1408ff7f0be9449
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / gd_storage-1.0.9-py3-none-any.whl

Download URL gd_storage-1.0.9-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a38fb48d704bb9ca7f6fa0243005a243f5822268d51486af76d591e8a7f686fc
BLAKE2b-256 checksum
How to use checksums
d427454ffa3fc269390291623bda294f32308d7d1254d4032c5cbc3149cdda53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

1.0.9 This release

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page