Apex GP

Support

Troubleshooting

Install warnings, black screens, graphics and controller problems, where your saves live and how to report a bug. Commands, paths and menu names here were checked against the game itself or the official documentation they link to.

No answers match. Try fewer or different words, clear the topic filter, or report a bug.

Install and first launch

Warnings you may see the first time you run an unsigned build, and how to get past them safely.

Windows says “Windows protected your PC”

This is Microsoft Defender SmartScreen. It is a reputation check, not a scan result: it appears for programs it has not seen often, which includes new releases and programs without a paid code-signing certificate.

  1. Click More info on the blue window.
  2. Click Run anyway.

Only do this for a file you downloaded from the download page. To be sure it arrived intact, check its SHA-256 first.

If Windows keeps blocking it

Windows marks files that come from the internet. You can remove that mark with PowerShell’s Unblock-File cmdlet (Microsoft documentation). Run it on the file you downloaded:

Unblock-File -Path .\YOUR-FILE
My antivirus flags or deletes the download

Security software can distrust new, uncommon programs, especially ones without a paid code-signing certificate. Do not switch your antivirus off. Instead:

  1. Check the file’s SHA-256 against the value on the download page. If it does not match, delete the file and download it again from this site.
  2. If it matches, restore the file from your antivirus’s quarantine list and add an exception for the Apex GP folder only.
  3. Tell us which antivirus and which detection name it showed, using the bug-report details, so we can follow it up.
macOS says the app “is damaged” or “cannot be opened”

Apex GP is not signed with a paid Apple developer certificate, so macOS Gatekeeper may show this for a file that came from the internet. The Godot documentation describes the fix for apps that are not signed: remove the quarantine attribute in Terminal (Godot: running exported apps on macOS).

  1. Open Terminal (press Cmd + Space and type Terminal).
  2. Go to the folder that holds the app, for example cd ~/Downloads.
  3. Run the command below, with the real app name (keep the quotation marks and the .app at the end):
xattr -dr com.apple.quarantine "YOUR-APP.app"

Then open the app again. If macOS still refuses, use Open Anyway. Move the app to your Applications folder first.

How do I open the app from “Privacy & Security” (Open Anyway)?

Apple’s own steps for opening an app from a developer macOS does not recognise (Apple Support):

  1. Try to open the app once, so macOS records the attempt.
  2. Choose Apple menu > System Settings, then click Privacy & Security in the sidebar (you may need to scroll down).
  3. Under Security, click Open (the button is labelled Open Anyway). It is available for about an hour after you tried to open the app.
  4. Enter your login password and click OK.

The Godot documentation also lists an older way that works for apps that are signed but not notarized: Control-click the app in Finder, choose Open, then click Open in the dialog.

The app starts but cannot find its files on macOS

When an app runs from the Downloads folder, or while it is still quarantined, macOS moves it around at launch (“path randomization”), which breaks access to files next to the app. The Godot documentation’s fix: move the app to the /Applications folder and open it from there.

Linux: “Permission denied” or nothing happens when I double-click

The file needs the executable bit, which some archive tools and browsers do not keep. Run it from a terminal, so any start-up messages stay visible:

chmod +x ./YOUR-FILE
./YOUR-FILE

If it starts and closes at once, or you see a Vulkan error, see Vulkan drivers and black screen or crash at start-up.

Linux: how do I install and check Vulkan drivers?

Apex GP’s desktop version needs a GPU and driver with Vulkan 1.0 support. To check what you have, install the Vulkan tools and run:

vulkaninfo --summary

If your GPU is listed, Vulkan is working. If the command is not found, or no usable GPU is reported, install the packages for your distribution (and reboot after installing a graphics driver):

DistributionCommand
Debian, Ubuntusudo apt install mesa-vulkan-drivers vulkan-tools
Fedorasudo dnf install mesa-vulkan-drivers vulkan-tools
Archsudo pacman -S vulkan-icd-loader vulkan-tools, plus vulkan-radeon (AMD), vulkan-intel (Intel) or nvidia-utils (NVIDIA proprietary driver)

On Debian and Ubuntu, NVIDIA cards use NVIDIA’s own driver rather than the Mesa package. Install it with your distribution’s driver tool. See the Arch wiki’s Vulkan page for a longer explanation of which package provides what.

Linux: the window or input behaves oddly (Wayland or X11)

Godot can use either display server, and has a command-line option to choose. If the window is the wrong size, is missing decorations, or input misbehaves, try the other one:

./YOUR-FILE --display-driver x11
./YOUR-FILE --display-driver wayland

The option is documented in the Godot command-line reference. If one of them fixes it, tell us which, your distribution and your desktop environment.

How do I check that my download is intact?

Compare the file’s SHA-256 with the value shown next to it on the download page (shown once a build is published there).

# Windows (PowerShell)
Get-FileHash .\YOUR-FILE -Algorithm SHA256

# macOS
shasum -a 256 YOUR-FILE

# Linux
sha256sum YOUR-FILE

Get-FileHash is a standard PowerShell cmdlet (Microsoft documentation). If the values differ, delete the file and download it again.

Graphics and performance

Presets, the frame cap, upscaling, laptops with two GPUs, and what to do when the game will not start or stutters.

Black screen, or the game closes at start-up

The desktop version needs a GPU and driver with Vulkan 1.0, or Direct3D 12 on Windows, or Metal 3 on macOS. These are the Godot 4.7 minimums for the renderer it uses (system requirements). Work through these in order:

  1. Update your graphics driver from your GPU maker (NVIDIA, AMD or Intel), or from your distribution on Linux, and restart.
  2. Linux: run vulkaninfo --summary. If it fails, fix Vulkan drivers first.
  3. Laptop with two GPUs? The game may be running on the wrong one. See two GPUs.
  4. Windows: ask the engine for the other graphics API. Godot supports --rendering-driver (command-line reference). Run the game from a terminal:
    .\YOUR-FILE.exe --rendering-driver d3d12
    .\YOUR-FILE.exe --rendering-driver vulkan
  5. Try the lighter renderer. Godot also has --rendering-method, whose values include forward_plus and mobile:
    ./YOUR-FILE --rendering-method mobile
    The Mobile renderer does not have every effect (FSR 2.2 and TAA need Forward+), but it asks less of the GPU.
  6. If the game starts but the picture is black or flat colours on a phone, set Settings → Graphics → GPU compatibility to Off (see black bars and specks).

What the game does by itself

Apex GP watches its own start-up. If the Forward+ renderer failed to start last time on your device, the next launch switches to the Mobile renderer and shows a note about it in the graphics settings. To go back later, open Settings → Graphics → Advanced settings → Renderer, choose Forward+, press APPLY and restart the game.

Still failing? Send us logs/godot.log from your data folder. See how to report a bug.

Laptop with two GPUs: the game uses the slow one

Windows

  1. Open Settings → System → Display → Graphics.
  2. Under custom options for apps, add Apex GP: choose Desktop app, click Browse, select the game’s .exe and click Add.
  3. Select the game, click Options, choose High performance and click Save. Then start the game again.

AMD describes the same steps in its graphics performance preference guide. NVIDIA’s documentation says that since Windows 10 20H1 the Windows setting overrides the per-program Preferred graphics processor in the NVIDIA Control Panel (Manage 3D settings), and that the Control Panel setting is only used when Windows has no preference for the app (NVIDIA: Setting the Preferred Graphics Processor). So set it in Windows first.

Linux

AMD and Intel (Mesa) hybrid graphics: set DRI_PRIME=1 for the game (Arch wiki: PRIME).

DRI_PRIME=1 ./YOUR-FILE

NVIDIA proprietary driver: use PRIME render offload (NVIDIA driver README). For a Vulkan application setting __NV_PRIME_RENDER_OFFLOAD=1 is enough; adding __VK_LAYER_NV_optimus=NVIDIA_only makes NVIDIA GPUs come first in Vulkan’s list.

__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only ./YOUR-FILE

On Arch, the nvidia-prime package provides a prime-run wrapper: prime-run ./YOUR-FILE.

Choose the GPU by number

Godot can also select a GPU directly with --gpu-index. Run vulkaninfo --summary to see the GPUs and their numbers, or start the game with --verbose to print the list of devices it found:

./YOUR-FILE --gpu-index 1
Which quality preset should I use, and what does “Optimise now” do?

Open Settings → Graphics. The Quality preset choices are Low, Medium, High, Ultra and Max (plus Custom once you change individual options). In the game’s own words, Low, Medium and High render fewer pixels and upscale, Ultra renders at native resolution, and Max adds ambient occlusion, higher-resolution shadows, sharpening and denser scenery. The default is High.

Optimise now (in the Auto-optimise row) tests your device on the track and picks the best quality that holds 60 fps. It runs inside a race: the AI drives your car while each setting is measured for a couple of seconds, then the race restarts. The button is greyed out until a race is running, so start a race first.

We have not measured Apex GP across many machines, so we cannot promise a frame rate on yours. Optimise now measures your own hardware instead of guessing.

I changed a graphics setting and it switched back (“Keep these settings?”)

Settings are edited as a draft. Nothing reaches the game until you press APPLY. For changes that affect how the game draws (preset, upscaler, resolution, anti-aliasing, frame cap, shadows, lighting, camera and similar), the game then asks Keep these settings? with KEEP and REVERT buttons. If you do not confirm within 15 seconds, it puts your previous settings back. That is deliberate: if a new setting produced an unusable picture, you do not have to fix it blind.

Press KEEP before the countdown ends to keep the change.

Where are the frame-rate cap, resolution and upscaling settings?

In Settings → Graphics, tap Advanced settings:

  • Frame rate cap: 30, 60, 90, 120 or Unlimited (default 60).
  • Render resolution: a slider from 50% to 100%.
  • Upscaler: Off (native), Bilinear, Apex SR (spatial), FSR 1.0 or FSR 2.2 (temporal). FSR 1.0 and FSR 2.2 need the Forward+ renderer.
  • Anti-aliasing: Off, FXAA, SMAA, MSAA 2x, MSAA 4x or TAA (TAA needs Forward+).

Show FPS counter is on the main Graphics page. To make the game run smoother, lower the render resolution or the preset first. A lower frame cap also reduces heat and battery use.

Stutter or hitching, especially on the first laps

Godot’s renderer builds the GPU programs (“pipelines”) it needs when it first needs them. The first time you see a new effect or a new weather condition, that can cause a short hitch. The Godot documentation explains this for the Forward+ and Mobile renderers, and notes that drivers usually keep a cache of pipelines so the work is not repeated every launch, and that this cache is usually deleted when the driver is updated (Reducing stutter from shader (pipeline) compilations).

So a few hitches on the first laps after installing, or after a driver update, are expected and should fade. If it keeps stuttering, lower the preset or resolution, cap the frame rate, and check the game is running on the right GPU (two GPUs).

Black bars or black specks on an Android phone

Some phone GPU drivers draw black horizontal bars. Apex GP has a setting for that: Settings → Graphics → GPU compatibility with Auto, On and Off. It keeps anti-aliasing on for the 3D and HUD layers. Auto turns it on only for foldable phones. Set it to On if you see bars; set it to Off if the race picture turns black or flat colours.

If you see black specks and this does not help, send a debug report from the phone and include the phone model.

My phone gets hot and the game slows down

Phones slow themselves down when they get hot, so a long session can run worse than the first few minutes. In Settings → Graphics, use a lower Quality preset or set the Frame rate cap to 30, and try Optimise now.

Controls

Keyboard, gamepad, touch and tilt.

What are the controls?
ActionKeyboardGamepad
ThrottleW or ↑RT / R2 (analogue)
BrakeS, ↓ or SpaceLT / L2 (analogue)
SteerA / D or ← / →Left stick
Reverse (when nearly stopped)QD-pad down
Change cameraCY / △
Strategy viewTabLB
Change weatherRBack
Pause and settingsEsc or PStart
Look around–Right stick

In menus with a gamepad: LB / RB switch tabs, Y applies, and B (or the Android back button) closes. On a touch screen the default steering method is Touch; Tilt is the alternative (see tilt steering). Pressing the weather key steps through Clear, Cloudy, Overcast, Light rain and Heavy rain.

How do I reverse?

Stop the car first. Then either press Q (or D-pad down on a gamepad), or hold the brake for about 0.6 seconds while standing still. Either one toggles between Drive and Reverse. If you hold the brake, release it once before trying again, because the brake has to be released before it can toggle. The car drops back out of reverse on its own once it is moving forward at any real speed.

My gamepad is not detected, or the game treats another device as a controller

Open Settings → Controls and read the Controller section. It says either Connected: … with the controller’s name, or No controller in use (press any button on a controller to use it). It also lists any input devices the game is ignoring because they are not real controllers.

  1. Connect the controller before you start the game if you can (on Android, pair it in the system Bluetooth settings first), then press any button on it.
  2. Check that Controller support is on. Turn it off if the game ever mistakes another device, such as a keyboard cover or a pen, for a controller. The game only reads the controller it has verified as the active one, so a phantom device cannot press your pedals.
  3. Adjust Stick dead zone if the car steers by itself, Steering response for finer control near the centre, and Vibration (and Phone vibration on a phone) if you want less or more feedback.
Tilt steering: invert or recalibrate

In Settings → Controls, Steering method chooses between Tilt and Touch (Touch is the default). With Tilt, turn on Invert tilt if the car steers the wrong way, and tap Calibrate tilt (hold phone level) while holding the phone in your normal driving position.

The car spins, or brakes too late. What are the driving assists?

In Settings → Controls → Driving assists, the Assist preset is Pro, Medium, Full or Custom (Medium is the default). The individual options are Braking assist (brakes for you before corners), Steering assist, Traction control and ABS. Changing any one of them switches the preset to Custom.

How do I change the camera, field of view or HUD size?

Press C (Y / △ on a gamepad) to cycle through Chase, T-cam, Nose, Cockpit and TV. The same choices, plus Field of view, Speed units (km/h or mph) and HUD size (75% to 130%), are under Settings → View & HUD.

Audio

No sound, too quiet, or crackling.

No sound, too quiet, or the engine sound is wrong

Check your system’s output device and volume first. Then open Settings → Race & Audio → Audio, which has separate sliders for Master volume, Engine volume, Menu music and Race announcer.

Engine sound has three choices: Car’s own (a V6 turbo hybrid for the modern car, a naturally aspirated V10 for the Classic 1989 car), V6 turbo hybrid and V10 scream.

Crackling or popping sound on desktop

Godot has a start-up option, --audio-output-latency, that overrides the audio output latency in milliseconds (default 15 ms). The documentation notes that lower values increase CPU usage and may cause audio cracking if the CPU cannot keep up (command-line reference). If your audio crackles, try a higher value:

./YOUR-FILE --audio-output-latency 30

Closing other heavy programs, or lowering the graphics preset, also frees CPU time.

Saves, settings and logs

Where Apex GP keeps its files, how to reset settings, and where the log is.

Where are my saves, settings and logs?

Apex GP uses a data folder named apexgp. According to the Godot 4.7 documentation on data paths, that is:

SystemFolder
Windows%APPDATA%\apexgp
macOS~/Library/Application Support/apexgp
Linux~/.local/share/apexgp (Godot follows the XDG specification, so this moves if you set XDG_DATA_HOME)

Inside it:

  • settings.cfg: your graphics, controls, audio and other settings.
  • career.cfg: your career progress.
  • account.cfg: the sign-in, if you made an account.
  • boot.cfg and boot_state.txt: which renderer to start with, and the start-up check that lets the game fall back if Forward+ fails.
  • career_conflict.cfg: a copy of this device’s career that the game keeps aside just before it replaces it with a further-along career from your account.
  • logs/godot.log: the game log (older logs are kept beside it).
  • reports/: debug reports the game could not send and saved as files.

On Android these files are in the app’s private storage. When a debug report cannot be sent, the game opens the phone’s share sheet so you can send the file yourself.

How do I reset the graphics or all settings?

Close the game, open your data folder and move these files somewhere else (do not delete them until you are sure):

  • settings.cfg resets all settings (graphics, controls and audio) to their defaults on the next start. Your career is stored separately, in career.cfg, and is not touched.
  • boot.cfg and boot_state.txt reset the renderer choice and the start-up check.

Start the game again. It creates fresh files.

Where is the log file, and how do I attach it?

The game writes logs/godot.log in your data folder and keeps a few older logs beside it. If the game crashed, the previous run’s log is the one to send. You can also ask Godot to write the log elsewhere with --log-file <file> (command-line reference), and print more detail with --verbose.

How do I back up my career?

Close the game and copy career.cfg from your data folder to a safe place. To restore it, close the game and put the file back in the same folder. If you use an account, your career is also kept on the sync server.

Android

Coming soon to Google Play as a paid app.

When is Android coming, and what does it need?

Apex GP for Android is a paid app on Google Play. It is in closed testing and is coming soon, so there is no store link yet. Only install it from Google Play once it is listed. The install is about 200 MB and is 64-bit ARM only. The Godot 4.7 documentation asks for Android 9.0 or newer and a GPU with Vulkan 1.0 support for the renderers Apex GP uses (system requirements).

Using a Bluetooth controller on Android

Pair the controller in Android’s Bluetooth settings first, then start Apex GP and press a button on the controller. Settings → Controls → Controller shows Connected with its name when the game is using it. See gamepad not detected if it does not.

Account

The optional account that syncs your career between devices.

How does the optional account work?

An account is optional. The game is fully playable without one. From the title screen you can sign in with an email address: enter it, tap SEND CODE, then enter the 6-digit code that is emailed to you. The code expires after 10 minutes. SEND AGAIN requests a new code and DIFFERENT EMAIL lets you change the address.

Once signed in, your career progress syncs between devices that use the same email. Graphics settings stay on each device. SYNC NOW syncs on demand and SIGN OUT removes the login from that device only. If the sync server cannot be reached, you keep playing and progress syncs later.

What the account stores and how it is transmitted is described in the privacy policy. Please read it before you sign in.

“Could not send a code” or no email arrives

The message means the game could not reach the sync service or the address was rejected. Check the address for typos, check your spam folder, and wait a minute before pressing SEND AGAIN. The code expires after 10 minutes, so use the newest one. You can keep playing without an account. Your career stays on the device and syncs when it can.

If it keeps failing, report it with the exact message the game showed.

How do I delete my account?

Sign in, then tap DELETE ACCOUNT and confirm with CONFIRM DELETE. This removes the cloud account and the synced career. The device you delete it from keeps its local career, so you can keep playing.

Mods

Not available yet.

Can I install mods?

Not yet. Mod support is planned, but it is not available and there is no date. The Mods page will carry the modding guide, where the mod folder is and how to troubleshoot mods once they exist. Until then, do not install files from anywhere that claims to be an Apex GP mod.

Reporting a bug

What to send so a problem can be fixed.

How do I report a bug?

1. Use the in-game report

Open Settings → Race & Audio, scroll to Support and tap Send debug report. Nothing is sent unless you tap it. The report can include your device model, OS version, CPU and GPU names, screen size, graphics settings, recent frame times, the game log and a screenshot of the current frame. The privacy policy says how it is handled, including that the upload is plain HTTP and is not encrypted in transit. Do not tap the button if you do not want that information sent.

If the upload cannot complete, the game saves the report as a file in the reports folder inside your data folder (on Android it opens the share sheet), so you can email it instead.

2. Email us

Write to philip.hauser@icloud.com and include:

  • your operating system and version, and the exact file you downloaded;
  • your GPU model and driver version (on Linux, the output of vulkaninfo --summary);
  • what you were doing, what you expected and what happened, and whether it happens every time;
  • the logs/godot.log file, or the saved report file;
  • a screenshot or a short phone video for visual problems.

Please do not send passwords, sign-in codes or anything else private.

Still stuck? Email philip.hauser@icloud.com and include the details listed in how to report a bug. Please don’t send passwords or account codes.