Skip to content

AetherGrid Configuration

LocoShailo edited this page Nov 7, 2026 · 1 revision

Configuration (config.yml)

plugins/AetherGrid/config.yml. Apply changes with /aethergrid reload, except where a restart is noted.

database

database:
  type: SQLITE            # SQLITE or MYSQL (restart required)
  sqlite-file: grids.db
  mysql:
    host: localhost
    port: 3306
    database: aethergrid
    username: root
    password: ''
    use-ssl: false
  pool:
    maximum-pool-size: 8  # MySQL only; SQLite always uses 1 connection
    minimum-idle: 2
    connection-timeout-ms: 10000
  table-prefix: aether_
  autosave-minutes: 5

See Storage & Performance.

world

Key Default Description
name aether_grid Name of the void world. Changing it creates a new, empty world: existing grids stay in the old one.
grid-spacing 1000 Blocks between the centres of two grids. Must be larger than the widest grid (7 tiles x 15 = 105 blocks). Never change this after players have grids.
grids-per-row 500 Grids per row before a new row starts. Never change after launch.
platform-y 64 Y level of the tile surface. Never change after launch.
void-rescue-y 0 Players below this Y are returned to their Core Tile.
blocks-per-tick 1500 Max blocks placed per tick while building or expanding grids. Lower = smoother TPS, slower building.

tiles

Key Default Description
size 15 Tile width in blocks (forced to an odd number). Never change after launch.
surface / filler / bottom GRASS_BLOCK / DIRT / STONE Platform layers.
depth 3 Platform thickness.
border SMOOTH_STONE Outline of every tile.
core-pad POLISHED_ANDESITE Marks the centre of a module tile.
home-tile-centre BEACON Centre block of the Core Tile.

grid

grid:
  start-size: 3                 # starting width in tiles (odd)
  expansions:                   # key = new grid width
    5:
      money: 25000
      grid-level: 3
      items: { IRON_BLOCK: 8, OAK_LOG: 128 }
    7:
      money: 100000
      grid-level: 8
      items: { DIAMOND_BLOCK: 4, GOLD_BLOCK: 16 }
  levels:
    max-level: 50
    xp-base: 100                # XP for level N = xp-base * N ^ xp-exponent
    xp-exponent: 1.6
  max-members: 4                # total players per grid, owner included
  starter-items:                # put in the starter chest on the Core Tile
    - module:crop_generator:1   # module:<id>:<amount>
    - BREAD:16                  # MATERIAL:<amount>
    - OAK_SAPLING:2

You can add bigger sizes (for example 9:), but then raise world.grid-spacing accordingly on a new world. Expansions can also cost essence:.

engine

Key Default Description
tick-rate-ms 1000 How often the async engine checks module timers (min. 250).
require-loaded-chunk true Only run modules whose tile is loaded. Strongly recommended.
require-online-member true Only run modules of grids with a member online. Set to false for "offline production" (only while chunks are loaded).
delivery-budget-ms 2.0 Max main-thread time per tick for chest inserts, transmutation and turret shots.
max-queue 20000 Max pending main-thread jobs; extra cycles are skipped (protects memory).

gui

Key Default Description
filler GRAY_STAINED_GLASS_PANE Background item in menus.
sounds true Click / deny sounds in menus.

power & converter

power:
  base-capacity: 100            # power storage without generators

converter:
  pull-surplus-from-neighbours: true
  surplus-threshold: 0.75       # neighbour chest must be this full (share of used slots)

displays (holograms)

displays:
  enabled: true
  keyframe-ticks: 20            # 1 server update per second; the client interpolates smoothly
  bob-amplitude: 0.12           # up/down movement in blocks
  bob-period-seconds: 4
  view-range: 0.5               # 1.0 = 64 blocks
  labels: true                  # text label above the crystal
  label-view-range: 0.25
  inactive-glow-color: '#FF4D4D'

The crystal item, size, height, colour and spin speed are set per module in modules.yml (display:). Displays are never saved to disk and are removed on chunk unload, reload and shutdown.

hud (action bar)

hud:
  enabled: true

The text is in messages.hud-* (see below).

sounds

Each cue is a list of layers: sound.key:volume:pitch:delayTicks. Cues at a module are played at the module's position, so players hear them panned left/right (stereo) and quieter with distance.

sounds:
  enabled: true
  hearing-range: 24
  module-install:
    - 'block.beacon.activate:0.7:1.5:0'
    - 'block.amethyst_block.chime:1.0:1.2:2'
    - 'block.amethyst_block.chime:1.0:1.6:5'
  module-upgrade: [...]
  module-remove: [...]
  turret-fire: [...]
  grid-created: [...]
  grid-expanded: [...]
  grid-level-up: [...]
  purchase: [...]

Sound keys are the vanilla sound ids (see the Minecraft wiki). Custom resource-pack sounds work with a namespace: myserver:custom.sound:1.0:1.0:0.

messages

All player-facing text, in English, using MiniMessage. Placeholders look like <player>, <module>, <level>, <size>.

Action bar messages:

hud-module: '<green>Active Module: <white><module></white></green> <gray>Lv <aqua><level></aqua></gray> <dark_gray>|</dark_gray> <synergy> <dark_gray>|</dark_gray> <power>'
hud-synergy: '<light_purple>(Synergy Boost: +<percent>%)</light_purple>'
hud-no-synergy: '<dark_gray>(No Synergy)</dark_gray>'
hud-core: '<light_purple>Core Tile</light_purple> <dark_gray>|</dark_gray> <power>'
hud-power: '<yellow>⚡ <power>/<capacity></yellow> <light_purple>✦ <essence></light_purple>'

hud-module also supports <status>. hud-synergy also supports <synergies> (the list of active synergy labels).

Clone this wiki locally