Link Search Menu Expand Document

Many of these settings are in flux, have not been tested in all combinations, and are likely to break. ini files should be named the same as their corresponding sim and placed next to the sim file, in the same directory.

A global ini file which is loaded (but can be overridden, in theory) for all sims is located at install\globals.ini.

For certain qualifiers, like object coloring, files are read in order, meaning if two statements apply, only the last (or first? need to verify) one will win.

Input

Input is mapped with phrases similar to their script analogs.

PrimaryAxisPositiveX
PrimaryAxisNegativeX
PrimaryAxisNegativeZ
PrimaryAxisPositiveZ
PrimaryAxisPositiveY
PrimaryAxisNegativeY
SecondaryAxisNegativeX
SecondaryAxisPositiveX
SecondaryAxisNegativeZ
SecondaryAxisPositiveZ
SecondaryAxisNegativeY

primary button in script currently maps directly to PrimaryAxisPositiveY (but gives additional values for testing released, just released, pressed, and just pressed).

To bind an input to a key or keys, list the keys that trigger that input separated by commas, e.g.

PrimaryAxisPositiveX,d,m,right

Object Coloring

Colliders can be colored for the view by either checking what type they or their owning Collision Bodies are (TYPE_COLOR) or by querying one of their properties (PROPERTY_COLOR).

RGBA values are a number from 0 to 1, and the format is:

<color_declaration>,<statement>,<red>,<green>,<blue>,<alpha>

TYPE_COLOR

Type color will apply if the Collision Body’s is of the specified type (this means extensions will use them if applicable).

TYPE_COLOR,Melee Ship (Defeated),1,0,0.25,0.75

PROPERTY_COLOR

Property color will apply either if a property exists on that object, or if a simple statement evalutes to true. With just a property name, it means color an object if it has the property (regardless of its value). For example, looking for the shielded property:

PROPERTY_COLOR,shielded,0.2,0.5,0.8,1.0

A simple statement can be tested (currently we think >, >=, <, <=, = work). For example, only color the object if shielded is 1:

PROPERTY_COLOR,shielded=1,0.2,0.5,0.8,1.0

To access properties beyond the top level of an object, additional .’s can be added to dig through properties. For example:

PROPERTY_COLOR,target.info.shielded=1,0.2,0.5,0.8,1.0

Lighting

You have access to 3 (?) lights and an ambient light. Example:

LIGHT_POSITION,-1000000,1000000,-1000000
LIGHT_DIFFUSE_COLOR, 1.0f,1.0f,1.0f,0.8f
LIGHT_ATTENUATION, 0.0f, 0.0f, 0.0f
LIGHT_SPECULAR_COLOR, 1.0f, 1.0f, 1.0f

LIGHT_ID,1
LIGHT_POSITION, 1000000, 150000, 1000000
LIGHT_DIFFUSE_COLOR, 0.0f, 0.25f, 0.7f, 1.0f
LIGHT_ATTENUATION, 0.0f, 0.0f, 0.0f

LIGHT_ID,2
LIGHT_POSITION,-15, 5, -15
LIGHT_DIFFUSE_COLOR, 1.0f, 0.0f, 0.0f, 1.0f
LIGHT_ATTENUATION, 0.0f, 0.25f, 0.

Camera

Example camera config for a sidescroller which uses an orthographic camera, setting the pitch to be 0 (head-on):

CAMERA_FEATURES,Orthographic,TargetAllPlayers,IncludeAllPlayers
CAMERA_PITCH, 0

CAMERA_FEATURES

One or more of the following (comma separated, no quote marks) is required. Some are mutually exclusive or may interfere with one another.

normalize

Support “wrapping” of playfield – which “axes” wrap are determined by simulation “wrap_extents” components being non-zero

targetposition

View will always center on (look at) CAMERA_TARGET_POSITION.

targetclientplayer

View will always center on (look at) client player position.

targetallplayers

View will always center on (look at) average position of all players.

orthographic

Use orthographic projection (NOTE: not used/tested a lot!).

scaleviewsize

Scale size of “players” based on distance from camera.

autozoom

When set, various camera values will be modified based on distance from player to camera target – see Autozoom Settings below.

includeclientplayer

Adjust camera “zoom” to ensure client player is in view

includeallplayers

Adjust camera “zoom” to ensure all players are in view

zoomwrapextents

Adjust camera “zoom” so playfield fits exactly in viewport (but preserving aspect ratio, so you may have “letterboxing” in game window)

usehardcuts

Untested/experimental

targetplayerhorizontal

Keep camera target at same view x-location as player

targetplayervertical

Keep camera target at same view y-location as player

targetpointofinterest

Untested/experimental

CAMERA_TARGET_POSITION

What camera looks at (NOTE: may be ignored depending on CAMERA_FEATURES) – defaults to 0,0,0

CAMERA_FOV

Field of view in degrees (for perspective projection) – defaults to 45

CAMERA_FOCAL_LENGTH

Distance from camera target to camera position(for perspective projection) – defaults to 60 units

CAMERA_PITCH

Camera pitch in degrees – defaults to -90.

CAMERA_FACING

Camera facing in degrees.

CAMERA_ROLL

Camera roll in degrees.

CAMERA_BACKGROUND_COLOR

Defaults to 0,0,0,1 (black)

CAMERA_SIZE_FACTOR

If CAMERA_FEATURES includes “scaleviewsize”, will scale view size of player – defaults to 1/30

Autozoom Settings

If CAMERA_FEATURES includes “autozoom”, how various camera values will be modified based on distance from player to camera target.

For example:

CAMERA_AUTOZOOM_INNER_FOCAL_LENGTH,15
CAMERA_AUTOZOOM_OUTER_FOCAL_LENGTH,100
CAMERA_AUTOZOOM_INNER_TARGET_DISTANCE,5
CAMERA_AUTOZOOM_OUTER_TARGET_DISTANCE,30
CAMERA_AUTOZOOM_INNER_SCALE_FACTOR, 0.0222
CAMERA_AUTOZOOM_OUTER_SCALE_FACTOR, 0.0111

TODO: fill in the below

CAMERA_AUTOZOOM_INNER_FOCAL_LENGTH

CAMERA_AUTOZOOM_OUTER_FOCAL_LENGTH

CAMERA_AUTOZOOM_INNER_TARGET_DISTANCE

CAMERA_AUTOZOOM_OUTER_TARGET_DISTANCE

CAMERA_AUTOZOOM_INNER_SIZE_FACTOR

CAMERA_AUTOZOOM_OUTER_SIZE_FACTOR

CAMERA_ASPECT_RATIO

Determines shape of camera viewport (defaults to 0, or no effect). 1, for example, would be a square.

Meter UIs

TODO

Backdrop

A backdrop texture file for the view can be specified with the BACKDROP_TEXTURE_FILE directive and specifying a png file pathed relatively starting from the install directory or directly (not recommended) starting from root (e.g. C:\). For example:

BACKDROP_TEXTURE_FILE=..\game\sim\test\test_sim\test_sim_backdrop.png