after checking the amg GT4 logo works for him
Many thanks for these indeed!
@romainrob: any chance we could use your leaderboard fields from the plugin directly onto other plugins?
Hi, I'm not sure to understand the question. What are trying to achieve?
You can read any plugin property value with pluginManager.GetPropertyValue() in case this answers it.
I'm trying to achieve:
- Load your plugin as a library/reference onto mine (a dependency)
- Use your properties (e.g.: IRacingExtraProperties.xxxxx) onto an object I have.
I'm trying to build my own leaderboard with some additions or required configurations for league races where is a de-facto multi-class (but in sim single-class). E.g.: cars 0-100, are one class, 100-200 are another, etc. (a-la: Pro, Pro/Am, etc).
I've checked your IRacingExtraProperties and most of the properties were private (non-public), so I'll use the GetPropertyValue() to get things like, driver info and team names. (also: how do you get team names for iRacing? I didn't see any property from `data.NewData.opponents` with it, so I was wondering if you had to go to raw data, or how to do that even).
For optimisation or less verbose stuff on SimHubDashboard editor (in case you know):
- Is it possible to pass an object (as property)?
SimHub's "repetitions" are pretty tedius and hard to to filter through, then not possible to add a different spacing without changing all affected lines Height(func), etc.
Much thanks!
@joepi Thanks.
I can see the logo files were successfully copied during installation.
I guess it's a car model name issue. It seems the merc amg car names keep changing for some reason. I had to change the file names twice already. I'm not sure what's going on with that...
I don't see any session with the cars in question in the logs to grab the model name from.
Could you please load the game with both cars and send the logs again please.I understand, I had already read in the previous pages that the amg logo was capricious. I don't use this car in game, however I drive a gt3 and therefore I meet them on the tracks and in my overlay. do you have an idea of the name we could put? thank you for your quick reaction, you are more professional than some paid service…
Hi,
Thanks for the kind words. 🙂
I've updated the iRacing plugin so it detects and logs missing logo names when closing. This should help us here and in the future.
The GT3 evo is the one I changed the name twice already. I'm not sure what's going on here.
Please close SimHub and overwrite the 2 files in your SimHub folder to update the plugin.
Please send the logs again the next time you had a chance to join a server with this car in it (after closing SimHub) so I can collect the car name. Sorry I don't have iRacing installed atm...
Many thanks for these indeed!
@romainrob: any chance we could use your leaderboard fields from the plugin directly onto other plugins?
Hi, I'm not sure to understand the question. What are trying to achieve?
You can read any plugin property value with pluginManager.GetPropertyValue() in case this answers it.I'm trying to achieve:
- Load your plugin as a library/reference onto mine (a dependency)
- Use your properties (e.g.: IRacingExtraProperties.xxxxx) onto an object I have.I'm trying to build my own leaderboard with some additions or required configurations for league races where is a de-facto multi-class (but in sim single-class). E.g.: cars 0-100, are one class, 100-200 are another, etc. (a-la: Pro, Pro/Am, etc).
I've checked your IRacingExtraProperties and most of the properties were private (non-public), so I'll use the GetPropertyValue() to get things like, driver info and team names. (also: how do you get team names for iRacing? I didn't see any property from `data.NewData.opponents` with it, so I was wondering if you had to go to raw data, or how to do that even).
For optimisation or less verbose stuff on SimHubDashboard editor (in case you know):
- Is it possible to pass an object (as property)?
SimHub's "repetitions" are pretty tedius and hard to to filter through, then not possible to add a different spacing without changing all affected lines Height(func), etc.
Much thanks!
Hi,
I never considered using my plugin as dependency for another one. I'm not sure what that would entail regarding what can be made public or or not tbh. I'm not a dev, just a very "stubborn" user 😀
You should indeed be able access most of what my plugin offers with GetPropertyValue() anyway.
I do get the team names from the session string in the raw data.
It looks like this:
DataSampleEx irData;
if (data?.NewData?.GetRawDataObject() is DataSampleEx) { irData = data.NewData.GetRawDataObject() as DataSampleEx; }
var driversData = irData.SessionData.DriverInfo.CompetingDrivers;
I'm not sure to understand the last question/issue.
Feel free to look at how my modular standing LB works in dash studio. Maybe it will answer it. I tried my best to have as little code in the dash itself as I could so it less of a pain to edit. Most of the components value, format, visibility, font size, position... is handled by the plugin pushing it all to properties.
I hope this helps.
Many thanks for these indeed!
@romainrob: any chance we could use your leaderboard fields from the plugin directly onto other plugins?
Hi, I'm not sure to understand the question. What are trying to achieve?
You can read any plugin property value with pluginManager.GetPropertyValue() in case this answers it.I'm trying to achieve:
- Load your plugin as a library/reference onto mine (a dependency)
- Use your properties (e.g.: IRacingExtraProperties.xxxxx) onto an object I have.I'm trying to build my own leaderboard with some additions or required configurations for league races where is a de-facto multi-class (but in sim single-class). E.g.: cars 0-100, are one class, 100-200 are another, etc. (a-la: Pro, Pro/Am, etc).
I've checked your IRacingExtraProperties and most of the properties were private (non-public), so I'll use the GetPropertyValue() to get things like, driver info and team names. (also: how do you get team names for iRacing? I didn't see any property from `data.NewData.opponents` with it, so I was wondering if you had to go to raw data, or how to do that even).
For optimisation or less verbose stuff on SimHubDashboard editor (in case you know):
- Is it possible to pass an object (as property)?
SimHub's "repetitions" are pretty tedius and hard to to filter through, then not possible to add a different spacing without changing all affected lines Height(func), etc.
Much thanks!
Hi,
I never considered using my plugin as dependency for another one. I'm not sure what that would entail regarding what can be made public or or not tbh. I'm not a dev, just a very "stubborn" user 😀
You should indeed be able access most of what my plugin offers with GetPropertyValue() anyway.I do get the team names from the session string in the raw data.
It looks like this:DataSampleEx irData;
if (data?.NewData?.GetRawDataObject() is DataSampleEx) { irData = data.NewData.GetRawDataObject() as DataSampleEx; }
var driversData = irData.SessionData.DriverInfo.CompetingDrivers;I'm not sure to understand the last question/issue.
Feel free to look at how my modular standing LB works in dash studio. Maybe it will answer it. I tried my best to have as little code in the dash itself as I could so it less of a pain to edit. Most of the components value, format, visibility, font size, position... is handled by the plugin pushing it all to properties.I hope this helps.
I'll let you know how I get on and what works / doesn't work.
My point is not to reinvent the wheel and re-use as much as possible.
One thing I do not know is how SimHub is structured so if I re-use a plugin (like yours): am I doubling the processing if I also use one of your dashboards/overlays? Say:
- Simhub
|-load of libraries
|-(simhub's own update cycle on critical path)
<<per overlay/plugin>>
|-romainrobs plugin (on critical path + any dependency you may pull)
|-my plugin with your plugin as dependency (does this replicate the processing or tap onto your running thread and fetch what it needs)
I tried my best to have as little code in the dash itself as I could so it less of a pain to edit. Most of the components value, format, visibility, font size, position... is handled by the plugin pushing it all to properties.
Yeah that's what I thought as I can't get to the widget itself to learn how you've done it.
It's great as it is tho, this is not a request. Was wondering how you've done but I see now you've expert the precise info you need to that particular dash and create the widget from code.
What I'm trying to do is to rely the maximum on SimHub editor for future editing capabilities but I'm just learning so far. so I might just go with your approach to it.
@halflernation Hi,
Regarding the performance concerns, I don't know.
I would assume it doesn't double it but that's a question for SimHub dev Wotever.
I used to have the top 5 splitting and self centering around the player logic in the dash.
I've shared it here if want to take a look:
https://discord.com/channels/299259397060689920/306850703299575809/1001209445767970887
@joepi Thanks.
I can see the logo files were successfully copied during installation.
I guess it's a car model name issue. It seems the merc amg car names keep changing for some reason. I had to change the file names twice already. I'm not sure what's going on with that...
I don't see any session with the cars in question in the logs to grab the model name from.
Could you please load the game with both cars and send the logs again please.I understand, I had already read in the previous pages that the amg logo was capricious. I don't use this car in game, however I drive a gt3 and therefore I meet them on the tracks and in my overlay. do you have an idea of the name we could put? thank you for your quick reaction, you are more professional than some paid service…
Hi,
Thanks for the kind words. 🙂
I've updated the iRacing plugin so it detects and logs missing logo names when closing. This should help us here and in the future.
The GT3 evo is the one I changed the name twice already. I'm not sure what's going on here.
Please close SimHub and overwrite the 2 files in your SimHub folder to update the plugin.
Please send the logs again the next time you had a chance to join a server with this car in it (after closing SimHub) so I can collect the car name. Sorry I don't have iRacing installed atm...
I did 2 small practice sessions, there were mercedes amg on the track.
do you see anything in the logs?
@joepi Yes, it worked. Thanks for the log files.
It's back to Mercedes-AMG GT3 2020
I don't get it.
Anyway I'll include both names in the next update very soon.
1.2.8 Update
iRacing plugin:
- Reworked how the sector properties are added.
- Fixed the SectorStartPct properties being offset by 1.
- Updated the tracker overlays accordingly.
- The fuel calculator now computes what limit (time or laps) will come first sessions with both.
Many-Faced dash:
- The car left /right light now works with games other than iRacing.
Various minor background improvements
Enjoy!
@romainrob I am also receiving the outof bounds error that is filling up my log folder. Below is the log. I have updated SimHub and RSC to the latest versions, reinstalled and still see this issue. I have not edited any of the json files, so not sure what to do here. Any help would be appreciated!
[2022-10-10 04:58:06,858] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:08,875] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:10,891] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:12,908] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:14,924] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:16,925] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:18,941] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:20,941] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:22,958] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:24,974] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:26,990] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
[2022-10-10 04:58:28,991] ERROR - System.IndexOutOfRangeException: Index was outside the bounds of the array.
at RSC.TheManyFacedDash.TheManyFacedDash.<DataUpdate>g__DashTexture|59_0() in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 794
at RSC.TheManyFacedDash.TheManyFacedDash.DataUpdate(PluginManager pluginManager, GameData& data) in C:\Program Files (x86)\SimHub\PluginSdk\RSC.TheMany-FacedDash 1.4.0\Main.cs:line 814
at SimHub.Plugins.PluginManager.<>c__DisplayClass220_1.<manager_DataUpdated>b__0()
at SimHub.Plugins.PluginManager.ExecUpdate(PluginInstance plugin, Action a)
@jmixxer9 Hi,
Try clearing the plugin settings:
1. Close SimHub
2. Delete this file:
C:\Program Files (x86)\SimHub\PluginsData\Common\TheManyFacedDash.GeneralSettings.json
3. Restart SimHub
Let me know if it helped.
If not please zip and share me the log folder:
C:\Program Files (x86)\SimHub\Logs
@romainrob Thanks for this info. After posting, I manually removed the ManyFacedDash files and then reinstalled and it seems to have fixed the error. I will keep an eye on the logs to see if it resurfaces. Thanks again!
I think there might be a slight error in the way Persistent Odometer tracks mileage; if you have the SimHub preference for Speed Unit set to MPH as the SpeedLocal setting (settings/general in SimHub) then it seems to record your miles as km in the odometer, and the odometer miles are something fictional. (did laps around 2.5 mile daytona riding the high wall to confirm)
Just so you're aware! Thanks again for this amazing tool.
EDIT: Just updated to the latest patch, and now I only see miles in the RSC - Persistent Odometer page, and they seem to be reading accurately. So, double applause for anticipating the future and fixing it ahead of time!
I still have problems with the Leaderboard standings.
I have to stretch the board all over the 2 screens. If not, it's too small.
See attachment
The original Simhub leaderboard is gone with the last software update.
@simbob Hi, the standings overlay is that large due to the amount of possible rows and columns. An overlay resolution can't be dynamic.
If you have the leaderboard aligned to the left, I'd suggest cropping it in the editor.