Message from Ryan Hellyer – Undiecar admin …
Just over five years ago I decided to start running my own sim racing league. It was originally going to be on rFactor, but after realising how well developer the iRacing ecosystem was, I switched plan and the Undiecar Championship was reborn. Recently I announced my retirement and I figured I’d use this moment to provide some feedback to the community and to iRacing on the good and the bad of my experiences over the past five years.
When I first suggested running an iRacing league, pretty much all advice from people here in the forum was that it would fail. I was okay with this, but I also really had a drive to create something. It stemmed from an interest in this sort of thing from watching real world motorsport as a child. They always seemed to focus on the wrong things, and I always felt like I could create something original and interesting.
So with no positive feedback from the community, I decided to do it anyway lol. I looked at what the most popular tracks were, and realised they’re all the free ones. So I decided to use free tracks. I thought of the name “Undiecar” which sounded suitably humorous and so decided to use the (free at the time) Dallara IR05 Indycar for the series.
I wanted something different from other series, and so I made a set of rules which were serious, yet comical in nature (https://undiecar.com/rules/). Our rule #1 was “don’t be a dick”, which I think somes up the rest of the rules too. I also implemented double sprint races for most events, with reversed grids in race #2.
Then I message bombed all the non-idiots I’d raced against in the Dallara Dash (which raced the IR05 at the time) plus a few other people, to see if they wanted to join. The response was abrupt and I suddenly had 65 people signed up. I was worried that with 65 people signed up, we may have too many competitors on track, so I stopped signups at that point. This was a mistake, out of 65 people, only 16 turned up, three of whom quit before the race even got underway (probably because they were too far off the pace). That first round was more successful than I was expecting. The racing was way better than I’d experienced in official racing and the experience was awesome. I then went on a recruiting drive, and slowly built up the number of competitors over time.
One thing which struck me as good and bad on the iRacing platform, was that it was stupidly easy to spam the membership via the forum messaging system. This was great for signing up new people, but there was no way to avoid spamming people who didn’t want to receive such messages. I quite frequently see people complaining about this here in the forum, but I had literally no way to avoid messaging those people. I strongly believe iRacing should provide a system for stopping league spam like I was sending. About 98% of responses to my “spam” was positive, but around 2% was negative and I’d really to have never bothered those 2% of people, but without a system in place to handle this, I couldn’t avoid it. I suspect my 2% would have been higher, except I made my messages look more personalised by starting them with “Hi NAME,” where NAME was the first name of the person who was being messaged. The third party tool that most people use for messages like this, did not support this functionality, but I had built my own tool for the task which did support it.
Later, iRacing created another forum messaging system and removed the alert for when a message arrived in someones inbox from the primary iRacing interface (the non-web UI). This really annoyed me, as it made the messaging system massively less useful. I think this can be fixed by switching to only one UI (and allowing for the blocking of unwanted “spam”). Having to work with two messaging systems takes a lot more of my time, which is part of the reason I’ve decided to stop running my own league.
My background is web programming. So I setup a (mostly) automated system to publish the results and update our own points table on our website. This gave me a lot more control over the points system used, so we had bonus points for fastest lap, pole, leading a lap and least incidents in a race.
When I started, there was no official iRacing data API (there is now), but back then I needed to go digging in the website to find available APIs. Those APIs were really easy to work with. Whoever wrote them, knew what they were doing. They’re simple and do what they’re required to do without fuss. Most APIs like this are needlessly complicated, but the iRacing APIs were not. They were very clear and easy to understand. The fact that they made so much sense without any documentation is a really good sign of a solid API design IMHO. If anyone out there reading this wants to use the APIs, please avoid hammering with them excessive traffic. I accidentally slammed iRacing with spikes of traffic a few times, and felt quite bad for it, thankfully I always caught it before I presumably would have caused iRacing any grief though.
Cross-promotion of leagues
I was worried that I may steal competitors away from other leagues. In particular, there was the Classic Indycar Series which initially used the same car as us. To combat this, I began posting advertisements for CIS (Classic Indycar Series). This turned out to be beneficial both ways, as the CIS returned the favour. I never explained why I was promoting their stuff, but in retrospect my reasoning was flawed. The CIS was wildly different from what I was organising anyway, and they were never at risk of us pinching competitors from them. I then began promoting other leagues too, as I felt that it was more productive to have more well run leagues. A lot of leagues are quite messy from what I’ve seen, but the well run ones (such as CIS) are great for this platform. Their racing is cleaner, more organised and just generally a lot more fun than the official series IMHO. If you can, please get out there and promote your favourite leagues, it’s really useful to the admins and helps out the leagues enormously.
Every other league and official series seemed to use the same two solo qualifying lap system, so I decided to change it up by doing 10 min open sessions. This wasn’t popular with some competitors, but it was very different from what they were used to, which I think helped with keeping things interesting (we still used single car for ovals).
Evolution of the league
Over time, people became tired of the same car and same free tracks, so I took the advice of other league members, and added in more (free) cars. We used Indycars, pickup trucks, Radicals, MX-5s, anything which was free. This turned out to be quite popular, as many people liked the variation in cars each week (we did limit it to three cars per season though).
A critical problem in the early days of the league, was that setting up reversed grid double or triple headers was a pain in the neck as members had to quite one session, wait while I setup the grid and then I joined the next one once that was done. With the introduction of heat racing, this problem disappeared. The heat racing system does have some bugs in it (our races were generally 20/40 mins long, but showed up as 250 laps long), but it mostly worked fine.
Caution periods on ovals
Cautions are a nightmare sometimes. We weren’t a serious league, so weren’t trying to replicate reality perfectly. Sometimes we would have way too many cautions in a race (55 cars around South Boston results in a lot of wrecks), so we implemented a manual caution system. When someone saw a wreck that needed to announce “WRECK” via text or voice chat, and a caution would be called. Then there were no cautions until five laps had passed after the green. This massively cleaned up the racing and stopped the problem of cautions breeding cautions. I wish iRacing had an automated system to reduce to the caution sensitivity instead of doing this manually though. I strongly believe this would have resulted in a much more fun time for all.
Netcode issues are a nightmare to deal with. As with official sessions, we occasionally had someone bouncing around all over the track. In official racing, they need to have a level playing field. But within our own league, it would have been super useful to have been able to set such people to a “ghost mode”, so that there was no risk of them taking anyone else out. So long as they weren’t using the lag problems to their advantage, placing them into a ghost mode would have been beneficial for everyone and caused a lot less stress. Hopefully a feature like this can be introduced at some point, as it really would have made a positive impact to our racing. I didn’t want to have to kick someone from a session just because they’re having internet issues.
I quickly discovered a really unexpected issue with iRacing. Firstly, they serve drivers names differently depending on the API connection you use; this is noticeable when drivers have a non-ASCII character in their name. Also, drivers can change their name on iRacing; this really messed up the Undiecar website when it happened, as I had always assumed a name was constant – do not assume this, use the drivers iRacing ID as their identifier instead.
Retaining competitors over time
Keeping drivers around was rarely a problem … until summer. Summer always killed off the number of competitors. But we were a weekday evening event, and everyone in the league was used to racing every Tuesday night. But every summer I had to go on a recruitment driver to keep numbers high. This wa a pain in the neck. I tried driving up numbers during the other months in the hope that people would stick around, but I found that once you get to 40+ competitors, the numbers naturally dropped off anyway. Nobody wants to be in position #40 in a race. I would love to see a system for us to automatically implement splits to avoid this issue. We could have 70 competitors in winter split between two heats, then in winter the numbers could drop off to 25 or so and we’d just have one split. I think that would work really nicely, but we don’t have a system available to handle that within iRacing leagues.
Abuse / protests
We had very few problems with this. Usually when someone did something wrong, they admitted to it. We did kick a few people over the five years, but it was very few. The biggest problem was voice chat violations, but this was easily solved by just chat banning people for a while (thanks to iRacing for including that super useful feature for us).
iRacing league feature suggestions
I’ve posted these here in the forum before, but am repeating them here …
- I would love to see system to allow us to set our own off-track and time penalty locations. We never had an incident limit, and there are some tracks where you can actually get an advantage by getting off-tracks. This caused some friction in our league, as some members didn’t want to get off-tracks as they felt that was “cheating”. To solve this, I would have liked to just ditch all the 1x’s.
- Ability for members to join the second race of a heat session without having competed in the first race. This is a problem for anyone who turns up late. We still want them to race, but they’re locked out, which kinda sucks.
- A system so that we know who doesn’t want to receive league spam would be nice.
- The ability to integrate with the iRacing oAuth system would be good. I would have used that for our members to login to our website.
- I’d love to have had an option to do race splits (automatically) within league sessions.
Thanks to iRacing staff for doing what they do. I have gotten a little chirpy at you guys a few times, which was not very appropriate of me. Sometimes emotions get in the way of not being a dick. I do appreciate the job you guys do though 😀
Thanks to all the friendly people here in the forum. You guys were super helpful for ideas, feedback and problem solving over the years.
Current and former Undiecar competitors
THANK YOU! The little boy inside me always wanted to run a real world racing series, and you made that come true (in a virtual way). I had a blast and look forward to seeing you on track again in other series 😀
Sorry for the long diatribe! I just figured this was an appropriate time to give a final brain dump before I depart from hosting iRacing events.