Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HarbourMasters/Starship/llms.txt
Use this file to discover all available pages before exploring further.
Starship’s graphics pipeline is built on top of libultraship and the Fast3D renderer, giving you a choice of three rendering backends alongside a wide set of quality-of-life settings for resolution, anti-aliasing, frame interpolation, and HUD scaling.
Graphics Backends
Three rendering APIs are supported. The default is chosen automatically based on your operating system.
Windows
macOS
Linux / All Platforms
DirectX 11 (id: 2) is the default backend on Windows and generally offers the best performance and compatibility.
Metal (id: 4) is the default backend on macOS and is required for optimal performance on Apple hardware.
OpenGL (id: 3) is available on all platforms and is the recommended fallback if you experience crashes or rendering issues.
- Press F1 to open the menu bar.
- Navigate to Graphics.
- Use the Renderer API dropdown to select a backend.
- Restart Starship for the change to take effect.
Switching Backends via Config File
If the game crashes before the menu is accessible, open starship.cfg.json in a text editor and locate the "Backend":{ block. Change id and Name according to the table below, then save and restart.
| Backend | id | Name |
|---|
| DirectX 11 | 2 | "DirectX" |
| OpenGL | 3 | "OpenGL" |
| Metal | 4 | "Metal" |
"Backend": {
"id": 3,
"Name": "OpenGL"
}
Changing the backend requires a full restart of Starship. Unsaved progress will be lost.
Frame Interpolation (FPS)
Starship uses matrix interpolation to generate intermediate frames, producing smoother visuals without altering game logic, input timing, or glitch behaviour.
| CVar | Default | Description |
|---|
gInterpolationFPS | 60 | Target interpolation framerate (30–360) |
gMatchRefreshRate | 0 | When enabled, matches the interpolation target to the display refresh rate |
Set the FPS slider in Graphics (under the menu bar) or edit gInterpolationFPS directly in starship.cfg.json.
Setting a target FPS higher than your monitor’s refresh rate wastes GPU resources without any visual benefit. Use Match Refresh Rate to avoid this automatically.
VSync
| CVar | Default | Description |
|---|
gVsyncEnabled | 1 | Enables vertical sync; caps max FPS to the display refresh rate and eliminates tearing |
Toggle Enable VSync in Graphics from the menu bar. VSync is on by default.
Render Parallelization
| CVar | Default | Description |
|---|
gRenderParallelization | 1 | Allows the CPU to prepare the next frame while the GPU processes the current one |
Render parallelization is only shown in the menu on DirectX 11. It adds up to one frame of input lag under certain scenarios but is recommended when you cannot reach your target FPS.
Internally, enabling this sets the maximum frame latency to 2 via:
wnd->SetMaximumFrameLatency(CVarGetInteger("gRenderParallelization", 1) ? 2 : 1);
Anti-Aliasing (MSAA)
| CVar | Default | Description |
|---|
gMSAAValue | 1 | MSAA sample count — 1 disables MSAA, up to 8 for 8× MSAA |
Adjust MSAA in Graphics from the menu bar. Changing this calls:
Ship::Context::GetInstance()->GetWindow()->SetMsaaLevel(CVarGetInteger("gMSAAValue", 1));
MSAA is not available on the Wii U platform.
HUD Aspect Ratio
The HUD (radar, gauges, and radio messages) can be locked to an independent aspect ratio so it doesn’t stretch on ultra-wide or non-standard displays.
| CVar | Default | Description |
|---|
gHUDAspectRatio.Enabled | 0 | Enable a custom HUD aspect ratio |
gHUDAspectRatio.X | 0 | Aspect ratio numerator |
gHUDAspectRatio.Y | 0 | Aspect ratio denominator |
Aspect Ratio Presets
Select a preset from Enhancements → HUD → HUD Aspect Ratio in the menu bar. The preset values written to the CVars are:
| Preset | gHUDAspectRatio.X | gHUDAspectRatio.Y |
|---|
| Expand (default) | — | — |
| Original (4:3) | 4 | 3 |
| Widescreen (16:9) | 16 | 9 |
| Nintendo 3DS (5:3) | 5 | 3 |
| 16:10 (8:5) | 8 | 5 |
| Ultrawide (21:9) | 21 | 9 |
| Custom | user-defined | user-defined |
When Custom is selected, two sliders appear for the horizontal and vertical values (1–100 each).
Resolution Editor
The Advanced Resolution Settings window provides fine-grained control over the internal rendering resolution. Open it from Graphics → Resolution Editor in the menu bar (gAdvancedResolutionEditorEnabled).
Gamma Boost
| CVar | Default | Description |
|---|
gGraphics.GammaMode | 0 | 0 = gamma boost enabled; 1 = gamma boost disabled |
The gamma boost applies sRGB-aware tone correction to the rendered output. It is enabled by default. To disable it, toggle Disable Gamma Boost under Developer in the menu bar, or set gGraphics.GammaMode to 1 in starship.cfg.json.
A restart is required for gamma boost changes to take effect.
Alternate Assets
The alternate asset pack (custom .o2r/.otr mods in the mods/ folder) can be toggled without restarting.
| CVar | Default | Description |
|---|
gEnhancements.Mods.AlternateAssets | 0 | Enable the alternate asset pack |
- Keyboard shortcut: Tab toggles this setting at any time.
- Menu: Enable Alternative Assets in Graphics from the menu bar.
Texture Filtering
A global texture filter can be set from Graphics → Texture Filter in the menu bar (gTextureFilter). Available options are Three-Point, Linear, and None.
To apply point filtering specifically to HUD elements only, enable Apply Point Filtering to UI Elements (gHUDPointFiltering, default 1). This setting requires a reload.