diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 93e0ed5491e7..3fc9e94427ec 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -328,7 +328,8 @@
Changes to this setting will only be applied upon restarting the application.
- Forces a delay between frames in the main loop (in milliseconds). This may be useful if you plan to disable vertical synchronization.
+ Forces a [i]constant[/i] delay between frames in the main loop (in milliseconds). In most situations, [member application/run/max_fps] should be preferred as an FPS limiter as it's more precise.
+ This setting can be overridden using the [code]--frame-delay <ms;>[/code] command line argument.
If [code]true[/code], enables low-processor usage mode. This setting only works on desktop platforms. The screen is not redrawn if nothing changes visually. This is meant for writing applications and editors, but is pretty useless (and can hurt performance) in most games.
diff --git a/main/main.cpp b/main/main.cpp
index 7ca22d90ca5e..271791f36899 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -2128,6 +2128,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
if (frame_delay == 0) {
frame_delay = GLOBAL_DEF(PropertyInfo(Variant::INT, "application/run/frame_delay_msec", PROPERTY_HINT_RANGE, "0,100,1,or_greater"), 0);
+ if (Engine::get_singleton()->is_editor_hint()) {
+ frame_delay = 0;
+ }
}
if (audio_output_latency >= 1) {