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