VGAP -  FIFO, FCode "PBx", PAL system, new PBP system

If you have new ideas, questions, suggestions, criticism please let us know.

Mail to:

Table of Contents


In order to improve the old FIFO system (Phost 2.13), a PriorityBuildingPoint system, called PAL system, was developed by the PHost group and implemented in PHost3. Unfortunately, this PAL system, especially the default setting, is not fully developed. An enhanced PAL setting is discussed and published here. Additionally an addon to
forbid swapping starbases by the FC "PBx" is available. A new idea for an improved PAL system is presented.


The First In First Out (FIFO) system was established by PHost a long time ago. Players, who are setting a new ship order are placed at the bottom of the build queue to wait until all earlier ship orders in the queue have been built. This FIFO system is still possible using PHost3, however, the build queue position of your starbases can be influenced by a new planetary "PBx" Friendly Code (FC). Pros and Cons of this feature are discussed in A.

The downside of the FIFO system is that races that keep out of combat inherit great benefits. They can build many new starbases, thereby gaining new ship orders, while not losing any ships through conflict.

In response to this, the programmer of PHost introduced the PAL system. Active races are awarded for fighting and for using their race's abilities. Unfortunately, this system is not fully developed, and possesses a couple of bugs and undesirable features (=> Discussion B). By using the (P)Qboost add-on, the host can get rid of some of those drawbacks, but not of all of them.
In Section B there is an example calculation, for all you guys, who can't follow the cryptic PHost-Doc introduction.

A new PAL default setting is investigated (=> C).

And a new idea for an improved PAL/ PBP system is suggested (=> D).

Discussion and Results:

A) FIFO system on PHost3:

The FIFO system can be used in PHost3 by setting the following parameters in the pconfig.src:

# For PLIST with alternative combat, it may not be worthwhile
# to implement any build queue strategy other than FIFO, since
# the top ships are more-or-less comparable (factoring in
# tax rates, nature of the race, etc.) In such cases, you can
# just set

# SBQBuildPALBoost = 0
# SBQNewBuildPALBoost = 0
# SBQPointsForAging = 500
# SBQBuildChangePenalty = -1
# PALPlayerRate = 0
# and forget about the rest.

There is still the possibility of swapping starbase positions by using the friendly code "PBx". Thus it is an irritation to call it still FIFO in the PHost docs!
The Pros and Cons to allow a starbase swapping are:

(I'm not talking about the FIFO system itself as used in PHost 2.x! There are also many agruements not to use a pure FIFO system without any awarding.)


The PBx FCode has the advantage that, if all ship slots are full, the order of a good ship can be moved to a more favourable position, thus allowing the player to consistently build his best warships at a starbase of his choice!


After reaching the ship limit, an incredible number of starbases will be built. Most of them will only be used to reserve a slot in the build queue by queuing up SDSFs or equivalent worthless ships. When these starbases are close to achieving their builds, these hulls will suddenly be moved to the bottom of the queue, by the use of the "PBx" FCode. All ships of desire are build on only 5-10 capital starbases ,  saving much money for tech levels - a big disadvantage for moneyed races (1,2,10) or races, which don't have to invest in all tech levels (1!,5). Furthermore, a ship cloning can be done in a few turns.

However, encouraging players to build a starbase on every planet they own does not benefit the game, because these starbases are not a necessity. It is easy to build up starbase defences and to buy additional fighters. This becomes problematic for the player who wants to attack his neighbor. He has to fear that he could lose his essential capital ship to a unessential starbase.

A more important disadvantage is the consistent opportunity to build high quality warships. By using the FCode "PBx", every race can build its heaviest warship all the time. (E.g. the Borg can repeatedly build Biocides while the Fascist can "only" build Victorious Class Battleships. The Biocide is more than twice as effective in a toe-to-toe fight and if the Fascist has to fight alone against the Borg he will lose more often then not. This handicap is even more evident in its disparity in PList games. However, using the FIFO system without the "PBx" Fcode, the Fascist has the chance to build at many more starbases, giving him more Victorious Class ships in the build queue (due to their comparatively low cost).


It really comes down to a matter of taste as to whether you use the old FIFO system (PHost 2.13) without the "PBx" FCode or the new PBP system.

Hosts who would like to use the old FIFO system on PHost3 have to install the addon pbp or pfcx (also for UNIX systems). The addon searches planetary Friendly Codes in .rst files for the "PBx" variation and then resets them using a random number instead. This addons must be implemented in Auxhost1.

addon download:   or     (Please read the introductions.)

Robert Dejournett was very kind to program pbp.exe. Heiko Schlenker corrected a bug and developed the next generation of this addon. pfcx allows you to surpress all FCs of your choice.


B) Discussion of the PAL default setting for PHost3:

The idea of rewarding active players with additional warships is realised with the PAL system. Active players trying to crush their opponents will always experience casualties. These losses must be balanced by giving these players the chance to build ships faster than the other, more inactive players. TimHost uses a similar system (PBPs). An analysis of this system is recommended.

However, this good idea to enhance the FIFO build queue is not fully developed. There are a couple of unfavourable aspects in this PAL system.

If somebody destroys a small ship just when the ship limit is reached, all of his starbases gain additional PAL and TAL points, placing them all in prime positions. Consequently, this race will build the next ships. Furthermore, using the default settings, the additional PBPoints for destroying an opponent are incredibly high. This means that races fighting skirmish battles as opposed to all out war, get to build new ships. This is very extreme, in my opinion.
Example: For destroying a Gorbie I would collect 1400 PAL = 14000 points of each SB. However, default SB aging is set on 500 PALs. This means that I collect 28 turns of aging for destroying only one Gorbie. Very extreme!!
Usually only I am able to build ships now - nobody else. Using this PAL default setting consequently, you can win nearly every game.
You will find a calculation showing this more clearly below.

The distinction between "aggressor" and "opponent" is critical. When is an "aggressor" an "aggressor" and when not? (E.g. a cloaked Birdman DarkWing, with its PE set to attack a foreign ship, is valid as an opponent and not as an aggressor if and only if the other player has his ships PE set to "Birdmen" or has their missions set to "Kill!".)

There is no logical reason to distribute PAL system for RGA, Pillage or related race abilities. These actions don’t promote the destruction of ships ... or IMHO the Robots should collect PALs for enemies hitting their mines, too. Along the same vein, the Colonies should likewise be rewarded for mine sweeping also.

In the PALs as it stands currently, it is very easy to cheat. (E.g. allied (but no alliance setting!) Privateers and Crystals could initiate the TowCapture mission on their own ships all the time, collecting ridiculous amounts of PALs. Likewise, the Rebels and their allies might swap a falcon back and forth constantly using X-rays and amass PALs that way.)

Considering these enormous disadvantages of the default settings, I would personally prefer the FIFO system. Sharing this sentiment with me is A. Sterian (PHost programmer). Possible solutions are a new PAL default setting (=> C) or to implement a new PBP system through the use of an addon (=>D). I should mention that improving upon the PBPs is an idea rejected by A. Sterian. He much prefers to return to the old FIFO system.

Calculation example:
Somebody destroys a Instrumentally (Transwarp, ESB=33%)

The total combat mass is calculated to 350 kt + 33% * 300 MCs (cost of 1 transwarp drive) = 450 kt

Now the question: Was he the aggressor?

1     point for PALCombatAggressor = 1
450 points for PALAggressorPointsPer10KT = 10
225 points for PALAggressorKillPointsPer10KT = 5

in total = 676 points.

360 points for PALOpponentPointsPer10KT = 8
135 points PALOpponentKillPointsPer10KT = 3

in total = 495 points

This total is multiplied by
x 1 if PALPlayerRate = 100 (= 100%)
x 10 if SBQBuildPALBoost = 10

Therefore this player gets
6760 PALs as aggressor
4950 PALs as opponent

This means:
ALL of his SB orders get 7260 or 5450 PALs (500 PALs for aging)
a player who doesn't fight, only gets 500 PALs. Without some fighting of his own this player has to wait 14 turns, to reach the same Priority.


C)  Improved new PAL default setting:

This new PAL default setting was developed in a cooperation with Stefan Glasauer (Echoview programmer). It eliminates some of the disadvantages discussed in section B. Another small improvement was made by using the pqboost addon. Unfortunately, it is still not perfect. Strong races with many SBs and big fleets do still benefit from that system. That is due to the fact, that ALL bases of a race get awarded when only a single ship is destroyed(=> D).

Link to the Echoview Homepage

New default settings:

SBQBuildPALBoost = 1
SBQNewBuildPALBoost = 1
SBQPointsForAging = 1200 resp. 1000 (PLIST games)
SBQBuildChangePenalty = -1

PALDecayPerTurn = 20
PALPlayerRate = 100
PALCombatAggressor = 0
PALAggressorPointsPer10KT = 2
PALOpponentPointsPer10KT = 2
PALAggressorKillPointsPer10KT = 10
PALOpponentKillPointsPer10KT = 10
PALCombatPlanetScaling = 50 + 10 PerTube*
PALCombatBaseScaling = 80 (150, if tubes are allowed)*
PALShipCapturePer10Crew = 5
PALRecyclingPer10KT = 4
PALBoardingPartyPer10Crew = 3
PALGroundAttackPer100Clans = 100
PALGloryDevice = 100
PALGloryDamagePer10KT = 2
PALImperialAssault = 100
PALPillage = 10

A short explanation:

Aging is set to the value 1200 resp. 1000 for PLIST games. Using (P)QBoost additionally, this value has to be reduced to 75%, thus 900 resp. 750 for PLIST games.

The destruction of 1000kts of mass awards a player 1200 PALs and TALs. That's nearly the same amount as for one turn of aging.
Destroying a ship must be more honored in points than damaging it, because it is more desirable to free one ship slot.

A clear distinction between aggressor and defender is impossible to make. Thus we make no differences anymore.

The PAL decay must be chosen higher, in order to prevent that somebody who destroys a ship and builds a new one in the same turn, can reach a top place in the building queue again with a new building order a couple of rounds later. Furthermore, if the total award of PALs is very high, he always gets the top position, building ship after ship on the same starbase. A default of 20% or more makes sense.

There must be a distinction in the factor for planets and starbases, and for having tubes or not. A well armed starbase with tubes can't be beaten by one strong ship. That's why a bigger award is necessary.
An interesting feature of the PHost PAL system is, that the PAL calculation for a planet starts with a basis of 100. This means that even for a planet without defences you get 100 points, for a planet with 50 defences 150.
*Using an alternative shiplist the planet scaling can be adapted. E.g. for PLIST games the scaling can be reduced on about 3/4 of the suggested value for standard games.

The recycling value is a real problem, because all starbases gain PALs and TALs from it. Using a factor of "1" will animate players to cheat, when using a factor of "10" players can push all their starbases by a calculated recycling. Factor "3" or "4" should be a good compromise.

BoardingParty = 3 means that for towcapturing a Borg cube the Priv or the Crystal player would get nearly 900 points. In my opinion this is too much, since he can fight with the captured ship and earn even more PALs and TALs. On the other hand, Privs and Crystals aren't allowed to clone. Therefore a small award is fine, in order to compensate for their losses in ships (Priv) and torps (Crystals).

GroundAttack = 100. Difficult thing. I checked the formula and I found out that it makes no difference, which race drops colonists. Important is the number of clans dropped, not how many clans get killed. The GroundKillFactor is calculated afterwards. E.g. a race drops 300 clans on an opponents planet (defense=0), the player collects one point for each fighting clan.
IMHO, a player should be awarded for each killed clan, e.g. 1 point for 10 clans.

GloryDevice=100. I couln't come up with a formula, so I set a fixed award. 100 is nearly the mass of a GloryDevice ship and the maximum value which can be set. 20 points for a damaged ship is fair.

???trifft das das, was du meintest???

IA = 100; RGA/Pillage = 10. IA can only be used once on a planet, RGA and pillage can be done (virtually) as often as you wish. I know, the awardment of points for using race abilites is dangerous because it can be used for cheating. Luckly, the amount is still low, and especially in games where alliances aren't allowed, a host can safely award points for this kind of player activity.


As already written in the first paragraph of this section, I suggest urgently to use additionally the pqboost addon. Compared to the standard setting our suggested setting is a real big improvment, however it is still not perfect.
Unfortunately, you can't solve the remaining unbalances by changing the setting. Therefor a new PAL/ PBP system has to be programmed. => section D

D) The new PHost PBP system:

Why a new system?
The crucial problem of the current PAL system is the dependence of the queue on the awarding system.
Remaining unbalances are

The idea was to separate the queue and the awarding system, very similar to the PBP system of THost.


How does the new PBP system work?

[hypothesis: the 500 ship limit is reached]


The FIFO queue:

The priority point system:
[pconfig.src settings]


PALAggressorPointsPer10KT = 2
PALOpponentPointsPer10KT = 2
PALAggressorKillPointsPer10KT = 8
PALOpponentKillPointsPer10KT = 8

Example: (a ship has 600 kt mass)
- Damaging this ship by 50%, you obtain 60 PBP (600 * 0.2 * 0.5)
- Destroying that ship, you obtain 600 PBP<


PALCombatPlanetScaling = 100
PALCombatBaseScaling = 150  
     # destroying a base gets more points

- Killing a planet with 60 defenses, you obbtain 60 PBP
- Destroying a SB with 60 ground defenses aand 200 SB defenses, you obtain 390 PBP (260 * 1.5)


PALRecyclingPer10KT = 10

Ship "Colonize" or starbase "Recycle" missions award the owning player with the hull mass of the ship in PBP.


PALGloryDevice = 125    # D19b: 96 kt, Saber: 153 kt
PALGloryDamagePer10KT = 10

A successful attack with a Fascist GloryDevice awards the hull mass of his destroyed POP ship (same as recycling) plus the hull mass of any foreign ships destroyed in the attack as PBP.


PBPs for race abilities, like TowCapture, RGA, Pillage, IA can be optionally awarded in the pconfig.src.
However, you have to be aware these settings can be abused for collecting PBP.

The ESB is not considered.



PBPCostPer100KT = 200
PBPMinimumCost = 400
PBPCloneCostRate = 200

- A new BiocideClassCarrier (860 kt mass) ccosts 1720 PBP, a MeteorCBR (90 kt) 400 PBP. If you want to clone a MCBR it costs 800 PBP (= minimum). Cloning a DeathStar (980 kt mass) costs 4900 PBPs.


A priority build has a higher priority than the FIFO queue. First all PBx orders are checked. Then, if there are still ship slots free, ships are build from the queue, starting at the top.


Calculation examples1):

1)All ship have W9-Engines, Heavy Blasters and optional Mark 8 tubes.

Comparison of all PAL or PBP systems:

System kind points for waiting one turn building limit cost for building one ship
new PBP system PBP 0 500 ship mass x 2
THost PBP 0 20 mass ship/ 50kt
PHost standard PAL setting AP = (PALs + TALs) 500 max. all, but you get the left TAL's again next turn
improved PAL setting (=> C). AP 1200 max. all, but you get the left TAL's again next turn

PBP = PriorityBuildingPoints, offer for building on ONE starbase; AP = ActivityPoints = PlayersActivityLevel and TotalActivityLevel, offered for ALL starbases. It's a bit confusing. For more details read the PHost Manual. Furthermore, this setting distinguishs between AG (Aggressor) and OP (Opponent).

1) Biocide vs DarkWing (Standard PHost)

Biocide (23% damage), Borg: +491 PBP; +5; +7350 AG, +5390 OP; +589
DarkWing (destroyed), Birdmen: +40 PBP (860 * .23 * 20%); +0; +990 AG, +590 OP; +40

2) Biocide vs 2 DarkWings (Standard PHost)

Biocide (67% damage), Borg: +982 PBP; +10; +14700 AG, +10780 OP; +1178
DarkWing (destroyed both), Birdmen: +112 PBP (860 kt * .67 * 20%); +0; +2495 AG, +1500 OP; +112

3) Biocide vs 3 DarkWings (Standard PHost)

Biocide (destroyed), Borg: +989 PBP (2 * 491 + 491 * .07 * 20%); +10; +14870 AG, +10880 OP; +1202
DarkWing (2 destroyed, third 7% damage), Birdmen: +860 PBP; +9; +15400 AG, +10860 OP; +1032

4) Falcon vs PL 21 Probe

Falcon (4%), Rebel: +1 PBP; +0; +15 AG, +15 OP; +0
PL 21 Probe (captured), EE: 0 PBP; +0; +18 AG, +13 OP; +1

5) Golem vs Starbase (105 planet defence, 100 starbase defence, 40 fighter)

Golem (20%), Robot: +307 PBP (205 * 1.5); +0; +3075 AG, +2275 OP; +395
Starbase owner (destroyed): +34 PBP; +0; +850 AG, +510 OP; +34

5) Golem vs Starbase (210 planet defence, 200 starbase defence, 60 fighter)

Golem (destroyed), Robot: depends on the average damage. BSIM won't show this. Sorry. about +600 PBP
Starbase owner (SB destroyed, planet survive): +850 PBP; +9; +12750 AG, +9350 OP; +1120

When the ESB is active the current PHost PAL system awards the winner by additional points. They are calculated as cost of the engine in mc's * ESB. E.g. Transwarp: 300 mc * 20% ESB = 60 kt of additional mass and points.


Furthermore I would like to thank



  Last Modified: 10-Jul-2005