SubStanding (Extended)

Apps SubStanding (Extended) 2.16

Login or Register an account to download this content
AW939 submitted a new resource:

SubStanding (Extended) - Standings and Relative

This app is an extension to https://www.racedepartment.com/downloads/substanding.4998/ by MegadetH_44 (who kindly gave me permission to publish my changes).

This app offers different standings and position indicators in addition to a "relative" (alternative to Kunos "Realtime").
Distances can be viewed as as time in seconds or distance in metric/imperial.

Contained Widgets
  • Relative ("Realtime" alternative)
  • Global Standing (all drivers)
  • Global Position...

Read more about this resource...
 
How about performance? Last time I used substanding it was CPU demanding
It's still roughly the same, a bit better overall (see below). Using "Custom Font Rendering" in CSP (CSP -> General Patch Settings -> Custom fonts rendering) helps a lot, as rendering the labels is the biggest CPU hit.

I'm mainly using the global standings and relative as shown in the screenshot and hide the others, with 20-30 drivers (AI) they require on average 0.5ms combined. In reality that means that FPS goes from 140 -> 130. I did quite a bit to remove "stuttering" as some frames took longer, to have this in an additional async thread, so that the remaining FPS should be more smooth than before.

As mentioned in the Known Issues, manually rendering the texts instead of using labels might help, but that implementation is currently not planned on my side. Will see if I get to test it, to see whether it would actually improve the performance.

Based on the Python Debug Tools, the actual calculation of positions is usually <0.1ms, so lowering the amount of displayed drivers / hiding pit / tyres should help the most.
 
Last edited:
There was a mod for this app that gave you the ability to show either the badges, like this is currently, or a small picture of the car that you can create with Content Manager's update previews feature and a preset called "Preview Mini PNG", which makes the app look a bit like Gran Turismo 4's leaderboards which show the cars next to the positions
 
There was a mod for this app that gave you the ability to show either the badges, like this is currently, or a small picture of the car that you can create with Content Manager's update previews feature and a preset called "Preview Mini PNG", which makes the app look a bit like Gran Turismo 4's leaderboards which show the cars next to the positions
Hi Zelda :) Yes, today on the original thread there it was mentioned too https://www.racedepartment.com/threads/substanding.99878/post-3558561
 
Last edited:
Current WIP Design:
1656758146999.png


Added:
  • all custom font rendering, requiring CSP (without CSP it will not load anymore)
    • does not improve performance any further than the default CSP "Custom Fonts Rendering" does, but it allows me to render the row background behind the font dynamically without having to fiddle with multiple labels having matching backgrounds
  • Row background for every other row to emphasize rows
  • background for the position + bold font + right align
  • class indicator (colors for classes are given "randomly" from a fixed set of 4 colors at the moment, grey for cars without a class assigned)
    • colors are: cyan, red, yellow, green, [grey for unknown]
    • if there are more than 4 classes, the colors would repeat, but I hope that is at least unlikely enough for now
Not sure of whether I'm going to make these things configurable or just hardcoded for now, but they increase the CPU time by ~20-25% (in my tests in total 0.1ms longer for these 2 widgets), so it should not be underestimated. I guess I'll need to make it possible to disable this, to increase the performance.
Also I guess I'd not add too much more for the same reasons.

@Akrapovic I hope this is similar to what you had in mind. For the font I'm actually not too sure about licensing. It's not possible to use all fonts there are on the internet, so I guess for now I'd stick to fonts that are already included in AC.
 
Last edited:
AW939 updated SubStanding (Extended) with a new update entry:

V2.1

  • Allow ignoring drivers by name using the drivers.ini (hidden from all standings)
  • Refactor standings row rendering
  • CSP is now required to run SubStanding
  • adjust configuration and allow to configure it in Content Manager (resets custom config on install once)
  • multi page in game configuration widget, allows separate configurations for standing widgets
  • row background for every other row to better separate them (configurable)
  • additional lighter row background for...

Read the rest of this update entry...
 
hello I'm sorry I can't customize the classes when I save the file I don't have the mod anymore can you help me plz
 
Last edited:
hello I'm sorry I can't customize the classes when I save the file I don't have the mod anymore can you help me plz
Could you send me the content of your classes.ini and the content of your py_log.txt (C:\Users\<your user>\Documents\Assetto Corsa\logs\py_log.txt) after the first start on which the app disappeared via direct message?

So install the app cleanly, start the game, ensure it's working. Exit the game, edit the classes.ini, start again. If the app disappeared, check the py_log.txt and send me the content, so I can analyze the errors in there.
 
Last edited:
Could you send me the content of your classes.ini and the content of your py_log.txt (C:\Users\<your user>\Documents\Assetto Corsa\logs\py_log.txt) after the first start on which the app disappeared via direct message?

So install the app cleanly, start the game, ensure it's working. Exit the game, edit the classes.ini, start again. If the app disappeared, check the py_log.txt and send me the content, so I can analyze the errors in there.
yes the mod is good but when i change the class folder to add classes and cars, when i save and run a race, the mod does not appear
 

Attachments

  • py_log.txt
    39.2 KB · Views: 103
  • classes.ini
    4.5 KB · Views: 92
yes the mod is good but when i change the class folder to add classes and cars, when i save and run a race, the mod does not appear
In your last block "DPI Class", "car3" is used twice. This is causing an error. Sadly this is part of the configparser and even though it's irrelevant functionality wise, the keys have to be unique.

With the next version (2.2) dynamic tag based classes will be introduced, so that you do not have to change the classes.ini anymore but instead could just say there is a class "GT3" and all vehicles having the tag "gt3" will be part of that automatically. This approach might be a bit more limited though, and requires tagging cars correctly, but I guess it could help :)
 
AW939 updated SubStanding (Extended) with a new update entry:

V2.2

  • implement mini skins (configurable to use mini skins instead of badges, generated via Content Manager preset) (thanks to @Please Stop This for the original implementation and the hints)
  • allow dynamic classes based on tags (enable useClassTags and add classTags to the list in the config)
  • active per default, you can deactivate it, to use the old classes.ini
  • disable mini sectors on maps without track length (fixes background errors)
...

Read the rest of this update entry...
 
Thanks so much for all your work on this. Some great additions to this app that i still use by default to display standings.

Your class tag solution seems to be much more "stable" than the one with the classes text file. I have one request though: Could you introduce a text field in the settings that lets me hide/ignore specific characters of the class tags ingame? I have all my classes organized with the # tags, but i don't particularly like it shown in the positions class name. I'd much rather have it show "GTE" instead of "#GTE". Also due to other reasons i had to use the "_" for some classes. "#Road_A" for example. I'd love that to show up as Road A ingame.

A simple text field to enter the characters to hide ingame would be an easy solution (hopefully easy to implement as well, lol)

Thanks again!
 
Thanks so much for all your work on this. Some great additions to this app that i still use by default to display standings.

Your class tag solution seems to be much more "stable" than the one with the classes text file. I have one request though: Could you introduce a text field in the settings that lets me hide/ignore specific characters of the class tags ingame? I have all my classes organized with the # tags, but i don't particularly like it shown in the positions class name. I'd much rather have it show "GTE" instead of "#GTE". Also due to other reasons i had to use the "_" for some classes. "#Road_A" for example. I'd love that to show up as Road A ingame.

A simple text field to enter the characters to hide ingame would be an easy solution (hopefully easy to implement as well, lol)

Thanks again!
Good idea, I was thinking about that, or rather just filter out all special characters, but was thinking that maybe some people would want to show it. I guess a text field with just all characters to be replaced by a space should be fine then.
So in your case you could enter "#_" there and it would show "#Road_A" as "Road A". That's the goal, right?
 
Last edited:
Good idea, I was thinking about that, or rather just filter out all special characters, but was thinking that maybe some people would want to show it. I guess a text field with just all characters to be replaced by a space should be fine then.
So in your case you could enter "#_" there and it would show "#Road_A" as "Road A". That's the goal, right?
Precisely :thumbsup:
 
In your last block "DPI Class", "car3" is used twice. This is causing an error. Sadly this is part of the configparser and even though it's irrelevant functionality wise, the keys have to be unique.

With the next version (2.2) dynamic tag based classes will be introduced, so that you do not have to change the classes.ini anymore but instead could just say there is a class "GT3" and all vehicles having the tag "gt3" will be part of that automatically. This approach might be a bit more limited though, and requires tagging cars correctly, but I guess it could help :)
ah super thank you excuse me for the inconvenience
 
ah super thank you excuse me for the inconvenience
No worries, also included a check for that now, I cannot really automatically fix it, but at least there is a specific log now in that case and the app still works, just without classes (in v2.2). And I've updated the FAQ :)
 
Last edited:
I have 1 more request or suggestion: Could you make the class standings window show the class positions on the left instead of the global position? Or at least make that an option?
 
Back
Top