diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index b0ffc3a88a2..0186798073b 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -1182,6 +1182,10 @@ void _OS::alert(const String &p_alert, const String &p_title) {
OS::get_singleton()->alert(p_alert, p_title);
}
+void _OS::crash(const String &p_message) {
+ CRASH_NOW_MSG(p_message);
+}
+
bool _OS::request_permission(const String &p_name) {
return OS::get_singleton()->request_permission(p_name);
}
@@ -1399,6 +1403,7 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_use_file_access_save_and_swap", "enabled"), &_OS::set_use_file_access_save_and_swap);
ClassDB::bind_method(D_METHOD("alert", "text", "title"), &_OS::alert, DEFVAL("Alert!"));
+ ClassDB::bind_method(D_METHOD("crash", "message"), &_OS::crash);
ClassDB::bind_method(D_METHOD("set_thread_name", "name"), &_OS::set_thread_name);
ClassDB::bind_method(D_METHOD("get_thread_caller_id"), &_OS::get_thread_caller_id);
diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h
index c0339de9434..d2c611b91fa 100644
--- a/core/bind/core_bind.h
+++ b/core/bind/core_bind.h
@@ -356,6 +356,7 @@ public:
String get_cache_dir() const;
void alert(const String &p_alert, const String &p_title = "ALERT!");
+ void crash(const String &p_message);
void set_screen_orientation(ScreenOrientation p_orientation);
ScreenOrientation get_screen_orientation() const;
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index f1e1baa3596..107402314ee 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -43,6 +43,13 @@
[b]Note:[/b] This method is implemented on Linux, macOS and Windows.
+
+
+
+
+ Crashes the engine (or the editor if called within a [code]tool[/code] script). This should [i]only[/i] be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) [method @GDScript.assert], [method @GDScript.push_error] or [method alert]. See also [method kill].
+
+
@@ -714,7 +721,7 @@
- Kill (terminate) the process identified by the given process ID ([code]pid[/code]), e.g. the one returned by [method execute] in non-blocking mode.
+ Kill (terminate) the process identified by the given process ID ([code]pid[/code]), e.g. the one returned by [method execute] in non-blocking mode. See also [method crash].
[b]Note:[/b] This method can also be used to kill processes that were not spawned by the game.
[b]Note:[/b] This method is implemented on Android, iOS, Linux, macOS and Windows.