From 65c35a9ceccf4548344dbf9ec7d5abadbd2ebba5 Mon Sep 17 00:00:00 2001 From: Natalie Rose Date: Sat, 26 Sep 2026 11:46:32 +1000 Subject: [PATCH] Add info about AI colonies --- info/setup.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/info/setup.md b/info/setup.md index 54012838..ea630609 100644 --- a/info/setup.md +++ b/info/setup.md @@ -68,6 +68,44 @@ go. The database is preserved via a volume mount to the `data/` directory. +### Adding AI colonies + +The scheduled jobs (`run_hourly.sh` etc., driven by `schedule.ini` in the deployment repo) run the AI empires' hourly +updates and attacks, but they never add colonies. The first hourly run after `init_lacuna.pl` founds each AI empire +with a single home world, and that is all it gets until an admin adds more with the faction's `add_colonies.pl`. + +This is deliberately a manual job rather than a scheduled one. Each run permanently adds AI planets, and some factions +(Saben in particular) attack players and destroy planets from every colony they hold, so add them when you want more +AI presence. Once a colony exists, the hourly updates pick it up automatically. + +```bash +# Saben / Trelvestian / Diablotin: one colony in the first zone that doesn't have one yet +docker exec -w /home/lacuna/server/bin server perl saben/add_colonies.pl --addone +docker exec -w /home/lacuna/server/bin server perl trelvestian/add_colonies.pl --addone +docker exec -w /home/lacuna/server/bin server perl diablotin/add_colonies.pl --addone + +# DeLambert: add N trading-post colonies to the zones with the fewest DeLamberti per player colony +docker exec -w /home/lacuna/server/bin server perl delambert/add_colonies.pl --add=5 +``` + +- Without `--addone`, the Saben/Trelvestian/Diablotin scripts add a colony to **every** zone that doesn't have one yet + (except neutral zones). Start with `--addone` and repeat until you like the density. +- `trelvestian/add_colonies.pl --test` adds nothing and just prints a message. `--tournament` is for tournament setups + only. +- `delambert/add_colonies.pl`: + - `--add=N` gives each colony a random level from 5 to 30. + - `--each_level` adds exactly five colonies, one each at levels 5, 10, 15, 20 and 25. + - DeLambert only settles zones that already have player colonies, so run it once players have spread out. +- **Never** run `delambert/add_colonies.pl --respawn` on a live server. It deletes the DeLambert empire and the AI + scratch pads for *every* faction. +- Each faction only settles certain bodies, e.g. Trelvestian needs unowned planets in orbits 5-6 of size 50-75 (see + `viable_colonies` in `lib/Lacuna/AI/.pm`). The script logs "Could not find a colony to occupy" for any zone + with no suitable body. +- Despite their names, `jackpot/add_colonies.pl` and `cult/add_colonies.pl` add no colonies. They only found the + empire if it doesn't exist yet, which the hourly updates already do. Never run `cult/add_colonies.pl --respawn` on a + live server either: it deletes and recreates the Cult empire. +- Keep the script's output: it names every body it colonised, which you'll need if you ever want to undo one. + ### Making code changes to the TLE application The container running the web application is mapping the directories 'lib','bin','etc' and 'var' from the host. This -- 2.51.2