iRtvo Theme Reference

Written by bloodtaker. Posted in Theme Reference

Theme Reference

Table of Contents

This document explains all the options that are available for creating custom themes. These settings are stored in settings.ini

Items marked in bold are mandatory.

General

General settings

Name Description Example value Note
name Name of the theme Example theme Has to be the same as the folder name
author Author of the theme Jari Y  
width Theme width in pixels 1280  
height  Theme height in pixels 720  
overlays Comma separated list of text overlays driver,sessionstate,sidepanel  See ThemeReference#Overlays
images Comma separated list of images logo,sidepanel See ThemeReference#Images
tickers Comma separated list of tickers ticker See ThemeReference#Tickers
buttons Comma separated list of buttons sidepanel,ticker See ThemeReference#Buttons
videos Comma separated list of videos replay See ThemeReference#Videos
sounds Comma separated list of sounds bleep See ThemeReference#Sounds
switchsign Sign used with intervals (-1.456 or +2 laps) true Default false
dataFullName column-number of data.csv where {fullname} replacement is found 2 column-index in data.csv starts with -1, which is the iR User-ID and the (not used) default value
dataShortName column-number of data.csv where {shortname} replacement is found 3 column-index in data.csv starts with -1, which is the iR User-ID and the (not used) default value
dataInitials column-number of data.csv where {initials} replacement is found 4 column-index in data.csv starts with -1, which is the iR User-ID and the (not used) default value
triggergroups comma separated list of triggergroups pits,flags,lights See ThemeReference#Triggers
pointscol column-number of data.csv where the points can be found (for league racing) 5 column-index in data.csv starts with -1, which is the iR User-ID and the (not used) default value
pointschema comma separated points scheme for getting points as they run - starting from 1. 10,8,6,5,4,3,2,1  
minscoringdistance minimum distance (in percent - integer only!) to be run, before points are scored 50  
chasecol column-number of data.csv where the driver is defined to be in tha chase or not 6 if that column is empty, "0" or "false", the driver is not in the chase, else the driver is a chasedriver
driverswapthreshold time for a driverswap to remain in the driverswap dataset 10.0 value in seconds; defaults to 10 seconds (more suitable for trigger-purposes)

Translation

Program uses a few natural language words in its text fields. These words can be changed in Translation-section.

Name Example value Note
lap    
laps    
minutes    
of    
remaining   to go
race    
qualify    
practice    
out retired Text shown in user's {interval} when he has quitted
gridding    
pacelap    
finallap    
finishing    
invalid -.-- Text shown in {curlap} and {prevlap} when last lap was invalid (incident or connection issue)
replay REPLAY Text shown in {lapcounter} when the sim is in replay
Clear   Used with {sky}
Partly Cloudy   Used with {sky}
Mostly Cloudy   Used with {sky}
Overcast   Used with {sky}

Overlays

Each of the overlays defined in General-section must have corresponding Overlay-overlayname-section. For example if overlays=driver,sidepanel then there must be [Overlay-driver] and [Overlay-sidepanel].

Name Description Example value Note
width Width of the overlay 540  
height Heigth of the overlay 80  
left Margin from the left border of the window 64  
top Margin from the top border of the window 582  
zIndex Stacking order of all items in the theme 100 Item with largest zIndex will be shown top most and vice versa
dataset The kind of information shown on the text items followed Valid values are followed, standing, sessionstate, points, radio, trigger, pit, driverswap,
chasedrivers
dataorder Information used for sorting drivers fastestlap Valid values are position, liveposition, fastestlap, previouslap, classposition, classlaptime, 
points, oldpoints, trackposition. Position is the default.
labels Comma sparated list of text labels shown inside of the overlay num,name,diff  
fixed If set item is shown always true  
maxpages Limits the number of pages 1  
itemsize Item size of stanging list 45 Applies only to overlays that have dataset as standing
direction List items to given direction down Applies only to overlays that have dataset as standing, valid values are down, up, left and right.
number Number of items to draw 10 Applies only to overlays that have dataset as standing
offset Skip a number of drivers from the top 10 Applies only to overlays that have dataset as standing
skip Skip a number of drivers from each page 10 Applies only to overlays that have dataset as standing
delay Time in seconds before automatically changing page 5 Applies only to overlays that have dataset as standing
class Filters results to be single class and enable multiclass specific items {class} GT See ThemeReference#cars.ini

Overlay labels

Each of the labels defined in overlay's labels must be defined in its own section. For example labels=name,diff in [Overlay-driver] must then have [Overlay-driver-name] and [Overlay-driver-diff].

Tip: you can do alternating texts with external data - if you'd like to use {external:3) instead of {carnum} but want to fall back on {carnum} if a driver is not in your data.csv, tryp {external:3|carnum}. Important: this only works with external data as the first value and built in property as the second value, so make sure you don't mix the order!

Name Description Example value Note
fontsize Font size for the text 34  
width Object's width in pixels 400  
height Object's height in pixels 30  
text Text formatting {position_ord} See ThemeReference#text
font Font used to draw the text "Arial Black" Use the font's full name as seen on Windows Font Viewer (double click the fontfile)
fontcolor Font color for the text black See all possible colors
fontbold Font weight for the text false true or false
fontitalic Font style for the text true or false  
align Text alignment inside its borders left left, right or center
left Top-left corner's distance from parent object's left border 0  
top Top-left corner's distance from parent object's top border 0  
padding-left Padding from left edge of the label 2  
padding-top Padding from left edge of the label 2  
padding-right Padding from left edge of the label 2  
padding-bottom Padding from left edge of the label 2  
offset Add offset to shown driver. -1 2
rounding How many decimals are shown in time based labels. Only values between 0-3 work. 3  
uppercase If true the label text is capitilized true  
bgcolor Background color of the label #33000000 See documentation.
background Filename of the background image "labelbg.png"  
dynamic Use dynamic filename true  
defaultbackground Filename of the default background image "labelbg.png" Used when dynamic background isn't found.

1 Fonts need to be either in the theme folder or installed in Windows' fonts folder.

2 For example dataset=followed and the driver followed is on 3rd place. The using offset=-1 would show data of the driver on 2nd place and similarly offset=3 would show data of 5th place driver.

Text

Text property select what information is shown on the overlay. Different datasets have different data available.

Dataset: followed or standing or points or pit or radio or trigger

Value Description Example output Note
{fullname} Full name Greger Huttu  
{shortname} Shorter name G Huttu  
{initials} Initials GHU  
{driverid} iRacing customer id 12345  
{license} License WC4.99  
{club} Club Finland  
{irating} iRating 3312  
{car} Car Radical SR8 See ThemeReference#cars.ini
{class} Class Prototype See ThemeReference#cars.ini
{carnum} Car number 22  
{fastlap} Fastest lap of the session 1:23.456  
{prevlap} Lap time of previous finished lap 1:23.456  
{sector1} Current lap sector 1 time 1:23.456  
{sector2} Current lap sector 2 time 1:23.456  
{sector2} Current lap sector 3 time 1:23.456  
{sector1_speed_kph} Current lap sector 1 top speed in kph 123.45  
{sector2_speed_kph} Current lap sector 2 top speed in kph 123.45  
{sector2_speed_kph} Current lap sector 3 top speed in kph 123.45  
{sector1_speed_mph} Current lap sector 1 top speed in mph 123.45  
{sector2_speed_mph} Current lap sector 2 top speed in mph 123.45  
{sector2_speed_mph} Current lap sector 3 top speed in mph 123.45  
{curlap} Lap time of the current unfinished lap 1:23.456  
{lapnum} Current lap number 10  
{speedfast_mph} Average speed of the fastest lap in miles per hour 123.45  
{speedfast_kph} Average speed of the fastest lap in kilometers per hour 123.45  
{speedprev_mph} Average speed of the previous lap in miles per hour 123.45  
{speedprev_kph} Average speed of the previous lap in kilometers per hour 123.45  
{livespeed_mph} Current speed in miles per hour 123  
{livespeed_kph} Current speed in kilometers per hour 123  
{position} Current position at S/F line 10  
{position_ord} Current position at S/F line in english ordinal 3rd  
{liveposition} Current real time position 10  
{liveposition_ord} Current real time position in english ordinal 3rd  
{positiongain} Positions gained/lost since the start +3 Works only in race sessions
{startposition} Positions at start 3 Works only in race sessions
{startposition_ord} Positions at start in english ordinal 3rd Works only in race sessions
{highestposition} Highest position during the race 3 Works only in race sessions
{highestposition_ord} Highest position during the race in english ordinal 3rd Works only in race sessions
{lowestposition} Lowest position during the race 29 Works only in race sessions
{lowestposition_ord} Lowest position during the race in english ordinal 29th Works only in race sessions
{gap} Difference to leader. In practice/qualify difference of fastest laps, in race time/lap difference +1.234 Sign can be switched in [General]
{livegap} Difference to leader, updated 60 times a second +1.234 Sign can be switched in [General]
{interval} Time difference to the driver in front 1.234  
{liveinterval} Time difference to the driver in front, updated 60 times a second 1.234  
{lapsled} Number of laps in lead 22 Works only in race sessions
{pitstops} Number of pit stops made 1 Works only in race sessions
{pitstoptime} Last pit stop length or live timer when pitting 23.56 Works only in race sessions
{classposition} Current position in class 1 Multiclass variant
{classposition_ord} Current position (ordinal) in class 1st Multiclass variant
{classliveposition} Current live position in class 1 Multiclass variant
{classliveposition_ord} Current live position (ordinal) in class 1st Multiclass variant
{classpositiongain} Positions (in class) gained/lost since the start -1 Multiclass variant
{classstartposition} Class position at start 3 Multiclass variant
{classstartposition_ord} Class position at start in english ordinal 3rd Multiclass variant
{classhighestposition} Highest class position during the race 3 Multiclass variant
{classhighestposition_ord} Highest class position during the race in english ordinal 3rd Multiclass variant
{classlowestposition} Lowest class position during the race 29 Multiclass variant
{classlowestposition_ord} Lowest class position during the race in english ordinal 29th Multiclass variant
{classgap} Difference to class leader +1.234 Multiclass variant
{classlivegap} Difference to class leader (realtime) +1.234 Multiclass variant
{classinterval} Time difference to same class driver in front +1.234 Multiclass variant
{classliveinterval} Time difference to same class driver in front (real time). +1.234 Multiclass variant
{points} Total points 12 Including points from current finishing position, use with dataorder=points
{points_pos} Championship position 12 Including points from current finishing position, use with dataorder=points
{points_pos_ord} Championship position ordinal 12th Including points from current finishing position, use with dataorder=points
{external:#} Shows data from CSV-file, replace # with column number. N/A See ThemeReference#External_Data
{teamid} Shows iR teamid (in team events, else -1 or 0) 12345  
{teamname} Shows teamname as retrieved from team.csv Team Redline See ThemeReference#teams.csv
{rpm} Shows RPM, smoothed to steps of 50 6450  
{gear} Shows the gear a car is in - numeric value 3 -1 is reverse, 0 is neutral
{steer} Shows steering angle in degrees -13 negative values mean the steering wheel is turned to the right
{oldpoints} points from the data.csv, "old" points, before the race 13  
{oldpoints_pos} championship position as they were before the race 2 ex-aequo is not captured correctly
{oldpoints_pos_ord} championship position ordinal as they were before the race 2nd ex-aequo is not captured correctly
{poins_pos_gain} gained positions in points (from old points to current points -3 lost 3 positions

Dataset: sessionstate

Value Description Example output Note
{lapstotal} Total laps in session 32  
{lapscompleted} Laps completed by the leader 20  
{lapsremaining} Laps remaining in session 12  
{currentlap} Lap the leader is currently on 20 This is {lapscompleted} + 1
{timetotal} Total elapsed time in session 30:00  
{timepassed} Total elapsed time in session 12:33  
{timeremaining} Time remaining in session 17:27  
{lapcounter} Lap counter including transition to "x laps to go" and "final lap" 12 / 23 Works just like in the version 1.0
{trackname} Name of the track "Infineon long" See ThemeReference#tracks.ini
{tracklen_mi} Length of the track in miles 1.345  
{tracklen_km} Length of the track in kilometers 1.345  
{cautions} Number of cautions 5 Works only in race sessions with full course cautions
{cautionlaps} Number of laps under caution 25 Works only in race sessions with full course cautions
{leadchanges} Number of lead changes 5  
{sessiontype} Session type race See ThemeReference#Translation
{turns} Number of turns in the track 12  
{city} City where the track is located at Toronto  
{country} Country where track is located at Canada  
{altitude_m} Altitude from sea level in meters 107  
{altitude_ft} Altitude from sea level in feet 321  
{sky} Sky condition Clear See ThemeReference#Translation
{tracktemp_c} Track temperature in celcius 32  
{tracktemp_f} Track temperature in fahrenheit 107  
{airtemp_c} Air temperature in celcius 25  
{airtemp_f} Air temperature in fahrenheit 107  
{humidity} Relative humidity in percent 88  
{fog} Relative foggyness in percent 12  
{airpressure_hg} Air pressure in mmHg 760  
{airpressure_hpa} Air pressure hecto pascals 1013  
{windspeed_ms} Windspeed in meters per second 8  
{windspeed_kt} Windspeed in knots 10  
{windspeed_kph} Windspeed in kilometers per hour 5  
{winddir_deg} Wind direction in degrees 33 Zero degrees facing north, 90 degrees east, etc.
{fl_time} fastest lap time 1:23.456  
{fl_fullname} full name of fastest driver Greger Huttu  
{fl_shortname} short name of fastest driver G Huttu  
{fl_initials} initials of fastest driver GH  
{fl_teamname} team name of fastest driver Team Redline  
{fl_lapnum} number of fastest lap 7  
{fl_carnum} car number of fastest lap 89  

Images

Each of the images defined in General-section must have corresponding Image-imagename-section. For example if images=driver,sidepanel then there must be [Image-driver] and [Image-sidepanel].

Value Description Example output Note
filename Filename of the image in theme folder lights-off.png Available image formats are BMP, JPEG, PNG, TIFF, Windows Media Photo, GIF and ICON. 
zIndex Stacking order of all items in the theme 10 Item with largest zIndex will be shown top most and vice versa
width Width of the image 480 Default is theme width
height Height of the image 480 Default is theme height
left Margin from the left border of the window 64 Default is 0
top Margin from the top border of the window 582 Default is 0
dynamic Dynamic filename true When true filename will be parsed for driver text properties, see ThemeReference#Dataset:_followed_or_standing
default When dynamic filename doesn't exist, use this filename default.png See dynamic property
fixed If set item is shown always true  
animate set true for animated gifs true defaults to false

Tickers

Each of the tickers defined in General-section must have corresponding Ticker-tickername-section. For example if tickers=standings then there must be [Ticker-standings].

Tickers have the same properties as overlays. See ThemeReference#Overlays. There are few additional fields:

Value Description Example output Note
fillvertical Sets the direction which labels are stacked. When true it creates multi row ticker. false is the normal behavior. false Valid values are true or false
fixed If set item is shown always true  
speed Speed of scrolling in 1/60th pixels per second 6 Default is 3
header A label to be shown as the first item on the ticker header value "header" references to Ticker-name-header
footer A label to be shown as the last item on the ticker footer similarly as in header

Buttons

Each of the buttons defined in General-section must have corresponding Button-buttonname-section. For example if buttons=sidepanel,ticker then there must be [Button-sidepanel] and [Button-ticker].

Buttons show and hide overlays, images and tickers. Each button can do any combination of these.

Value Description Example output Note
text Sets the text shown in the button. Side panel  
row To which row the button is added 2 Starts from 0, which is the default
show Comma separated list of items that will be visible after button press Overlay-sidepanel,Image-sidepanel,Trigger-flags Valid values are any of the overlays, images or tickers defined in General or any valid trigger. 1
hide Comma separated list of items that will be hidden after button press Ticker-standings See show
toggle Comma separated list of items that will be toggled (visible/hidden) after button press Oveylay-driver See show
delay Delay between automatic page changes 5 Applies only to buttons which have at least one overlay that has standings-dataset
loop Loops back to first page after the last one true  
hidden When true doesn't add button to main window true See hotkey
hotkey Global hotkey Shift-H Comprised of modifier and key, possible modifiers are None, Alt, Ctrl, NoRepeat, Shift, Win and possible keys are listed at http://msdn.microsoft.com/en-us/library/system.windows.input.key.aspx
replay Replays given seconds 10 use 0 to return live
playspeed Changes playspeed -2 negative values are slow motion, positive fast forward and 1 is normal speed

1 Special note: When using overlay with dataset standing use always show to switch to the next page. For example 30 drivers will have 3 pages worth of items if number is 10.

Triggers

Triggers are much like buttons, but they are triggered automically based on their name. Valid names are:

Name Description
flagGreen Green flag
flagYellow Yellow flag
flagWhite White flag
flagCheckered Checkered flag
lightsOff Triggered few seconds after the start
lightsReady Lights off
lightsSet Lights on (red)
lightsGo Green light
replay Triggered when replay is activated
live Triggered when coming back to live from replay
radioOn Triggered when radio transmission on received channel starts
radioOff radio transmission on received channel ends
fastestlap triggered by new fastest lap of session
offTrack triggered by an off track event
notInWorld car no longer present?
pitIn someone pitted
pitOut someone left the pits
pitOccupied (in race only) fires as soon as a driver hits the pits
pitEmpty (in race only) fires when the last driver leaves the pits
init fires at startup of theme - only once!
driverswap fires when a team swaps drivers - dataset driverswap lists all cars with driverswaps within the last 10 seconds!

Settings for triggers are:

 

Value Description Example output Note
toggle Comma separated list of items that will be toggled (visible/hidden) at trigger event Overlay-trigger,Image-trigger Suggestion: use pushbutton instead
show comma separated list of items that will be shown at trigger event Overlay-trigger,Image-trigger  
hide comma separated list of items that will be hidden at trigger event Overlay-trigger,Image-trigger  
pushbutton name of the button to be "pressed" by the trigger trigger The button section in this case would be [Button-trigger]
delayreset if the delay in the button defined in pushbutton shall be reset if still active at next trigger event true only in combination with pushbutton
repushbutton if the trigger can push the button again while it's still marked as active/pressed false only in combination with pushbutton
group triggergroup  the trigger belongs to flags see triggergroups in ThemeReference#General

Videos

Each of the videos defined in General-section must have corresponding Video-videoname-section. For example if videos=replay then there must be [Video-replay].

Value Description Example output Note
filename Filename of the video in theme folder replay.wmv Windows Media Video is a safe format to start with. 
zIndex Stacking order of all items in the theme 10 Item with largest zIndex will be shown top most and vice versa
loop When set the video is looped around and stopped only when "hidden" true  

Sounds

Each of the sounds defined in General-section must have corresponding Sound-videoname-section. For example if sounds=bleep then there must be [Sound-bleep].

Value Description Example output Note
filename Filename of the video in theme folder beep.wav WAVs should always work
loop When set the sound is looped around and stopped only when "hidden" true  

External Data

Reminder for ALL data files (data.csv, teams.csv, tracks.ini, cars.ini): please encode these in UTF-8, because otherwise you WILL get into
trouble with special characters not be found in a 7-bit ASCII set!

Tip: You can use the data sent by iRacing (trackname, carnames, classnames, teamnames) by not using tracks.ini, cars.ini, teams.csv - the values iRacing provides will act as a fallback, too, if the data cannot be found in the files.

External data is stored in a CSV-file called data.csv which is located at the theme folder. This file is semicolon separated table where first column is the driver's customer id.

Example file - data.csv

35698;Finland;Oulu;Team Trellet
12345;USA;Boston;Team USA

Now {external:0} would become Finland or USA and {external:2} Team Trellet or Team USA respectively.

If the CSV file doesn't have row for the selected driver the external fields will be ignored.

Tip: You can use almost any spreadsheet program to create csv-files, including Google Docs.

Tip: You can overload fullname, shortname, initials with values from data.csv. See ThemeReference#General.

 

Example file - teams.csv

10815;Crazy Motorsports
14711;Team Redline
7;Team Redline

In teams.csv you can put your team-names either with the TeamID (to be found in iRacing) or with the car number. Since most leagues seem to
run fixed car numbers per driver / team, that's probably the easier way. But of course you can also use the team name as sent by iRacing - then
you don't have to put anything into teams.csv

cars.ini

cars.ini holds the names of cars and classes. File can be in same folder as the irtvo.exe or on theme folder.

Format is carname="Car name". carname is the same used in setup folders, but spaces are replaced with backslashes "\". For example:

[Cars]
26="Chevrolet Corvette C6R"
39="HPD ARX-01c"
40="Ford GT"

[Multiclass]
26="GT"
40="GT"
39="P2"

Cars with same class name (like GT above) are grouped to same class.

tracks.ini

tracks.ini holds the names of tracks. File can be in same folder as the irtvo.exe or on theme folder.

Format is track="Track name". track is the same used in camera.ini in Documents\iRacing. For example:

[Tracks]
26="Daytona International Speedway Road"

You have no rights to post comments

Our Sponsors

 MaxSpeed TV            LSRTV            ATVO            iRacing
             
XtremeMotorsports99   DreBroadcasting    OSRNetwork   NoExcuses