RuneCore is a modular magic system designed for future Hytale modding. It is fully engine-agnostic and written in pure Java, allowing development and testing even before the Hytale API is available.
- Mana-based spell casting
- Cooldown system
- Consumable runes
- Multiple magic schools
- Player level requirements
- Fully testable without a game engine
- The player selects a spell
SpellCastervalidates:- Player level
- Available mana
- Cooldown status
- Required rune (if any)
- Resources (mana and rune) are consumed
- The spell logic is executed using
SpellContext
com.cookie.runecore
├── api # Core contracts (Spell, SpellContext)
├── casting # Spell casting validation and execution
├── cooldown # Cooldown management
├── player # Magic player data (mana, level, runes)
├── rune # Runes and rune registry
├── school # Magic schools
├── spell
│ ├── impl # Spell implementations by school
│ │ ├── fire
│ │ ├── ice
│ │ ├── shadow
│ │ ├── arcane
│ │ └── nature
│ └── SpellRegistry.java
├── debug # Console-based testing environment
└── RuneCore.java # Mod entry point
RuneCore can be tested without any game engine using a console simulation.
./gradlew runConsolefireballfrost_spikeshadow_steparcane_missileroot_bind
- Core logic never depends on the game engine
- All engine-specific code will be isolated in adapters
- Minimal refactoring will be required when the Hytale API is released
- Clear separation between logic, data, and effects
- Hytale API adapter layer
- Visual and particle effects
- Entity-based spell interactions
- Grimoire-based spell learning
- Advanced rune modifiers and variants
- Java 17+
- Gradle