Skip to content

AetherGrid Custom Modules

LocoShailo edited this page Nov 7, 2026 · 1 revision

Custom Modules & Synergies (modules.yml)

plugins/AetherGrid/modules.yml defines every module and every synergy rule. Apply changes with /aethergrid reload.

A module, field by field

modules:
  ore_quarry:                         # id: used in /aethergrid give and in the database
    display-name: '<aqua>Ore Quarry Tile</aqua>'
    type: PRODUCER                    # PRODUCER | GENERATOR | CONVERTER | TURRET
    tags: [ORE]                       # used by synergy rules
    core-material: BLAST_FURNACE      # the placeable core block (must be a block)
    icon: IRON_PICKAXE                # icon in the GUI
    category: MINING                  # shown in the store
    grid-level: 2                     # grid level needed to buy it
    xp-per-cycle: 8                   # grid XP per successful cycle
    interval-seconds: 30              # seconds between cycles at level 1
    power: { cost: 0 }                # see "Power" below
    description:
      - '<gray>Mines stone and ores</gray>'
    display: { item: DIAMOND, scale: 0.55, height: 1.6, glow-color: '#4DD0E1', spin-degrees-per-second: 45 }
    cost:
      money: 7500
      essence: 0
      items: { COBBLESTONE: 128, IRON_INGOT: 8 }
    outputs:
      COBBLESTONE: { amount: '4-8', chance: 1.0 }
      DIAMOND:     { amount: '1',   chance: 0.02, rare: true }
    levels:
      1: { speed: 1.0, amount: 1.0 }
      2: { speed: 1.2, amount: 1.2, money: 15000, items: { IRON_BLOCK: 4 } }
      4: { speed: 1.75, amount: 1.6, money: 80000, essence: 200, items: { DIAMOND: 8 } }
Field Notes
type PRODUCER rolls outputs into the chest. GENERATOR makes power. CONVERTER makes essence. TURRET shoots mobs.
tags Any words you like (upper-cased). Synergies match on them.
core-material Must be a placeable block (the core is protected against breaking, explosions and pistons). Use a different block per module so players can tell them apart.
outputs amount is a number or a range 'min-max'. chance is 0–1. rare: true makes it count for rare-chance-bonus synergies.
levels speed divides the interval, amount multiplies output (producers), power (generators), batch size (converters) or damage (turrets). The price of level N is set on level N. Max level = number of entries.
display The floating crystal: any item, scale, height above the core, glow-color (hex) and spin-degrees-per-second (capped to keep the animation smooth).

Power

power:
  cost: 3          # power used per cycle (producers, converters) or per shot (turrets)
  output: 5        # power made per cycle (generators)
  capacity: 150    # extra grid power storage per module level (generators)

A module with cost pauses with No Grid Power when the grid has too little. Converters and turrets refund the power when they had nothing to do.

Converter (Transmutator)

type: CONVERTER
converter:
  batch: 64                 # max items per cycle (x level amount)
  rates:                    # essence per item
    COBBLESTONE: 1
    RAW_IRON: 6
    DIAMOND: 60

Converters eat from their own chest and from neighbouring producer chests that are at least converter.surplus-threshold full (config.yml).

Turret

type: TURRET
interval-seconds: 2         # seconds between shots
turret:
  range: 14                 # max 48
  damage: 5.0
  projectile-speed: 2.4
  projectile: ARROW         # ARROW or SPECTRAL_ARROW

Turrets only target hostile mobs (Enemy) inside the owner's unlocked tiles, and their arrows never damage players or passive mobs.

Synergy rules

synergy-settings:
  include-diagonals: false    # true = 8 neighbours instead of 4

synergies:
  irrigation:
    name: 'Irrigation'
    target-tags: [CROP]       # modules that GET the bonus
    neighbour-tags: [FLUID]   # neighbours that GIVE the bonus
    speed-bonus: 0.5          # +50% speed
    amount-bonus: 0           # +x% output / power / batch / damage
    rare-chance-bonus: 0      # +x% chance on outputs with rare: true
    power-bonus: 0            # +x% power (generators)
    max-stacks: 1             # how many matching neighbours count
    label: '+50% Speed'       # shown in the GUI

Bonuses from several rules add up. Synergies are recalculated automatically whenever a module is installed, removed or upgraded.

Example: a new "Wind Turbine" generator

modules:
  wind_turbine:
    display-name: '<white>Wind Turbine</white>'
    type: GENERATOR
    tags: [POWER, WIND]
    core-material: WHITE_WOOL
    icon: FEATHER
    category: POWER
    grid-level: 5
    xp-per-cycle: 3
    interval-seconds: 8
    power: { output: 4, capacity: 100 }
    description: ['<gray>Clean power from the sky.</gray>']
    display: { item: FEATHER, scale: 0.7, height: 1.8, glow-color: '#FFFFFF', spin-degrees-per-second: 100 }
    cost: { money: 15000, items: { WHITE_WOOL: 64, IRON_INGOT: 16 } }
    levels:
      1: { speed: 1.0, amount: 1.0 }
      2: { speed: 1.2, amount: 1.5, money: 30000 }

synergies:
  open_skies:
    name: 'Open Skies'
    target-tags: [WIND]
    neighbour-tags: [WIND]
    power-bonus: 0.25
    max-stacks: 2
    label: '+25% Power'

Run /aethergrid reload and the turbine appears in the Module Store.

Removing or renaming a module

Installed tiles store the module id. If you remove an id that is still installed somewhere, those tiles stop working (they keep their data). Rename the display-name instead of the id, or put the module back to restore them.

Clone this wiki locally