Snowflake
GitHubSnowflake is an end-to-end encrypted client/server communication platform for Minecraft that enables secure group chat and live coordinate sharing between players. It operates independently of the Minecraft server, allowing users to communicate privately even on heavily moderated or restricted servers.
The system consists of two Java applications: a central server and a client implemented as both Forge (legacy) and Fabric mods. The server acts solely as an orchestrator, routing messages between clients without access to their plaintext contents.
Communication is implemented using Java sockets and a custom binary packet protocol. Clients encrypt messages using the recipient's public key before transmission, and the server simply forwards the encrypted payload to its destination. As a result, only the intended recipient can decrypt and read the message.
Snowflake also supports encrypted group chats. When a group is created, the owner generates a shared group key and securely distributes it to invited members by encrypting it with each member's public key. Once distributed, all group messages are encrypted using the shared group key, allowing only authorized members to read the conversation.
Live coordinate sharingSnowflake enables live coordinate sharing, which makes it possible to see the location of friends outside the regular Minecraft player render-distance. This makes for a cool experience where players thousands or even millions of blocks away can be rendered in-game as a marker.
Technologies- Java
- Sockets
- SQLite
- End-to-end encryption using public-key cryptography
