Repository navigation
AetherGrid Storage
AetherGrid keeps all grids in memory and writes them to the database asynchronously through HikariCP.
database.type |
When to use |
|---|---|
SQLITE (default) |
Single server. File: plugins/AetherGrid/grids.db. One connection, WAL mode. |
MYSQL |
Large servers, or when you want to back up / inspect the data externally. |
Grids are saved right after important changes (creation, expansion, module install/upgrade/removal, team changes) and every autosave-minutes (default 5) for production counters, XP, power and essence. On shutdown everything is saved synchronously.
| Table | Contents |
|---|---|
aether_grids |
id, owner UUID, grid slot, size, level, xp, visitors, created, power, essence |
aether_grid_members |
grid id + member UUID |
aether_grid_tiles |
grid id, tile x/z, module id, module level, items produced |
New columns are added automatically on startup when you update the plugin.
There is no built-in converter yet. Switching gives every player a fresh start, so choose your database before launch.
Back up plugins/AetherGrid/ (the database) and the aether_grid/ world folder together. The database says which modules are on which tiles; the world holds the blocks and chest contents.
AetherGrid splits all work in two stages:
| Stage | Thread | Work |
|---|---|---|
| 1 – async | AetherGrid-Ticker |
Synergy recalculation (only for changed grids), module timers, power accounting, loot rolls, generator output, action bar text, hologram animation keyframes. |
| 2 – main thread | Server thread | Putting items into chests, transmutation, turret shots, applying hologram keyframes, sending action bars. Hard-capped at engine.delivery-budget-ms (default 2 ms per tick). |
Bukkit only allows world, inventory and entity changes on the main thread, so stage 2 cannot be async. It is kept tiny and time-boxed instead.
Holograms use client-side interpolation: the server sends one new keyframe per second and every client animates smoothly in between. 100 active modules cost about 100 entity updates per second, not per tick.
Grid building (creation and expansion) is spread over ticks with world.blocks-per-tick (default 1500 blocks per tick). A full 7x7 grid is built in a few seconds without a TPS drop.
Mob Spawner Tiles do not spawn entities; they roll loot like other producers.
/aethergrid info:
Engine: 0.05ms async | Tiles produced last cycle: 7 | Queue: 0
- Engine = time of the last async cycle. Not on the main thread, so even a few ms is fine.
-
Queue should stay near 0. If it keeps growing, raise
engine.delivery-budget-msslightly or raise module intervals.
Use spark to profile the main thread if you suspect lag; AetherGrid's main-thread work shows up as TickingEngine.flush and GridDisplayRenderer.applyPending.
| Setting | Effect |
|---|---|
engine.require-online-member: true |
Offline grids cost nothing. (Default.) |
engine.require-loaded-chunk: true |
Unloaded grids cost nothing. (Default.) |
Higher interval-seconds in modules.yml
|
Fewer cycles. |
displays.enabled: false or displays.labels: false
|
Fewer entities. |
Lower world.blocks-per-tick
|
Smoother building on weak hardware. |
AetherGrid
- Overview
- Player Guide
- Modules
- Synergies, Power & Essence
- Installation & Updating
- Commands & Permissions
- Configuration
- Custom Modules & Synergies
- Storage & Performance
- Developer Guide
- Troubleshooting & FAQ
AetherPermissions
- Overview
- Installation
- Commands & Permissions
- Groups & Permissions
- Web Editor
- In-Game GUI
- Configuration
- Network Setup
- Integrations
- Troubleshooting & FAQ
AetherSky