- Published on
How to Set a Custom FPS Limit in Wuthering Waves
Understanding the Problem
So, a lot of Wuthering Waves players are finding it tricky to set a custom FPS limit in the game. The in-game settings only let you choose between 30, 45, or 60 FPS, which isn't great if you want a smoother experience. Let's fix that by editing the game's SQLite database.
Setting Up SQLite
First, you'll need SQLite. Make sure the game is closed but the launcher can stay open.
Steps:
Go to the directory:
<install dir>\Wuthering Waves\Wuthering Waves Game\Client\Saved\LocalStorage
Open "LocalStorage.db" using SQLite. You can use the SQLite command-line tool or a graphical tool like DB Browser for SQLite.
Run this query to get the current graphics settings:
SELECT value FROM LocalStorage WHERE key LIKE 'GameQualitySetting';
Modifying FPS Limit
Now, let's set the FPS limit to what you want.
Example
If you want to set it to 240 FPS, change "KeyCustomFrameRate":60
to "KeyCustomFrameRate":240
.
UPDATE LocalStorage SET value = '{"KeyQualityLevel":3,"KeyCustomFrameRate":240,"KeyNewShadowQuality":3,"KeyNiagaraQuality":1,"KeyImageDetail":2,"KeyAntiAliasing":1,"KeySceneAo":1,"KeyVolumeFog":1,"KeyVolumeLight":1,"KeyMotionBlur":0,"KeyStreamLevel":2,"KeyPcVsync":1,"KeyMobileResolution":3,"KeySuperResolution":2,"KeyPcResolutionWidth":3840,"KeyPcResolutionHeight":2160,"KeyBrightness":-0.33283058166503904,"KeyPcWindowMode":0,"KeyNvidiaSuperSamplingEnable":1,"KeyNvidiaSuperSamplingFrameGenerate":1,"KeyNvidiaSuperSamplingMode":4,"KeyNvidiaSuperSamplingSharpness":0,"KeyNvidiaReflex":1,"KeyFsrEnable":0,"HorizontalViewSensitivity":100,"VerticalViewSensitivity":100,"AimHorizontalViewSensitivity":80,"AimVerticalViewSensitivity":80,"CameraShakeStrength":1,"MobileHorizontalViewSensitivity":50,"MobileVerticalViewSensitivity":50,"MobileAimHorizontalViewSensitivity":50,"MobileAimVerticalViewSensitivity":50,"MobileCameraShakeStrength":1,"CommonSpringArmLength":100,"FightSpringArmLength":100,"IsResetFocusEnable":1,"IsSidestepCameraEnable":0,"IsSoftLockCameraEnable":0,"JoystickShakeStrength":50,"JoystickShakeType":0,"WalkOrRunRate":0.3,"JoystickMode":0,"IsAutoSwitchSkillButtonMode":0,"AimAssistEnable":0}' WHERE key LIKE 'GameQualitySetting';
Simplifying the Process
To make it easier, you can use this updated query to set the FPS limit. This example sets it to 144 FPS:
UPDATE LocalStorage SET value = (SELECT json_set(value, '$.KeyCustomFrameRate', 144) FROM LocalStorage WHERE key LIKE 'GameQualitySetting') WHERE key LIKE 'GameQualitySetting';
Or, as a full command:
sqlite3.exe LocalStorage.db "UPDATE LocalStorage SET value = (SELECT json_set(value, '$.KeyCustomFrameRate', 144) FROM LocalStorage WHERE key LIKE 'GameQualitySetting') WHERE key LIKE 'GameQualitySetting';"
Automating the Process
You can automate the whole process with a batch script. Create a new .bat
file and paste in the following script. Set the "wantedfps" value to your desired FPS, then just double-click to run it.
@echo off
set wantedfps=240
if not exist ".\sqlite3.exe" (
echo Downloading sqlite....
powershell.exe Invoke-WebRequest "https://sqlite.org/2024/sqlite-tools-win-x64-3460000.zip" -OutFile .\sqlite.zip
powershell.exe Expand-Archive .\sqlite.zip -Force
copy .\sqlite\sqlite3.exe .\sqlite3.exe
del /F /Q .\sqlite
rmdir .\sqlite
del /F /Q .\sqlite.zip
)
for /f "tokens=2*" %%a in ('REG QUERY "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\KRInstall Wuthering Waves Overseas" /v "InstallPath"') do set "installpath=%%~b"
echo %installpath%
if defined installpath (
if "%installpath%"=="" goto noinstall
) else goto noinstall
goto foundinstall
:noinstall
echo Couldn't find install location
pause
exit
:foundinstall
set "db=%installpath%\Wuthering Waves Game\Client\Saved\LocalStorage\LocalStorage.db"
echo Found installation at %installpath%
echo using DB %db%
echo|set /p="checking current fps value: "
.\sqlite3.exe "%db%" "SELECT json_extract(value, '$.KeyCustomFrameRate') FROM LocalStorage WHERE key like 'GameQualitySetting';" || goto :error
echo setting fps value
.\sqlite3.exe "%db%" "UPDATE LocalStorage SET value = (SELECT json_set(value, '$.KeyCustomFrameRate', %wantedfps%) FROM LocalStorage WHERE key LIKE 'GameQualitySetting') WHERE key LIKE 'GameQualitySetting';" || goto :error
echo|set /p="fps value is now: "
.\sqlite3.exe "%db%" "SELECT json_extract(value, '$.KeyCustomFrameRate') FROM LocalStorage WHERE key like 'GameQualitySetting';" || goto :error
pause
exit
:error
echo Something broke
pause
exit
Additional Tips
Tip 1: Using Graphical Tools
If you’re not comfortable with command-line tools, you can use graphical tools like DB Browser for SQLite to make the process easier.
Tip 2: Handling Errors
Make sure the game is closed before editing the database to avoid errors like "Runtime error: attempt to write a readonly database."
Tip 3: Avoiding Resets
Remember that changing any settings in the game’s UI will reset the FPS limit to 120. You’ll need to rerun the script or queries if this happens.
By following these steps, you can enjoy a smoother gaming experience in Wuthering Waves with your desired FPS limit.