This is a partial list of some of the ways Robo does calculations

In general I'll use Pascal-like assignment statements to distinguish the iterative nature of some calculations. So "X:=X+1" is the next value of "X" is assigned the current value of "X" plus 1. I'll also use upper case for all variable names, and lower case for subscripts. So "Xi" is the 'i'th element of "X".
Player Karma

      PK := GK - BK

      GK := 0.9 * GK                          ** if you strike out

      GK := (0.9 + 0.1 * (PCT-75)/25) * GK    ** if you miss a TRN

      GK := 0.9 * (11.11 + GK)                ** if you submit a TRN

      BK := BK + 10                           ** when game is dropped

      BK := max(0, BK - 0.5)                  ** for every TRN submitted

   where:
     PK    is   Player Karma
     GK    is   Good Karma
     BK    is   Bad Karma
     PCT   is   TRN percent return rate (for player over-all)


    On successful TEST TRN these values are set to GK:=50, BK:=0

Player Game Karma

      PGK := PGK - 10 * ALLY                    ** for a time-out call

      PGK := (0.9 + 0.1 * (PCT-75)/25) * PGK    ** for every missed TRN

      PGK := 0.9 * (11.11 + PGK)                ** for every submitted TRN

   where
     PGK    is    Player Game Karma
     ALLY   is    number of allies in game (via 'ffN' friendly codes)
     PCT    is    TRN percent return rate (within this game)


    When a new game is joined, this value is set to PGK:=80

RoboIssue control

      RI := RI + 0.02           ** for every TRN submitted

      RI := RI - 1.00           ** for each Robo Issue raised

   where
     RI   is  RoboIssue control value


   This is initialized to 1.0 when a game is joined, and a Robo Issue can not be
raised if this value is less than 1.0.

Game Value

      RRVp := max(1,RRVp-0.05)              ** if race p is posted as a vacancy
              min(max(RRVp,PRp),RRVp+0.1)   ** if race p is occupied by a human

      RRV := sum(RRVp)

      TL := min(50,VL)

      GV :=  (min(GT,TL) / TL) * RRV * CMF

      TGV := (min(GT,50) / 50) * (GR * (max(50,GT) - 50) / 10) * CMF

      VPT := sum(PTSp * min(20,TRNSp) / 20)

      GV'p := max(0,GV * ((PTSp * min(20,TRNSp) / 20) / VPT)) + (TGV * TRNSp / TRNS)

      GVp := GV'p * SS * DFp * RFp * TFp

      TFp := TRNSp / (RSTSp - 1)     ** if TRNSp > 20
          := 1                       ** if TRNSp <= 20

      RFp := grf( GR, Rp )

      VF := 3 * TPW * ( GT / (52 * TPW))

      DF'p := TRNSp / (TRNSp + (DTRNSp - VF))    ** is DTRNSp > VF
           := 1                                  ** if DTRNSp <= VF

      DFp := DF'p * DF'p


   where
     VL     is the turn limit in the victory conditions, if not defined then 50 is used
     TL     is the turn limit used in scaling the game value for games that end early
     GT     is the current gameturn number
     PRp    is the rank of the player in race p
     RRVp   is the race rank value of race p
     RRV    is the race rank value sum
     GR     is the game rank value
     GV     is the game basic value
     TGV    is the turn based game value
     GV'p   is the partial game value assigned to player 'p'
     GVp    is the basic game value assigned to player 'p'
     PTSp   is the player 'p' RoboScore
     VPT    is the weighted sum of the players' scores
     RSTSp  is the number of RST files sent to player 'p'
     TRNSp  is the number of TRNs submitted by player 'p'
     TRNS   is the total number of TRNS submitted by all players
     SS     is the Score Scalar applied for an unranked game
     TFp    is the TRN submission ratio factor for player 'p'
     RFp    is the relative rank factor for player 'p'
     Rp     is player 'p's rank
     grf()  is the game-rank-formula
     DF'p   is a transient DFp for ease of diplay and calculation
     DFp    is the duplication factor for player 'p'
     DTRNSp is the number of duplicate registered TRN files submitted by player 'p'
     VF     is the vacation factor  (based on 3 weeks vacation per year)
     TPW    is the average number of expected turns per week
     CMF    is the cluster mass factor = 6000000/(total mass of all objects in cluster)
                  minimum 0.5 maximum 2.0 with a 5000 KT increase per game turn


Glory points on death and retirement

      RRVp := max(1,RRVp-0.05)              ** if race p is posted as a vacancy
              min(max(RRVp,PRp),RRVp+0.1)   ** if race p is occupied by a human

      RRV := sum(RRVp)

      TL := min(50,VL)

      GV :=  (min(GT,TL) / TL) * RRV

      GP :=  GV * BPp / max(20*GT, BP)

   where
     VL     is the turn limit in the victory conditions, if not defined then 50 is used
     TL     is the turn limit used in scaling the game value for games that end early
     GT     is the current gameturn number
     PRp    is the rank of the player in race p
     RRVp   is the race rank value of race p
     RRV    is the race rank value sum
     GR     is the game rank value
     GV     is the game basic value
     BP     is the sum of the player's bonus points
     BPp    is player p's bonus points
     GP     is the awarded Glory Points


Player Robo Score
Ship Fleet Value (base calculation for relative score):

   SV = shf * mass * (bc*btt + trunc(oM*(tc*ttt + 12*fb))+1) * (mdam-dam) / mdam

   Where:
       shf = Ship Hull Factor, see below table
       bc  = beam count
       btt = beam type tech level
       oM  = min(ord,6*max(tc,fb))/max(1,6*max(tc,fb))
               NTP friendly code sets this to zero
       ord = number of torpedoes or fighters
       tc  = torp launcher count
       ttt = torp type tech
       ett = engine type tech
       fb  = fighter bays count
       mdam= Max damage allowed (100 or 150)
       dam = current damage level

   Ship Hull factors:
       Default factor is 1.  The follows adds one to the factor if true:
       Cloaking          +1
       Gravitonic        +1
       Alchemy enabled   +1 to 104 and 105
       Science enabled   +1 to 3, 8 and 64
       Hyperjump enabled +0.5 to 51
                         +1 to 77
                         +2 to 87
       Chunnel enabled   +2 to 56
       Glory enabled     +1 to 39 and 41
       Loki enabled      +1 to 7
       Ladyroyal enabled +1 to 42
       SSD enabled       +1 to 69
       Ramscoop enabled  +1 to 96
       Aries enabled     +1 to 97
       Bioscan enabled   +1 to 3, 84 and 96

   Raceplus modifiers:
       Hull=32 and race=3 : +2
       Hull=38 and race=4 : +2
       Hull=58 and race=6 : +1
       Hull=70 and race=8 and btt=10 and ett=10 : +1

See the RoboScore page summary for now

Game Due Date

[an error occurred while processing this directive]