Supreme Ruler Wiki

3D Model Picture Numbers[ | ]

In the equipment file units are assigned a picture number. This file defines for the engine what parts of which 3D model should be used as well as the texture (default or override) to use.

The file is located in the \GRAPHICS\MESHES folder

Ordinarily the game will load DEFAULT.PICNUMS although it is possible to specify a different file in the \INI\AllLoad.ini initialization file.

This file is not saved in save-game files, it is loaded from AllLoad.ini on each game start. It is not sync-sensitive.

The numbering of PICNUMS is per this standard as of SRU version 9.0.75 (January 2017):

Reserved Picnums[ | ]

Supreme Ruler Ultimate

1 to 1023 - current range
1024 to 1279 - reserved for engine use (Terrain)
1280 to 1535 - reserved for engine use
1536 to 2998 and 3000 to 3071 - new range for unit meshes  
2999 - Reserved in code
3072 to 4095 - reserved for modder use (will not be used by BG)

Galactic Ruler

1 to 1023 - current range 1024 to 1279 - reserved for engine use (Terrain) 1280 to 1999 - reserved for engine use 2000 to 2599 - reserved for modders 2600 to 2998 - Planets and Stars 2999 - Reserved in code 3000 to 4095 - Space Units

.PICNUMS File Definition[ | ]

Column Definitions
Column Description
Picnum Picnum Reference from Equipment List
Submeshnumber (Mesh 0-X) SR2020/SRU: 0-14 for Submesh for object, or 15 for ‘Use all Submeshes’

GR/SRNG: 0-254 for Submesh for object, or 255 for ‘Use all Submeshes'

Valid (Mesh 0-X) T/F if this Mesh Entry is valid / used
Secondary (Mesh 0-X) 0/1 for Which Mesh[#] is Referenced for entry (usually 0:Base 1:Turret)
Turretview (Mesh 0-X) T/F if this object is part of the Turret transformation (rotation)
TeamAlpha (Mesh 0-X) Always apply Faction colour to units, even original region (GR/NG)
MeshType (Mesh 0-X) Mesh Type: Mesh Usage type 0-255
  • 0: Ground Plane / Overhead quad
    • Always drawn when Pitchonly False
  • 1: Overhead quad (No-pitch use, also shadow use)
    • Overhead use: Pitchonly False, bhasshadow False
      • (Only shown if NO pitch; full colour)
    • Shadow use: Pitchonly True, bhasshadow True
      • (Colour modulated to ½ alpha black)
    • Both: Pitchonly False, bhasshadow True
      • (Shadow if pitch, Overhead if no pitch)
  • 2: Standard Object (Hull/base or Turret if ‘TurretView’ true)
  • 3: Non-Rotation Object (keeps facing in same direction)
  • 4: NOT USED (Subsystem upgrades are now 34-48)
  • 5: Animated (Rotating) object, full rotation loop (currently Unimplemented)
  • 6: Animated (Rotating) object, ping-pong using limited arc (Unimplemented)
  • 7: Faction Emblem Object (draw using faction emblem texture) (GR/NG)
  • 8: Shields / Energy Shield Bubble (Unimplemented)
  • 9: See-Through Object (Rotor/Propeller/Window) (Depth Read only) (GR/NG)
  • 10: Light, fade in/out (Unimplemented)
  • 11: Light, Blink (Unimplemented)
  • 12: Ammo object – Regular Ammo
  • 13: Ammo object – Missile Ammo
  • 14: Point – Shot Point (Unimplemented)
  • 15: Point – Smokestack Point (Unimplemented)
  • 16: Cargo object (GR/NG - shown if there are units in cargo hold)
  • 20: Turret Rotation Point (Unimplemented)
  • 25: Cloud Layer (Planet Object)
  • 26: Day/Night Layer (Planet Object) (May not be required)
  • 27: Rings (Planet Object)
  • 28: Reserved
  • 29: Star Surface (Star Object)
  • 30: Nebula Object (future)
  • 34 - 48: Subsystem Upgrade Object GR/NG (also affected by OptionOb)
    • 34-36 : Armour Upgrades 1/2/3
    • 37-39 : Command Upgrades 1/2/3
    • 40-42 : Cargo Upgrades 1/2/3
    • 43-45 : Engine Upgrades 1/2/3
    • 46-48 : Weapon Upgrades 1/2/3
Unused (Mesh 0-X)
OptionOb (Mesh 0-X) T/F For Subsystem Upgrades, if set then replace (instead of cumulative)
Fastanim (Mesh 0-X) Animation/lights act ‘fast’ (Not Implemented)
PitchOnly (Mesh 0-X) Only display when map view angle is pitched (not 'top down' direct view)
MeshNumBase Unit .x Mesh File Number for first set (usually Base) of this object (Mesh[0])
MeshNumTurret Unit .x Mesh File Number for secondary set (usually Turret) of this object (Mesh[1])
TextureOverride (0-3) Texture Name overrides for each Mesh – Default is to use Mesh Default Texture

[0] – Texture Override for Mesh[0] Overhead Textures (Type 0/1)

[1] – Texture Override for Mesh[0] Other Textures

[2] – Texture Override for Mesh[1] Overhead Textures (Type 0/1)

[3] – Texture Override for Mesh[1] Other Textures

RegionalTexture The name of the texture file (without extension) to be used for regional texturing.

This is an optional field and may be left blank to use the default regional texturing method.

Scale Override Scale value for Mesh Draw (Default 1.0)
MeshEffect Effect/Shader to use (GR/NG)
  • 0: Default based on type of unit and other triggers
  • 1: Unit Effect (Land/Air/Sea/Space unit)
  • 2: Terrain
  • 3: Planet
  • 4: Star
  • 5+ TBD
Notes Designer notes or information

How it works:

  • Up to two Meshes files (.X) can be used for each Picnum.
    • These can be used to combine two meshes into the one object, such as base and turret.
  • There can be up to X partial (sub) meshes used in the object (0-X)
    • Each sub mesh can either be a single submesh of the .X file, or submesh # 255 is "use all meshes" (in SRU/1936/2020 # 15 is used for "all")
    • Each sub mesh can be from either the Mesh .X file [0] (usually base) or [1] (usually turret)
    • A standard object uses meshtype 2; other types are for additional uses such as Ground Plane
    • SR2020/1936/SRU supports 4 partial (sub) meshes (0-3)
    • Galactic Ruler and SRNG will support 20 partial (sub) meshes (0-19)
    • Meshtype 34 to 48 are 'Subsystem Upgrade Object' Meshtype; will integrate with Subsystem Upgrade tech effects to determine which are drawn


  • The number of UGBITS pages supported is increased to 16 from 4 in version 9.0.75 to match.
  • Range from 1536 to 1999 may be assigned by BattleGoat to specific modders that provide their content back to the main game.
  • Prior to version 9.0.75, and in prior games (SR1936, SRCW, and SR2020), the maximum PICNUMS value was 999.
  • In INI/CSV/Data files, True/False can be y/n, 1/0, -1/0
  • Regional Textures will be attempted and used if they exist. (Some of these elements are only supported in GR/NG)
    • If the RegionalTexture field is used the file will be in the form of:
      • GRAPHICS\MESHES\xc.DDS where x is the RegionalTexture field and c is the region code character (A-Z)
      • GRAPHICS\MESHES\x-c.DDS where x is the RegionalTexture field and c is the lower case region code character (a-z)
    • If no RegionalTexture name, then file name in the form:
      • GRAPHICS\MESHES\UNITxxxc.DDS where xxx is the Meshnum (not picnum) and 'c' is the region ID character (A-Z)
      • GRAPHICS\MESHES\UNITxxx-c.DDS where xxx is the Meshnum (not picnum) and 'c' is the lower case character (a-z)
        • (Prior to version 9.1.200, this used the Picnum accidentally, which is usually the same, but not always)
    • If not found, then the appropriate TextureOverride is tried:
      • GRAPHICS\MESHES\TEXTUREOVERRIDE-c.DDS (for lower case region codes)
    • If still not found, then the appropriate TextureOverride is used with no region code
    • If none of the above is found or exists, then the default texture in the object Mesh file is used.
      • (Regional ID characters are not appended to the default texture)
    • Lower Case region codes are only supported in GR/SRNG

Planet Mesh Scale[ | ]

Current Scale = A * B * C

A = Picnum Scale

Picnum Planetary Scaling
B = Size Scale Multiplier C = Type Multiplier
Non-landable = 1.00f Asteroid Minimum = 0.70f
Small = 0.85f Asteroid Maximum = 1.20f
Normal = 1.00f Gas Giant Minimum = 0.65f
Large = 1.15f Gas Giant Maximum = 1.00f
Very Large = 1.30f Non-landable Minimum = 0.40f
Non-landable Maximum = 0.75f
Standard = 1.00f