# Ala* config templates (1.12.2)

Ported from the legacy 1.7.10 server on **2026-04-25**.
Source path: `industrial-server/legacy-reference/config/`.
Reference notes: [`PORT_NOTES_ALA.md`](../../../legacy-reference/PORT_NOTES_ALA.md).

## Scope

These templates apply to AlaMine's in-house **Ala\*** mods, which Danil is currently porting from Minecraft 1.7.10 to 1.12.2 (target: IC2 2.8.222-ex112, AE2 rv6-stable-7, Forge 14.23.x).

| File | Mod | Purpose |
|---|---|---|
| `alaplus.cfg` | AlaPlus | Spawner energy economy, synthesizer overrides/upgrades, in-game radio URL, anticheat stub, mob whitelist |
| `alaplusconfigGlobal.json` | AlaPlus (global) | Server-side anti-griefing toggles (wither spawn, donkey dupe fix) |
| `alaplusconfigGlobal.notes.md` | — | Companion: documents the original `<--//` comments stripped to make the JSON valid |
| `alaae.json` | AlaAe | Custom AE2 machines (aggregator/energizer/etcher/impulsecentrifuge) — energy/timing balance |
| `alaae.notes.md` | — | Companion: AE2 rv3 → rv6 compatibility risks |
| `afksystem.json` | AlaAfkSystem | Server-side AFK detection (5 triggers, 5-min timeout, optional god-mode + Russian chat broadcasts) |
| `alaitems.cfg` | AlaItems | Empty in legacy — see "Open questions" |

## When to deploy

**Hard rule: do NOT deploy these configs until the corresponding Ala\* 1.12.2 mod jar is on the server.**

Forge generates default configs on first boot of a mod. If we drop these templates into `config/` *before* the mod is loaded, no harm — the files just sit there. But if the 1.12.2 port has renamed a config category, added new fields, or split into multiple files, our templates are stale and will be silently ignored (or worse, rejected as malformed).

Recommended sequence per mod:

1. Danil delivers the 1.12.2 mod jar.
2. Drop the jar onto the server, boot once, let Forge generate fresh defaults in `config/`.
3. **Diff** the generated config against our template here. Three outcomes:
   - **Identical structure** → copy our template over the generated one (preserves AlaMine values).
   - **Field renames / new fields** → merge: keep AlaMine values for surviving fields, accept defaults for new ones, ask Danil about renamed ones.
   - **Major restructure** → treat as a new config; this template becomes archive material.
4. Restart the server, verify in-game behaviour (spawner EU/t, AFK timeout, AE2 machine recipe time).

## Ansible / deploy strategy

These configs must be treated as **first-boot seeds, not source of truth for the live server**. Live server admins (and players, indirectly via `/reload`-style commands if the mod supports it) will tweak values in production. Overwriting on every deploy would clobber those tweaks.

Recommended Ansible behaviour:

```yaml
- name: Seed Ala* config (first boot only — never overwrite)
  ansible.builtin.copy:
    src: "config/template/ala/{{ item }}"
    dest: "/path/to/server/config/{{ item }}"
    force: false      # CRITICAL — do not overwrite existing files
    owner: minecraft
    group: minecraft
    mode: "0644"
  loop:
    - alaplus.cfg
    - alaplusconfigGlobal.json
    - alaae.json
    - afksystem.json
    - alaitems.cfg
```

`force: false` is the load-bearing flag — it makes the task a no-op when the file already exists. Re-deploying the playbook will not clobber live edits.

For an intentional reset, the operator removes the target file manually (or runs a separate playbook with `force: true`), then re-runs the seed. Document this in the runbook.

## Critical review items before deploy

These items are flagged in `PORT_NOTES_ALA.md` and require Danil's confirmation:

1. **`alaplus.cfg general.mob_scanner_whitelist`** — EnderIO and Thermal Foundation entity classes moved between 1.7.10 and 1.12.2. The current entries (`crazypants.enderio.entity.*`, `cofh.thermalfoundation.entity.monster.*`) almost certainly do not resolve on 1.12.2. Danil must re-derive these against the actual 1.12.2 mod jars.
2. **`alaplus.cfg "synthesis overrides"`** — depends on 1.12.2 versions of `supersolarpanel` and `richsolarpanel` mods existing with the same item registry names.
3. **`alaplus.cfg "synthesis upgrades"`** — needs `.lang` keys + textures at `assets/solarsynthesis/textures/items/<name>.png`. Currently the master switch is off (`synthesisUpgrades=false`) so this is non-blocking.
4. **`alaplus.cfg anticheat.anticheatBus=418`** — purpose unknown from file alone. Master switch already `false`, so safe to ship as-is, but worth a source-level check.
5. **`alaitems.cfg`** — empty in legacy. Confirm with Danil whether the mod expects this file pre-created or generates it on first run (see Open Questions in `PORT_NOTES_ALA.md` §6).

## Notes on changes vs. legacy

- `alaplus.cfg system.clientName` changed `Minecraft 1.7.10` → `Minecraft 1.12.2`.
- `alaplusconfigGlobal.json` had the non-standard `<--//` JSON comments stripped to ensure parser tolerance; the original comments are preserved in `alaplusconfigGlobal.notes.md`.
- All numeric balance values copied verbatim — no retuning. Specifically `energy_use_for_spawner_lvl_3=12288` was preserved (the inline comment in legacy claimed default `8192`, but the production value is `12288` and that is what should ship).
- AFK system: `afkTimeOut=300` (5 minutes) preserved exactly as canonical.
- Russian chat templates in `afksystem.json` (`%name% теперь афк` / `%name% больше не афк`) preserved verbatim.
