Skip to content

A guide to FastFlags

pizzaboxer edited this page Mar 31, 2024 · 79 revisions

Caution

FastFlags are extremely powerful, being that they are intended to only be used by Roblox engineers. While they can be very useful, they can cause issues with stability and functionality if you don't know what you're doing.

You should only use the flag list editor if you know what you're doing. You should only configure flags of which you fully know what they do.

We especially do not recommend importing any large lists of flags, for all the reasons stated above. If you're encountering any issues with Roblox, your first action should be to remove anything you've manually configured in the editor.


FastFlags are Roblox's implementation of feature flags, and their intention is for Roblox to remotely alter how aspects of the game engine/client function, without needing to push out a whole new client update every time. They are essentially controlling how pre-defined sections of code in the Roblox game client function. Whether it's defining what values they work with, enabling a feature, or even skipping over them entirely, etc.

While they are always loaded online, they can be manually overriden by the user, allowing for you to similarly alter how Roblox functions. Bloxstrap features the ability to easily do this through the handy FastFlag editor.

For a list of every FastFlag that Roblox makes available, see this scraped FastVariable list, or Roblox's official ClientSettings configuration list.

A further look at presets

Bloxstrap provides a number of FastFlag presets, which are simplified functions that handle the FastFlag management for you. This section provides additional information and context on what they do, and how to use them.

Exclusive Fullscreen

Relevant flag(s): FFlagHandleAltEnterFullscreenManually

This preset is always enabled by default, and allows you to use exclusive fullscreen with Direct3D by pressing Alt + Enter instead of F11. Vulkan will always use exclusive fullscreen regardless. You can verify if you're in exclusive fullscreen by switching to another window on the same display with Alt + Tab. If Roblox flashes black momentarily, or un-fullscreens itself, then you were just in exclusive fullscreen.

Please note that you will very likely run into issues using Exclusive Fullscreen. This includes, but is not limited to:

  • It may cap itself to an arbitrary framerate of its own regardless of what you have chosen (though disabling VSync in your GPU settings should fix that).
  • Your mouse cursor may not be visible.
  • The embedded web browser (used for displaying server lists, etc) will not appear (in which case just exit it if you need to use it).

That's sort of just how it is. If the issues you face with it affect you enough, then you'll just have to not use it.

DPI scaling fixes

Relevant flag(s): DFFlagDisableDPIScale

This preset fixes the problem of Roblox's rendering quality decreasing when your display scaling is greater than 100%. Here's a before and after for comparison, at 4K with 300% scaling. If you're more focused on performance, or battery life, you might not want to enable this.

Framerate limit

Relevant flag(s): DFIntTaskSchedulerTargetFps

By default, Roblox's frame rendering rate is capped to 60 FPS. This flag allows you to change that cap.

Setting it to zero will effectively disable the use of the option, and the standard 60 FPS cap will apply.

Bloxstrap will automatically configure it so it's adjusted to the fastest display you have. Ideally, you do not need to change it unless you want to disable it as described above.

Caution

This is actually doing more than just raising your framerate limit. So, there's a very rare chance that configuring this may cause unintended side-effects, including but not limited to:

  • increased network latency
  • crashes when teleporting/joining games

It doesn't happen for everyone, but at least check if it happens for you.

Besides, some games may use your framerate for carefully timing stuff, which raising this higher than 60 can affect.

For these reasons, ignore the subtext in the menu, this ideally shouldn't be set to anything higher than 240.

If you encounter any issues, set the framerate limit as 0 to set it back to defaults, and see if your issues are resolved.

Preferred lighting technology

Roblox offers a selection of lighting technologies for developers to use in their games. They have introduced them over the past years, with each phase typically looking better compared to their previous ones, at the cost of performance.

A game can only be configured to use one technology. Developers will often choose an older lighting technology to accomodate players on less-performant hardware. If your hardware can handle it though, you may be interested in forcing a newer one to make things look better.

Caution

A game's lighting design is specific to the lighting technology that they've chosen. Be aware that if you override it yourself, you may encounter issues with lighting (things being too bright, things being too dark, etc).

In most cases, this isn't really an issue as things often work well enough. In some cases, really well. However, if you ever encounter issues with game lighting like this, keep this in mind and set the option back to "Chosen by game".

Escape menu version

Important

Roblox has started rolling out the new Chrome UI for a select percentage of the userbase. If you have this new UI, the the Version 4 menu will be force enabled no matter what you choose to use. To get rid of it, import this JSON config into the flag editor:

{
    "FFlagEnableInGameMenuChromeABTest2": "False",
    "FFlagEnableReportAbuseMenuRoactABTest2": "False"
}

Relevant flag(s): FFlagDisableNewIGMinDUA, FFlagEnableInGameMenuControls

Fairly self explanatory. Also, if you're wondering, here's what they all look like.

Menu

Keep in mind that Roblox does not maintain any menu versions older than 2023 anymore, so some of the buttons and controls may not work properly. Minor visual or usability problems with them are to be expected.

GUI hiding

Relevant flag(s): DFIntCanHideGuiGroupId

This is a group-based FastFlag, therefore you must be in a Roblox group for it to work. It can be made to work with any group you're currently in - see the flag editor for that, but if you don't feel like doing that, and want to avoid confusion, you can just join the Bloxstrap group. Here are the following keyboard shortcuts it provides for toggling the visibility of GUI elements.

Key combination Action
Ctrl + Shift + B Toggles GUIs in 3D space (BillboardGuis, SurfaceGuis, etc)
Ctrl + Shift + C Toggles game-defined ScreenGuis
Ctrl + Shift + G Toggles Roblox CoreGuis
Ctrl + Shift + N Toggles player names, and other BillboardGuis that show up above a player

Pro tip: Ctrl + Shift + G + C + N makes for a nice screenshot :D

Enabling this will show a freecam option in the menu. That option isn't supposed to actually work, so just ignore it.

Old material textures

Relevant flag(s): FStringPartTexturePackTable2022

Caution

Roblox is likely planning to remove this flag, which will soon make this option unusable. If old textures aren't working for you, try adding the adding the following JSON config in the flag editor:

{"FFlagMSRefactor5": "False"}

This option may soon be removed from a future version of Bloxstrap.

Brings back the old material textures that were in use prior to 2022.

Materials

Clone this wiki locally