![]() | Starship Special Functions |
Certain starships can perform special functions. For example, there are a number of cloaking ships that can move without being seen, and some alchemy ships.
While the original Host program and earlier versions of PHost had these functions keyed to certain hull types, PHost 3 and later allow you to assign these functions manually. PHost 4 even allows you to assign functions to individual ships, not just hull types.
This file describes all the special functions supported by PHost and how they can be operated by the player. It also describes how hosts can configure the hull functions.
For each hull function, we list the hull numbers that can do this function by default, along with (an abbreviation of) the name of that hull in the standard ship list.
For each hull function, we also list the preconditions and a (ideally) complete list of relevant configuration options. The idea (read: the ideal goal we want to achieve, someday...) is that the precondition list is complete, i.e. when all preconditions are fulfilled, the action will be performed. However, too many things can go wrong to list them all:
Cloaking is probably the most important hull function. When ships activate their cloaking device, they can move invisibly.
To activate the cloaking device, set the mission to Cloak. This implies you can not tow, intercept, lay mines etc. while cloaked. When your client program won't let you set the Cloak mission, you can also use the Cloak extended mission (via the extmission command possibly) which does exactly the same.
Bird Men that do the Super Spy mission will also cloak when possible.
Cloaking has the following benefits:
Preconditions for cloaking:
Cloaking can fail under certain circumstances:
Relevant Config Options: (selection!) AllowAntiCloakShips, AllowCloakedShipsAttack, AllowCloakFailMessages, AllowTowCloakedShips, AntiCloakImmunity, CloakedMineTravelSafeWarp, CloakFailureRate, CloakFuelBurn, DamageLevelForCloakFail, MineHitOddsWhenCloakedX10, WrmTravelCloaked.
Relevant PControl stages: AntiCloak_1, after BeamUpCredits, after WebDraining, Movement, AntiCloak_2, after Terraforming
Cloak | |
Default: 21 (Reptile), 22 (LCC), 25 (Saurian), 26 (White Falcon), 27 (Swift Heart), 28 (Fearless Wing), 32 (Bright Heart), 33 (Deth Specula), 36 (D7), 38 (D3 Thorn), 43 (Dwarfstar), 44 (BR4), 45 (BR5), 46 (MCBR), 47 (Red Wind) | |
Numeric Code: 16 |
Standard cloaking device. This cloaking device burns fuel to operate. The fuel consumption is Trunc(HullMass * CloakFuelBurn / 100), where hulls lighter than 100kt count as 100kt. After burning that fuel (and the fuel needed to move), at least one kiloton must remain in the fuel tank.
Cloak fuel is burned before movement. When you have too little fuel to support cloaking and movement, the fuel is burned completely and cloaking fails (because movement will consume all fuel so there's nothing left).
AdvancedCloak | |
Default: 29 (Darkwing), 31 (Resolute) | |
Numeric Code: 15 |
Advanced cloaking device. This cloaking device doesn't burn fuel. Nonetheless, it needs at least one kiloton of fuel aboard the ship before and after movement.
AntiCloak | |
Default: 7 (Loki) | |
Numeric Code: 10 |
Anti Cloak ships emit a Tachyon field that renders enemy cloaking devices disfunctional. The field is emitted constantly, so it affects cloakers before and after movement. The Tachyon field is effective in a radius of 10 ly.
Preconditions for Anti Cloak:
Some races are immune to Anti Cloak ships. These races can be configured using the AntiCloakImmunity option. Under THost rules, Feds, Lizards and Birds are immune. PHost supports an additional model via the AlternativeAntiCloak option. With that option set, the owner of the Anti Cloak ship and all his ship-level allies are immune.
Relevant Config Options: AllowAntiCloakShips, AlternativeAntiCloak, AntiCloakImmunity, DamageLevelForAntiCloakFail.
Alchemy ships convert minerals and supplies into each other.
There are three types of alchemy. A ship can do only one of the three functions. If you assign it more than one function, the ship will only do the one with the lowest numeric code.
Relevant PControl stage: Alchemy
Relevant Config Options: AllowAdvancedRefinery, AllowAlchemy.
Alchemy | |
Default: 105 (Merlin) | |
Numeric Code: 0 |
Merlin ships convert supplies into minerals at a rate of three supplies for one mineral:
3 Supplies -> 1 kt Tritanium 3 Supplies -> 1 kt Duranium 3 Supplies -> 1 kt Molybdenum |
Normally, it does all these reactions in parallel. There are a number of (registered-only) friendly codes to regulate the reactions:
The NAL code (unregistered) disables alchemy altogether, so the ship can be used to transport supplies without eating them.
Refinery | |
Default: 104 (Neutronic Refinery Ship) | |
Numeric Code: 1 |
Refinery ships convert supplies and minerals into neutronic fuel. They perform each of the following reactions as long as possible (i.e. there is "input" minerals and space in the fuel tank):
1 Tritanium + 1 Supply -> 1 Neutronium 1 Duranium + 1 Supply -> 1 Neutronium 1 Molybdenum + 1 Supply -> 1 Neutronium |
The NAL friendly code can be used to disable the refinery function.
AdvancedRefinery | |
Default: 97 (Aries) | |
Numeric Code: 2 |
Advanced refinery ships convert minerals into fuel without needing supplies.
1 Tritanium -> 1 Neutronium 1 Duranium -> 1 Neutronium 1 Molybdenum -> 1 Neutronium |
The NAL friendly code can be used to disable the refinery function. Reportedly, this hull function is registered-only in Tim's host, in PHost it's not.
Terraforming ships slowly heat or cool planets until a certain temperature is reached. Planets with a good temperature support more colonists than planets with extreme climate (note that native population limits are also affected by extreme climate, but natives usually do not die when it's too hot/too cold, see NativeClimateDeathRate).
The temperature is changed in steps of TerraformRate.
Terraforming ships are sometimes called Science Ships.
Ships can have both the HeatsTo50 and the CoolsTo50 function at the same time; such ships will change the planet's temperature towards 50 degrees.
Preconditions for Terraforming:
Relevant PControl stages: Terraforming
Relevant Config Options: AllowScienceMissions, DamageLevelForTerraformFail, TerraformRate.
HeatsTo50 | |
Default: 3 (Bohemian) | |
Numeric Value: 3 |
This ship will heat cold planets up to 50F, the optimum temperature for most races.
CoolsTo50 | |
Default: 8 (Eros) | |
Numeric Value: 4 |
This ship will cool hot planets down to 50F, the optimum temperature for most races.
HeatsTo100 | |
Default: 64 (Onyx) | |
Numeric Value: 5 |
This ship will heat cold planets up to 100F, the optimum temperature for Crystals (CrystalsPreferDeserts).
ScansAllWormholes | |
Default: 3 (Bohemian) | |
Numeric Value: 8 |
Normally, ships scanning for wormholes using the WRS friendly code or the sensor sweep mission will only report the closest wormhole. Ships that have the ScansAllWormholes function, however, will report all wormholes that are in scan range.
This special device does not affect the probability that the ship will see the wormhole, just the amount of scanned wormholes returned.
Relevant PControl stages: WormholeScan
Relevant Config Options: AllowWormholes.
Bioscan | |
Default: 9 (Brynhild), 96 (Cobol) | |
Numeric Value: 17 |
Bioscanning is part of the normal Sensor sweep mission, see there for more information.
When a planet is in scan range (SensorRange) and has less than 20 defense posts, bioscanners have a 20% chance to detect native life on the planet. You will receive a message reporting the population and race of the natives as well as the planet temperature. Bioscanners will also detect when a planet has no natives. You will not receive bioscanner reports for your own planets.
Special rules:
Preconditions for Sensor Sweep (and Bioscanning):
Relevant Config Parameters: AllowBioscanners, SensorRange.
FullBioscan | |
Default: 84 (Pawn) | |
Numeric Value: 14 |
This special device is like the normal bioscanner (see there). However, it will report the natives for all scannable planets in range, not just 20% of them.
In particular, this may help you to find heavily-defended planets; those which can not be scanned by an advanced bioscanner (although they are in range) must have 20 or more defense posts.
Hyperdrive | |
Default: 51 (B200), 77 (PL21), 87 (Falcon) | |
Numeric Value: 6 |
Hyperdrives are experimental engines that allow a ship to move about 350 lightyears in one turn. The hyperdrive works independent from the actual engine built into the ship. Hyperjumpers avoid all minefields.
When the waypoint is 340 to 360 lightyears away, the ship will jump to the exact point specified by the waypoint order. Otherwise, the ship will jump 350 lightyears in the direction pointed-to by the waypoint. Note that usual Planets front-ends round when displaying distances. If a front-end says a distance is "340.0 lightyears", it could very well be that the actual distance is 339.99 in which case the ship will jump 350 ly. A hyperjump, no matter how far, costs 50 kt fuel. Unlike in Tim's host, PHost permits jumps of exactly 340 or 360 ly. In HOST, the distance must be greater than 340 and less than 360, but not equal.
Ships that hyperjump can't intercept or tow. If they attempt to, the missions will be cancelled.
Preconditions for Hyperjumping:
Hyperjumpers are affected by gravity wells only when the AllowHyperjumpGravWells option is enabled. The speed does not matter in that case.
The standard ship list contains an engine called
"Hyper Drive". That engine is not related to the hyperdrive
special functions: ships which have the special function can jump
no matter what enbine they have.
Relevant Config Options: AllowHyperjumpGravWells, AllowHyperWarps, DamageLevelForHyperjumpFail.
Chunneling | |
Default: 56 (Firecloud) | |
Numeric Value: 12 |
Chunnel ships can initiate transwarp tunnels through which they can move large distances. They can move large fleets this way.
To initiate a chunnel, the Initiator sets his friendly code to the Id number of the target ship, as three digits. The target ship, hereafter called "the Mate", must also have chunnel ability. The following conditions must be fulfilled:
When these preconditions are fulfilled, the Initiator will send a targeting beam to the Mate and initiate the chunnel. The chunnel, sort-of an artificial wormhole, will immediately collapse again. This will push any ship through the tunnel which is at the same position as the initiator and for which at least one of the following conditions holds:
In particular, the Initiator will be pushed through the tunnel as well (as per the 3rd rule). Ships will leave the chunnel without shields, at the very same position as the Mate.
Relevant PControl Stage: Chunneling
Relevant Config Options: AllowAlliedChunneling, AllowChunneling, DamageLevelForChunnelFail.
Ramscoop | |
Default: 96 (Cobol) | |
Numeric Value: 13 |
The ramscoop gathers thin interstellar matter, compresses it and turns it into neutronic fuel usable by standard starship engines.
The ramscoop produces RamScoopFuelPerLY kilotons of fuel for each light year the ship moves normally. The ramscoop does not work when the ship is intercepting someone or is being towed. This can easily yield a net gain of fuel, hence ramscoop ships can travel large distances without needing to refuel at a planet.
Preconditions for ramscoop:
Relevant Config Options: RamScoopFuelPerLY.
Gravitonic | |
Default: 44 (BR4), 45 (BR5), 46 (Meteor) | |
Numeric Value: 7 |
Gravitonic accelerators make a ship travel twice as far as ships with conventional engines. At warp 9, a gravitonic ship goes 162 light years per turn. Gravitonic ships use only half the fuel a normal ship would use for the same distance.
Gravitonic accelerators also double the tow strength of the ship.
Level2Tow | |
Default: none | |
Numeric Value: 24 |
New v4.0: A Level 2 Tractor beam is much stronger than the standard tractor beam all ships have.
When a ship with Level 2 Tractor beam tries to tow a ship that does not have one, the tow always succeeds. Likewise, a ship with standard tractor beam can not tow a ship with Level 2 tow if that wants to escape. When both ships have standard tow or Level 2, the old rules apply (tow strength, etc.)
Gambling | |
Default: 42 (Lady Royale) | |
Numeric Value: 9 |
The Lady Royale is a pleasure ship. As such, it has a gambling hall aboard. Every colonist clan aboard that ship will lose one megacredit to the bank (i.e. you as the ship owner) per turn. This even applies to clans you are beaming to a foreign planet or ship.
The maximum amount of money made on the ship equals the cargo room size: that's the maximum number of clans that can play on the ship.
Relevant PControl Stages: GamblingShips
Relevant Config Options: AllowGamblingShips.
ImperialAssault | |
Default: 69 (Super Star Destroyer) | |
Numeric Value: 11 |
The Imperial Assault is a special form of ground attack. When the Super Star Destroyer beams down at least 10 clans to a planet, these clans -- stormtroops actually -- will take over the planet, no matter how many clans defend the planet.
Preconditions for Imperial Assault:
Imperial assault will kill all clans on the planet and replace them by the just unloaded people.
Imperial assault ships are immune to ATT and NUK when Imperial Assault is enabled.
Relevant PControl Stage: CargoDump
Relevant Config Options: AllowImperialAssault.
GloryDeviceLowDamage | |
Default: 41 (Saber) | |
Numeric Value: 18 |
The Glory Device is a special means of self-destruction. When triggered, it will explode the ship and turn the explosive energy into deadly Berthold rays. This will damage all ships that are at the same position:
When detonated in orbit of a planet, the planet will be damaged.
The Glory Device can be triggered in two ways:
Preconditions for Glory Device:
Relevant PControl Stage: GloryDevices
Relevant Config Options: AllowGloryDevice.
GloryDeviceHighDamage | |
Default: 39 (D19b) | |
Numeric Value: 19 |
This special device is like the "low damage" glory device, except that it does 20% mine hit damage to own and friendly ships, twice as much as the "low damage" version.
Unclonable | |
Default: none | |
Numeric Value: 20 |
New v4.0: An unclonable ship can not be cloned using the cln friendly code. The cln code will simply be ignored.
This can be used to make traded ships more valuable.
CloneOnce | |
Default: none | |
Numeric Value: 21 |
New v4.0: A CloneOnce ship can only be cloned once. After cloning, both the original and the clone will be unclonable.
This can be used to make traded ships more valuable.
Ungiveable | |
Default: none | |
Numeric Value: 22 |
New v4.0: Ungiveable ships can not be given away.
A give command and the gsX friendly code will be ignored. A starbase's "Force surrender" mission can not take over these ships. When it tries to, and would succeed, the automatic intruder detection will explode the ship. When the starbase owner offers a planet level alliance to the ship owner, the ship will just remain there.
You can still take over these ships by capturing them in combat, and by tow-capturing them.
This special ability is intended to enforce trading rules ("you may not trade ships over 400 kt"). Because it is impossible to tell apart "friendly" and "hostile" surrendering from the host side, we decided to block "Force surrender". Capturing was left possible because we believed taking it out would change the game too much. Tow-capturing was left enabled because taking it out would remove one key race ability of Crystals and Privateers.
GiveOnce | |
Default: none | |
Numeric Value: 23 |
New v4.0: GiveOnce ships can be given away once. When you give it away (using give, gsX or "Force surrender"), it will become Ungiveable; see there.
Hull functions are configured in a file hullfunc.txt. This file is usually provided by the ship list designer as a part of the ship list. The hullfunc.txt file is a plain text file in a similar format as pconfig.src. PHost looks for this file first in the game directory, then in the root directory. If it did not find one, it uses built-in defaults compatible with the standard VGA Planets Host.
New v4.0: Alternatively, hull functions can be set up in the section hullfunc of the file shiplist.txt, using the same format as described here. When PHost finds a shiplist.txt file, it will not use hullfunc.txt.
Like pconfig.src, hullfunc.txt contains assignments of the form
item = value |
Comments (lines starting with #) and blank lines are ignored. The file is processed from top to bottom.
The first line of the hullfunc.txt file should be an Initialize statement. This statement initializes PHost with a default hull function set. Essentially, it cancels all assignments before it.
A line of the form
Hull = 57 |
indicates that all subsequent assignments will apply to hull #57, up to the next Hull assignment. Any amount of comment text may follow the hull number; this text will be ignored. For example, this is allowed and identical to the above example:
Hull = 57 (Watcher Class Scout) |
Rather than specifying a hull by number, a part of the hull's name can be used. For example,
Hull = Firecloud Class Cruiser |
or simply
Hull = Firecloud |
There is no distinction between uppercase and lowercase letters. Care must be taken, however, to spell the name correctly and to not use too few letters so that the name is ambiguous. For example, using a hull name of Super will select the Super Transport Freighter even though it may have been the intention to select the Super Star Destroyer.
Note, also, that the name of the hull will be compared against the names stored in the hullspec.dat file. Thus, using a hull name is ship-list dependent, while using a hull number is not.
The Hull assignment statement does nothing except set the hull number for subsequent assignments. The associations between special functions and hulls are not changed after such an assignment.
A line of the form:
Function = 16 |
indicates that all subsequent assignments will apply to special function #16, up to the next Function assignment. Like for hull assignments, any amount of text may follow the number, as in
Function = 16 (Cloak) |
You may also specify the function by name, which is probably easier to remember:
Function = Cloak |
Like for hulls, you can also abbreviate the name.
An assignment of the form
RacesAllowed = 1 2 3 4 5 |
indicates that the current hull and special function should be associated and available to races 1 through 5.
Unlike Hull and Function, this is an action statement. That is, it makes a connection between a hull and a special function. You can think of it this way, Hull and Function assignments are like typing numbers in edit fields of a dialog box, a RacesAllowed assignment is like pressing the 'OK' button of the dialog box. The Hull and Function assignments set up the parameters, the RacesAllowed assignment makes the actual connection.
The right-hand-side of this assignment consists of a list of race numbers that may either allow or disallow a race from having access to the current special function on the current hull. Acceptable values for each race number term are:
+N | allow access to race N, N is 1 through 12 |
-N | disallow access to race N, N is 1 through 12 |
+ | allow access to all races |
- | disallow access to all races |
N | same as +N |
This list of race number terms is interpreted sequentially from left to right. Some examples:
+ -6 | Enable all races but disable race 6 |
- +3 +5 | Disable all races but enable races 3 and 5 |
+3 +5 | Same as above, the initial '-' is implied |
7 | Enable only race 7 |
+ - + - + | Enable all races, same effect as simply '+' |
Note that the RacesAllowed assignment uses the PlayerRace config option to determine which players are given access to a special function on a hull. For example, with the following config setting:
PlayerRace = 1,1,1,1,1,5,3,3,3,3,3 |
then the assignment
Hull = Merlin Function = Cloak RacesAllowed = +1 |
will allow a Merlin to cloak if it is owned by players 1 through 5, since these players are all playing race #1.
Note that a RacesAllowed assignment discards any previous association between the current hull and current special function. For example:
Hull = Meteor Function = Cloak RacesAllowed = + RacesAllowed = +5 |
The first RacesAllowed assignment enables the Meteor Class Blockade Runner to cloak, no matter who owns it. But this statement is completely irrelevant, because the next RacesAllowed assignment enables cloaking only to race #5. All other races may not cloak the MBR.
An assignment of the form
PlayersAllowed = 1 2 3 4 5 |
indicates that the current hull and special function should be associated and available to players 1 through 5.
Like the RacesAllowed assignment, this assignment is an action statement, making a new association between a special function and a hull. Unlike RacesAllowed, however, this one bypasses the PlayerRace configuration and assigns directly to the specified players.
For example, with the same setting as above,
PlayerRace = 1,1,1,1,1,5,3,3,3,3,3 |
then the assignment
Hull = Merlin Function = Cloak PlayersAllowed = +1 |
will allow a Merlin to cloak if it is owned by player 1 only, even though other players are also playing race #1.
This statement specifies whether PlayersAllowed and RacesAllowed statements that follow assign their properties to hulls or ships.
Note that, when you edit hullfunc.txt in mid-game (not recommended!), functions assigned to hulls will be upgraded/removed from existing ships; functions assigned to ships will not.
This statement only works in PHost 4.x or better. PHost 3.4b ignores it, older ones reject it.
Last updated 02 March 2003.