Near-Term
Features planned for the next release cycle.Block Read/Write Improvements
Full block state read/write through
WorldTestContext. Currently block operations use placeholders in the API module — the server-side implementations will connect to Hytale’s chunk system for real block type resolution and placement.Entity Type Spawning
Expand
spawnEntity to support entity initialization callbacks, allowing tests to configure an entity’s components, inventory, and stats immediately after spawning without waiting for ECS processors.Benchmark Comparison
Store historical benchmark results and compare across runs. Detect performance regressions automatically by comparing against a baseline. Planned output: delta percentages and threshold-based pass/fail for benchmarks.
Test Report HTML Export
Generate a standalone HTML report from test results, suitable for sharing or embedding in CI dashboards. Will include charts for pass/fail trends and benchmark timelines.
Mid-Term
Features planned for subsequent releases.Conditional Test Execution
Conditional Test Execution
@EnabledIf and @DisabledIf annotations that evaluate runtime conditions (server version, plugin presence, world state) before running a test. More flexible than @RequiresPlugin.Test Fixtures API
Test Fixtures API
A declarative system for setting up complex test scenarios. Define entity templates, block layouts, and inventory configurations as reusable fixtures that can be applied before tests.
Parallel Suite Execution
Parallel Suite Execution
Run independent suites in parallel across multiple threads. Requires careful isolation guarantees — likely limited to suites using
DEDICATED_WORLD isolation to avoid shared-state conflicts.Fluent Assertion API
Fluent Assertion API
A builder-style assertion API as an alternative to the static method approach:
Custom Test Reporters
Custom Test Reporters
A
TestRunListener interface that allows plugins to receive test events (started, passed, failed, skipped) in real time. Enables custom logging, webhook notifications, or dashboard integrations.Long-Term
Exploratory features that depend on the Hytale server API.Snapshot Diff Visualization
Snapshot Diff Visualization
When using
SNAPSHOT isolation, show a diff of what changed during the test (entities created/removed, components modified, stat values changed). Useful for debugging mutation-heavy tests.Test Coverage Tracking
Test Coverage Tracking
Track which ECS systems, event handlers, and commands are exercised by your tests. Generate coverage reports showing untested code paths. Requires bytecode instrumentation.
Mod Compatibility Testing
Mod Compatibility Testing
Automated testing of mod-to-mod interactions. Load multiple mods in a test environment and verify they do not conflict with each other’s events, commands, or ECS components.
Contributing
HRTK is open to contributions. If you are interested in working on any of these features, or have ideas for new ones, join the discussion. Focus areas where help is most needed:- Block state integration with Hytale’s chunk system
- Performance optimization of snapshot save/restore
- Additional assertion domains (AI, pathfinding, sound)
- Documentation and example tests for common mod patterns
Next Steps
- Changelog — what has shipped so far
- How It Works — current architecture
- Your First Test — start using HRTK today