[PHost Logo]

Starship Special Functions
The Portable Host
Version 4.0a

Index

Introduction

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.

Descriptions

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:

Back to top


Hull Functions

Cloaking

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 Value: 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 Value: 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 Value: 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

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 Value: 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 Value: 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 Value: 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

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).

Scanners

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.

Movement

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 engine 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.)

Miscellaneous

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.

Back to top


Setting up Hull Functions

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.

Basic Syntax

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 Initialize Assignment

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.

The Hull Assignment

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.

The Function 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.

The RacesAllowed Assignment

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:

+Nallow access to race N, N is 1 through 12
-Ndisallow access to race N, N is 1 through 12
+allow access to all races
-disallow access to all races
Nsame 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 immediately overridden by the next RacesAllowed assignment which enables cloaking only to race #5. All other races may not cloak the MBR.

The PlayersAllowed Assignment

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.

The AssignTo Statement

This statement specifies whether PlayersAllowed and RacesAllowed statements assign their properties to hulls or ships. It affects only statements which follow the AssignTo. You can mix hull-specific and ship-specific abilities as you wish.

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.

Back to top


Alphabetical Index

A
AdvancedCloak (Cloaking)
AdvancedRefinery (Alchemy)
Alchemy (Alchemy)
AntiCloak (Cloaking)
B
Bioscan (Scanners)
C
Chunneling (Movement)
Cloak (Cloaking)
CloneOnce (Miscellaneous)
CoolsTo50 (Terraforming)
F
FullBioscan (Scanners)
G
Gambling (Miscellaneous)
GiveOnce (Miscellaneous)
GloryDeviceHighDamage (Miscellaneous)
GloryDeviceLowDamage (Miscellaneous)
Gravitonic (Movement)
H
HeatsTo100 (Terraforming)
HeatsTo50 (Terraforming)
Hyperdrive (Movement)
I
ImperialAssault (Miscellaneous)
L
Level2Tow (Movement)
R
Ramscoop (Movement)
Refinery (Alchemy)
S
ScansAllWormholes (Scanners)
U
Unclonable (Miscellaneous)
Ungiveable (Miscellaneous)

This document is maintained by The Portable Host Project[Remote] (support@phost.de).

Last updated 18 May 2003.