ArenaWavesEngine 1.1.0 (SQLite / HyDB)
For Server Owners & Modders
- New HyDB 1.0.0 requirement
- ArenaWavesEngine now uses HyDB 1.0.0 (SQLite) to store sessions, waves and player stats.
- You must install the HyDB 1.0.0 mod in your mods folder for this version to work.
- MultipleHUD & HyUI no longer required as separate mods
- MultipleHUD and HyUI are now bundled as plugin dependencies.
- You do not need to place MultipleHUD or HyUI jars in the server mods folder anymore.
- SQLite/HyDB persistence for sessions
Arena runs, waves and player stats are now stored in a real database (HyDB/SQLite) instead of flat config files, making sessions more reliable across restarts and easier to query/extend.- More powerful enemy spawn configuration
- EnemyDefinition now supports radius, offsets, rotations, random models, flock sizes, speed, scale and “spawn on ground”.
- New default examples (default_arena_map_*) demonstrate radius, offset and random model setups you can copy into your own maps.
- EnemyDefinition properties:
Field Type Default Description enemyType String "" Role/model id to spawn (e.g. NPC role name). Must match a valid NPC role builder. count Int 1 Number of entities of this type to spawn for the wave. radius Double 8.0 Horizontal radius around the base spawn position used to spread multiple spawns randomly (X/Z jitter). scale Float 1.0F Visual scale of the model. Clamped to the model’s min/max scale unless bypassScaleLimits=true. playerHeadRotation Vector3f Vector3f.ZERO Base yaw/pitch used as reference when calculating projectile‑like velocity and facing; usually filled from the player at start. posOffset Vector3d Vector3d.ZERO Fixed offset added to the arena spawn position before spawning (use to place enemies in front/behind/side). headRotation Vector3f Vector3f.ZERO Overrides the entity’s head rotation when non‑zero. Also freezes the head if set. bodyRotation Vector3f Vector3f.ZERO Overrides the whole body yaw/pitch/roll when non‑zero. Takes precedence over playerHeadRotation/facingRotation. randomRotation Boolean true If true and no explicit bodyRotation is set, each spawn gets a random Y rotation (360°). facingRotation Boolean false If true, enemy is rotated to face the opposite of playerHeadRotation (useful for enemies looking at the player/arena center). Ignored if bodyRotation is set. flockSize Int 1 Size of the flock when the role supports flocks; values >1 will try to spawn a flock via FlockPlugin. frozen Boolean false If true, adds the Frozen component so the entity cannot move (good for statues, turrets, etc.). randomModel Boolean false If true, picks a random cosmetic skin/model for this enemy using CosmeticsModule, instead of the role’s default model. bypassScaleLimits Boolean true If false, scale is clamped to the model asset’s allowed min/max; if true, you can exceed normal bounds (use with care). spawnOnGround Boolean false If true, spawns very close to the ground; if false, may spawn slightly in the air (useful for falling/landing effects). flagsString String? null Optional comma‑separated list of role debug flags (maps to RoleDebugFlags presets/flags). Use to tweak AI/debug behavior per enemy. nonRandom Boolean false If true, spawns use a deterministic RNG (Random(0)); useful for reproducible tests or fixed encounters. - Event‑driven wave engine
- Wave logic is now handled by clean event handlers and an ECS WaveTickingSystem, making it easier to reason about and safer to extend with your own modules.
- Improved HUD and proximity handling
- HUD is automatically updated/removed when sessions change or finish.
- Players are automatically attached/detached from sessions based on distance to the arena spawn.
- Version bump & Gradle updates
- Plugin version bumped to 1.1.0 and root project renamed to ArenaWavesEnginePlugin.
- New dependency on HyDB and kotlin-reflect.
- Fix .jar file size
- Implementing a new page: Select your Arena.
To display this new page, type: /awe start
![]()
![]()
