Hi all,
I'm one of the contributors to CrewChief. I race in iRacing with VR (a BigScreenBeyond), mostly in series with a high chance of wheel to wheel racing such as GT4, Porsche Cup, FF1600 and NASCAR. All my changes have been geared towards improving my own experience (both in road and oval). This post describes how I get the best out of CrewChief so that I enjoy my racing even more, whilst gaining a competitive advantage, so that you can also enjoy simracing as much as I do.
There's a lot of out-of-date guides out there, so take everything that came before this post (except official documentation) with a pinch of salt. Also note that the CrewChief discord is much more active than the forum these days.
When I race, I race with all overlays disabled. I even turn off text chat and system messages (such as off-tracks). Everything I need to know from an overlay is accessible by asking Jim or looking at the dash. I get more enjoyment out of the realism, and the removal of distractions.
If you want to see a summary of the changes that I've personally implemented, I wrote it up in https://forums.iracing.com/discussio...ase-candidates, but I'll keep this post focussed on the user experience.
Initial Setup
The vast majority of problems that people have with CrewChief in iRacing is because they don't have telemetry enabled for all cars. To do this you need to go into the iRacing GRAPHICS settings and change "Max Cars" to 64. This won't actually affect rendering, but it might have some impact on your network usage.
Speech Recognition
Make sure to follow the guidance at https://mr_belowski.gitlab.io/CrewCh...nTraining.html to download and install the Microsoft engine (not the built-in Windows one, they ARE different).
I get better responsiveness by using naudio for audio input. You can test how well CrewChief can hear you by enabling the setting "Write speech recognition debug data" which will write out .wav files for all your attempts to talk to him. Make sure to check that these are loud enough and that you can clearly hear what you thought you were saying. If you need to boost volume levels of your mic, but Windows won't let it go higher than 50%, try using EqualizerAPO https://sourceforge.net/projects/equalizerapo/
By default, the number of commands you can give to CrewChief are so wide and varied that the speech recognition might have a hard time understanding you, unless you are a very clear native English speaker with no accent. It is highly likely that you'll want to create a minimal set of commands, which also lets you customise the exact phrases to use. To build your own, start by copying the file named "speech_recognition_config.txt" from the CrewChief installation directory into your "My Documents\CrewChiefV4" folder, and rename it to "speech_recognition_override.txt" (it is important that you rename it, otherwise it is interpreted differently). If you want to see the file I use, check it out at https://gitlab.com/-/snippets/368681...n_override.txt which is also a convenient cheat sheet.
MetaData
It's really important in competitive racing to know if there is an incident in a specific corner; it's something Jim can tell us that the built-in iRacing spotter cannot. But to know the corners, we have to manually tell Jim where they are. This is recorded in the "trackLandmarksData.json" file and you can always grab the latest version of this file from https://gitlab.com/mr_belowski/CrewC...marksData.json even if a release hasn't been made. If you want to help out by adding track data, come ask in the discord server (you'll need to have python installed). We're hoping to collaborate with garage61 on this in the future so that more data is available.
Similarly you can always grab the most recent "carClassData.json" if you're missing a new car in multiclass racing. Without the entry, Jim won't know what class they are in and can mess up things like position info. These files are easy enough to edit yourself, you just need to add the iRacing carid to the correct class.
You might have noticed that sometimes Jim tells you to line up on the wrong side during formation starts. That's because of bugs in iRacing, but we try to workaround it by manually recording what side the pole sitter is on. If you ever get told the wrong side, you can edit your "iracing_formation.json" file and let us know about it.
Trainee CrewChief
Unfortunately Jim (the real Jim) has retired from making any more recordings. That means we won't get any more driver names and a lot of new features need to be kept on hold because there's no way to actually implement them without the voice acting. This is why we implemented the concept of the "trainee". This is a mechanism whereby a voice actor can record a new full voicepack one phrase at a time. I recommend having Jerry as your trainee and enabling him when you're using US units (which is picked up from your iRacing setting). That way you can have Jerry for oval racing in gallons, but still have Jim when you're back on the road in litres. Once Jerry is all caught up, we can start recording some missing phrases and new features can be implemented.
Tires, Damage, Weather Forecasts and Lucky Dog
Tire temp and wear data is intentionally only available in iRacing when you come in to the pits. So if Jim tells you anything about tires, be aware that he's only talking about the state at your last pitstop. iRacing do this intentionally to avoid cheaters from writing tools that aim to keep your tires in the perfect window, or from people exploiting the physics resulting in unrealistic racing lines that are better on tires. So if you ask Jim "how are my tire temps?" just keep this in mind. Some cars have the temps on the dashboard so use that if it is available.
The damage and weather forecasts is not available in the telemetry so CrewChief can't do anything there, despite Jim having made lots of voice recordings for other simulators. In addition, the lucky dog information coming from the iRacing telemetry is kinda junk so we basically can't trust it (although there are some settings if you want to opt in to the CrewChief calculation). But there is a hacky solution to all of this. It is possible to create a custom iRacing spotter pack which only implements SOME of the calls, see https://forums.iracing.com/discussio...otter-packs/p1
So what we can do is create a new folder under the iRacing "sounds" folder, call it "minimal", and put this https://gitlab.com/fommil/crewchief_...main/spmsg.txt file in it which NULLs out everything that we don't want to hear. Now we hear Aussie Greg telling us about damage, weather forecasts and the lucky dog. Jerry is planning on making these recordings so that it all sounds right. Make sure to select this spotter in the iRacing SOUNDS config.
Fuel
Make sure to enable autofuelling if you want Jim to automatically fill you up when you enter the pits. Otherwise you have to ask every time.
There is a setting called "Experimental Fuel". It's marked experimental only because it has only received extensive testing in iRacing. It is far more reliable than the older algorithm, especially for timed races (we actually care about how many laps we need), multiclass races (end of the race is dictated by the fastest class), and races with pitstops (time spent in the pits is relevant for how long the race will last). There's a few related settings in there to control your margins, they are very conservative by default.
If you want the best out of CrewChief, and have your pit windows called more accurately, you need to some practice laps to let Jim know how much fuel you're using, and also do a practice pitstop where you tell him to "time this pitstop" (or whatever you use for the PRACTICE_PIT_STOP voice macro). You'll typically need at least 5 clean laps before Jim is confident enough to save the data, and you can check that by looking in "pit_benchmarks.json" and "fuel_usage.json". Note that you can record multiple pit benchmarks with different fuel levels... this is excellent if you're racing GT3s and the same track combo shows up in the B Class sprint, and the two IMSA variants. There's a huge gotcha here: you can only record this data in a practice session. Jim won't record your race pitstop data. There's all kinds of reasons for that, which I won't go into.
To be on the safe side, it's always a good idea to have a button binding or a voice macro to specify a safe fuel level incase you get into the pits and he's way off. I haven't need to use that fallback in almost a year, but your mileage may vary.
During the race you can use the voice commands "play it safe on fuel" (SET_FUEL_STRATEGY_CAUTIOUS), "i'll fuel save after the stop" (SET_FUEL_STRATEGY_RISKY) and "reset the fuel plan" (SET_FUEL_STRATEGY_RESET) to dynamically adjust your fuel margins during the race if you want to squeeze the limits.
You can also ask "where will I be?" (PLAY_POST_PIT_POSITION_ESTIMATE) if you want to check the traffic on exit, but you'll really need to have an accurate pitstop estimate for that to be accurate.
A gotcha with the fuel based pit benchmarks is if you have tire changes as well. Jim doesn't consider anything except fuel when predicting your pit times so if you have a race strategy which has tires as well as fuel, and the tires are the bottleneck, make sure that you change your tires in your benchmarks.
I'm roughly a 2k driver and I find that I get a huge competitive advantage in races with pitstops. Getting it wrong by 1 lap is usually about 2 seconds, which can be several positions in pack racing. I also never want to do an early pitstop if I'm in a fuel saving pack but pitting early could mean dropping behind some slow noob that defends every corner and will hold me up even more.
It's possible that in the future we could get integration with garage61 to be able to pre-populate all this data, but I actually quite like the idea that only people who take the time to practice properly will gain an advantage.
Driver Reputations
Some people flag themselves up as liabilities with their choice of livery. Be it the default paint, fluorescent colours without trading paints, a political flag, Senna's McLaren, Red Bull, or Lightning McQueen. For everything else, there's Jim...
You might already have heard Jim tell you that the guy behind is sketchy. There are several things you can use to get that sort of information: driver club, irating and account number. Ostensibly the club is used as a proxy for network latency, but let's be honest: some clubs have cleaner drivers than other clubs, and the stats are as clear on that as you'd probably guess https://iracingdata.com/charts/IncidentsPerClub
Here are the settings I use, the semicolon means to join the lists together when racing on Ovals (only the clubs before the semicolon are used in Road)
Code:
Club Reputations = International, Asia, Central-Eastern Europe, Japan, Brazil ; Benelux, DE-AT-CH, Iberia, France, Italy, Hispanoamérica
We choose to use iRating instead of Safety Rating because it is subjective to the series you race; for seasoned racers your safety rating says more about the series you race in than how careful you are. I use a lower value of 1k because I'm a 2k+ driver but I find I have a problem with drivers lower than 1k when lapping them (e.g. in low participation series) or being lapped (e.g. multiclass) and Jim (intentionally) won't tend to tell you the details of other drivers when they are in a different class
Code:
Rating Reputation = 1000
And finally there is the very useful, but very awkward, iracing user id. Any user with an irating larger than this will be considered sketchy, but you need to keep moving it forward every month to stop it getting stale. I like to warn on users who have been using the service for less than 3 months because I think it takes about that long for people to understand how to behave around other people and not treat you like an AI... this is accurate as of September 2024 but you really need to maintain it...
Code:
Tenure Reputation = 1100000
And beyond those settings, we can also mark individual racers as having a "bad reputation". These guys get special voice overs and should only be used for the kind of driver who is so selfish that you can't race them so it's better to just hand them the position and finish the race. Those guys ultimately end up missing out, because iRacing is not about winning every corner... it's about enjoying respectful wheel to wheel racing. This is a very fiddly and manual process, but you can basically maintain an "iracing_reputations.json" file alongside all your other settings. This file needs to look like this
Code:
[
{
"customer_id": 408068,
"name": "Jos Verstappen",
"comment": "thinks he's Max Verstappen"
},
{
"customer_id": 65874,
"name": "William Byron",
"comment": "will never win Daytona racing like this"
}
]
and you can add as many entries as you like, remembering to keep it valid JSON (you can use online tools to check). You can also add fields like
Code:
"date": "2024-02-25",
"carClass": "GT4",
but that's only for your own records.
There is the ability to ask Jim to add people to this list with the voice commands "mark the driver behind/ahead as dirty" but by the time you figure this out you're usually smashed against a wall. Something I'd like to do in the future would be to maintain a list of how many times you go wheel to wheel against another driver and how many incidents you accrued from them (so the occasional bump wouldn't matter). Unfortunately, iRacing doesn't tell us who contact was with so that feature isn't possible until the telemetry is opened up a little more.
It should go without saying, but please don't share these files. They are personal to you and I don't think iRacing would take a good view of people sharing lists of this sort.
This has saved my race more than I'd care to admit. I just lift on the straight, and let the guy go through to wreck the guy ahead. 2 free positions. Some people just want to watch the world burn.
Macros
You can set up your own voice macros to press buttons or send text to iRacing, I have a few settings to help me when I am racing on a wheel with a reduced number of buttons and various other things such as specific pit strategies, my settings are at https://gitlab.com/-/snippets/368681...nd_macros.json and include macros for things like
- enter/exit car
- brake bias forwards / backwards
- wing forwards / backwards
- reset force feedback
- change tyres
- dry/wet tires
- setting tire pressures
- weather forecast
- damage report
My "enter car" macro is "let's get on track" as a tip of the hat to DaveCam on youtube (that's how he starts all his videos).
Making a Feature Request
It's incredibly unlikely that anybody will implement a feature request that you have. As already noted, there's already a backlog of features that we'd like to implement but can't because of missing voice recordings or missing/buggy telemetry. But almost as importantly, contributors are doing it mostly for their own benefit and only implement features that they want for themselves.
If you want a new feature you're pretty much going to have to do it yourself. Luckily, most simracers seem to be engineers of some sort anyway, so that is entirely feasible. You'll need to get Visual Studio 2017 Community Edition, and learn an ancient version of .net 4.7 with C# 7, then check out the code. Ask for help in the discord #development channel if you get that far.
Reporting a Bug
Check if the bug is still present in the latest beta release, which you can usually find in the discord channel under #releases or #beta_testing.
Then make sure you grab a log file of your session when it happened, before sharing it in the #general channel. But it's very unlikely that even that will be enough. The instructions to obtain that are in https://mr_belowski.gitlab.io/CrewCh...ingIssues.html
To really be able to investigate any bugs, contributors need to have a trace of when it happens and to do that you need to enable the setting "Make the trace recording checkbox visible" and then click the tick mark before starting CrewChief. That will save a file roughly 50MB that you can upload to a file sharing site.