Verified, safe, and allowlisted FastFlags for the Sober client on Linux.
Translations: English | Español | 简体中文 | Русский | Bahasa Indonesia | Português
- What is Sober?
- What are FastFlags?
- Confirmed active FFlags
- Configuration presets
- Detailed technical topics
- Uncapping framerates
- Security and anti-cheat risks
- Deprecated FFlags
- Disclaimer and sources
Sober is a compatibility layer that runs the Roblox Android application (APK) natively on Linux desktops. It is distributed as a Flatpak (org.vinegarhq.Sober) and uses Vulkan as its primary rendering backend, with OpenGL as a fallback. Configuration is managed through ~/.var/app/org.vinegarhq.Sober/config/sober/config.json. You can also open the settings menu graphically using the command flatpak run org.vinegarhq.Sober config or by right-clicking Sober in your application menu and selecting Settings.
FastFlags (FFlags) are internal Roblox engine variables that control rendering, UI, stability, and other settings. Since September 29, 2025, Roblox enforces a strict allowlist: only a small subset of flags can be overridden locally via configuration files. Any flag not on the allowlist is ignored by the client.
Important
This guide only covers flags confirmed to be on the current allowlist. Flags from older community guides may no longer work.
These flags control geometry detail, anti-aliasing, lighting, and grass rendering distance.
| Flag Name | Type | Value Range | What It Does |
|---|---|---|---|
DFIntCSGLevelOfDetailSwitchingDistance |
int | 0 - 1000 |
Master LOD culling distance for CSG models. Lower = better FPS. |
DFIntCSGLevelOfDetailSwitchingDistanceL12 |
int | 0 - 1000 |
LOD distance for Graphics Quality 1 to 2. |
DFIntCSGLevelOfDetailSwitchingDistanceL23 |
int | 0 - 1000 |
LOD distance for Graphics Quality 2 to 3. |
DFIntCSGLevelOfDetailSwitchingDistanceL34 |
int | 0 - 1000 |
LOD distance for Graphics Quality 3 to 4. |
FIntDebugForceMSAASamples |
int | 1, 2, 4 |
Forces MSAA anti-aliasing (smoother edges, costs GPU). |
DFIntDebugFRMQualityLevelOverride |
int | 0 - 21 |
Overrides the graphics level slider (goes beyond default 1 to 10). |
FIntFRMMaxGrassDistance |
int | 0 - 1000 |
Max render distance for terrain grass. Set to 0 to disable grass. |
FIntFRMMinGrassDistance |
int | 0 - 1000 |
Min distance where grass starts rendering. |
DFFlagDebugPauseVoxelizer |
bool | true / false |
Disables voxel lighting. |
FFlagDebugSkyGray |
bool | true / false |
Overrides skybox color to gray and removes atmospheric stars. |
FFlagDebugGraphicsPreferVulkan |
bool | true / false |
Prefers Vulkan for rendering. |
FFlagDebugGraphicsPreferOpenGL |
bool | true / false |
Prefers OpenGL for rendering. |
These flags help prevent out-of-memory crashes, especially on GPUs with limited VRAM.
| Flag Name | Type | Value Range | What It Does |
|---|---|---|---|
DFFlagTextureQualityOverrideEnabled |
bool | true / false |
Enables manual control over texture resolution. |
DFIntTextureQualityOverride |
int | 0 - 3 |
Sets texture quality (0 = lowest, 3 = max). |
Warning
Setting DFIntTextureQualityOverride to 3 on GPUs with 4 GB VRAM or less often causes an instant RBXCRASH: OutOfMemory crash. Use 2 or 1 for stability.
Minor flags that affect visual comfort and interface behavior.
| Flag Name | Type | Value Range | What It Does |
|---|---|---|---|
FIntGrassMovementReducedMotionFactor |
bool | true / false |
Reduces motion for grass animations. (Note: Uses FInt name prefix but expects boolean true/false). |
Copy one of the presets below and paste it into your Sober configuration file:
~/.var/app/org.vinegarhq.Sober/config/sober/config.json
For GPUs with less than 4 GB VRAM, integrated graphics, or systems experiencing OutOfMemory crashes.
{
"enable_hidpi": false,
"fflags": {
"DFFlagTextureQualityOverrideEnabled": true,
"DFIntTextureQualityOverride": 1,
"DFIntCSGLevelOfDetailSwitchingDistance": 100,
"DFIntCSGLevelOfDetailSwitchingDistanceL12": 75,
"DFIntCSGLevelOfDetailSwitchingDistanceL23": 100,
"DFIntCSGLevelOfDetailSwitchingDistanceL34": 150,
"FIntFRMMaxGrassDistance": 0,
"FIntGrassMovementReducedMotionFactor": true
}
}For mid-tier GPUs (GTX 1650, RX 580 class) with 4 to 6 GB VRAM. Good balance between visuals and performance.
{
"enable_hidpi": false,
"fflags": {
"DFFlagTextureQualityOverrideEnabled": true,
"DFIntTextureQualityOverride": 2,
"DFIntCSGLevelOfDetailSwitchingDistance": 400,
"DFIntCSGLevelOfDetailSwitchingDistanceL12": 200,
"DFIntCSGLevelOfDetailSwitchingDistanceL23": 350,
"DFIntCSGLevelOfDetailSwitchingDistanceL34": 500,
"FIntDebugForceMSAASamples": 2,
"FIntFRMMaxGrassDistance": 200,
"FIntGrassMovementReducedMotionFactor": true
}
}For high-end systems with 8 GB+ VRAM. Forces maximum detail, anti-aliasing, and texture quality.
{
"enable_hidpi": true,
"fflags": {
"DFFlagTextureQualityOverrideEnabled": true,
"DFIntTextureQualityOverride": 3,
"DFIntCSGLevelOfDetailSwitchingDistance": 1000,
"DFIntCSGLevelOfDetailSwitchingDistanceL34": 1000,
"FIntDebugForceMSAASamples": 4,
"DFIntDebugFRMQualityLevelOverride": 21
}
}Tip
You can mix and match flags between presets. For example, use the Balanced LOD distances with Maximum texture quality if your GPU has enough VRAM but struggles with geometry.
Level of detail (LOD) and geometry scaling
Roblox maps often use complex Constructive Solid Geometry (CSG) unions. Rendering these at far distances puts heavy load on both CPU and GPU.
By lowering DFIntCSGLevelOfDetailSwitchingDistance (e.g., to 150), you force the game to swap complex models for low-polygon versions closer to the camera. This increases framerates without changing physical collision hitboxes: objects still behave the same, but look simpler from far away.
The tiered variants (L12, L23, L34) let you fine-tune this per graphics quality level, so lower quality settings cull more aggressively.
VRAM allocation and out-of-memory (OOM) crashes
Sober runs the Roblox Android binary inside a Linux Flatpak environment. The Android binary assumes a shared mobile memory model, which differs from how desktop Linux GPU drivers handle VRAM.
When the engine requests maximum quality textures, it can quickly exhaust dedicated GPU VRAM. On Windows desktop, drivers spill excess data into system RAM. On Linux (especially with proprietary NVIDIA drivers), this fallback does not work reliably, causing an instant RBXCRASH: OutOfMemory crash.
To fix this, set DFFlagTextureQualityOverrideEnabled to true and DFIntTextureQualityOverride to 2 (medium) or 1 (low). This forces the engine to request smaller textures from the server, keeping VRAM usage within safe limits.
Graphics APIs: Vulkan vs. OpenGL
Graphics API selection can be configured via config.json or FFlags (FFlagDebugGraphicsPreferVulkan / FFlagDebugGraphicsPreferOpenGL).
- By default, Sober uses Vulkan for optimal performance.
- If you experience graphic artifacts, black screens, or startup crashes (common on older GPUs or hybrid laptop setups), Vinegar documentation recommends running
flatpak run org.vinegarhq.Sober configin your terminal and selecting Force Legacy Rendering (or setting"use_opengl": trueinconfig.json).
Asset overlay (custom textures and cursors)
Sober allows replacing game assets via the asset_overlay directory located at:
~/.var/app/org.vinegarhq.Sober/data/sober/asset_overlay
Files placed here take priority over standard Roblox assets upon restarting the app. The directory structure mirrors packages/*/com.roblox.client/base.apk/assets.
Example for custom mouse cursors:
~/.var/app/org.vinegarhq.Sober/data/sober/asset_overlay
└── content
└── textures
└── Cursors
└── KeyboardMouse
├── ArrowCursor.png
├── ArrowFarCursor.png
└── IBeamCursor.png
To revert changes, clear the files from asset_overlay.
Fullscreen (F11) and exit controls
The in-game fullscreen toggle in Roblox does not function on mobile Android builds. On Sober, press F11 to enter or exit fullscreen mode. Sober remembers the fullscreen state across launches.
To close the app automatically upon leaving an experience, add "close_on_leave": true to your config.json.
The DFIntTaskSchedulerTargetFps FastFlag no longer works because Roblox removed it from the allowlist. To change your framerate cap, edit the XML settings file directly.
- Launch any Roblox experience on Sober to generate the config files.
- Close the client completely.
- Navigate to
~/.var/app/org.vinegarhq.Sober/data/sober/appData/. - Open
GlobalBasicSettings_13.xmlin a text editor. - Find the line:
<int name="FramerateCap">60</int> - Change
60to your target framerate (e.g.,144,240) or0to uncap. - Save, close, and relaunch Roblox.
Note
Close Roblox before editing this file. The client overwrites this file on exit, so any changes made while the game is running will be lost.
Roblox uses the Hyperion (Byfron) anti-cheat system. Configuring allowlisted FFlags in config.json is safe. Attempting to bypass the allowlist is not.
Caution
The following actions carry a high risk of permanent account or hardware bans. Do not attempt them.
- Cache file manipulation (
IxpSettings.json): Injecting unauthorized flags into cache files and setting them to read-only is detected as tampering by Hyperion. - Memory editing: Using tools to force-load disallowed flags (such as physics timestep manipulation via
DFIntTimestepArbiterThresholdCFLThouor texture bypasses for wallhacks) triggers automated bans. - Allowlist bypass programs: Programs or launch arguments designed to circumvent the FFlag filter are classified as exploits.
These flags were popular in older guides, but Roblox removed them from the allowlist. Adding them to config.json has no effect because the client ignores them.
| Flag | Why It's Deprecated |
|---|---|
DFIntTaskSchedulerTargetFps |
Replaced by editing GlobalBasicSettings_13.xml. |
FFlagTaskSchedulerLimitTargetFpsTo2402 |
Removed from the allowlist. |
DFIntConnectionMTUSize |
Network tuning flags are blocked. |
FFlagDebugDisableTelemetryEphemeralCounter |
Telemetry suppression is blocked. |
FFlagAdServiceEnabled |
Ad service toggling is blocked. |
FFlagMovePrerender |
Thread manipulation flags are blocked. |
DFIntDebugDynamicRenderKiloPixels |
Render resolution scaling was vetoed by Roblox engineering. |
Note
Roblox Corporation maintains the FFlag allowlist, which may change with future client updates. This guide is accurate as of July 2026. Always verify against official sources before deploying configurations.
Official sources: