Release Notes Version 1.10
- Added support for new 'Interface' script types (.NET scripts only). Letting your Script class implement IScript interface makes execution time slightly faster. Old-type scripts will work, no changes are required.
- Added support for measuring script execution time (all script types). Enable the 'Measure execution time' property of the script. Execution time is output to the theme log or when using the Test button in the editor.
- Changed Pit data set to return drivers that have been in the pits in the last 10 seconds, and exclude drivers that are no longer in the world.
- Added ability to choose any Image in your Theme as the Overlay Editor Background image.
- Fixed a crash when using text outlines.
- Fixed a problem with tickers adding empty elements at the end when using a Data Offset other than 0.
- Fixed a bug where the script Test button in the editor returned the wrong value.
- Fixed a bug where empty lines in a spreadsheet were ignored.
- Fixed a bug where final lap text would show up during gridding.
- Fixed a buh where data would not update during the final lap.
Release Notes Version 1.9
- Spreadsheets can now be used as Data Sets. Data is returned in the Sort order of the Spreadsheet, where the Data Offset is the row number.
- Spreadsheet data can now be sorted on a specific column. You can specify the Sort Column Index and the Sort Direction in the Spreadsheet properties. This is only useful when you're using the Spreadsheet as a Data Set. At this time, the sorting algorithm tries to sort the data as numeric data if all rows in the sort column are integers. If there is any row that is not an integer, the data is sorted as strings (meaning "10" comes before "2").
- Add new 'Custom' delimiter option for Spreadsheets. When selecting 'Custom' delimiter, you have to set the 'Delimiter Text' property which will then be used as the delimiter.
- Labels will now compress or stretch their text if necessary also in the Theme Editor. Previously the compression was only visible when running the theme in ATVO, now you can also see it in the Editor.
- Add Stretch and Stretch Direction properties to Label to control how the contents are stretched or compressed. The default values (Stretch to Fill and Direction to DownOnly) will only compress the text (never stretch it out), but you can control the behaviour with these two properties.
- Add 'OneToGreen' event trigger which should trigger when there is one more pace lap to go and the pace car lights go out.
- Fix bug where no sim data was obtained in sessions using the Ford GT 2017 or Ferrari 488 GTE cars.
- Fixed a bug where Max Height and Max Width where not applied correctly.
- Fixed a bug where laps could fail to be marked as 'under caution', potentially messing up session time estimation.
Release Notes 1.8.1:
- Add Default Selected Index property to Dropdowns. If set to a value of 0 or higher, the Dropdown will select the item with that index by default when the theme loads. If the Apply Mode is set to 'ApplyOnSelect' it will immediately apply the actions of the selected item (as well as the actions to trigger on any selection change). Leave this value empty (or < 0) to have no selected item by default.
- You can now double-click errors in the Error List. If the error is aware of the item from which it originated, that item will be opened. There may be a small set of errors which cannot be opened in this way.
- For .NET scripts (C# or VB), errors originating from usage of unknown types in your script give some assistance when double-clicked. The editor performs a search for the type you are trying to use in all of the assemblies known to ATVO, and will display a list of exact and partial matches. If your type is found, you can copy the necessary "using" or "Imports" statement to paste it at the top of your file.
- Add 'Hide all scenes' action.
- Add "racedistance_mi" and "racedistance_km" bindings, which return the race distance as track length multiplied by number of laps dictated. Note this will be wrong if the race is decided by time!
- Added visible indication to the timing screen whether a car is visible on the track or not in world.
- Fixed a bug where Script Execute actions would incorrectly complain that specifying a Value is invalid. Specifying a Value is optional and the error list no longer flags this as a warning.
- Fixed a bug where Widgets with a Dynamic Video would not play when triggered from an Action.
- Fixed a bug where only one Spreadsheet could be used.
- Fixed several additional bugs with session length estimation:
- The estimated time remaining will be more accurate and will update in real-time (rather than once per lap).
- The Timing Screen display of the time remaining will no longer flicker.
- The estimation now takes qualification times into account properly (if necessary).
Release Notes Version 1.8:
- Add new Dropdown theme control item. You can add dropdown items to your Dropdown and give them some text. For each item, you can specify a list of Actions to execute. Use the Apply Mode property to control when the Actions are executed. Use ApplyOnSelect to execute the Actions as soon as you select the item. Use ApplyWithAction to delay the execution until you execute a "Dropdown Apply" action (which you can do with a separate Button for example). Besides Actions for each item, you can also specify common Actions that get executed whenever the selected item changes, regardless of which item was selected.
- Add Change Camera actions.
- Use Change Camera Group action to change the camera group. Supply the name of the group in the Value field.
- Use Change Camera Focus action to change the focus of the current camera. The value field controls where the focus will go. There are several options:
- Change to a certain position using "P" followed by position number, e.g. "P3".
- Change to a certain car using "#" followed by car number, e.g. "#23".
- Change to a certain driver using his customer ID, e.g. "74968".
- Change to a position relative to the current position using "relative_pos(x)", where "x" is the number of positions to move.
- Change to a car relative to the current car in order of their track location using "relative_track(x)", where x is the number of cars to move.
- Added Data Explorer (access via Window - Data Explorer menu). The Data Explorer shows you a list of all Data Sets and their Data Bindings. You can see the data updating live (4 times per second) when connected to iRacing. This is a useful tool to see what data is available and what format it is. For bindings that return 'objects', you can expand the object and see what is available to use for scripting. Note that expanded objects do not update live.
- Added Object Explorer (access via Window - Object Explorer menu). The Object Explorer is useful for scripting and gives you a rundown of available things in the Simulation and Theme objects which you can access in advanced scripts. You can dig down into properties and collections and see exactly what properties and methods are available, as well as their return type and invocation signature. Primitive values (e.g. numbers and strings) in the Object Explorer will update live (4 times per second), but complex objects will not update live (for example, if you add a new Widget, it will not show up in the Theme.Widgets list until you refresh the Object Explorer).
- Fixed a bug in session length estimation that incorrectly estimated the session length if it was limited by both laps and time.
- Improved session length estimation by ignoring caution laps.
- Fixed a bug where the Theme Editor could crash when selecting a Data Trigger
Release Notes Version 1.7.3:
- Added icons for configurable bindings.
- Fixed custom classes.
- Fixed crash with incorrect actions. They will now be written to the event log.
Release Notes Version 1.7.2:
- Fixed a bug where label text was wrongly left-top aligned in some cases.
- Fixed a bug where configurable data bindings (lapcounter, interval, gap, etc) could be missing for themes with driver pickers or inputs.
- Fixed a bug where the Timing Screen session timer could stop updating if you had not seen a session change yet.
- Fixed a bug where text was mistakenly copied to your clipboard when using a Ticker in your theme.
- Fixed a bug where loading a new theme without closing ATVO first could cause an issue with data binding.
In case there are any other issues with this version for the 24h race you can always go back to version 1.6.9.
You can download it here: https://atvo.appgineer.in/downloads/1.6/bin.zip
Just unzip the folder and run the ATVO.exe or ATVO.ThemeEditor.exe.
Themes that have been saved under version 1.7 or above might load with incorrect text alignment settings for labels.
Release Notes Version 1.7.0:
- Add new 'Child Layout' options to Widgets and SubWidgets. The default layout 'Absolute' is the same as previous versions and allows you to set absolute Left, Top, Width and Height values of all child elements. New options include Stack (Horizontal / Vertical), Wrap (Horizontal / Vertical) and Dock. In Stack mode, child elements will stack next to each other and move as their siblings change size. Wrap mode is similar but wraps elements to a new row (or column) when they exceed the space of their parent. In Dock mode you can use the Dock property of the child elements to dock elements to one side (Left, Top, Right, Bottom). Finally, use the Last Child Fill property of the parent (in Dock layout mode) to make the last child take up all remaining space after docking all other children.
- NOTE: When you have a Widget Editor or SubWidget Editor open, changing this property will not be reflected in the currently open Editor. Close and re-open the Editor to see the changes.
- Add new properties to support new layouts. Use Margin property to set a margin of space around the child. use Horizontal or Vertical Alignment properties to control how elements are aligned (to one side, centered, or stretched out).
- Label now has separate margins and alignments for the text inside it. Use Text Margin, Horizontal Text Alignment and Vertical Text Alignment to control how the text is aligned in the Label. These properties were previously called Margin, Horizontal Alignment and Vertical Alignment but have now been renamed to avoid conflict with the new properties available for all Widgets.
- Add Auto Size property which gives a parent element only as much space as required by its children, it will scale up or down depending on content.
- Add ability to use negative Widths and Heights which are similar to Auto Size except you can set just one direction only (e.g. Height = -1 to auto-size in height only).
Session length estimation:
- ATVO now estimates the session length (correct number of laps or total time, whichever is not fixed by the session settings).
- Estimated session length is used by the lapcounter binding.
- Estimated session length is also shown in the Timing Screen.
- New bindings:
- sessionlength (length as dictated by the session)
- estimated_sessionlength (length estimated)
- estimated_sessiontimeremaining (estimated time remaining)
- estimated_lapstotal (estimated total laps)
- estimated_lapsremaining (estimated laps remaining)
- estimated_sessiondecidedbylaps (estimated whether session is limited by laps or time)
- finallap (true if this is the last lap, potentially estimated)
- interval_behind (Interval to car behind)
- liveinterval_behind (Live interval to car behind)
- average_laptime (Average pace of the session leader, estimated from the 5 most recent and most relevant laps)
- "lapcounter_special" binding renamed to "lapcounter". Old non-configurable "lapcounter" binding has been removed.
- IMPORTANT NOTE: Themes using "lapcounter_special" will NOT be updated automatically, you will need to set the new binding manually.
- "lapcounter" binding updated:
- Add option to show 'Gridding' text.
- Add option to show 'Pacing' text.
- Add option to show 'Time Remaining' text, formatted to your desire.
- Add 'Display Mode' option to choose between display Laps (e.g. "Lap 3 of 15"), TimeRemaining (e.g. "04:23") or Automatic to let ATVO decide.
- Lap counter now estimates the race length accurately so it can display Laps in a race limited by a time limit, or display TimeRemaining in a race limited by laps. This is not recommended though as the estimation fluctuates during the race.
- If configured correctly, lap counter can now display 'X Laps To Go' even in a race decided by time. The laps remaining are estimated based on the average pace of the field.
- Lap counter should show 'Final Lap' text when appropriate, e.g. when the leader starts the last lap and not just when the timer expires.
- All "interval" and "gap" bindings are now configurable
- Can choose "positive" and "negative" sign other than "+" or "-" (e.g. to reverse them, or customize fully).
- Can choose translation for "Lap" and "Laps" text.
- Applies to "gap", "livegap", "classgap", "classlivegap", "interval", "liveinterval", "interval_behind" and "liveinterval_behind".
- Fixed bug where ticker could get stuck after session change.
- Fixed bug where ticker showed empty data just after resetting to first page.
- Fixed bug where Font Weight could not be selected from a drop down. Added option "Inherited" to inherit font weight from parent item.
- Fixed a bug that could cause a crash during a driver change.
F1 Styled Theme is no longer compatible with ATVO.