Souza Skygrid
A Skygrid world generator plugin for Hytale servers. Creates a unique survival experience where individual blocks are scattered in a 3D grid pattern floating in the void.
What is Skygrid?
Skygrid is a challenging survival map format where:
- Single blocks are placed in a precise 3D grid pattern (blocks spaced 4 apart by default)
- Blocks float in the void with empty space between them
- Players must carefully navigate between floating blocks to survive
- Over 200 different block types including ores, wood, stone, and soil
Features
- Custom World Generation - Automatic skygrid world creation on server startup
- 200+ Block Varieties - Includes rocks, ores, soils, and wood from Hytale's block palette
- Configurable Grid - Adjust spacing, Y-level bounds, and block types
- Teleport Command -
/skygridteleports players to random locations with safe spawn detection - Cooldown System - Configurable teleport cooldown to prevent spam
- Deterministic Generation - Same coordinates always generate the same block type
Installation
- Download the latest release from Releases
- Place the JAR file in your Hytale server's
modsfolder - Start the server - the skygrid world will be created automatically
Configuration
Configuration is stored in plugins/Hytale/Skygrid/config.json and is generated on first run.
World Settings
| Option | Default | Description |
|---|---|---|
WorldName |
skyworld |
Name of the skygrid world |
Environment |
Surface |
World environment type |
GridSpacing |
4 |
Distance between blocks in the grid |
MinY |
64 |
Lowest Y level for block generation |
MaxY |
192 |
Highest Y level for block generation |
Teleport Settings
| Option | Default | Description |
|---|---|---|
TeleportMinX |
-1000 |
Minimum X coordinate for random teleport |
TeleportMaxX |
1000 |
Maximum X coordinate for random teleport |
TeleportMinZ |
-1000 |
Minimum Z coordinate for random teleport |
TeleportMaxZ |
1000 |
Maximum Z coordinate for random teleport |
TeleportCooldownSeconds |
30 |
Cooldown between /skygrid command uses |
Customizing Blocks
The Blocks array in the config contains all block types that can generate. You can add or remove blocks to customize your skygrid experience.
Default block categories:
- Rock Blocks (70) - Stone, Basalt, Marble, Sandstone, Slate, Quartzite, etc.
- Ore Blocks (58) - Iron, Copper, Gold, Silver, Cobalt, Mithril, Adamantite, and more
- Soil Blocks (32) - Dirt, Grass, Sand, Clay, Gravel, Snow, Mud
- Wood Blocks (40) - Various tree trunks and planks
Commands
| Command | Description | Permission |
|---|---|---|
/skygrid |
Teleport to a random location in the skygrid world | skygrid.teleport |
Permissions
| Permission | Description |
|---|---|
skygrid.teleport |
Allows the player to use the /skygrid command |
Building from Source
Requirements
- Java 25+
- Gradle 8+
Build Steps
# Clone the repository
git clone https://github.com/DevSrSouza/SouzaSkygrid.git
cd SouzaSkygrid
# Build the plugin
./gradlew shadowJar
# Output JAR will be in build/libs/
Development Setup
- Place
HytaleServer.jarin thelibs/directory - Run
./gradlew buildto compile - Use
./gradlew deployto copy the JAR to your test server
Project Structure
souza-skygrid/
├── src/main/kotlin/dev/srsouza/hytale/skygrid/
│ ├── SkygridPlugin.kt # Main plugin entry point
│ ├── commands/
│ │ └── SkygridCommand.kt # /skygrid command
│ ├── config/
│ │ ├── SkygridConfig.kt # Configuration data classes
│ │ └── SkygridMessages.kt # Customizable messages
│ ├── worldgen/
│ │ ├── SkygridWorldGen.kt # World generation algorithm
│ │ ├── SkygridWorldGenProvider.kt# Generator provider
│ │ └── SkygridWorldManager.kt # World management
│ └── util/
│ └── SkygridSpawnFinder.kt # Safe spawn detection
├── src/main/resources/
│ └── manifest.json # Plugin manifest
├── build.gradle.kts
└── settings.gradle.kts
Dependencies
- Kotlin 2.3.20-Beta1
- Kotlinx Coroutines 1.9.0
- Hytale Server API
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Gabriel Souza
- Email: [email protected]
- GitHub: @DevSrSouza
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request

