The HYTOPIA World Editor is a powerful 3D voxel building tool available at https://build.hytopia.com. Similar to Minecraft's creative mode but designed specifically for HYTOPIA, our editor allows you to create immersive 3D worlds using voxel blocks, custom textures, and interactive elements.
This repository is open-sourced to enable community contributions. We encourage you to fork this repository and submit new features or bug fixes via pull requests. All accepted pull requests will be deployed to https://build.hytopia.com for the community to use.
- Intuitive 3D voxel building interface
- Block/GLTF placement and manipulation tools
- Custom texture support
- AI generation (textures & structures)
- Automatic terrain generation
- Minecraft 1.21 map conversion
- Persistent data
- Map import and export
Bounties are requests for bug fixes, refactors, or feature additions that meet certain criteria and are submitted as a pull request. The HYTOPIA team will review your PR relative to the bounty you're submitting it for, and if your PR is accepted, the designated bounty for the request will be awarded.
Additionally! If you have found a bug, issue with the world editor, or believe a specific feature would be valuable, you can submit it via a Github issue here.
If your issue, request or bug is escalated by our team to become a bounty, you will be included in the official bounty issue, and receive 10% of the total bounty amount after you or another developer submits a pull request we deem acceptable to fulfill the bounty. That means, if a bounty is escalated and has a $500 reward, you as the submitter would receive $50, the developer whos PR is accepted for the bounty would receive $500. Bounty payments are distributed by the HYTOPIA team via PayPal.
- Bun installed on your system
- Basic knowledge of React and TypeScript
- Understanding of 3D concepts and voxel-based building
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
Note: this is a one-way operation. Once you eject, you can't go back!
If you aren't satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature.
The HYTOPIA World Editor is also available as a desktop app powered by Electron for improved performance, native windowing and GPU acceleration.
- macOS, Windows, Linux builds are generated with
electron-builder. Until automated releases are set up, build locally using the commands below.
- Install dependencies:
bun install(ornpm install) - Start the desktop app in dev mode:
bun run electron:dev- This runs the web app at
http://localhost:3000and launches Electron to load it.
- Build the web bundle for Electron (file:// safe paths):
bun run build:electron
- Create distributables:
bun run electron:dist- Outputs installers in the
dist/directory for your OS.
- The desktop build sets
PUBLIC_URL=./so assets resolve underfile://. - Web Workers created via
new URL('...worker.js', import.meta.url)continue to function under Electron. - External links open in your default browser from the Electron app.
The editor uses a block manifest system to ensure stable block IDs across deployments. This prevents existing builds from breaking when new blocks are added.
- Block Manifest File: Located at
src/js/blocks/block-manifest.json, this file maps block names to their stable IDs - Stable IDs: Default blocks maintain their IDs even when new blocks are added
- Baseline Commit: The manifest is based on commit
0a88ccc511213ad550d47d915b0bf71acdfed1a7to ensure all blocks that existed at that point have stable IDs - New Blocks: When new blocks are discovered, they're assigned IDs starting from the highest ID in the manifest + 1
- Warnings: The system will warn you in the console if new blocks are found that aren't in the manifest
The manifest was generated from commit 0a88ccc511213ad550d47d915b0bf71acdfed1a7 to establish the baseline. To regenerate from a different commit:
node scripts/generate-manifest-from-commit.js <commit-hash>This script will:
- Checkout blocks from the specified commit
- Generate manifest with IDs 1-N for those blocks
- Restore current blocks
- Extend the manifest with any new blocks found in current state
When you add new block textures to public/assets/blocks/, run:
node scripts/update-block-manifest.jsThis script will:
- Discover all blocks in the assets directory
- Add any new blocks to the manifest with appropriate IDs (starting from the highest existing ID + 1)
- Remove blocks that no longer exist
- Sort the manifest by ID for readability
- Add your block texture files to
public/assets/blocks/ - Run
node scripts/update-block-manifest.jsto update the manifest - Commit both the new block files and the updated manifest
This ensures that:
- Existing builds continue to work (their block IDs don't change)
- New blocks get stable IDs that won't shift
- The manifest serves as documentation of all available blocks
voxel editor, 3D world builder, HYTOPIA, Minecraft alternative, game development tool, voxel game, 3D modeling, world creation, game design, voxel art
© 2025 HYTOPIA. All rights reserved.
