Virtual Steward

Virtual Steward 0.5c

Login or Register an account to download this content
I'm working on a traffic feature for Virtual Steward, still lot to do, if you want to stay updated, follow me on Patreon.


This should fix the crash on start when loading malformed json cars and tracks file.

From now on I'll work to the refactoring of the code base. It'll interest mainly the UI part but I'll also add small features and quality of life improvements. I'll try to post updates on Patreon but it will take a while to port all the features.
I got reports of the program crashing on start and the message "The grid was full, to enable connection to the... etc" showing up too often with the effect of removing the only player in the replay.

If you are affected by any of this problem, I published a test version on Patreon (free) that could help solve the issue. I don't want to publish on Overtake right now because I'm working with an old version of the code base and I want to be sure it's not missing other features before publishing here.

Should fix the problem with the first player in the replay not showing up in the server feature.
  • Like
Reactions: tetematete
A small update for another requested feature, by clicking the up arrow button you can export the selected player's lines to an SVG files. If you check "Include players legend" a list of all selected players lines color will be added.
Patreon

Virtual Steward will always be free and available here on Overtake but I opened a Patreon account to test the actual level of interest in the project. I received a few message complimenting it but download numbers are pretty low. Depending on the Patreon "success" I'll decide if keeping it just as a "when I feel like it" project or working on it a little more.


Back to the update.

This is a requested feature from a guy with bad ping that wanted to be able to tandem drift with himself. I have no idea how many other people will find it interesting but it was very fun to make (it was also a lot of work, to be honest).

Basically Virtual Steward will act as an AC server, just load a replay and click "Start server" in the "Server" tab. In the "Stream" folder in the VS installation folder, you'll find a Windows shortcut called "Local Server", double click on it to open Content Manager on the "127.0.0.1:8081" server and join with any car on then list. Click on the ">" button in Virtual Steward to start the replaying of the replay, in AC you should see any selected player show up and move accordingly.

IMPORTANT: remember to right click select any player you want to actually show up in AC (must have gray background in the players list).

Keep in mind that the physic engine is running, I tried to manage the different cases but don't mess too much with the sliders and replaying speed buttons.

This is all still very WIP, I suggest just closing and opening VS anytime you want to start a new server with a different replay.

A BIG thank you! to StreetVersion for helping me with testing and making the "How to" video:

This should fix the bug when saving a merged replay reported here:

WARNING: (13/07/2024) apparently this version kinda broke the merging feature, I'll take a look in the next days, please revert back to 0.4 if you find any issues when merging laps.

Just a small update, I wanted to release these with one of the new features but I'm stuck with all of them.

- Refactoring of the way overtakes highlighting works, much more memory efficient now, should work with big files, please let me know.
- Overtakes before and after times option.
- Driver labels on the map, enabled in settings.
- Some bug fixing.
I added a feature to generate a replay comprising all the overtakes in a race, the cool part is that I found a way to make the camera in AC automatically switch to the involved car.

Basic steps to generate the replay:

- Load the replay.
- In the "Overtakes" tab, click "Find overtakes".
- The programm will populate a list of all the found overtakes.
- Click the "Create replay" button, the loaded replay will be replaced with a new one made of all the overtakes in the list, one after the other.
- Save the replay not forgetting to check the "Save in Assetto Corsa format" check.

IMPORTANT: the trick I used to make AC camera switch to the car I want is creating a fake, invisible car an placing it "inside" the car I want to focus on. In the Virtual Steward folder you'll find the "CameraCar" folder with a .zip file containing an invisible car and an invisible driver. Unzip the file and copy the "content" folder in AC. It works on my PC but it could easily crash on yours, let me know in case of problems.

If you don't want to use this feature you have to remove the "Camera car" player from the list in Virtual Steward before saving the replay.

More details

The highlights generation works better with clean races, don't even bother trying with an open lobby race. The constant connection and disconnection of players will mess things up. It's also worth doing a bit of cleaning before generation, like removing players with zero laps or that went to pit mid race and stayed there. By the way, it only works on tracks with the ideal line data file.

After clicking the "Find overtakes" button, you can review them by clicking on any of the entry in the list and use the top sliders to "watch" the replay. You'll notice that the green selector will have turned blue, if you drag them you can edit the length of the selected highlight. By clicking on a car on the map or on a player in the players list, you can change the car the camera will focus on.

You can use two checkboxes to alter the way overtakes are grouped. With no checkbox checked, VS will create a list of every single position change. For istance, if two players swap position five times in a few seconds, you'll get five 13,5 seconds highlights. If a car crashes or goes to pit, you'll get an highlight for every players that was behind and passes it.

If you check the "Merge duplicates" checkbox, VS will try to group any overtake (position swap actually) happening in a close timeframe and track position. This means some overtakes could be "absorbed" into another one happening nearby.

If you check the "Conservative merging" checkbox, VS will merge only the overtakes involving the same position, the case of the aformentioned five overtakes, you'll have duplicates for car stopping in this case. Without the checkbox you'll usally get just one long replay with the last car passing the stopped one.

With the "Add selection" button you can add a custom highlight with the currently selected player and the current green selectors position. I use that for race start/first lap, limiting then the generation to subsequent laps.

PS: both the Virtual Steward .zip and .exe file have increased in size a lot, this is due to the invisible car files and the networking libraries I included for the very much WIP and not yet realesed live race feature.

Sorry, another bug fix, these two could have waited but they were too stupid to let them live in the wild. No need to download if everything is working fine.
Fixed the window size problem on first run, while I was there added a maximized flag.
Changes log:

- Checkpoints for merged replays. By placing checkpoints along the track, when generating a merged replay, players will stop at each of them and wait for all other cars, then start again from there together, like good friends do. For instance, you could place a checkpoint in front of every turn to get a more meaningful comparison.
- Added a dialog for generating merge replay (sliding car icon left of save button). Clicking the "Create" button will generate a merge lap for every selected player/lap (right click/gray ones). Since best laps are automatically selected on load, just click the gray bar over the players list to select all of them, this way you can easily generate a merged replay will all the best laps of each player.
- In the player panel there are now two lap's lists: the usual one sorted by lap number and a second one sorted by lap time.
- Some bug fixing and anomalies managment.

I've received reports of merged replays with many cars failing to load both on AC and VS, I've not been able to reproduce the problem, I kindly ask anyone encountering this to send me a link to an uploaded replay file, my dataset is somewhat limited and I appreciate any help in collecting more replay file samples.

  • Like
Reactions: Josh1
Bug fix: if when opening a replay the track is fully zoomed out, this should fix it.
New version changes log:

- Added replays list tab, on load the app will search for replay files in settings specified folder and populate a list grouped in different ways (car, track, etc.).
- Added a merge replay function. By clicking the "+" button instead of "Load replay" the selected file will be merged with the currently loaded one
- Addedd real-time replaying buttons

This will probably be the last update for a while, I'll try and work on the auto-discovery of incidents when loading a replay but, beside that, I kinda run out of ideas. I mean, I can think of many replay editing features but they would be out of scope. So, if you can think of some features to make race steward's lives easier, just let me know.

  • Like
Reactions: tetematete
Updated version changes log:

- Added a basic reporting tool
- Added the customization of some app element, in case you want your league logo in the app.
- Added a basic track lines generation tool

Reporting tool

Honestly it took much more time than I imagined, hence the .2 version, to honour it. This is how I envisioned the workflow:

Every player should:

- Open the replay file
- Look for their incidents
- Right-click the involved cars
- Click the "Create report" button
- Add his honest, unbiased take on the event in the comment section
- Click the "Save" button

This will create a file for every report in Documents\Virtual Steward\Reports\<replay file name>.

- Send all the files to race steward and feel guilty about all the incidents he could have easily avoided

The race steward should:

- Copy all the files he received from players in Documents\Virtual Steward\Reports\<replay file name>
- Open his replay in Virtual Steward
- Click the "Reports" tab, the app should have auto-loaded all reports
- Start checking all reports (I suggest right-clicking the green indicators and placing them near the upper slider, to make them follow it and use the lower one to revise the incidents)
- There is a four states flag to help keep track of the advancement (it cycles gray-green-yellow-red on every click)

Tha assumption here is that all players and the race steward have a replay file and that it is syncronized enough to make the reports comparables. I'm not part of any league so I couldn't test with different replays of the same race. I also wanted to differentiate the report list depending on being a player vs steward. To do that I check the reporting player name saved in the report file against the first car in the loaded replay file (which in AC is always the recording player), you can still force the "steward mode" in the settings, in case you need to.

If the steward doesn't have a replay file, like it's the case for open lobbies with day long racing, when saving the report, the players can choose to generate a Virtual Steward replay file of the last 5 to 60 seconds, it will have the same name of the report but the .vsreplay extension. The steward must then click the "Open folder" button and select any report file in the folder, the app will load all the reports and, when selecting one, will load the related replay file.

Customization

If you run a league and want your custom logo in Virtual Steward, just remove the underscore from the "_Custom.ini" file in the "Custom" folder. You can then edit the file itself or the sample images I included.

Customizable elements: app title, running app icon (the one in file explorer is embedded in the .exe, no can do), banner image in help dialog, text in help dialog, additional image in help dialog, map logo.

Track lines generation

Since there are some maps lacking track lines out there, I made a tool to generate them from a player lap. Keep in mind that those are only for Virtual Steward visualization, I can't make AC "fast_lane.ai" file. They are obviously an aproximation just for visual purpose (having something to look at if you load one of such maps).

- Open the replay file
- If there are no track lines a "Create track lines" button should appear under the players list
- Right select at least a player with at least a selected lap so that a lap line will appear on the map
- Click the "Create track lines" button
- In the dialog you can select the track width, be aware that any edit will be undone when you move the width slider
- You can do some basic editing by right click dragging the black cursor that should have appeared on the map
- Click the "Save" button.

Lines will be saved in Documents\Virtual Steward\Maps and have priority over AC lines. If you find some new AC lines you have to delete the Virtual Steward ones to make the app load them.

How to create reports, player side:

How to check reports, race steward side:

How to create track lines, both sides:
I released an updated version of the app, following the changes log:

- Added the replay time on the status bar
- Added a follow mode to the green indicators. Right click will make them red and they will follow the upper slider.
- Changed selection mode for incident evaluation. Ctrl+Right click: clear selection list and select that car. Right click: select/deselect that car. Shift+Right click: select car and nearby ones (legacy mode :)).
- Added a "merge laps" functionality. Clicking on the "S" in the player panel will create a new player for every selected lap, every player will have just one lap and all of them will start at the beginning of the replay. You can than compare the laps by dragging the sliders and see where you lose time. Keep in mind that these cars will move differently than the others in the replay timeline.
- Added the "Save only visible cars" to AC save.
- Added customizable car images instead of rectangles.
- Addedd an option to set the minimun size for cars.
- Addess lap's number to sliders bar.
- Bug fixing and some additional option

To create a "merged replay" as in Jack Vos post:

- Open the base replay.
- For every player you want in your merged replay, select the laps with right click and click "S".
- Should appear a new player on top of the list for every selected lap while other player will be auto-hidden.
- Use the map to compare the laps and check everything is as you intended.
- Save to a new AC replay file with following options checked:

"Save in Assetto Corsa format"
"Save only visible cars"

- Open the replay in Assetto Corsa

When comparing to online players, ping delay will mess up lap timing, if you notice that other cars are already slightly ahead on the start line, move the cars as close as possibile to the line, then use the small arrows in the lap list (should be visible between the "S" and the "1") to align the cars as best as possible.

PS: I made some last minute changes (of course I did) I probably messed things up.

Latest News

Do you prefer licensed hardware?

  • Yes for me it is vital

  • Yes, but only if it's a manufacturer I like

  • Yes, but only if the price is right

  • No, a generic wheel is fine

  • No, I would be ok with a replica


Results are only viewable after voting.
Back
Top