Manual 150
Manual 150
1.50.12
7 Oct 2018
Table of Contents
Table of Contents 1
Introduction 5
Compatibility 6
Saves 6
Config 6
Network Multiplayer 6
Installation 7
Updating with Launcher 7
Updating without Launcher 7
Critical Bugs 9
General 9
Networked Multiplayer 10
1
2
1.50.7 111
1.50.6 112
1.50.5 112
1.50.4 113
1.50.3.1 113
1.50.3 113
1.50.2 114
1.50.1 116
1.50 116
Acknowledgements 133
3
Introduction
This unofficial 1.50 fan patch provides an updated DOS version of Master of Orion II: Battle
at Antares (MOO2). It fixes most known crashes, stalls and network synchronization errors,
as well as an abundance of interface and game rule bugs.
The interface has been improved with customizable build queue lists, a 6th ship design
slot, usable mouse scrolling in combat and new keyboard shortcuts.
This patch introduces configuration files which allow customization of the game and
extensive modding. Config files are plain text files and can be viewed and edited with any
plain text editor (like Notepad on Windows). The distribution includes the mods 1.50
improved, ICE and Melee. The also included MOO2 Launcher makes it easy to select a mod
before running the game. After installation the MOO2 Launcher defaults to 1.50 improved.
Network multiplayer setup has also been improved. The host broadcasts settings to clients
automatically, eliminating the need for all parties to use the same set of command line
switches or enable the same mod. The built-in mapgen eliminates the need to run the
separate mapgen program which requires restarting the game.
This manual and its addendum MANUAL_150.XLS contain detailed descriptions of
features, fixes and modding options. README_150.TXT contains installation instructions
and a changelog with a complete list of changes. EXAMPLE.CFG contains an overview of
all config parameters along with a brief description for each one.
This unofficial fan patch is not supported by a company or anyone at all.
USE IT AT YOUR OWN RISK
4
Compatibility
Saves
Starting from patch 1.50.3, the game appends extra data to the save. So in general newer
versions can load older saves but older 1.50 versions can’t load newer saves. 1.50.2 and
earlier versions (including classic) will load any save but ignore the extra data which can
result in glitches.
Game version Save file format version Comments
1.31, 1.40, 1.50.0-2 0 (classic) Can load all formats, but in
saves from 1.50.6+ food will
appear doubled. Some
versions will also have
incorrect ship speed.
Config
All major versions of 1.50 introduce new or renamed config parameters and can drop old
ones. Because of this, config files for different versions are incompatible, so in general, after
updating the game you also have to download updated versions of the mods you use.
Some simpler configs might work in a new version but any complete config will almost
certainly fail to load. This situation will stand as long as patch is under active development.
Network Multiplayer
Executables with different major versions are incompatible in network multiplayer and will
not allow you to start a game between them. Executables with the same major version are
compatible over network, so 1.50.x.y is always compatible with 1.50.x or 1.50.x.z. It is
recommended however that all players use the exact same version.
5
You have downloaded the zip file, this manual on your screen, and a manic gleam in your eyes.
What do you do now?
Installation
MOO2 DOS version 1.31 or higher is required for installing the 1.50 fan patch. English,
French, German, Italian and Spanish languages are supported. Note that installing the
patch does not break your current MOO2 installation. The 1.50 executable is installed
alongside the old one and no original files are overwritten. You can still use your original
shortcuts to start an unaltered version 1.31 or 1.40 game.
6
7
Critical Bugs
General
“Mark Block Stack Size Exceeded” Crash
Fixed the game crashing with such message when repeatedly entering and exiting race
report in the Races screen. This happened due to an accumulating memory leak, so the
problem was more likely to occur in long games.
8
Networked Multiplayer
Techfield Desync Bug
Multiplayer combat will no longer desync when a player gets a new tech on the turn of
battle. This can happen after research breakthrough, tech steal or tech capture during
another battle on the same turn. Only techs from combat-related fields triggered this bug.
An example: a tech field completion in Physics provides a new miniaturization level for the
beam weapon used on a Satellite. Sometimes this information was passed only to one
player resulting in a slight difference of satellite design observed by players. This could
cause the course of combat to diverge between players, which led to eventual stall or
crash. This bug is similar to the Evolutionary Mutation battle desync described below.
“Monster Bug”
Battles, involving identical monsters fighting different players on the same turn will now
resolve properly. Previously one of the battles could sometimes be “rolled back” restoring
the monster and/or ships lost.
9
Interface Changes
Improvements
Faster Screen Updates
Screen switches (fade-ins and fade-outs) are faster in 1.50 than in classic.
Cutscenes Sound
The sound for cutscenes will be on if either Music or Sound Fx is on, rather than only when
Music is on. Note that this sound for cutscenes is always at maximum volume, no matter
the in-game volume levels.
Default Settings
Upon a fresh install or after deletion of the file 150.SET, three new default settings are:
New Game menu - Tactical Combat is ON;
Game Settings menu - S hip Initiative is ON;
Tactical Combat Options menu - Legal Moves is ON.
Auto Save
In Singleplayer, the game now autosaves each turn before combats (instead of every four
turns), the same way it already did for Multiplayer in classic. In addition, a batch file
‘watch-save10.bat’ is shipped with the patch that creates a copy of SAVE10.GAM each
time it changes. Instructions on how to use the .bat are included within the file itself (open
it in Notepad or any other plain text editor).
Title Screen
The name of the current mod is
now shown in the lower right
hand corner of the Title screen.
By default it reads ‘Mod: 1.50
improved’, indicating you will
be playing according to 1.50
improved rules. (More on this
mod later in this manual.)
10
1
In addition, the picture for seven opponents has been redrawn, centering the 7.
2
In addition, “Psilons” has been centered on its button and misc. pixel artifacts cleaned up.
11
● If you have a tech steal and a tech breakthrough in the same turn, you will now be
informed by your spy before you are brought to the Technology Select screen.
● Exploration happens before Colonization. When scouting two new systems in the
same turn, you will see them both before you are given the option to colonize a
system.
● The option to Hire an officer will now happen after Exploration, preventing the case
of not being able to accept a Marooned Hero because you have just hired your 4th
leader in that same turn!
Stored Production
In addition to the remaining turns till completion, the stored production value (including
bought production) and total production cost of the item will now be displayed in the
status box of the colony's current construction project:
Version 1.31 / 1.40 Version 1.50
Above screenshot shows stats of a Battleship fully loaded with weapons & specials,
including Augmented Engines (5>10 combat speed), Heavy Armor (100>300 armor
12
points), Hard Shields (3>6 damage points blocked) and Battle Scanner (25>75 beam
attack). In classic, below example displays 25 beam attack and an incorrect BD of +75.
Planets Screen
The presence of a leader with the Galactic Lore skill caused all planets that have not yet
been visited to be tagged in the Planets screen as ‘no enemy presence’, including ones
with monsters. As a result, you could unknowingly send a colony or outpost ship to such
worlds without warning, causing the destruction of said ships. This issue has been fixed in
1.50 by changing the ‘no enemy presence’ filter to show only planets that have actually
been visited.
Centered Planets
In tactical combat, planets are now drawn centered in the bombing area.
13
Bug Fixes
Billions of Colony Ships Bug
Corrected the display of colony ship count for 2 or more ships in star system pop-up.
14
15
16
strength value). BD value of strategic ships display is now more accurate (previously the
Tactical BD was shown instead, but note that the new value does not include possible
bonuses from defense specials installed on a ship).
17
Hotseat GNN
Now all hotseat players should get a GNN report about a planet attacked by a monster.
Race Info
● The Race Statistics subscreen under INFO, displays a maximum of 11 racial traits in
classic. For races with more traits, the traits exceeding 11 are not displayed. In 1.50
the font will automatically scale to accommodate up to 20 traits. A reduced font
size is used for 12-13 traits and a minimal size for more than 13 traits.
● +½ and -½ food and money bonuses are now displayed correctly both in the race
summary of the Race Selection screen and in the Race Statistics subscreen.
Tech Review
Corrected the placement of several sections and technologies in the Tech Review
subscreen of the Info screen:
18
Keyboard Shortcuts
(blue = 1.50 changes or additions)
Any Screen
PageUp Speed up all in-game animation (maximum +3).
PageDown Slow down all in-game animation (minimum -3).
19
I Info screen
T Next Turn
ALT-F1 End of turn summary on/off
ALT-F2 End of turn wait on/off
ALT-F3 Enemy moves on/off
ALT-F4 Auto-select ships on/off
ALT-F5 Animations on/off
ALT-F6 Auto-select colony on/off
ALT-F7 Show relocation lines on/off
ALT-F8 Show GNN reports on/off
ALT-F9 Load game
ALT-F10 Save game
ALT-Q Quit without saving
Colony Screen
A Turn on AUTOBUILD
B BUY o r UNBUY an item
C CHANGE, go to the Build screen
. Go to previous colony
, Go to next colony
SPACE RETURN button
ESC Escapes to previous screen
20
Design Dock: Select Weapon System and Select Special System Screens
- Scroll Up
+ Scroll Down
ESC Escapes to Ship Design Overview without saving changes.
21
Cheats / Testing
Cheat reporting code has been fixed. A cheat warning will always be issued on the next
turn after cheating and the warning will never be lost now. Cheats described below work
in the Main screen, unless specified otherwise.
ALT +
EEE Extracts current config to EXTRACT.CFG
(Main screen, Build screen and on the Battle Map during combat)
RE Reloads ORION2.CFG (single player game only)
(Main screen, Build screen and on the Battle Map during combat)
ALE Previously disabled leader cheat. Pop-up allows you to select a leader
id. That leader will offer to join the next turn.
ALLAI Turns all players to AIs, including yourself. Note that if End Of Turn Wait
is off, turns will pass automatically and continue endlessly, even when there is
only 1 player left in the game.
CRUNCH Finishes the current building project of a colony when used in the
Colony screen. U sed in the Build screen, it adds 32000 stored production,
enabling the completion of successive build projects in 1 turn each.
EINSTEIN Grants your empire knowledge of every application in every field of
research, except for the Hyper-Advanced fields.
ISEEALL Toggles Omniscience on and off. Note that if this cheat is toggled on
when Evolutionary Mutation is researched, 3 picks are subtracted for the cost
of Omniscience, leaving only 1 pick for mutating the race.
MENLO Finishes your current research project. N ow adds 1000k instead of 10k and
is tunable with menlo_research_points.
MOOLA Adds 1000 BCs to your imperial treasury.
SCOR Reports current score (Note the removed ‘E’ from SCORE)
X Cycles between all players, except annihilated ones (SP games only).
LUA Toggles u niversal context for main screen scripts.
22
Gameplay Changes
Galaxy Generation
Cluster Galaxies
The Cluster Galaxy that was introduced in version 1.40, now works for multiplayer.
23
● Such migrated colonies could still be accessed by clicking both on actual home
planet and on intended home terran planet in home system.
● With certain settings, trimming could create uncolonizable planets.
● Trimming could stall on certain galaxies with lots of asteroids or gas giants.
All these bugs are fixed now.
Tactical Combat
lways be brave.
A
Waking up Fleets
For a fleet that arrives at a system that has enemy presence, a pop-up will appear, asking if
you want to attack. For fleets that already hover in an enemy system such pop-up does not
happen every turn: they are asleep. Such fleets are awoken when circumstances change
causing the Select Combat pop-up to appear, for example when another fleet arrives or a
star base is built. This mechanic did not work properly for a newly built Fighter Garrison
and Artemis System Net. Now, completion of those will also wake up fleets. On the other
hand, completion of planetary shields will no longer wake up ships. In addition, fleets will
wake up when a satellite, ground defense building or Artemis is destroyed. This especially
reduces micromanagement when a player is using spies to attempt sabotage, eliminating
the need to click ‘Engage Enemy Forces’ each turn to ensure engaging the enemy exactly
the turn when a defense is destroyed.
Ship Initiative
Ship initiative is a classic feature introduced in version 1.31 intended to make combat more
balanced. If enabled, all ships of both players act in the same and every combat round, and
24
move in order of their initiative, from the highest to the lowest. Instead of using the classic
formula
trunc[beam_attack / 10] + speed
ship initiative is now calculated as
beam_attack + speed * 10
so +5 attack is not lost due to rounding. Naturally, in classic, ships could frequently be tied
by initiative in which case they acted in semi-random order. In the 1.50 patch, ships are
strictly ordered by the following comparisons:
1. By ship initiative, ship with greater initiative acts first.
2. By crew level, ship with higher crew level acts first.
3. If both ships are combat-only ships (defensive Antarans, satellites, ground
defenses), then they are compared by combat ship ID, the ship with the higher ID
acts first (planet acts last with ID 0).
4. If one of the ships is combat-only and the other is not, the combat-only ship acts
first.
5. By crew experience, ship with greater crew experience acts first.
6. By overmap ship ID. Ship with lower ID acts first (having lower ID generally means
the ship is older).
25
Classic 1.50
M Move missiles
T Apply plasma web & BHG
T Recharge shields
A L
ose absorber’s charge
M Move missiles
A Update cloaks T Update cloaks
Between T Recharge FMR & HyperX T Recharge FMR & HyperX
ordinary and A Apply plasma web & BHG
TWF turns T Repair
T Refresh combat stats
T Retreat or recharge ships T Recharge ships
T Retreat
A Rotate satellite T Rotate satellite
M Move missiles
A Apply plasma web & BHG
A Recharge shields
A Lose absorber’s charge
After TWF turn
A Update cloaks A Update cloaks
A Recharge FMR & HyperX A Recharge FMR & HyperX
A Recharge shields
A Repair A Repair
Defensive Fire
Defensive Fire is a special ability of regular mount beams, intended to give an inactive
player some defensive means during the active player’s move. Sadly in combat with ship
26
initiative enabled the whole mechanic was plagued with bugs, which rendered it
inconsistent and incomprehensible. All problems have been fixed in 1.50, however because
the whole mechanics was so severely bugged for all the years, and it was impossible to
improve on it while keeping the “original feel” in combat, we have turned DF off by default
for initiative games with the parameter d efensive_fire. With initiative off, DF is always on
as it was in classic. More details can be found in section Defensive Fire.
Destroyed Weapons
Ships now lose shots right after a weapon is destroyed. The game does not store states for
individual weapons in slot, so shot is lost only if a number of weapons remaining functional
is lower than the number of shots. E.g. if you have a slot with 10 phasors, with remaining 8
shots, and 1 phasor is broken, you’ll still have 8 shots. Then if 5 more phasors get broken
you will be left with 4 functioning phasors so shots will be decreased to 4.
Immobilization
Fixed the discrepancy between the immobile label (which is intended to indicate if it’s
possible to board the ship) and the actual ability to board after trapping a ship with a Black
Hole Generator or Tractor Beam. Previously a ship just affected by BHG was not marked
immobile while it was possible to board it and a ship released from BHG or Tractor beam
kept the immobile marking while no longer being boardable.
Boarding
● The attacker's marine bonus is now displayed on raid actions.
● Crew experience now also affects capture actions. Previously it only improved raid
actions. This change affects Assault Shuttles too (Shuttles have the same crew level
as the launching carrier).
● Marines amount on a ship cannot exceed a given ship’s maximum anymore.
Previously it was possible to overload it during capture action.
● Raiding an enemy ship can now destroy all systems on it. Previously you could
never destroy the last system on a ship by raiding it.
● Fixed inability to destroy engine by raid if it has 1 HP left.
● The raid results pop-up no longer reports damaged specials as destroyed, nor
reports a misleading number of hits anymore (like 2 Warp Dissipators destroyed).
● A ship in stasis can no longer be boarded.
● A phasing cloak cloaked ship can no longer be boarded.
● Optionally boarding a ship / boarding from a ship trapped in a black hole can be
forbidden.
● Ordinary and Transporters boarding ranges can be set in squares in Config.
● The damage a successful raiding marine does, can be set in Config.
● The maximum number of items a successful raiding marine can destroy, can be set
in Config.
28
something that targets current ship directly or indirectly). Previously only fighters targeting
current ship directly would highlight.
Symmetric Bombing
Fixed the bug that did not allow bombing on the south and east sides of medium, large and
huge planets. Bombing is now symmetric, and the distance from which a planet can be
bombarded is the same from each side, regardless of its size.
29
30
Stasis Field
The following bugs were fixed:
● Stasis field now recharges correctly. It used to gain wrong number of shots because
the number of current targets was not used in calculation.
● Even if stasis field is present at the beginning of the turn, a ship will be able to act
this turn if stasis is removed. In classic such ships were unable to act until next turn.
● In classic removing stasis field zeroes ship’s shots. While not technically a bug this
behavior is deemed unnecessary as it reduces interactivity and gives even greater
advantage to a weapon already very powerful, so in 1.50 shots are not zeroed.
● Ships in stasis now cease to apply effects of Wide Area Jammer, Scout Lab and
Warp Dissipators installed on them to other ships.
● Putting a ship in stasis now ceases Tractors and BHGs targeting that ship and also
Tractors, BHGs and Stasis fields being projected by it.
31
Displacement Device
Miss chances for missile and absorber shot against displacement device have been
corrected to 30% (was 29% for missiles and 70% for absorber, which contradicted
description and was inconsistent with beams).
Energy Absorber
● Fixed a bug which caused stored damage to overflow, maximum stored damage is
now 30k. Note that the energy fired from the absorber always hits, unless the
target has a displacement device.
● In INI games absorber no longer loses charge at end of turn. This feature was
designed for non-initiative combat where attacker and defender have their own
combat turn, but is unfair in INI combat where all ships act during the same combat
turn because ships that accumulate a charge after they have finished their turn do
not get a chance to fire it.
Inertial Nullifier
Inertial Nullifier reduces the turning cost of a ship from 8 per 90° to zero, effectively being a
teleport for purpose of rotation, but unlike Sub-Space Teleporter it causes the missiles
targeting such ship to move. In games with ship initiative on, but missile initiative off, this
could even lead to missiles striking Nullifier ships a turn earlier than ships without such
device. Missiles now ignore Nullifier rotations.
Sub-Space Teleporter
● Fixed Sub-Space Teleporter not breaking tractor beam out of range.
● Fixed Sub-Space Teleporter getting increased range for faster ships.
32
No Autodone in Combat
A ship’s turn will no longer automatically end when it has no ammo and movement points
left. This is helpful if you want to retreat, self-destruct or board after moving.
AUTO Retreat
Individual ships under computer control (both AI ships and human player ships on AUTO or
Z) will no longer retreat just because they are out of ammo. In addition, the rule that human
player fleets never retreat from combat can be altered with the parameter
human_player_fleet_auto_retreat in which case they will act the same way as AI fleets.
Strategic Combat
Crew Level Bonuses
Classic formulae for strategic Beam Attack and Beam Defense are very simple:
strat_BA = racial_bonus + computer_bonus
33
strat_BD = base hull_defense + (drive_no - 1) * 10
1.50 formulae have been adjusted to honor crew bonuses for beam attack, beam defense
and missile defense. As a result, Space Academy is no longer a useless building and
Warlord becomes more valuable. Note that a racial bonus for BD now applies but
Trans-Dimensional bonus still does not (since there is no combat speed in strategic). Note
also that Weaponry and Helmsman bonuses have no effect in strategic combat and ship
scan is currently still showing misleading values.
Weapon Tech Lvl Cum RP Classic dmg 1.50 dmg Source for 1.50 value
34
Hard Shields
Hard Shields now increase blocked damage in strategic combat. Note that in contrast to
tactical combat, in strategic combat mode regular shields function in Nebula.
35
Auto-Scrap
To prevent your treasury from becoming negative the game automatically scraps things.
The patch changes the following:
● A correct number of ships is scrapped to cover your debt. In classic the game used
to scrap one extra ship due to a bug.
● When a ship is scrapped en-route and a leader resides on a ship, the game makes
an attempt to move this leader to another unoccupied ship in the fleet. The leader is
put into officers pool only if there are no suitable ships. This was added to offset the
effect of navigator being randomly removed from the fleet, since in 1.50 it may
cause the fleet to be lost in a black hole.
Warlord Ships
The crew level bonus now applies right away for new ships built by Warlords instead of
from the next turn.
36
Ship Refit
Pre-Warp Refit Bug
In Pre-Warp games it is now possible to refit ships without having researched Cold Fusion
(Colony Ship field). As soon as you are able to build ships, you can refit them.
“Feudal Bug”
In multiplayer games, both in hotseat and network, the cost for building or refitting a ship
will now be calculated correctly. Sometimes the basic ship cost was calculated in another
player's context, which had most noticeable effects when a Feudal player was involved,
hence the name of the bug. It was the reason why Feudal was usually banned in
multiplayer games. This bug happened for non-Feudal players too, but to much smaller
effect.
Lander Ships
Command Points not Updating After Landing OP or CS Bug
Fixed occurrences where landing a Colony Ship or Outpost Ship would not decrease the
used command points and maintenance cost. This could even lead to auto scrapping in the
next turn if at negative command and low on money.
37
Satellites
Satellite Weapon Mods
Satellite beam weapons can now have mods. By default all mods are allowed except AP
and SP for point defense weapons. Missiles can now be made MIRV (tho not enabled by
default). This can be configured with d efenses_allowed_mods. Mods now cost space for
both beam weapons and missiles. This causes slightly less beam weapons to be fitted
when mods are applied at L1 and higher. For missiles, ECCM is still free of cost and
available at level 0 miniaturization (a change that was made in Simtex v1.3 patch), while
for ships it’s a L1 tech at +25% cost. FST and ARM are available at L1 as before, but each
now have the same +25% cost as for ships. The space of satellites has been increased in
compensation. Note that a Star Base now starts with 4 nukes at L0 instead of 3, and has 4
and 5 nukes at L1 and L2 respectively, same as in classic.
Choice of PD Weapon
The best PD weapon by dmg/space for combat satellites is now selected taking Auto Fire
and Enveloping mods into account. Natural ENV is also taken into account.
38
Space Allocation
The allocation of available space for heavy beams, regular beams, point defense beams
and missiles / torpedoes can be configured with satellite_space_allocation. In classic a Star
Base had 300 space allocated as 25%/ 12.5%/ 12.5%/ 50% for Hv, regular, Pd and
missiles respectively. The default Star Base now has 400 space (+100 in compensation for
mods and arcs) with a new 26/13/12/49 allocation, for a starting weapons complement of
3 Hv / 3 reg. / 6 Pd / 4 nukes (Classic had 3/3/6/3). Note that AI’s satellite strength
assessment takes these custom allocation percentages into consideration.
Compare classic vs new default Star Base with L1 Fusion Beams and L1 Nukes:
39
40
41
Food from new building Next turn! Next turn Next turn
used if shortage
Autobuild recalculation
Colonies are not recalculated in autobuild anymore, so newly grown pop doesn’t
participate in production when autobuild is on.
42
Transporters tech is also not used in strategic but this tech has not been removed. For
Lithovore races Food Replicators tech is not placed in the tree, so the absence of
Transporters would cause an empty tech field, and consequently a crash.
Added Warp Interdictor to the tree (perhaps Interdictor and Dissipator were accidentally
swapped here).
Spying
Spy Roster Overflow Exploit
You can have maximum 63 defending
spies in MOO2. If this number is reached
then upon building a new spy the game
will scrap it. In classic it provides you
with 100 BC which is about twice as
profitable as trade goods are. This can
be considered an exploit. In 1.50 the
extra spy is scrapped at a common rate
of ½ cost.
43
AI & Diplomacy
AI Objective Bug
At the start of a game, each AI will get one of 6 objectives assigned: Diplomat, Ecologist,
Expansionist, Industrialist, Militarist or Technologist. The AI's race picks are an input for this
determination. The function that is used for that purpose had incorrect values for Ship
Defense and Ship Attack (SD+20, SD+40, SA+25) and as a result those traits were not
taken into account. These values are now variable and depend on the actual settings for
Custom Race (where classic is: SD+25, SD+50 and SA+20).
Ghost Colonies
A ghost colony is a colony with no population. Such colonies may appear because of the
use of bioweapons, extermination of conquered population or as a result of starvation (if
planet_extinction = 1). Such a colony exists as long as it has buildings. Every building on a
ghost colony has a 10% chance to be destroyed each turn.
The average number of turns a colony lives with 1..50 buildings:
0 0 (colony is destroyed immediately)
1 10
2 14.7
3 17.9
4 20.3
5 22.2
…
50 43.2
1.50 introduces the following changes here:
44
● In classic there was a bug which made your opponent unable to capture or bomb
such colony. This is fixed in 1.50.
● In classic having colonists inbound kept ghost colony alive even without buildings,
in 1.50 this is no longer true.
● Setting p lanet_extinction = 1 m
akes starvation lethal for the last colonist, so it is
possible to create a ghost colony by starving populace. This option does not affect
AI as it tends to starve its citizens and suffers too much from such rule.
Leaders
> It’s an urban legend that the game likes to compensate a race’s weakness with leaders.
45
Toxic Amoeba
The effects of an amoeba that has won combat at a colony now properly applies to AI
colonies too, transforming the planet to a Toxic climate. In addition the Amoeba is ensured
to stay in the game if its target colony is destroyed before it arrives.
Nova Fixup
Planet food output is now zeroed and soil enrichment removed from planets that have
been hit by a Nova, preventing such planets from being farmable after recolonization.
Comets
A comet now immediately counts as destroyed when 100% of that comet is destroyed, not
the turn after. In addition an overflow in GNN’s comet message has been fixed, and more
than 100% progress is no longer reported.
46
Serendipity Bug
The Serendipity event will no longer cause a blank box in tech choice if it occurs in the
same turn as a regular technology breakthrough.
47
Game Mods
1.50 Classic
Playing Classic game mode, you get all fixes and improvements as described in above
chapters. If you select this option in Launcher, the Map option field is automatically set to
Classic too. No game rules are changed via Config in Classic mode.
1.50 Improved
The 1.50 improved mod (150i) aims, as the name suggests, to improve on the classic
experience by enabling enhancements to tactical combat and weapon mechanics and by
making several tweaks, while keeping major elements like custom race picks and the tech
tree unchanged. All changes are made in Config. After initial installation of the 1.50 fan
patch, 150i is enabled by default. 150i includes the following changes:
Research
In 150i, the accumulated research points (RP’s) exceeding 2x the research cost of the tech
being researched are stored over instead of lost. In addition, the accumulated RP's are not
reset to 0 when the tech currently being researched is acquired by non-research means
(artifact planet, capture, spying).
Spying
Spies can now steal anything, except the technology that is being researched. Under
classic rules, anything but the t ech field b
eing researched can be stolen by your spies.
48
Democracies
The morale bonus of Psionics now also applies to democracies, instead of only to feudal
and dictatorship governments. In addition, at the advanced federation government level the
20% penalty for mixed race colonies is removed.
Androids
In 150i, android scientists instead of workers are affected by morale (they are sentient).
Build cost for all droid types increased from 50 to 100 production points (PP).
Buildings
Balance changes in build and maintenance cost:
Marine Barracks 40 1 (60 1)
Armor Barracks 60 1 (150 2)
Hydroponic Farms 60 1 (60 2)
Subterranean Farms 150 2 (150 4)
Food Replicators 200 4 (200 10)
In addition, the cost of replicating 1 food is now only 2 PP instead of 2 PP plus 1 BC (the
extra coin was undocumented).
Jump Gates
Fleets travelling in a Jump Gate controlled wormhole are unaffected by nebulae in 1.50
improved. In Classic, only black holes are ignored but not nebulae.
49
The two tables below summarize the differences between 1.31/1.40 (red), 1.50 classic
(white) and 1.50 improved with ICS (blue). You can see how 1.50 classic makes column
“boardable” consistent with “immobile label” and column “stashed speed” consistent with
“calc speed”. 1.50 ICS also makes “move points” consistent with both speed columns. The
columns are:
50
● Move points -- move points the ship can spend this turn.
● Stashed speed -- speed stashed in ship structure. It is updated by Tractor but not
by BHG for some reason. This parameter being 0 is what causes immobile label to
appear.
● Immobile label -- ship has word “immobile” written in red over its icon on info
panel.
● Calc speed -- speed calculated by Calc_Current_Speed according to all current
effects on ship. At the beginning of each turn this function is called and the result is
stored in “stashed speed” field. Most checks on ship speed actually recalculate it
rather than use stashed speed, e.g. an ability to board corresponds to calc speed,
not to stashed speed.
● Boardable -- can ship be the targeted by a boarding action by ships without
transporters.
Table 1. The effects of firing with tractor / BHG at a ship with moves left.
1.31/1.40 Move points Stashed speed “Immobile” label Calc speed Boardable
1.50 classic Move points Stashed speed “Immobile” label Calc speed Boardable
1.50i ICS Move points Stashed speed “Immobile” label Calc speed Boardable
Table 2. The effects of releasing ship from tractor / BHG on the next turn of firing.
1.31/1.40 Move points Stashed speed “Immobile” label Calc speed Boardable
1.50 classic Move points Stashed speed “Immobile” label Calc speed Boardable
1.50i ICS Move points Stashed speed “Immobile” label Calc speed Boardable
51
menu. ‘Strict’ changes rules for selecting which ship moves next. Combat is split in two
stages, pre-wait and post-wait. In the pre-wait stage ships move in order of their initiative
(highest to lowest) and can wait if they want to act later. In the post-wait stage ships move
in reverse order (lowest initiative to highest) and can’t use the Wait button anymore.
Because the Wait button can be used only once for each ship, the player can no longer
cycle ships endlessly. Note that with ICS enabled, the initiative rating of each ship can
change during the turn which affects ship ordering instantly.
Beam Weapons
Fusion Beam’s inherent ranged to-hit penalty has been removed. This mod has also been
removed from the Mauler Device by a patch (Mauler always hits, so the mod has no effect),
so only the Plasma Cannon retains this mod.
Plasma Cannon’s base cost is increased to 25 (from 15), bringing its cost/space ratio back
in line with other beam weapons. (Ref. addendum, Weapons tab.)
The enveloping mod (fusion beam, plasma cannon, torpedoes) is ineffective against
planets.
Missiles
In classic games with ship initiative off, missiles move at the end of each combat turn,
while in classic games with ship initiative o n, missiles move at the end of the n
ext turn. In
1.50 improved, that has ship initiative on, missiles move at the end of the combat turn just
like in classic games with ship initiative o ff.
In addition, missiles launched in different turns will not glue together. Under classic rules,
missile stacks from different turns can join and form one stack.
Torpedoes
Torpedoes are now in the same miniaturization group (1) as beams, missiles and bombs. In
classic, they are in miniaturization group 2.
52
Fighters
The maximum damage of energy beam weapons on Fighters is clipped to its listed
maximum. In classic they get a +1 bonus due to a bug that we regard as having become a
classic feature, hence it was not patched but fixed via config.
Heavy Fighters can now intercept missiles too, using their beams only. They will still act in
their usual way when targeting ships.
In a balance change, the size and cost of Bombers and Heavy Fighters have been reduced,
as follows: (Original classic values after #)
weapon bomber size = 40 20; # 60 30
weapon heavy_fighter size = 60 40; # 80 50
Note that in 1.40 and older versions, due to a bug the AI could fit bombers and heavy
fighters for 30 space each (interceptors space value). In 1.50 AI adheres to the set space
values.
Bombs
Base space of all bombs has been standardized to 5 space, or ½ space of standard beams
(10 space). Cost has been lowered as well.
weapon fusion_bomb size = 5 4; # 7 5
weapon anti_matter_bomb size = 5 5; # 7 6
weapon neutronium_bomb size = 5 6; # 10 9
weapon bio_terminator size = 5 6; # 7 8
53
Special Weapons
In classic, Plasma Web dissipation is 5 damage per turn for all webs on a ship combined
(and not per individual web). Over turns, this can lead to huge damage numbers done by
this weapon. In 1.50 improved the dissipation is a more reasonable 50% per turn.
A Black Hole Generator only recharges after the previous target is destroyed in 1.50
improved. Thus the attacker needs to wait until the target is destroyed until he can fire the
weapon again.
Ship Systems
In 1.50 improved the Lightning Field’s buggy roll is fixed; the amount of missiles killed now
has a binomial distribution. With the default 50% kill chance (configurable) this means that
on average ½ of all incoming missiles / fighters will be killed. In classic, due to this buggy
roll, on average ⅓ instead of ½ missiles / fighters are killed. The distribution in classic is also
asymmetric and yields different results depending on the size of missile pack, e.g. 8
missiles fired one by one and fired in one stack have significantly different survival rates
(50% in a stack will survive guaranteed). This could be exploited in Guardian rush games
which is why we deem it to be a classic feature.
The High Energy Focus bonus is set to +50% for each mount type (75 100 225). The
classic setting is 100 150 200, where Point Defense gets a bigger bonus and Heavy Mount
a smaller one than expected.
Space and/or cost values have been updated for Scout Lab, Structural Analyzer and
Transporters. See the addendum for detail.
In 1.50 improved, all Colony Ships, Outpost Ships and Transports that are built a fter a
stealth tech has been researched will be fitted with the best available stealth device.
Boarding
Ships now have to be adjacent to board, while the classic range is 3 (permitting a 2 square
gap). Boarding to and from ships trapped in a black hole is no longer allowed. Each marine
of a raiding party can destroy maximum 1 item instead of 2.
Planet Defenses
Radius of the Warp Interdictor has been reduced from 3 to 2 parsecs.
Fighter Garrison has been adjusted for Bombers and Heavy Fighters new space and now
houses 8 (was 6) Bomber flights and 6 (was 4) Heavy Fighter flights.
The Star Base specials list has been shuffled such that Battle Scanner is guaranteed to be
fitted instead of Warp Dissipator, like it was before the latter was added to this list in
version 1.3. This is especially useful for Creative races.
54
Since the enabling of simplified_beam_formula lowers accuracy at longer range and star
bases are immobile, the attack bonus of all satellites has been raised by +10. This raises
beam attack and initiative of the whole defending fleet by the same +10.
Civilian buildings now get stronger with higher armor technology. Instead of being always
100, they are now 100 120 140 160 180 200 for Titanium - Xentronium armor.
Leaders
Since the Tactics and Tactics* skills do not work, the three leaders with this skill have been
adjusted for 1.50 improved.
Khunagg, the Ruthless
- Removed Tactics
- Added Assassin
Nimraaz, the Master Tactician
-R emoved Tactics*
- Added Famous
Rash-Iki, the Warlord
- Removed Tactics
-R emoved Commando
-A dded Commando*
In addition, the following skill cost have been revalued:
Famous 3 6 (2 4)
Fighter Pilot 2 4 (3 6)
Navigator 2 4 (1 2)
Ordnance 4 8 (3 6)
Spy Master 2 4 (3 6)
Tactics 1 1 (2 4)
AI Race Variants
The classic design of AI race variants for the Hard and Impossible difficulties is bugged by
roughly three problems:
1. Sometimes extra abilities are awarded that the base race already has. Examples are
Bulrathi getting SA+25 and the Sakkra getting Food+1 in several variants.
2. The range of picks awarded varies hugely per race variant from nett negative
(Sakkra’s Aquatic+Repulsive) to plus 12 picks, very likely because the design was
done before the final race picks that we all know were set. When doing a count
55
with pre-release picks from the Strategy Guide (with for example Repulsive at -2
picks and Tolerant at +8) variability was greatly reduced and it seems that the devs
intended to give on average +3.5 picks (3-4) on Hard difficulty and +7 picks (6-8)
on Impossible.
3. Two Psilon variants have been weakened in the version 1.3 update that increased
the cost of Creative to 8 picks and swapped the Artifacts homeworld of the base
Psilon race for a Large one.
For 1.50 improved only the problems 1 and 3 have been addressed, while the second one
is mostly left untouched (except for two Darlok Hard variants) because fixing it would lead
to larger changes to many variants, making them noticeable ‘non-classic’. Details can be
found in the addendum.
AI Behaviour
In 1.50 improved, the AI is not required to have drive, fuel and colony ship technology in
order to build colony bases, only colony base tech is required. As a result the AI can build
them much earlier in pre-warp games.
The AI is enabled to research hyper-advanced tech fields that miniaturize late game
weapons and specials. In classic, upon completion of research of all regular technology
fields, AI stops all research and destroys all of its research facilities. This behaviour is now
postponed until the AI has completed one level of advanced research in Power, Physics,
Fields, Chemistry and Computer branches. The AI will not do advanced research in Biology,
Construction and Sociology.
AI Ships
An attempt is made to improve AI ship designs by changing the weapons space allocation
tables and some preferred weapon/special lists. For example, ships carry less bombs
overall and beam ships will have the Battle Scanner fitted more frequently. Details of all
changes can be found in the addendum, tabs AISHIPS_1 and AISHIPS_2. The first tab lists
the changed order of preference for special systems for the various ship design themes.
The second tab details changes to space allocation for weapons and special systems.
The Guardian
Plasma torpedoes and Spatial Compressors swapped slots in the Guardians design, so that
compressors can fire first and torpedoes last. (The 2 Spatial Compressors were added to
the Guardian’s design in classic version 1.3.)
Antarans
The maximum Antaran offensive fleet can now consist of 6 Titans (was 2) which is a nice
improvement for those who enjoy ultra-longplay games (>turn 500). Antaran Defensive
Battleship and Titan designs have been updated to match their offensive counterparts, in
effect making them slightly stronger. Antaran ship drives have been updated from Hyper to
Interphased Drive, increasing the beam defense by +10. Lastly, the Pre-warp delay that
defines when the Antarans can make their first appearance has been decreased from 200
to 150 turns (delay on Average is 100 turns).
56
Space-Time Anomaly
The first possible occurrence of the Space-Time Anomaly event has been pushed back to
turn 200 (was t50), the same delay as Comet and Nova events.
A Space Crystal now keeps captured ships as part of its own fleet after combat
(crystal_keep = 1). Roaming Crystals that capture ships will stay at the system where
combat has taken place.
In classic, systems that have 0 research going on the turn they get the Nova event will
always find a remedy the next turn because of the way the formula works: current research
times the number of turns before Nova. In 150i the formula is (current research +1) times
the number of turns before Nova, so there is always some extra research needed to avoid
the catastrophe.
Galaxy Map
The 1.50 improved map has a few minor improvements over its classic counterpart, the
details are specified in the addendum.
ICE
The ICE mod is a full mod that changes many aspects of the game, including race picks and
the tech tree. The mod comes in two variants, ICE-M and ICE-X, with the latter bringing
stronger AI opponents.
57
Melee
Experimental mod for 2-player tactical combat. The melee map has 4 systems: Orion, 2
home systems, and a neutral system. Each player builds 30 command points worth of
ships. Both players send their fleet to the neutral system and duke it out. No retreating! The
loser can now make designs to counter his opponents ships and rebuild his fleet, while the
winner adds new ships (can be new designs also) to his surviving ships until he again has a
fleet worth 30 command points.
New Game settings
Difficulty Level: Any
Galaxy Size: Small
Galaxy Age: Any
Players: 2 (Any other # will crash the game on mapgen!)
Tech Level: Pre-warp, Average, Post-warp (Advanced will crash the game!)
Tactical Combat: On
Random Events: On/Off (Events are delayed by 127 turns)
Antarans Attack: On/Off (Antarans are delayed by 127 turns)
Command usage per ship class
Frigate 1
Destroyer 2
Cruiser 6
Battleship 10
Titan 15
Doom Star 30
The config is not described in detail here since it’s very much in beta. Three parameters of
note are:
multibuild = 1;
Enables multiple ships to be built each turn. New (beta) parameter.
confirm_battle_message_timeout = 70;
Sets the timeout for the disappearance of the confirmation messages “X attacks Y at Z”,
“outpost destroyed” and “colony captured by mind control” in Multiplayer. The timeout is in
ticks (see scrolling below) and set to 70 for the melee mode. The default setting is 32767
which is approximately 30 minutes.
auto_close_board_result_popup = 1;
*
If set to 1, the pop-up of boarding results for raid and capture will close automatically,
using same delay as in AUTO combat. Useful for multiplayer games, because with this
setting enabled the defender does not get an action when it isn’t his turn.
58
Mapmods
In addition to the classic, 1.50 improved and melee maps, six more mapmods are available:
ICE
ICE map generates galaxies with more satellites per system, especially for white stars, and
less Gas Giants and Asteroid belts. Planet quality is somewhat improved and the chance
for wormholes is 3%. Small galaxies have 24 stars instead of 20 in a size equal to that of
the classic Medium galaxy. Medium galaxies have the same size as Large ones, but with 45
stars instead of 54. (Classic medium has 36 stars.)
ICE MP (multiplayer)
All home systems have 5 planets in ICE MP. Black Holes and Wormholes are disabled, as
well as the Orion system, which is replaced by a regular star. Splinter worlds that are
generated on the map are replaced by planets with Gem Deposits.
Orange
The Orange mapmod should help players that do not like empties, singletons or rocky
planets in their neighborhood. There are less Gas Giants and Asteroids and more planets
generated per system. All stars in an average aged galaxy are of orange color and all stars
in a young galaxy are white. Old galaxies have mostly red stars with the occasional brown
one. Systems with Ultra Rich planets will always be guarded by a monster. The chance for
wormholes is 3%.
GoodMap3
Goodmap3 generates 3 planets in every system and all planets are from the ‘Life
Supporting’ group, which, as the name suggests, creates more hospitable galaxies than the
classic mapgen does. Systems with Ultra Rich planets will always be guarded by a monster
and wormhole chance is 3%. Goodmap3 for 1.50 is modified from the classic Goodmap3,
further improving planet quality.
GoodMap3 MP
All home systems have 5 planets in GoodMap3 MP. Overall planet quality is improved
tremendously. Black Holes, Wormholes and Nebula are disabled and the Orion system is
replaced by a regular star. Splinters are replaced by Gem deposits, Natives by Gold
deposits and Marooned leaders by Pirate Caches. Artifacts worlds still exist, but do not
give free tech anymore. Players can see the planets of systems up to 12 parsecs away from
the start of the game.
Fixed Square
A special map that is generated via a script: A fixed rectilinear galaxy interlinked with
wormholes and Orion in the middle. The map scales according to the galaxy size set.
Suitable for 8 players.
59
Build Lists
Overview
Build queues can now be auto filled by loading one of 11 configurable build lists, drastically
reducing micromanagement. A build list is a plain text file containing a list of buildable
items and can be viewed and edited with any plain text editor (like Notepad on Windows).
Apart from buildable items, build lists can contain commands which affect how the queue
is updated.
The lists are bound to keys Q and 0
-9, the corresponding files being BUILD.CFG,
BUILD0.CFG, ..., BUILD9.CFG. Keys can be used in the Build screen and in the Colonial
Overview screen. Used in the Colonial Overview screen, the list’s contents will be loaded to
all build queues, or in combination with the SHIFT key to only the highlighted colony’s
queue. Default lists are:
Q BUILD.CFG merge buildings
0 BUILD0.CFG clear the queue
1 BUILD1.CFG append ship design 1
2 BUILD2.CFG append ship design 2
3 BUILD3.CFG append ship design 3
4 BUILD4.CFG append ship design 4
5 BUILD5.CFG append ship design 5
6 BUILD6.CFG append ship design 6
7 BUILD7.CFG prepend freighter
8 BUILD8.CFG prepend spy
9 BUILD9.CFG append housing
BUILD.CFG (Q) contains a reasonably ordered list buildings and is set to merge by default.
This should suffice for colony buildup in casual games against the AI.
60
Syntax
The portion of a line starting with # is a comment and is ignored, blank lines are also
ignored. Otherwise a build list is just a list of items separated by spaces or newlines.
Each buildable item is either:
● a product
● a mode
● a command
Products are:
● buildings: any building name like a utomated_factory or h
ydroponic_farm. The
correct spelling can be made from in-game English name by lowercasing and
inserting _ instead of spaces. If you aren’t sure how to spell the name refer to the
default BUILD.CFG which contains a full list of building names.
● landers: c olony_ship, o utpost_ship, transport.
● custom ships: d esign1, ..., d
esign6.
● droids: a ndroid_farmer, a ndroid_worker, android_scientist.
● special products: s py, freighter_fleet, trade_goods, h
ousing, r epeat.
Modes affect how products are inserted. Modes are:
● append - - items are inserted at the end of the queue unless the queue is full. This
mode is the default if you haven’t specified a mode.
● prepend - - items are inserted at the beginning of the queue unless the queue is full.
● merge -- items from the list already present in the queue will be rearranged in build
list order. This mode is intended for inserting newly-researched buildings with
proper priority.
Commands are:
clear clear the queue apart from bought prod and ships being refitted
clear_refits delete from the queue ships being refitted, except bought ones
unbuy unbuy the current product if it’s bought
buy1 buy a current product if it’s at least 1/2 built
buy2 buy a current product if it’s at least 1/10 built
buy3 buy a current product
stop stop reading the file and apply the list, ignoring all text after ‘stop’
Examples
Append a transport to the queue:
transport
Or, which is the same:
61
append
transport
Insert a spy and a freighter in the beginning of queue (but not if bought prod is present):
prepend
spy
freighter_fleet
Remove everything from queue apart from bought prod and refits and add two
androids workers:
clear
android_worker
android_worker
Scrap absolutely everything in queue and build design 6 repeatedly:
unbuy
clear
clear_refits
design6
repeat
Insert research lab on every planet where automated factory is already built and
insert both otherwise:
merge
automated_factory
research_lab
You can do a few special tricks using merge mode. The idea behind it is that merge
changes only those slots, the products from which are on the list. So you can clear or buy
only specific products. For example to remove only hydroponic farms and food replicators
from the queue:
merge
hydroponic_farm
food_replicator
clear
And to buy only automated factory:
merge
automated_factory
Buy3
62
ORION150.EXE /c=A.CFG
If you did specify at least one /c switch then configs provided this way will be read instead
of ORION2.CFG. In the example above config will be loaded from A.CFG. You can specify /c
several times, in this case files will be loaded sequentially. You may specify paths, but
remember that all file and directory names must be in DOS 8.3 format.
If all config files have been loaded successfully the game will extract all current settings to
EXTRACT.CFG. This file is a full config and can be loaded (for example you can rename it to
ORION2.CFG and restart the game). Extraction is mostly intended as an aid for modding
and development, but you can also use it to review your current settings. For creating a
new mod EXTRACT.CFG is a good starting point: make a copy of it in the 150\mods\
folder, rename it to a new mod name and adjust parameters.
You can change extracted file’s name by specifying /extract command line switch:
ORION150.EXE /extract=X.CFG
63
Network Synchronization
In network multiplayer the host’s config is broadcast and applied by clients so that all sides
have the same game settings. This doesn’t change config files on client’s disk, only memory
state for the duration of the game. Only non-interface options are broadcast, so if the host
has renamed some weapon, the change will be visible only to the host. The same goes for
parameters like scroll_interval, c lear_button, etc.
Syntax
The syntax should be fairly obvious from reading ORION2.CFG or EXTRACT.CFG, but for
those interested here is the summary:
● Config file supports comments. Character # and anything after it is considered a
comment until the end of the line. This can also be used for disabling parts of
config.
● Empty lines are ignored, series of whitespaces are equivalent to a single space.
● Apart from comments, config consist of parameter assignments and commands.
Both are terminated by a ; symbol.
● Commands are: i nclude, enable, stop.
● Command i nclude triggers parsing of a subconfig (by file name).
● Command e nable is used by the Launcher to mark enabled mods (by mod_id).
● Command s top skips the rest of the current file.
● Each parameter assignment changes some game rule, e.g. the following will make
the game use Point Defense on fighters’ beams: f ighters_use_pd = 1.
● Each parameter has a type: a number, a ratio, a fixed set string or an arbitrary
string.
● Numbers can be written in decimal or in binary form.
● Parameters of type ratio are needed to represent rational numbers. They are
specified as two numbers separated by / symbol.
● Strings containing whitespaces or special symbols " # ; need to be surrounded by
double quotes (""). The e
scape character is ^.
64
Commands
Include
Command include allows to spread configuration among several files. It’s primary function
is to allow easy enabling and disabling of mods, but also can be useful if you want to
separate several aspects of a mod. For example game rules and map generation rules are
generally independent, so you can write:
include 150\MyMod.cfg;
include 150\harshmap.cfg;
This way you will be using MyMod.cfg rules with map generation controlled by
harshmap.cfg. All file paths in config are relative to game directory.
File path in include is actually a template that supports variables LANG, LANG_ID and
LANGUAGE, e.g. the following command:
include 150\MyMod\$LANGUAGE$\mymod.cfg;
will include file 150\MyMod\English\mymod.cfg if your installation has English set as a
language. This allows to create multilingual mods. Variables and their values are:
Installation language may be changed by putting a number from LANG_ID column to
language.ini file in game directory and restarting the game.
Optional Include
Normally include requires a file to exist. The game will report an error if the file being
included is missing. This can be prevented by putting ? before the file name:
include ?150\maybe.cfg;
This prevents the config loader from aborting if 150\maybe.cfg does not exist.
Stop
You can skip the rest of the current file using stop c ommand:
65
stop;
It has no arguments and is intended for testing. Note that config parsing will continue after
include if current file was included. For example if file’s A 10th line is i nclude B; and file’s B
20th line is s top; then lines beyond 20 in B are skipped and parsing continues from line 11
of A.
Numeric Value
Numeric parameters accept numbers in a certain range. Each parameter has its own range,
for example speed_fast_bonus can be 0 to 255, while fighters_use_pd can be only 0 or 1
(this is called boolean; for such parameters 0 means disabled or o ff a
nd 1 means enabled
or on). Sometimes you need to write parameter in binary (a bit mask), this can be done by
prepending a value with 0:
weapon plasma_cannon available_mods = 010010;
Here 010010 is a binary form of the number 18. All numbers starting with 0x are parsed as
hexadecimal, for example 0x1a or 0x1A equals to 26. Any other number starting from 0 is
interpreted as binary, so writing 0123 will result in parse error (2 and 3 are not binary
digits).
Ratio Value
Ratio value represents a rational number. This is needed when ratio can’t be accurately
expressed as percentage and rounding is undesirable for some reason. It consists of two
16 bit integers separated with / symbol:
govt_bonus feudal_reduction = 1/3;
Note that no space is allowed between / and numeric components, but you can optionally
drop /<num> part if you want an integer value, i.e. specifying 2 is legal and is the same as
specifying 2
/1.
66
Table Parameters
Some parameters are tables. You can set single value or the whole table in one shot. To set
a single value in a table:
E.g. to set damage bonus for point defense mount when no high energy focus is present:
E.g.:
67
In this example you can also drop pd if you know it’s a first column:
In tables you usually want to specify all values for completeness but if you want to leave
some intermediate values unchanged you may skip items by using - (dash) symbol:
mount_dmg nohef pd = 50 - - 75;
In this example values 50 and 75 are assigned to Pd mount without and with HEF
respectively. Two dashes skip values for normal and HV mods without HEF.
More bulk notation examples can be found in M odding Notes section.
LBX substitution
For a number of LBX files you can specify an alternative file to be loaded instead. This is
useful to provide custom texts or graphics. Since 1.50.5 this feature is also used for
multilingual support.
If you specify non-existing files the game will refuse to start or reload config. The check is
simplistic and can’t detect malformed files, using those will result in sudden crashes. The
following LBXs are supported:
● Cmbshp
● Credits
● Colsysdi
● Combat
● Diplomse
● Estrings
● Eventmse
● Fonts
● Help
● Herodata
● Hestrngs
● Info
● Kentext
● Kentext1
● Maintext
● Newgame
● Officer
● Raceicon
68
● Racename
● Races
● Racesel
● Rstring0
● Shipname
● Ships
● Skildesc
● Starname
● Techdesc
● Techname
For example:
info.lbx = 150\MyInfo.LBX;
Here we tell the game to load MyInfo.LBX from 150 subdirectory instead of INFO.LBX.
To reset to a default LBX set the corresponding parameter to 0 (a null string):
info.lbx = 0;
You can change these parameters on the fly because most LBXs are loaded on demand
whenever the game needs them.
Multilingual mods require different LBXs depending on current language. To support such
mods all lbx parameters are processed as templates similar to i nclude command’s
templates. Actual filename depends on the current language, e.g. this:
help.lbx = 150\HELP_$LANG$.LBX;
will expand to 150\HELP_EN.LBX if your current language is English. Refer to i nclude
command description for the complete list of variables and their values. Note, that unlike
include templates, optional files via ? are not supported.
Default Configuration
This patch comes with an extensive configuration. The main config file is ORION2.CFG,
and it refers to other config files by means of the “include” command.
ORION2.CFG
ORION2.CFG specifies the location of build lists, scripts, updated 1.50 LBX’s as well as
other CFG’s to be loaded:
build.cfg = 150\build\BUILD$ID$.CFG;
Location of all eleven build lists.
main.lua = 150\scripts\main\MAIN$ID$.LUA;
Location of main scripts.
69
newgame.lbx = 150\lbx\NEWGAME.LBX;
This is a required file that contains updated graphics for the New Game screen. Without it
the 1.50 exe will crash. This file has been made optional and not a replacement of the
original file to preserve compatibility with the classic exe’s: This custom file cannot be used
with versions 1.31 or 1.40.
racesel.lbx = 150\lbx\RACESEL.LBX;
This file contains the redrawn Darloks button, without letter ‘c’ in the name.
colsysdi.lbx = 150\lbx\COLSYSDI.LBX;
This file contains the fix for tiny toxic, rad, barren planet colors in the Colony screen.
techname.lbx = 150\lbx\TECHNAME.LBX;
This file contains a couple of spelling corrections.
include ?150\lbx\$LANG$\$LANG$.CFG;
Loads a different config dependent on the language set in LANGUAGE.INI. Currently,
EN.CFG for the English language contains all of the below listed files. For the other
languages, the config only loads EVENTMSE.LBX.
eventmse.lbx = 150\lbx\$LANG$\EVENTMSE.LBX;
Contains GNN news fixes. R
equired file.
estrings.lbx = 150\lbx\$LANG$\ESTRINGS.LBX;
Contains the updated Leader Hire Pop-up texts and some spelling corrections.
hestrngs.lbx = 150\lbx\$LANG$\HESTRNGS.LBX;
Contains miscellaneous text corrections.
maintext.lbx = 150\lbx\$LANG$\MAINTEXT.LBX;
Contains a text correction.
rstring0.lbx = 150\lbx\$LANG$\RSTRING0.LBX;
Deleted ‘used’ that appeared after Robotic Factory in the Industry Summary.
70
skildesc.lbx = 150\language\$LANG$\SKILDESC.LBX;
Corrects texts of Leader Skills.
techdesc.lbx = 150\language\$LANG$\TECHDESC.LBX;
Corrects weapons and specials texts as seen in the Ship Design Dock.
scan_mods = 150\mods;
Where to search for mods.
include ?150\ENABLE.CFG;
Contains the mods that are enabled by MOO2 Launcher. Set your desired mods in
enable.cfg manually when not using MOO2 Launcher.
enable USER;
Causes USER.CFG to be included after all other mods. See C
ustom Interface Settings.
USER.CFG
The config file USER.CFG contains all user specific interface settings. This config can be
opened from Launchers Edit menu. Below a description of all options and their defaults:
disable_vsync = 0;
Screen switches (fade-ins and fade-outs) are faster in 1.50 than in classic. You can make
them even faster by setting disable_vsync = 1. With this setting screen switches happen
without delay, greatly speeding up the interface. It might produce some funky colors during
screen switching from time to time.
warn_blockers = 0;
This config parameter allows to skip the “repeat before a product” dialog in the Colony
Build screen. Depending on this and the ‘Auto Delete Trade Goods/Housing’ setting,
repetitive items (housing, trade goods or repeat builds) in the queue may be deleted, kept,
or a dialog will appear asking what to do upon exiting the Colony Build screen.
warn_blockers = 1 warn_blockers = 0
Classic default behaviour was to ask and 1.50 default is to keep. Additionally the ‘Auto
Delete Trade Goods/Housing’ setting now functions properly when using the , and . keys to
cycle colonies in the Colony Build screen.
71
wormhole_color = 4;
This parameter specifies the index of the color used to draw wormholes. Possible values
are 0-255. Classic value of 4 is a dark grey (default). Use 10 or 20 for lighter greys. Color
map:
disable_physics_updates_ship_designs = 1;
In classic, ship designs are automatically updated when the physics tech field (laser)
becomes known. Setting this parameter to 1 (default) prevents this.
design_button_shield = update;
This parameter controls if the shield of a ship design is updated to best available or stays
as is upon clicking the Design button (in Colony Build screen). The default is set to ‘update’,
which is classic behavior. Alternatively it can be set to ‘intact’, which disables this auto
update and preserves current designs.
design_button_computer = update;
Same as above, but for computer.
72
clear_button_shield = intact;
This controls how the CLEAR button in Ship Design (Design Dock) behaves regarding
shield. The three options are:
intact - Don't change shield currently set (default, classic).
update - Update to the best available.
clear - Set to none.
clear_button_computer = intact;
Same as above, but for computer. Classic is ‘update’, which is inconsistent with shield
behaviour: It doesn’t remove the shield but puts the best available computer to the design.
In 1.50 the default is ‘intact’, the same as for the shield.
missile_ammo = x2;
Default ammo when selecting a missile in Ship Design. Classic is x5.
scroll_interval = 2;
Edge based scrolling in tactical combat has been slowed down, making it useful again on
fast computers. The scroll delay is controlled by scroll_interval config parameter which sets
the number of ticks between scrolling events. One tick is approximately 1/18 of a second.
We have set the default at 2 ticks. 1-3 ticks should be optimal for most people. Set it to 0
to experience the original behavior.
finds_presented_by_scientist = 0;
If 1, a scientist instead of a trooper presents tech finds from artifacts planets.
rebel_display = 0;
Normally rebels are only present on conquered colonies, but as an option a rebel picture
along with their statistics can be displayed in a colony’s military pop-up by enabling this
parameter.
73
new_leader_popup2_diff_level = 0;
Sets the maximum difficulty level for which a second confirmation pop-up is shown when
you hire or reject a new leader. Default is 1 for Easy level. The parameter is set to 0 in
user.cfg, so the second pop-up will only be shown on the Tutor level.
ENABLE.CFG
This file lists enabled mods. It is generated automatically by MOO2 Launcher every time it
starts the game, so all manual edits are lost. The MOO2 Launcher defaults are:
enable 150I; (core mod)
enable MAP1_150i; (map)
If you are not using Launcher and want to play another mod, then edit enables below. For
example to play ICE-M, comment out the existing lines and write "enable ICE-M;" and
“enable MAP2_ICE”.
Choices of mods included with the standard pack are:
Core Mod
enable 150c; Classic
enable 150i; 1.50 Improved
enable ICE-M; ICE-M
enable ICE-X; ICE-X
enable Melee; Melee
Map
enable MAP0_CLASSIC; Classic
enable MAP1_150; 1.50 improved
enable MAP2_ICE; ICE
enable MAP2_ICE_MP; ICE MP (multiplayer)
enable MAP5_GM3; Goodmap3
enable MAP5_GM3_MP; Goodmap3 MP (multiplayer)
enable MAP6_ORANGE; Orange
74
150i.CFG
This is base config for 1.50 improved. The config contains the following items:
enable MAP1_150;
This sets the 1.50 improved map as default map in Launcher. If you choose the mod 1.50
improved in Launcher, then it will automatically select the 1.50 improved map as well. You
can select any other map manually as you wish.
combat.lbx = 150\COMBAT.LBX;
Loads updates picture file containing a new greyed Wait button needed for the option
‘strict combat sequencing = 1’ that is set in tweaks.cfg.
include ?150\mods\150\150i\language\$LANG$\$LANG$.CFG;
Loads updated Help files for the English language as well as a new Herodata.lbx for all
languages.
include 150\mods\150\150i\RACES.CFG;
include 150\mods\150\150i\AISHIPS.CFG;
include 150\mods\150\150i\ANTS.CFG;
include 150\mods\150\150i\TWEAKS.CFG;
Loads the four configs that make up the mod 1.50 improved. All options contained in these
four files have been described in detail in chapter Game Modes.
Modding
Config parameters are many, so not all are listed in this manual. The complete overview
can be found in EXAMPLE.CFG which is shipped with the patch. Each parameter is listed
there with some description and minimal usage example. You can also refer to it to
determine row and column order needed for using bulk notation. Other sources of
information are the file extract.cfg and mods supplied with the patch like icemod.cfg.
Switches
75
1.31 switches
/noreport /noreport = 1; The report button on the diplomacy screen will be
disabled, preventing you from seeing your
opponent's technology. Also, Technology
demands and trades are greyed out.
/droids /droids = 1; All players start out with the ability to build
androids (all 3 types).
The switch /picks was removed because of its range limitation of 10-14 picks. The number
of picks is accessible via n
umber_of_race_picks parameter. The rest of the switches affect
map generation.
Map Generation
76
/noorion mapgen /noorion = 1; Orion and the Guardian are not
placed on a map.
77
Note: The switches /minstart, /hugestart, /richstart and /goodstart all affect the same
ONE planet and their effects are cumulative.
mapgen -tupoor = 1; Huge Ultra Poor planets becomes Poor. Other Ultra
Poor planets become Abundant.
mapgen -ttiny = 1; Tiny planets become randomly from Small to Large.
Except if - tsmall flag is used they become Medium.
mapgen -sarti = 1; Arti planets still exist, but don't give techs anymore.
mapgen -shero = 1; All stars on the map that contain a hero become
brown color, while brown stars without heroes
become red color.
mapgen -mterraform = 1; Guarded Rich & U-Rich planets are terraformed:
Toxics, Rads, Barrens, Deserts become Tundra.
78
mapgen -tgaia = 1; Does not imply -tfixedhw. Fifth planet becomes
Small Poor Gaia unless you are creative, aquatic or
tolerant in which case it’s Medium Poor Terran.
mapgen -bshowring = X; Specifies radius in parsecs (X); all planets closer to
their HW than X are revealed to players.
Planet Specials
With planet_special_weighted_chance, the chances for Wormholes, Natives, Deposits, etc.
become configurable. All values combined should add up to 100 here.
79
Population
Population Capacities
Two parameters modify population capacities for each planet type:
pop_base = 5 10 15 20 25;
pop_climate = 25 25 25 25 25 25 40 60 80 100;
The screenshot below from MANUAL_150.XLS highlights these values in blue:
Buildings
The build and maintenance cost of buildings can be configured. Take the cost of Armor
Barracks for example. The default cost is 150 PP and 2 BC/T maintenance, which is quite
expensive for a few cool tanks or Battleoids. It can be lowered by writing:
building armor_barracks cost = 60;
building armor_barracks maintenance = 1;
80
Or alternatively:
building armor_barracks cost = 60 1;
Initial Buildings
The number and types of buildings that each colony has built at game start depends on:
- Starting tech level (Pre-warp, Avg, Post-warp, Advanced),
- Population size of a colony.
- Known techs and
- Priority listing in the table i nitial_buildings.
The number of starting buildings on each colony is capped to 3 for Prewarp, 5 for
Average/Postwarp and 9 for Advanced game starts. Apart from cap, colonies with more
population start with more buildings, the maximum number of buildings (not counting the
Capitol) is ⅔ pop rounded up. For example a HW with 8 pop can have 6 buildings on
Advanced Tech start, but only 5 on Average start due to the cap.
Prewarp and Average Tech games only start with Marine Barracks and a Star Base
because no other techs are Known that are also in the default initial buildings list. If, for
example, Colony Base building is added to the i nitial_buildings, it will be given to all
players’ homeworlds at game start.
The initial_buildings is a strict list, in that the game starts at entry 1, checks if it’s allowed to
place it and works its way down. The default list order potentially causes 1-3 pop colonies
on Advanced to start without Marine Barracks because the first two list items are a satellite
(#1-3) and Hydroponic Farms (#4). Marine Barracks is entry #5. See MANUAL_150.XLS for
further details.
Productivity
Productivity bonuses
Config allows setting of all building and achievement bonuses for food, production,
research, money and morale.
Weather Controller
The parameter weather_control_climate sets the minimum climate where weather
controller can be built. As an exception, setting Radiated, will disallow the building only on
radiated worlds (and not on both toxic and radiated worlds).
Biomorphic Fungi
Biomorphic Fungi normally add +1 to farming on non-farming worlds. Parameter
fungi_climate allows to choose its behavior from 3 options:
classic - affect only non-farming worlds
reversed - affect only food-producing worlds
united - affect all kinds of worlds
81
The +1 bonus can be changed using f ood_bonus biomorphic_fungi. Note, that this bonus is
in half-food units, so setting it to 1 corresponds to +½ food per farmer.
Food Replicator
With replicator_food_cost_no_bc, the 1 bc cost per 1 food is removed.
Nano Disassemblers
Production generates pollution and a base rule is that half of any production of your
workers (including Robotic Factory output) will be used to clean up the pollution (rounded
up) and the remainder is usable production. Every planet however is inherently tolerant to a
certain level of pollution, and the size of that the "pollution exempt production" depends on
the size of your planet. Nano Disassemblers technology doubles this value:
B
ase N
ano’s
Tiny 2 4
Small 4 8
Medium 6 12
Large 8 16
Huge 10 20
This multiplier ‘2’ can be tweaked in Config with nano_disassemblers_coeff.
Hull Table
With the Hull Properties table, the cost and available space can be set for all ship classes
and available space (not cost) for all three satellites. In addition, hit points for armor,
structure, computer, drive and shields can be set, as well as the number of marines
onboard. For strategic games, the number of beams, missiles, special weapons and bombs
can be set as well as the defensive bonus and hit points.
82
cost = max(2*delta, min_refit_cost)
delta = abs(new_cost - old_cost)
min_refit_cost = ¼ standard hull cost.
alternative_refit = 1 sets a new refit formula, which calculates the cost as one time the
delta cost (with a minimum of 0) plus the minimum refit cost:
cost = max(delta, 0) + min_refit_cost
Special Systems
With the Star Base specials priority list starbase_special 15 specials can be set to be fitted
in a satellite, of which up to 8 specials are fitted if available. Specials are not mutually
exclusive here, except for slots 5a, 5b, 5c, of which only the highest ranked available
special will be fitted.
83
Defensive Range
Added defensive_range_bonus that sets a range bonus in 3-square range units to improve
the range beam weapons on satellites and planetary defenses.
84
Bonuses
With the t roop_type, t roop_bonus a
nd rifle_bonus tables most combat bonuses and hits of
troops and marines can be configured.
Weapons
Weapons Table
Enables modding of cost, space usage, minimum and maximum damages. You can also
change weapons’ mods, both inherent (like Neutron Blaster’s marine killing ability) and
regular ones, obtained with miniaturization (like autofire).
For example lowering Plasma Cannon min/max damage from 6/30 to 4/20:
weapon plasma_cannon minimum_damage = 4 20;
To remove the continuous mod from Plasma Cannon its mods mask:
00000000000010010 (18 in decimal)
needs to become:
00000000000000010 ( 2 in decimal)
So write:
weapon plasma_cannon available_mods = 2;
or alternatively (starting 0 indicates a binary number):
weapon plasma_cannon available_mods = 010;
And combined you can write:
weapon plasma_cannon minimum_damage = 4 20 6 24 2;
Where ‘6 24’ are unchanged damage values for strategic games.
Note that changing ammo values for weapons in this table can have unexpected effects
(bugs). Tab ‘Weapons’ in MANUAL_150.XLS has an overview of all weapons mod flags.
85
Plasma Torpedo
Plasma Torpedo became moddable:
● Added p lasma_torpedo_dissipation t o set plasma torpedo per travel square
dissipation (5 by default).
● Speed has been made tunable via s peed_base plasma_torpedo.
● Damage has been made tunable via w eapon table.
Although w eapon and speed_base tables are not exclusive to plasma torpedo they are
mentioned here because along with plasma_torpedo_dissipation they could trigger two
hidden bugs described below. Both bugs don’t occur in unmodded classic since classic
values for plasma torpedo don’t trigger them. Both bugs are fixed in 1.50:
● Fixed incorrect dissipation on impact. This happened when non-NR plasma torpedo
survived more than one turn. For such torpedo dissipation was calculated as if
torpedo was fired on the turn of impact. So if torpedo flies 20 squares on turn 1,
then 3 squares on turn 2, and then hits the target, it loses 3 * 5 = 15 damage points
by dissipation, not 23 * 5 = 115 as it should have. Note, that in unmodded classic
this is impossible since plasma torpedo dissipates fully in one turn.
● Fixed instant dissipation on launch. When ship initiative is on and m issile_initiative
is set to -1, Plasma Torpedo would sometimes dissipate instantly when fired. This
happened for some speed/damage combinations but not for others. For classic
speed and damage the bug didn’t occur.
Proton Torpedo
It’s default range is 24 squares which can be set with proton_torpedo_range = 8, where
each range unit equals 3 squares (24 = 8 * 3). Travel speed is limited to the value set in
speed_base proton_torpedo if p roton_torpedo_apply_speed_base i s set to 1.
Fighters
Several aspects of fighters’ behavior were made configurable.
● In classic Fighters used normal mount beams instead of Pd. Now you can make
them use Pd by setting f ighter_uses_pd = 1. Note that fighters’ Pd damage is
rounded up, in the same way as for ships.
● In classic Fighters used to deal up to listed damage +1 damage by any weapon but
Mass Driver. For example a Fusion Beam fired from a Fighter can do max 7 damage
instead of 6. You can cap fighter’s damage to weapon’s maximum by setting
fighter_beam_no_plus_one = 1. Despite being most certainly a bug, the original
behaviour was preserved as an option for compatibility with certain classic
strategies.
● By default, Fighters get an offense bonus of +50. This bonus can be changed using
flyer_combat_modifier fighters_offense_bonus.
● The number of shots each fighter has can be configured with f ighter_shots.
86
Spatial Compressor
Added compressor_per_size_class_damage p arameter which enables optional per size
class damage increase for Spatial Compressor (larger ships receive more damage and
smaller ones less). This is similar to how pulsar normally works.
87
2x Range Penalty
This somewhat obscure inherent mod used to cause a question: what essentially does it
do? Nothing? Penalizes accuracy? Penalizes damage? Technically this inherent mod was
properly penalizing accuracy, and was for example supposed to balance Plasma Cannon,
by making it a very powerful weapon but only at a short range. That didn’t work as
intended though. Perhaps the 2x penalty has more sense affecting the dissipation instead.
Therefore, 1.50 allows the choice between both ways, or a combination:
● 2x_range_accuracy_penalty, double accuracy penalty for the 2x weapon mod
(original, default);
● 2x_range_damage_penalty, double damage dissipation for the 2x weapon mod.
Enveloping Mod
Setting planet_non_enveloping = 1 disables the enveloping weapon mod against a planet
(except Stellar Converter).
Inherent Mods
Several inherent mods now also work for missiles/torpedoes:
#0 Shield damage only (‘Zeroth’),
#3 Internal systems damage (Ion),
#4 Kills marines (Neutron),
#5 Extra structural damage (Graviton).
ESD Flag
The bonus of the Extra Structural Damage flag (Graviton Beam) can be set in config. Extra
Structural Damage subtracts the ESD value from a ship’s structure (not a damage dealt
technically, similar to Spatial), while the regular damage part is just a usual damage, like
from most other weapons.
88
anti-missile weapon. A beam weapon that has this flag enabled is never installed on
Fighters.
Defensive Fire
Defensive Fire is a special ability of regular mount beams, intended to give an inactive
player some defensive means during the active player’s move. Every ship equipped with
such beam is performing checks every time an enemy ship moves using a pre-calculated
value, the “Defensive Fire Range”, that is the closest distance s ome e
nemy ship can move
to that ship. The closer the moving ship position to that value - the greater chance the
Defensive Fire will occur, and if that ship will reach DFR - the chance becomes 100% (as
its “most optimal time” to use the guns, no other ship can move closer from now). The
following table summarizes chances for defensive fire to occur:
Sadly in combat with ship initiative enabled the whole mechanic was plagued with bugs,
which rendered it inconsistent and incomprehensible:
● As DF wasn’t adapted to ship initiative mode at all, the DFR value controlling its
behaviour was calculated only once per turn, at the end of it. It was suitable for
non-initiative combat, as a player cannot move own ships during the opponent's
turn, so even calculated only once, this value was correct. But when both players
share the same turn, the DFR had to be updated after every ship’s move (as it’s
about relative distance between ships).
● As the DFR value originally had meaning only during the opponent’s turn, when the
non-active player cannot move own ships, the DFR value itself was corrupted
during AI-controlled move for that ship (assumed that when it will be actually
needed - it will be already recalculated by that time). So in a shared combat turn,
AI-controlled ships had lost their DFR values after they performed any move action
and used some wrong values for the rest of that turn.
● A bug in the range calculation prevented DF from happening in case when a
moving ship’s start position was out of Normal beams range, or its destination
position was too close to a DF ship.
● Ship retreat procedure was incompatible with DF when ship initiative is on.
Retreats could cause DF, but some ships were able to retreat prior to other ships
get their weapons recharged. Example: ship A is attacked by ships B and C and
89
chooses to retreat on the first turn. The retreat takes place at the beginning of turn
2, ship A is processed first as defender and retreats. B and C do not fire since their
weapons are not recharged yet. In the same example if A was the attacker then
both B’s and C’s weapons are recharged before A retreats, so they fire at A when it
turns to fly away.
● Not a bug but a mechanic’s flaw, was the intention of the effect to be applied only
to beams that a player did not use during his own turn and were not turned off. As
a result it couldn’t happen on the first turn of battle. Note that this effectively means
only the first turn of attacker in non-initiative combat it. Defender ships were unable
to perform DF at all, but during Defender’s first turn (second turn), attacker’s ships
with Normal beams ready were able to fire. With shared turn (when initiative is on)
it meant that DF could not happen at all during the first turn. As players are indeed
unable to show their intent about keeping beams on or off, as a new rule DFR value
is three times lower for that first turn, so chance of fire is lowered in comparison,
but ships will still fire if a target moves too close.
All of the above problems have been fixed in 1.50. However, because the whole mechanics
was so severely bugged for all the years, and it was impossible to improve on it while
keeping the “original feel” in combat, we have turned DF off by default for games with ship
initiative on and added the parameter d efensive_fire, that controls whether DF is enabled
or not in INI games. With INI off, DF is always on as it was in classic.
In addition, the parameter d efensive_fire_max_range can limit the range at which DF is
operative, and alternate_defensive_fire can be used to set a more straightforward static
chance dependency on a range between 2 ships. Note, that rolls happen per travel square,
but probability is set per 3 squares, so the chance of triggering fire is different between
entering the range and passing through it. The chances per range can be set with
alternate_defensive_fire_range.
Special Systems
Specials Table
Enables modding of space and cost values per size class of ship. Mutual exclusivity of
special systems is also set here.
Augmented Engines
Combat speed bonus is configurable via a
ugmented_engines_speed_bonus.
90
minimum combat speeds of ships with and without Battle Pods are equal. If the parameter
battle_pods_speed_bonus is set at 0, ships will not get this speed bonus.
In addition, minimum_combat_speed sets the minimum combat speed of a ship, excluding
Augmented Engines, controlling the maximum overload speed decrease possible when
battle_pods_speed_bonus = 0. ‘Overload’ being a speed decrease from the extra stuff that
can be fitted in the Battle Pods space. By default it’s set at 255, not allowing combat speed
to decrease due to overloading the ship. If another value is chosen, it determines the
minimum combat speed that a ship cannot go below due to overload. For example: if set as
5, it will prevent an overloaded Nuclear Drive frigate with a base minimum speed of 10 to
become slower than 5, while a Nuclear Drive doomstar with a base minimum speed of 3
cannot become slower than 3.
Battle Scanner
Both its scan range and its beam attack bonus can be configured. Use scan_bonus
battle_scanner and c ombat_bonus battle_scanner_beam_offense respectively.
Cloaking Device
Optionally with c loaking_device_missile_defense = 1, a Cloaking Device adds to the missile
evasion bonus instead of using ‘miss chance’ mechanics. If enabled, the missile evasion of
an ECM Jammer + Cloaking Device equipped ship becomes 120, which means that non
ECCM missiles will always miss instead of having 15% chance to hit (0.5*(1-0.7)), while
ECCM missiles get a slightly better chance to hit of 40% versus 32.5% (0.5*(1-0.7/2)).
91
Phasing Cloak
Setting timeout counter to 0 now have a different effect -- equipped ships will start a
battle in regular cloaking state instead of one turn in phasing state.
Damper Field
The remaining damage percent after applying damper field damage reduction is set with
damper_field_ratio, that is 25% by default. Damper Field also distorts a transporter beam
attempting to move troops onto the equipped ship, killing a portion of troops instantly. The
ratio total troops / survivors can be set with damper_kill_ratio. Default value is 3 (meaning ⅓
of troops survive transportation) and valid values are 0-127. Setting this parameter to 0
will result in Damper Field preventing use of transporters for boarding.
Energy Absorber
● The setting a bsorber_keep_charge prevents charge loss at end of turn for
non-initiative games so that it can be fired on another turn. Note that in combat
with INI, a charge is always kept regardless of this setting.
● Damage reduction now is configurable with a bsorber_damage_reduction.
Lightning Field
Lightning Field roll is buggy, which leads to ⅓ instead of ½ missiles / fighters being killed on
average. The distribution is also asymmetric and yielded different results depending on the
size of missile stack. E.g. 8 missiles fired one by one and 8 missiles fired in one group had
significantly different survival rates. Setting lightning_field_mode = uniform results in a
binomial distribution for the amount of missiles killed. This means that on average ½ of a ll
incoming missiles / fighters will be killed. The default setting of 50% kill chance can be
configured via the l ightning_field_ratio parameter.
92
Megafluxers
The space bonus for Megafluxers can now be tuned with megafluxers_tactical_bonus,
which gives +25% space to a ship by default. This technology works differently in strategic
mode, where its adds +50% to the number of beams on a ship. The result is rounded
down, causing the 1 beam Frigate to get no extra beam. This bonus can be altered with
megafluxers_strategic_bonus.
Scout Lab
By setting lab_and_lore_against_antarans = 1, Scout Lab (and the Galactic Lore skill) will
also provide its combat bonus when fighting against Antarans. The research bonus for the
lab depends on the size class of the ship and can be configured via
scout_lab_research_bonus t able.
Sub-Space Teleporter
● The original square jump range seems like a bug, but was kept since it has become
a known and distinctive feature. Optionally, setting r ound_teleporter makes the
teleporter jump area approximately round (octagonal).
● With s ub_space_teleporter_range, the range can be set to a custom value.
Structural Analyzer
The Structural Analyzer bonus can be configured using analyzer_bonus.
Shields
Miniaturization Table
93
spy_roll_success_threshold
Table containing thresholds for values for successful spy rolls of stealing and sabotage and
if another race was framed.
steal_mode
In addition you can specify what spies can steal. Normally, an exception is set for spies so
they will not be able to steal any tech of the technology field that is currently being
researched. 1.50 provides alternatives via s teal_mode:
except_current_field - classic behavior.
except_current_tech - relaxed version of classic.
anything - anything, including tech currently being researched.
spies_can_frame_anyone
By default, another race can only be framed for espionage if it is n ot in possession of the
stolen tech. Unknown why this rule was introduced, but it does allow you to check via race
reports (with exceptions) if the named race was indeed the one that has stolen your
technology. Enabling this parameter overrides this requirement.
Tech Tree
The Tech Tree can be modded both by moving technologies to different fields in the tech
tree, as well as by changing the techfields themselves. A little more care is appropriate
when modding this area of the game to prevent crashes from occurring. Some tips:
94
becomes:
Requires the following lines:
tech_field anti_matter_fission next_field_id = 37;
tech_field high_energy_distribution prev_field_id = 13;
tech_field magneto_gravitics next_field_id = 46;
tech_field matter_energy_conversion prev_field_id = 45 27 1150 8;
tech_field electromagnetic_refraction prev_field_id = 46;
tech_field_name matter_energy_conversion = "testername";
95
Custom Names
Names for some game objects can be specified in config. Such names override names from
LBX. If no name is given in config (name is set to null) original name from LBX is used. By
default all names are taken from LBX. Name tables are:
● tech_name
● tech_field_name
● weapon_name
● weapon_name2 (plural for weapons)
● special_name (special systems)
● building_name
● SHIELD_name
● ARMOR_name
● COMPUTER_name
For weapons there are name tables both for single and plural spellings, for example you
can specify:
weapon_name mass_driver = "Mini Cannon";
weapon_name2 mass_driver = "Mini Cannons";
To reset to default:
weapon_name mass_driver = 0;
weapon_name2 mass_driver = 0;
For languages other than English special characters are encoded with a subset of symbols
{}[]<>@#| . For example German letter ß is encoded by |, so the word “groß” becomes
96
“gro|”. The encoding is language-specific and is not described here in detail. The direct use
of unicode characters is not supported and won’t work.
Picks
The maximum and minimum picks that can be used to create a custom race can be set, as
well as the number of picks available for Evolutionary Mutation:
number_of_race_picks maximum_positive_picks = 10;
number_of_race_picks maximum_negative_picks = -10;
number_of_race_picks evolutionary_mutation_bonus = 4;
The valuation for all traits and special abilities can be adjusted. For the first 9 traits growth
- spying, the actual bonus value can be changed as well. Note that the Food and BC bonus
values are doubled: -1, 2, 4 translate in game to -½, +1 and +2 bonus per farmer. Thus
Food +1 for 4 picks is written as:
race_pick farming2_cost = 4;
race_pick farming2_value = 2;
Or can be compressed to:
race_pick farming2_cost = 4 2;
All other values are more straightforward to set, for instance to change negative growth
-50% for -4 picks to a positive +25% for 2 picks:
race_pick growth1_cost = 2 25;
Additional Settings
A few more tweaks are exposed in Config:
Under classic rules, a Ship Offense bonus applies to both ships and to orbital platforms and
planetary installations. The more expensive Ship Defense bonus on the other hand, does
not apply to Satellites. Too bad for the Alkari. The SD bonus can be made to apply to
satellites and planets too by setting:
satellite_racial_defense_bonus = 1;
Similarly the Warlord bonus can be made to apply to satellites and ground installation too
with the parameter satellite_warlord_bonus.
Government bonuses can be precisely manipulated now:
govt_bonus feudal_reduction = 1/3;
govt_bonus confederation_reduction = 2/3;
govt_bonus feudal_science = -10;
govt_bonus confederation_science = -5;
govt_bonus democracy_science = 10;
97
98
AI Opponents
Generic AI bonuses
Below table summarizes standard AI bonuses per difficulty level:
Growth Food Prod Res BC Command Spy Troops & Antaran
Percent Deficit BC Bonus Marines Marines
Note that difficulty level also influences other aspects of the game, like the way AI
conducts diplomacy and spying, AI’s eagerness to attack, random events, Antarans, etc.
The bonuses for food/production/research or “productivity” and the cash bonus the AI
receives per difficulty level can now be set with two tables in config. The first table tweaks
AI productivity bonuses. The set value divided by 20 is the bonus per population unit.
ai_productivity_bonus tutor = -10;
ai_productivity_bonus easy = 0;
ai_productivity_bonus average = 10;
ai_productivity_bonus hard = 20;
ai_productivity_bonus impossible = 40;
A second table governs income from taxation. Set value divided by 4 is the cash bonus per
population unit, so it follows that AI receives +¾ BC/pop on impossible difficulty level:
ai_income_bonus tutor = 0;
ai_income_bonus easy = 0;
ai_income_bonus average = 1;
ai_income_bonus hard = 2;
ai_income_bonus impossible = 3;
Stock Races
Stock Races can be adjusted in config. An example:
stock_race Alkari =
dictatorship g0 f0 i0 s0 m0 sd3 sa0 gc0 spy0
0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
The values that follow spy0, are ordered in the same way as the Special Abilities in the
Race Customization Screen, e.g. low-G, high-G, aquatic, subterranean, etc.
99
These Alkari are a Dictatorship, have Ship Defense +50 (sd3), a Poor Homeworld (position
6 = -1) and are Cybernetic (position 8 = 1). Changing sd3 to sd1 gives the Alkari the SD-20
penalty and to sd2 the SD+25 bonus.
Coding Table
0 0 Feud 1 0 Pop +0 2 0 F+0 3 X Prod 6 X SD
0 2 Dict 1 1 Pop -50 2 1 F-½ 4 X Res 7 X SA
0 4 Demo 1 2 Pop +50 2 2 F+1 5 X Tax 8 X GC
0 6 Uni 1 3 Pop +100 2 3 F+2 9 X Spy
10 1 lowg_world 17 1 cybernetic 25 1 telepathic
11 1 highg_world 18 1 lithovore 26 1 lucky
12 1 aquatic 19 1 repulsive 27 1 omniscient
13 1 subterranean 20 1 charismatic 28 1 stealthy_ships
14 1 large_hw 21 1 uncreative 29 1 trans-dimensional
15 -1 hw_richness 2
2 1 creative 30 1 warlord
15 1 hw_richness 2
3 1 tolerant
16 1 arti_world 24 1 fantastic_traders
Let’s examine the first row of the Alkari Hard variant 1:
ai_race_variant_table Alkari
Hard v1 =
2 7 2 8 2 0 0 0 0 0 0 0 0 0 0 0 0 2 7 3 8 3;
Two extra traits, SA +20 (7 2) and GC +10 (8 2) are added to the base design.
For Evolutionary Mutation it will get 2 extra traits, upgrades in this case to SA +50 (7 3)
and GC +20 (8 3).
If you write (intended or not):
ai_race_variant_table Alkari
Hard v1 =
3 7 2 8 2 0 0 0 0 0 0 0 0 0 0 0 0 2 7 3 8 3;
100
Then 3 traits are taken into account and the race becomes Feudal (0 0).
AI Patience Counters
An option for diplomacy a lternate_diplomacy, when enabled attempts to use correct
patience counters. Previously, attempts on alliance, trade/research treaty etc, all were
controlled by a single counter. But there are several separate counters for this in the code,
and other counters were never checked. Since there is no telling if it is a bug or a feature it
is made optional and not enabled by default.
AI Ships
101
Auto Design will equip ships in order from left to right from this table, equipping the ship
with specials that are available and it has space allocated for. Fields with -1 are ignored,
even if overwritten. Values are a percentage of the ships space. In the classic tables values
add up to 100 per row. Should you assign higher values to the columns, in such a way that
the sum > 100, then auto-design ships will use more space than they legally should have
(cheat ships).
Theme Specials:
a. Bio Weapons -- teleporter, augs, death spores, etc
b. Capture -- transporters, shuttles, tractors, troop pods, etc
c. Cloaking -- cloaking device, stealth field, phasing cloak
d. Beam Defense -- inertial stabilizer/nullifier, augs
e. Missile Defense -- jammers, pulsar, a-m rockets, etc
f. Armor -- heavy armor, reinforced hull, automated repair
g. Shield -- hard shields, multi-phased shields, capacitors
Specials are picked at the beginning of each game, based on one of seven racially assigned
themes. The Bio Weapons tables for example has 5 entries:
ai_ship_design_bio_weapons_theme
special_1 = 22 0;
special_2 = 33 0;
special_3 = 2 0;
special_4 = 26 1;
special_5 = 25 1;
These numbers are either weapons or specials (denoted by the second number, 0 is
special, 1 is weapon). They are weighted from top to bottom and Auto-Design picks them
based on the ship design tables, hull space allocation and available tech.
Other Ships
As an example the first weapon of the Guardian ship design:
guardian weapon_1_type = 11;
guardian weapon_1_arc = 15;
guardian weapon_1_mods = 00000000000000010;
guardian weapon_1_ammo = 0;
guardian weapon_1_amount = 2;
type: weapons table number (11 = Death Ray)
arc: firing arc (1= Fwd, 2= Fwd Ext, 4= Bwd, 8= Bwd Ext, 15= 360 degrees)
mods: weapon mods (010 = Hv)
ammo: ammunition (0 here for beams)
amount: weapon count (and weapon count remaining when weapon is damaged)
Refer to MANUAL_150.XLS for more detail.
102
103
Monsters
Monsters Stay
If monsters_stay is set at 1, wandering monsters will not leave the galaxy if they have won
a fight, but stay until destroyed no matter what is set in monsters_stay_chance. The Toxic
Amoeba is also ensured to stay with this setting. This is considered a test option and it will
cause false GNN reports.
Frequency of Events
The frequency of events can be altered by changing the value of e vent_roll all_events =
512 where a lower number will cause an increased frequency. Similarly, the occurrence of
good things for Lucky players can be manipulated by adjusting e vent_roll lucky_player =
1000. I n addition, with parameter between_events_delay the minimum turn delay between
events can be set (default = 5).
Delay of Events
By default events can not happen before turn 50, as set by e
vent_delay all_events = 50.
Each individual event delay can also be set:
event_delay derelict = 0;
event_delay climatic_change = 0;
event_delay comet = 200;
...
The generic delay and specific delays are not cumulative.
Events Duration
The duration of the three events Hyperspace Flux, Warp Beast and Time-Space Anomaly
can be tweaked with minimum duration and chance to stop values. Classic settings are:
event_duration anomaly_min = 4;
event_duration beast_min = 4;
event_duration flux_min = 4;
104
AI Surrender Delay
The parameter ai_surrender_delay specifies after which turn AIs can surrender their
empire. Default value is 150.
Leaders
Customizing Leaders
A custom HERODATA.LBX can be created with the MoO2 Workshop (separate download)
and loaded via Config, for example the following loads custom leaders from ICE mod:
herodata.lbx = 150\mods\ice\lbx\$LANG$\HERODATA.LBX;
If the order of leaders in the list was changed, take note to change accordingly in config the
leader id’s of the three special leaders. They must match those set in herodata.lbx:
leader_data advanced_govt_hero_id = 47;
leader_data random_attributes_colony_leader_id = 41;
leader_data random_attributes_ship_captain_id = 52;
The first one sets the leader id that brings advanced government (default is 47, Tanus). The
other two set the id’s for the leaders with the random skills set.
105
The commando skill cost is set separately because it differs for colony and ship leaders.
The default base level cost is 10 BC for colony leaders and 30 BC for ship officers.
The presence of Megawealth in a leader's skill set doubles the cost of all skills of that
leader. This can be disabled with:
megawealth_no_double_cost = 1; *
Note also that leaders who bring a technology do not share it for free! The base technology
cost is based on its research points value:
< 1000 RP: 10 BC
1000 < 5000 RP: 30 BC
>= 5000 RP: 40 BC
Experience
The experience points required for a leader to gain the next skill level can be set:
leader_data level_2_experience = 60;
leader_data level_3_experience = 150;
leader_data level_4_experience = 300;
leader_data level_5_experience = 500;
leader_data level_6_experience = 1000;
Level 6 can only be reached by leaders in the service of Warlords. Colony leaders gain 1
experience point per turn, while Ship Officers (and ships) gain additional experience in
combat equal to the halved sum of size classes of destroyed enemy ships (where FF-DS =
1-6), rounded down and minimum 1 XP. Note that an instructor does not give XP to
leaders, only to ships.
106
Changes in Lua
● All numbers are integer, not floating-point. Division by zero will throw an error.
● Operator ^ does not work.
● Some standard library functions are not included. This may change in the future.
Notable examples are: require, loadfile, and the whole math library.
● Some standard functions (e.g. tostring, print) behave a bit differently.
Contexts
There are currently two contexts: player context and u niversal context. Scripts run from the
main screen are run in p layer context and allow only actions which can be done normally
by a player. For example if you call get_players function, it will not list players you have no
contact with. The universal context i s meant for universe post-processing after starting a
new game. For example it allows to move stars and change techs known to a player which
is not possible in p
layer context.
Running a Script
A player can run a script in main screen by pressing 0, ..., 9 to run MAIN0.LUA, …,
MAIN9.LUA. Those scripts are run in player context.
The game will automatically run a script from a file given by a
newgame_postprocessor_script config p arameter right after a new universe has been
107
generated but before the game was saved to SAVE10.GAM. This script will be run in
universal context.
MOO2 API
Utility Functions
Lua library functions are available and work as described in Lua documentation.
Manipulating Players
Player table - is a lua table with player info indexed by player id. Example:
{ [0] = {name = “Human”, … }, [1] = {name = “Alkari”, … } … }
Tech table - is a lua table with state of each tech for a player indexed by tech id.
Manipulating Stars
Star table - is a lua table with star info indexed by star id. Example:
{ [0] = {name = “Orion”, … }, [1] = {name = “Sol”, … } … }
Star id array - is a lua table in which values are star ids and keys are numbers 1..n.
get_stars universal, Returns a s tar table for all stars in the galaxy except
player Antares.
108
add_stars universal Accepts a number, adds that many stars. Returns s tar
id array of created stars.
Manipulating Planets
Planet table - is a lua table with planet info indexed by planet id. Example:
{ [0] = {star = 12, orbit = 0, … }, [1] = {star = 12, orbit = 4, … } … }
Planet id array - is a lua table in which values are planet ids and keys are numbers 1..n.
Observing Ships
Ship table - is a lua table with ship info indexed by ship id. Example:
{ [0] = {design = { name = “Scout”, ...}, x= 56, … }, [1] = { … } … }
Function get_ships returns ship table of all active ships you can see (not including those
currently being built or refitted). In player context only ships you scan or own are returned.
Demo Scripts
MAIN1.LUA
This script displays the technologies your enemies have ahead of you. It can be run from
main screen by pressing 1. This function will not work when /noreport=1 is set.
RU-RUSH.LUA
Gives any uncreative human player access to the techs fighter bays, automated factories
and research lab, needed to reliably win a classic game against 8 AIs with a repulsive +
uncreative race on average technological level start on impossible.
STARS150.LUA
Reorders stars in the galaxy to form ‘1.50’.
109
Introduced Bugs
1.50.10
Memory Corruption
A memory corruption could occur when starting new game. Fixed in 1.50.10.1.
1.50.9
Orbital Bombardment Slow Down and Crash
The fix for orbital bombardment bomb hits calculation could cause slow downs of the
game and even crashes when ships with flyers were involved. Fixed in 1.50.12.
1.50.8
Missing 8th Weapon Slot of Antaran Defensive Titan
The 8th weapon slot that was absent in classic due to a bug, went missing again in 1.50.8.
Fixed in 1.50.9.
1.50.7.1
Excessive Jump Gate Warning
Jump Gate warning was introduced in 1.50.7. It’s purpose is to prevent irreversible loss of
jump gate bonus. For ships stationed in star systems there is no such loss, so in 1.50.7.2
the warning was disabled for this special case.
1.50.7
Accumulating Raid Reports
Reports for raids that occur in super-fast combat mode (Z) were appended to the next raid
report in normal mode. Fixed in 1.50.7.1.
110
1.50.6
Halved Food on Mapgen-transformed Planets
Planets with climate set by options like -fixedhw had half the required food output. Fixed in
1.50.6.
1.50.5
keep_on_find Bugs
Fixed the steal and uncreative bugs with keep_on_find, of not being directed to the tech
choice screen, when the tech that was stolen, also was being researched. Fixed in 1.50.6.
111
1.50.4
Combat Bugs when Ship Initiative is Off
The ‘turn structure’ patch added several bugs to combat without ship initiative. Cloaks,
absorbers and satellite rotations were affected. Because we consider combat without
initiative a legacy feature, exact behavior is not described here. Fixed in 1.50.4.1.
1.50.3.1
A Stall at the End of Combat
Happened when ship remained tractored at the end of the combat. Fixed in 1.50.3.2.
1.50.3
Next_ship cur_ptr Crash in strict_combat_sequencing
In strict mode the crash could be triggered by several ship captures. Fixed in 1.50.3.1.
112
1.50.2
Unification Bonus not Working
Fixed in 1.50.2.1.
113
114
1.50.1
Incomplete Synchronization for New Game
When creating a new network game with different configs on host and client side, some
parameters were not synchronized before selecting a race. This could lead to a different
rules for race selection for host and client. Fixed in 1.50.4.
1.50
Post-Combat Repair Crash
The game crashed after the combat in certain cases, notably when attacking the guardian
(even if you did not scratch it). Fixed in 1.50.0.1.
115
Growth Formula
Population growth is calculated separately for each race on a planet.
The formula for the basic growth of a race (a) is:
a = trunc[(FACTOR1*POPRACE*(POPMAX-POPAGG)/POPMAX)^0.5]
The default value of FACTOR1 can be modified with growth_formula_factor.
The value a is rounded down (truncated) before it is multiplied with the sum of seven
bonuses (b):
b = (100+g+r+i+t+l+e+h)/100
If all seven bonuses are zero, then factor b is 1.
The general bonus (g) is applied to all players in the game and can be set with
growth_rate_bonus general_modifier which is 0 by default.
The growth bonuses from the technologies (t) microbiotics and universal antidote can be
set individually with g
rowth_rate_bonus. By default the bonuses from these two techs do
not stack. This can be changed with microbiotics_and_antidote_cumulative.
The formula for housing (h) is:
116
h = FACTOR2*PROD/POPAGG
Obviously this only applies when you are housing. The default value of FACTOR2 is 40,
which can be set via h
ousing_formula_factor.
The product a*b is again truncated and the growth bonus of cloners is added.
Cloning Center
The standard bonus of cloners is +100k. The bonus is shared pro rata between all races on
the planet, thus for each race:
c = 100*(POPRACE/POPAGG)
If there is only one race on the colony, then POPRACE = POPAGG and the full bonus is
applied to that race. However, if there are natives on a new colony, the +100k bonus is
divided between one new colonist and 3 natives, so +25k for the colonist and +75k for the
natives. But since the natives cannot grow, the net growth is (only) +25k. The same goes
for colonies with androids and colonies with mixed races where one race is subterranean
and the other is not, etc. For example cloners nett bonus is +50k on a colony with 1 droid
and 1 pop.
The growth bonus provided by Cloning Center can be set with c loners_growth_bonus up
to a maximum bonus of 127 (default is 100).
117
Notes on Spying
Spy Bonuses
Every Spy you train can fulfil one of two functions. (1) On a mission, your spy goes off into
the colonies of a race of your choice and tries to steal technologies, attempts to destroy
enemy buildings or hides awaiting new orders. Any spy's success is noticed by the target
race and has an adverse effect on relations, unless you are able to frame another race for
your actions. (2) As an Agent, your operative roams inside your empire, ferreting out
enemy spies and eliminating them.
Maximum 63 defensive agents and 63 spies per opponent can be trained. Although not
shown on the Races screen, each spy increases the bonus for the specific slot he is
assigned to. The first five spies will add 2 points each, spies 6 to 10 add 1 point each.
Subsequently, each pair of spies will add a point to your bonus. Thus 11 or 12 spies will
add 16 points and the maximum bonus is +42 for 63 spies.
Thus, the total spying bonus per slot is the sum of racial, governmental, leader and
technology bonuses plus the bonus from the spies assigned to it. Bonuses are:
Offense Defense
Government Feudalism - 0
Confederation - 0
Dictatorship - +10
Imperium - +15
Democracy - -10
Federation - -10
Unification - +15
Galactic Unification - +15
Race Spy -3 picks -10 -10
Spy +3 picks +10 +10
Spy +6 picks +20 +20
Telepathic +10 +10
Technology Neural Scanner +10 +10
Telepathic Training +5 +5
Cyber Security Link +10 +10
Stealth Suit +10 +10
Psionics +10 +10
Leaders Spy Master +2 to +18
Telepath +2 to +18
118
Assassins
Before any spy activity happens, assassins get a chance to act. The chance to assassinate
an enemy spy depends on a leader’s skill level and varies from +2% to +18% per turn. Only
the best leader’s bonus is effective.
Roll Chance
To have a chance for stealing and sabotage at least one spy needs to be sent to the
opponent, but for defending this is not required. Even with zero defending agents defenses
against enemy spies are active (and enemy spies can be killed) just without the additional
bonus provided by the agents.
Action Thresholds
For offensive spies to be successful a threshold needs to be overcome that is comprised of
the defenders bonus (DB) and an action threshold (T). Default action thresholds are:
stealing is successful: 80
stealing is successful and frame another race: 90
sabotage is successful: 70
sabotage is successful and frame another race: 90
Definitions
T -- action threshold
DB -- defender bonus
AB -- attacker bonus
E = T + DB - AB -- effective threshold
AR -- attacker roll 1..100
DR -- defender roll 1..100
Formula
Each turn both attacker and defender get a roll(100). A spying action is successful if:
AR = 100 (aka lucky roll)
or
AR - DR > E
So with a low enough effective threshold you always succeed, but with a high enough
threshold you don’t always fail, because of the lucky roll.
The probability (p) of success can be formalized as follows:
119
E <= -100 : p = 1
-100 <= E <= -1 : p = 1 - (101+E)*(100+E)/2/10000
0 <= E <= 99 : p = (99-E)* (98-E)/2/ 9900 + 0.01
99 <= E : p = 0.01
Below graph has three lines plotted, one for each action threshold (T). On the x-axis the
attacker - defender bonus (AB-DB) and on the y-axis the chance for success (p). Note that
on the left side the lines do not quite reach 0 because of the lucky roll.
Spy vs Spy
The invisible wars between spies are both deadly and silent. Most of the time, spies simply
fail. Sometimes they are killed by enemy spies.
After the roll for stealing and sabotage happens,
there is roll on spies killing of spies. The kill formula
is comparable to the formula for
stealing-sabotage, except that the defender also
gets a +20 bonus there, and the attacker gets +20
too if he has chosen to Hide. (So on Hide your
spies are not active, but they can still be killed by
an opponent.) At +80 a defender will be killed, and
at -80 an attacker and both parties have the
possibility to kill with lucky rolls, so both can lose a
spy in the same turn.
120
Several things determine the chance to hit (accuracy), but it boils down to three factors:
Beam Attack, Beam Defense and Range Penalty.
Range 0 1 2 3 4 5 6 7 8
One range unit equals 3 squares. At range 0 two opponents share the same square, for
example when interceptors are on top of the target ship. At range 1 opponents are
adjacent to each other or have 1-2 squares between them.
For calculation purposes, Point Defense weapons get a penalty as if range is doubled and
for Heavy mount weapons the actual range is halved (and rounded down):
Range 0 1 2 3 4 5 6 7 8
Regular (sq) 0 1-3 4-6 7-9 10-12 13-15 16-18 19-21 22-24
Heavy (sq) 0-3 4-9 10-15 16-21 22-27 28-33 34-39 40-45 46-51
121
Classic Fusion Beam, Plasma Cannon and Mauler Device have an inherent ranged to hit
penalty (weapon flag #1). This mod doubles the calculated penalty. So after all Hv/ Reg/
PD calculations are done and Rangemaster Unit effect is applied, the result is doubled.
Obviously for Mauler Device that always hits, there is no effect and therefore in 1.50 this
mod has been removed from the weapon via a patch. Further, in 1.50 improved the penalty
has also been removed from Fusion Beam so only the Plasma Cannon keeps it.
Chance to Hit
Then it’s a matter of chance. A random number between 1 and 100 (inclusive) is rolled and
the following formulae apply:
HIT IF: (with max dmg)
[1] roll > 95
ELSE HIT IF: (with max dmg)
[2] BA+CO-AF-BD >= 99
ELSE HIT IF: (real penalty affects dmg distribution)
[3a] BA+CO-AF-BD + roll >= hit_threshold
*
[3b] hit_threshold = min(40 + range_penalty - PD_bonus; 95)
*
doubled for inherent range penalty mod
Thus, if that random number is greater than 95 (a 5% lucky shot, no matter the odds), or
To-Hit is larger than 98, the beam strikes the target. Else, To-Hit minus the range penalty
(plus possible PD bonus) must be 39 or higher to ensure a hit.
Note that Mauler Device and Energy Absorber always hit unless the target ship has a
Displacement Device. Stellar Converter, which is not a beam weapon but a special weapon,
always hits regardless of the presence of a Displacement Device.
122
ELSE HIT IF: (real penalty affects dmg distribution)
[3] BA+CO-AF-BD- range_penalty + PD_bonus + random(100) roll >= 40
Damage
Reduced by Range
For weapons of which the damage is reduced by range (dissipation), a penalty based on
the distance the beam must travel to the target is taken into account, lowering the damage
potential (round to nearest applies and the minimum damage potential is always 1). Below
table of damage potential by range includes examples for Laser Cannon, Phasor, Mauler
and Death Ray:
Range (sq) 0 1-3 4-6 7-9 10-12 13-15 16-18 19-21 22-24
Death Ray 50-100 45-90 40-80 35-70 30-60 25-50 20-40 18-35
123
Examples
1. Death Ray’s dmg at 23 squares, assuming roll=85 and (To-Hit-range_penalty)=10:
18 + (35-18+1) * A / B
A = ((85 + 10) - (40 - -85)) = (95 - 95) = 0
B = (100 - (40 - -85)) = (100 - 95) = 5
Thus, actual damage is equal to min_dmg = 18.
2. If the target is closer, and the distance is only 11 squares:
35 + (70-35+1) * A / B
A = ((85 + 10) - (40 - -30)) = (95 - 70) = 15
B = (100 - (40 - -30)) = (100 - 70) = 30
And it follows that the actual damage is min_dmg + ½ (max_dmg-min_dmg + 1) = 53.
124
HV+HEF
50*(100 {base} + 50 {HV} + 50 {HEF} - 30 {Range_penalty})% = 85;
100*(100 {base} + 50 {HV} + 50 {HEF} - 30 {Range_penalty})% = 170.
PD
50*(100 {base} - 50 {PD} - 30 {Range_penalty})% = 10;
100*(100 {base} - 50 {PD} - 30 {Range_penalty})% = 20.
PD of beam with 2x penalty set to applying for dissipation
50*(100 {base} - 50 {PD} - 2*(30) {Range_penalty})% = -5;
100*(100 {base} - 50 {PD} - 2*(30) {Range_penalty})% = -10
Note: in this case actual min and max damage will be 1.
At max distance all PD beams that are reduced by range will do a miserable 1 dmg without
HEF/Ordnance, no matter their max dmg strength. For example: A 1000 dmg PD beam will
still do 1 dmg at max range. So PD does less damage at range than one might expect.
PD + HEF of beam with 2x penalty set to applying for dissipation
50*(100 {base} - 50 {PD} + 50 {HEF} - 2*(30) {Range_penalty})% = 20;
100*(100 {base} - 50 {PD} + 50 {HEF} - 2*(30) {Range_penalty})% = 40.
125
Special Systems
Three special systems can defend both against incoming missiles and torpedoes:
- Lightning Field: has a 50% chance to destroy each missile, torpedo or fighter
attempting to strike the equipped ship.
- Cloaking Device: Missile warheads and torpedoes have a 50% chance to miss, but
only if the device is active (ship is cloaked).
- Displacement Device: Missile warheads and torpedoes have a 30% chance of
missing completely, regardless of any other equipment or considerations.
Note that Lightning Field acts before MIRV missile warheads separate but Cloak and
Displacer effects happen afterwards.
Missile Jamming
Missiles and torpedoes that get through enemies defenses and reach a ship, have a 100%
chance to hit that ship, unless that ship has missile evasion capabilities from:
- Ship Defense racial trait,
- Helmsman fleet leader,
- Crew experience,
- Jammer and Inertial technologies.
The probability of a single missile warhead getting jammed is equal to the missile evasion
bonus of the defender minus the best known scanner bonus of the attacker. This
probability is halved if the missile has ECCM (Electronic Counter Countermeasures). For
MIRV missiles the jamming chance is not calculated per missile but for each warhead
separately and it may happen that not all warheads of a MIRV missile hit, but some get
jammed. Note that all monsters, the Guardian and Antarans have a Neutron Scanner
onboard. The Dragon Breath (a special torpedo with a standard damage of 300 and a
dissipation of 15 damage per square) is unaffected by jamming.
Example
The probability that an eccm warhead guided by a Tachyon Scanner gets jammed by the
target ship that enjoys evasion from a Wide Area Jammer fleet bonus (+70), Stabilizer
(+25), race penalty (-20), regular crew and a leader with 10 helmsman bonus, is:
P = [(70+25-20+7+(10/2))-20] / 2 = 33%
126
Pulsar
Does 2-24 damage points per size class of affected ship, in a 6-square radius.
Plasma Flux
The Eel’s weapons is very similar to the Pulsar but does 10-40 points of damage.
Spatial Compressor
Can do 4-32 damage irrespective of size class and does all damage to structure only,
ignoring shields and armor, similar to a Gyro or the ESD mod. Range is 4 squares. Contrary
to Pulsars, Compressors autofire against incoming missiles and fighters.
Engine Explosion
If a ship's drive is destroyed, it will cause an explosion that has a damage potential of 5
times the maximum engine hit points (without Reinforced Hull). This damage value is
tripled if the ship has a Quantum Detonator onboard. Contrary to other spherical weapons,
the damage caused by a drive explosion dissipates linearly over range.
Satellites
Satellites have no drive, however if an orbital platform self-destructs it will still cause an
explosion as if it has an engine of its corresponding ship size class (Star base gets Cruiser
engine hp).
Damage Calculation
Actual damage done is calculated in different, independent ways for flyers and ships:
127
DESTRUCTION IF:
aggD * 25 / hit points >= random(100)
Ships
For ships the process is repeated and a new damage value (D) is generated. In the same
way as for flyers above, the total damage per slot is calculated. The resulting value is the
(structure) damage for Spatial Compressor. For other sphericals: After that, additional
random(aggD ) roll(s) follow and the number of rolls is determined by the size class of the
target ship (0,1,2,3,4,5) + 1. Thus a frigate gets one roll, a destroyer two rolls, etc. Each roll
is re-rolled if the outcome is not 1, causing a bigger chance to roll 1 in result. The addition
of all results is the damage value against that ship.
Final Notes
Unlike beams, sphericals always use all weapons from the slot. As a result it makes a
difference for missiles and shields if you have 1 slot with 5 weapons or 5 slots with one
weapon. Fired from one slot, they do damage together (cumulative) and not separately.
Every described damage calculation is done per target, so damage values for two different
missile stacks or two separate, same-size class ships that get hit from the same spherical
weapon shot can differ.
Finally, damages of ship explosions can dissipate to 0 for missiles, but have a minimum
damage of 1 against ships.
128
Orbital Bombardment
Planet Hits
Each building 1 hit
Stored Production (if >0) 1 hit (larger stored prod increases its hit chance)
Each full population 1 hit
Each fraction of pop (100k) 1 hit (population growth happens before combat)
Each Marine 1 hit (modified by Heavy-G, Powered Armor)
Each Tank 2 hits (modified by Heavy-G, Battleoids)
There is no set chance to hit something, the roll is per total of planetary structures.
129
Orion Spoils
Despite the game's name, defeating the Guardian of Orion does not automatically give you
the game, although the benefits acquired from doing so brings ultimate victory close. By
default you are rewarded with the ancient Death Ray technology. This prize can be
changed to any tech with d
efeat_orion_reward_tech. Use the technology table to look-up
the desired tech number (47 = Death Ray).
Win Conditions
There are three ways to win the game - exterminate all opponents; get elected as the
supreme leader of the galaxy by a two-thirds supermajority vote; or lead a successful
assault against the Antaran homeworld by sending your fleet to their realm using a
Dimensional Portal. If you time it right you can achieve two win conditions - defeat the
Antarans and all opponents (Battle at Antares needs to happen last); or defeat the
Antarans and also win by election.
Score Calculation
The highest score that the game can display is 32.767. One point more results in a
displayed score of -32.768. The maximum possible score is -1 (from 65.535 points). The
difficulty level has no effect on the score, but the following items matter:
Time
A starting value is calculated from galaxy size and number of players:
Small: 100 points per player
Medium: 120 points per player
Large: 140 points per player
Huge: 160 points per player
One point is subtracted from the starting time value each turn. Time score can go negative
if the number of played turns exceeds the starting value!
Population
+1 point for every unit of population.
130
Player Elimination
+50 points for every eliminated player.
Captured Colonists
Each event o
f capturing colonists grants you points (note that this is not a modifier for
captured population at the end of the game). Points vary according to galaxy size because
“larger galaxy provides more opportunities to capture population”:
Small: 2 points per captured colonist
Medium: 1 point per captured colonist
Large: 2/3 point per captured colonist (rounded down)
Huge: 1/2 point per captured colonist (rounded down)
Technology
Each researched technology field adds 3 points. The fields Starting Tech (Capitol, Spy
Network and Pulse Rifle) and Engineering (Colony Base, Star Base and Marine Barracks)
are known from the start and are worth 3 points each. Thus, starting at the Average Tech
level already gives a tech score of 21 points (the 6 base points + 5 basic tech levels Nuclear
Fission, Cold Fusion, Chemistry, Electronics and Physics).
Stolen, received or found technology does not increase the score unless it was the last one
in a field and completes it. Each Hyper Advanced I level gives 5 points but Hyper Advanced
levels II or higher add no points to the score.
The Guardian
Defeating the Guardian adds 100 points. This value can be changed with h
i_score orion.
Antares Win
A win by defeating the Antaran Homeworld adds 250 well deserved points to the score.
The value can be changed with hi_score antares.
Council Win
Brings in a meager 100 points. The value can be changed with h
i_score council.
131
Acknowledgements
We would like to thank:
The MOO2 team
for their inspiring game. Special thanks to coding team, they made our task of
improving this game both manageable and enjoyable.
Lord Brazen
for his 1.40 patch which is incorporated into the 1.50 patch.
Andrey Tyukov
for his fixes included here, marked by * for ones directly included and by * * for
modified implementations.
TF8
for his mapgen tool which also has a lot of info on game data structures.
Nirran
for his work on OCL Improved from which we took many offsets.
Grig De Griz
for his MoO2 Workshop which was used for updating help text files and
manipulating images.
All users who reported bugs and provided feedback
for reporting bugs and providing feedback. :)
Enjoy playing Master of Orion II: Battle at Antares with this patch!
A
lex, Darza, Rocco.
Jump to Table of Contents
132