Props.tbl

From FreeSpace Wiki
Revision as of 15:25, 16 February 2026 by MjnMixael (talk | contribs) (Created page with "{{TableVersion|20260217}} {{Tables}} The '''props.tbl''' is used to define all of the props in the game. Props are distinct from ships in that they are entirely non-interactab...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Revision information.....

FSO Revision: 20260217
Note: Please update the version when the page is updated. If your edit had nothing to do with new code entries then please do not edit the version


List of Tables and related code files
* Notes Modular Tables
** Notes tables which only use modular tables
Ai.tbl* /ai/aicode.cpp
Ai_profiles.tbl* /ai/ai_profiles.cpp
Animation.tbl** /model/modelanimation.cpp
Armor.tbl* /ship/ship.cpp
Asteroid.tbl* /asteroid/asteroid.cpp
Autopilot.tbl* /autopilot/autopilot.cpp
Cheats.tbl* /cheats_table/cheats_table.cpp
Colors.tbl* /globalincs/alphacolors.cpp
Curves.tbl* /math/curves.cpp
Controlconfigdefaults.tbl /controlconfig/controlsconfigcommon.cpp
Credits.tbl* /menuui/credits.cpp
Cutscenes.tbl* /cutscene/cutscenes.cpp
Decals.tbl** /decals/decals.cpp
Fireball.tbl* /fireball/fireballs.cpp
Fonts.tbl* /graphics/font.cpp
Game_settings.tbl* /mod_table/mod_table.cpp
Glowpoints.tbl* /model/modelread.cpp
Help.tbl* /gamehelp/contexthelp.cpp
Hud_gauges.tbl* /hud/hudparse.cpp
Icons.tbl* /mission/missionbriefcommon.cpp
Iff_defs.tbl* /iff_defs/iff_defs.cpp
Keywords.tbl* Not In Codebase
Lighting_Profiles.tbl* /lighting/lighting_profiles.cpp
Lightning.tbl* /nebula/neblightning.cpp
Mainhall.tbl* /menuui/mainhallmenu.cpp
Medals.tbl* /stats/medals.cpp
Messages.tbl* /mission/missionmessage.cpp
Mflash.tbl* /weapon/muzzleflash.cpp
Music.tbl* /gamesnd/eventmusic.cpp
Nebula.tbl* /nebula/neb.cpp
Objecttypes.tbl* /ship/ship.cpp
Options.tbl* Not In Codebase
Particle effects(-part.tbm)** /particle/effects...
Post_processing.tbl /graphics/gropenglpostprocessing.cpp
Props.tbl* /props/props.cpp
Rank.tbl* /stats/scoring.cpp
Scpui.tbl* Not In Codebase
Scripting.tbl* /parse/scripting.cpp
Ships.tbl* /ship/ship.cpp
Sexps.tbl** /parse/sexp/sexp_lookup.cpp
Sounds.tbl* /gamesnd/gamesnd.cpp
Species_defs.tbl* /species_defs/species_defs.cpp
Species.tbl* /menuui/techmenu.cpp
Ssm.tbl* /hud/hudartillery.cpp
Stars.tbl* /starfield/starfield.cpp
Strings.tbl* /localization/localize.cpp
Tips.tbl* /menuui/playermenu.cpp
Traitor.tbl* /stats/scoring.cpp
Tstrings.tbl* /localization/localize.cpp
Virtual_pofs.tbl* /model/modelreplace.cpp
Weapon_expl.tbl* /weapon/weapons.cpp
Weapons.tbl* /weapon/weapons.cpp

The props.tbl is used to define all of the props in the game. Props are distinct from ships in that they are entirely non-interactable except for collisions. They cannot move and they cannot be destroyed.

Props are available in FSO builds starting with nightly build 20260217.

This table is one of the Modular Tables and can be extended with xxx-prp.tbm

General Format

  • #Prop Categories
  • Currently only used to colorize and sort the props into the list in FRED.
  • #End
  • #Props
  • The props
  • #End


#Prop Catregories

  • Used to define the color of the prop in the FRED list and to list props in similar categories together.

$Name:

  • Defines the name of the category
  • Syntax: string

+Color:

  • Defines the color of the prop text in the FRED list in RGB values.
  • Syntax: integer, integer, integer

#Props

  • The actual definitions for each prop.
  • Unlike ships and weapons, there is no limit to prop definitions.

$Name:

  • Defines the name of the prop. Must be unique.
  • Syntax: string

+nocreate

FS2 Open 3.6.10:
  • In Modular Tables name can be followed by line +nocreate that prevent game from creating an incomplete entry by leaving the entry unread unless it already exists (either in ship.tbl or in earlier parsed *-shp.tbm files) by the time the *-shp.tbm is read.

+remove

FS2 Open, 21.0:
  • In Modular Tables a name can be followed by the line +remove to completely remove a previously parsed entry.

$POF file:

  • The POF file for the prop
  • Syntax: string

$Closeup_pos:

  • How the model will show on the Loadout Screen. The position of the camera relative to the model center. Only valid if a tech model is defined
  • Syntax: Vector, three floats, x, y and z values respectively

$Closeup_zoom:

  • How the model will show on the Loadout Screen. How far the camera's zoomed in, defines camera's FOV.
  • Syntax: Float, radians

$Detail Distance:

  • Defines the distance where the change between different Levels-Of-Details (LODs) occurs
  • Take notice that these are base values. Model detail in Detail options, (within game press F2), applies a multiplier to these values. These multipliers default to (from left to right): 1/8, 1/4, 1, 4, and 8, and may be overridden by the $Detail Distance Multiplier
  • Syntax: (Detail Distances) , list of integers (same amount as LODs), distances from the model in meters
    • Example: (0, 80, 300, 900)

$Category:

  • The category (listed above) that this prop belongs to
  • Will be set to "Unknown Category" if not valid
  • Syntax: string

$Flags:

  • See below
  • Syntax: ( "String" "String" ), names of the flags assigned to the prop
    • Example: ( "no-collide", "no fred" )

$Custom data:

  • Defines a set of custom data that for this prop class, which can then be accessed through Lua scripts. There can be any amount of +Val: entries. It requires a $end_custom_data entry at the end.

Check the scripting documentation of Prop Class to find the CustomData Lua Table.

+Val:

  • Specifies a custom data value and its name, in the format
  • +Val: Name Value
  • These values will always be strings of text. If you use them in Lua as other types of value, you might need to convert them in the script.
  • Syntax: string

$end_custom_data

  • Mandatory entry to indicate that the Custom Data list has ended.

$Custom strings:

  • Defines a set of custom strings that for this prop class, which can then be accessed through Lua scripts. There can be any amount of entries. It requires a $end_custom_strings entry at the end.

Check the scripting documentation of Prop Class to find the CustomStrings Lua Table.

$Name:

  • Specifies a custom string name
  • Syntax: string

+Value:

  • Specifies a "value" or additional data point paired with the string. A common use case is an XSTR ID.
  • Syntax: string

+String:

  • The actual string which is a multitext string
  • Must end with $end_multi_text
  • Syntax: string

$end_multi_text

$end_custom_strings

  • Mandatory entry to indicate that the Custom Strings list has ended.

#End

  • Mandatory entry to indicate the props definitions have ended.


Props.tbl flags

"no_collide"

  • Defines ship as non-collideable, ie. everything will go through it

"no_fred"

  • Ship will not appear in any of the FRED dropdown lists for ship classes.

"no lighting"

Ship will not receive lighting calculations

Sample

  • Single Prop entry table
#PROP CATEGORIES

$Name: Rocks
+Color: (165, 42, 42)

$Name: Planets
+Color: (0, 255, 0)

#PROPS

$Name: Planet 1
$POF file: ast01.pof
$Detail distance: (400, 1000, 2000, 4000)
$Category: Planets

$Name: Rock
$POF file: asteroid01-01.pof
$Detail distance: (400, 1000, 2000, 4000)
$Category: Rocks

$Name: Planet 2
$POF file: ast02.pof
$Detail distance: (400, 1000, 2000, 4000)
$Category: Planets

$Name: Rock 2
$POF file: asteroid02-01.pof
$Detail distance: (400, 1000, 2000, 4000)
$Category: Rocks

#END