godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.89k stars 20.16k forks source link

GDScript 2.0: Language server causes crash in GDScriptParser #55858

Closed Amatrelan closed 1 year ago

Amatrelan commented 2 years ago

Godot version

v4.0.dev.custom_build [f1b63dce7]

System information

Linux, x11, nvidia

Issue description

Language server seems to crash sometimes randomly, don't have found clear reason why this happens. I crashes during code editing (I'm using Emacs with gdscript mode and lsp).

Latest commit from master is 092a2861277e7df87aec10516d713d0bf4adba79

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.dev.custom_build (f1b63dce7121d9b3b2d2c7a1be0ad102207a4b9a)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7fa055859da0] (??:0)
[2] StringName::operator String() const (??:0)
[3] GDScriptParser::DataType::to_string() const (??:0)
[4] ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (??:0)
[5] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0)
[6] ExtendGDScriptParser::update_symbols() (??:0)
[7] ExtendGDScriptParser::parse(String const&, String const&) (??:0)
[8] GDScriptWorkspace::parse_script(String const&, String const&) (??:0)
[9] GDScriptWorkspace::parse_local_script(String const&) (??:0)
[10] GDScriptWorkspace::get_parse_successed_script(String const&) (??:0)
[11] GDScriptWorkspace::resolve_document_links(String const&, List<lsp::DocumentLink, DefaultAllocator>&) (??:0)
[12] GDScriptTextDocument::documentLink(Dictionary const&) (??:0)
[13] void call_with_variant_args_ret_helper<__UnexistingClass, Array, Dictionary const&, 0ul>(__UnexistingClass*, Array (__UnexistingClass::*)(Dictionary const&), Variant const**, Variant&, Callable::CallError&, IndexSequence<0ul>) (??:0)
[14] void call_with_variant_args_ret_dv<__UnexistingClass, Array, Dictionary const&>(__UnexistingClass*, Array (__UnexistingClass::*)(Dictionary const&), Variant const**, int, Variant&, Callable::CallError&, Vector<Variant> const&) (??:0)
[15] MethodBindTR<Array, Dictionary const&>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[16] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[17] Object::callv(StringName const&, Array const&) (??:0)
[18] JSONRPC::process_action(Variant const&, bool) (??:0)
[19] JSONRPC::process_string(String const&) (??:0)
[20] GDScriptLanguageProtocol::process_message(String const&) (??:0)
[21] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0)
[22] GDScriptLanguageProtocol::poll() (??:0)
[23] GDScriptLanguageServer::thread_main(void*) (??:0)
[24] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0)
[25] void std::__invoke_impl<void, void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[26] std::__invoke_result<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[27] void std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0)
[28] std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::operator()() (??:0)
[29] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> > >::_M_run() (??:0)
[30] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6966674) [0x5630cc650674] (??:0)
[31] /usr/lib/libpthread.so.0(+0x9259) [0x7fa055b3f259] (??:0)
[32] /usr/lib/libc.so.6(clone+0x43) [0x7fa05591b5e3] (??:0)
-- END OF BACKTRACE --
================================================================

Steps to reproduce

Don't have clear reproduce yet, restarting engine and it continues to work and then again after some time crashes.

Minimal reproduction project

No response

akien-mga commented 2 years ago

CC @Razoric480

Razoric480 commented 2 years ago

Hrm... Looks like it is crashing converting a datatype from StringName to String with the datatypes in the parameters, statements, or return type.

I'm honestly unsure what could cause it.

@Amatrelan It seems to be related to type hints. If you can narrow down a pattern based on what you're working on when the crash occurs next time (what kind of variable you're editing, are you hovering over something, trying to access docs, is it return type, variables, in the parameters or somewhere in the function body, etc.), that'd be helpful. Or even a sample of the script you were working on when it happens (ideally in the state it was left in while crashing, even if unfinished.)

As it is, though, it's not obvious to me.

Amatrelan commented 2 years ago

Hmm crashed right away again now I opened project again to investigate this

Same backtrace as before ``` ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.dev.custom_build (f1b63dce7121d9b3b2d2c7a1be0ad102207a4b9a) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7fddf7b2ada0] (??:0) [2] String::copy_from(char const*) (??:0) [3] String::String(char const*) (??:0) [4] StringName::operator String() const (??:0) [5] GDScriptParser::DataType::to_string() const (??:0) [6] ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (??:0) [7] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0) [8] ExtendGDScriptParser::update_symbols() (??:0) [9] ExtendGDScriptParser::parse(String const&, String const&) (??:0) [10] GDScriptWorkspace::parse_script(String const&, String const&) (??:0) [11] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0) [12] GDScriptTextDocument::didOpen(Variant const&) (??:0) [13] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0) [14] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector const&) (??:0) [15] MethodBindT::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [16] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [17] Object::callv(StringName const&, Array const&) (??:0) [18] JSONRPC::process_action(Variant const&, bool) (??:0) [19] JSONRPC::process_string(String const&) (??:0) [20] GDScriptLanguageProtocol::process_message(String const&) (??:0) [21] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0) [22] GDScriptLanguageProtocol::poll() (??:0) [23] GDScriptLanguageServer::thread_main(void*) (??:0) [24] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0) [25] void std::__invoke_impl(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [26] std::__invoke_result::type std::__invoke(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [27] void std::thread::_Invoker >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0) [28] std::thread::_Invoker >::operator()() (??:0) [29] std::thread::_State_impl > >::_M_run() (??:0) [30] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6966674) [0x562255cfa674] (??:0) [31] /usr/lib/libpthread.so.0(+0x9259) [0x7fddf7e10259] (??:0) [32] /usr/lib/libc.so.6(clone+0x43) [0x7fddf7bec5e3] (??:0) -- END OF BACKTRACE -- ================================================================ ```

This is error message what came after previous crash, and now MainScene.tscn seems to be Scene file 'MainScene.tscn' appears to be invalid/corrupt.

...
ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed.
   at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601)
ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed.
   at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601)
ERROR: res://src/combat/battlers/Battler.tscn:9 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.gd
   at: _parse_ext_resource (scene/resources/resource_format_text.cpp:170)
ERROR: res://src/combat/battlers/Battler.tscn:9 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.gd
   at: _parse_node_tag (scene/resources/resource_format_text.cpp:269)
ERROR: Failed loading resource: res://src/combat/battlers/Battler.tscn. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:205)
ERROR: res://src/main/prototype_scenes/MainScene.tscn:29 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.tscn
   at: _parse_ext_resource (scene/resources/resource_format_text.cpp:170)
ERROR: res://src/main/prototype_scenes/MainScene.tscn:29 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.tscn
   at: _parse_node_tag (scene/resources/resource_format_text.cpp:269)
ERROR: Failed loading resource: res://src/main/prototype_scenes/MainScene.tscn. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:205)
ERROR: Index p_idx = 1 is out of bounds (edited_scene.size() = 1).
   at: remove_scene (editor/editor_data.cpp:554)

BattlerStats.UpgradeableStats is Enum value.

"Normal" enum type. ```gdscript enum UpgradeableStats { Health, Mana, Stamina, Strength, Agility, Magic, Spirit, Defense, Magic_Defense, Speed, } ```

There seems to be something wrong with that Battler.tscn and Battler.gd

Battler.tscn ``` [gd_scene load_steps=4 format=3 uid="uid://bsptwvcwbnf5e"] [ext_resource type="Script" path="res://src/combat/battlers/Battler.gd" id="1_7ktp6"] [ext_resource type="Resource" uid="uid://d3oa4p2ddj0bi" path="res://src/combat/battlers/Stats/test_battler1.tres" id="2_58jem"] [ext_resource type="Texture2D" uid="uid://bm85kbstgngq0" path="res://assets/battler/test.png" id="2_akbv0"] [node name="Battler" type="Node3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00959134, 0, -0.0178607) script = ExtResource( "1_7ktp6" ) stats = ExtResource( "2_58jem" ) [node name="MeshPosition" type="Position3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.731812, 0) [node name="Sprite3D" type="Sprite3D" parent="MeshPosition"] pixel_size = 0.0563 billboard = 2 double_sided = false texture = ExtResource( "2_akbv0" ) ```
Battler.gd ```gdscript class_name Battler extends Node signal ready_to_act signal action_finished @export var ai_scene: PackedScene @export var stats: Resource: set(data): assert(data is BattlerStats, "Battler stats needs to be a BattlerStats") stats = data var _readiness := 0.0: # Battler position in battle queue set(value): _readiness = value # Logger.debug(self, "Readiness: %s" % _readiness) if _readiness >= 100.0: Logger.info(self, "Ready to act") emit_signal("ready_to_act") set_process(false) var _ai_instance = null func _ready() -> void: pass func _process(delta: float) -> void: pass func setup(battlers) -> void: Logger.info(self, "Setting up: %s" % name) if ai_scene: _ai_instance = ai_scene.instance() _ai_instance.setup(battlers) add_child(_ai_instance) func _take_damage(hit: Hit) -> void: self.stats.health -= hit.total_damage func act(action) -> void: emit_signal("action_finished") set_process(true) func add_readiness(value: float) -> void: self._readiness = _readiness + (value * (float(stats.speed) / float(255))) func is_player_controlled(): return _ai_instance == null ```
MainScene.tscn ``` [gd_scene load_steps=6 format=3 uid="uid://bo2po0qu86m00"] [ext_resource type="PackedScene" uid="uid://bsptwvcwbnf5e" path="res://src/combat/battlers/Battler.tscn" id="1_a7b6r"] [ext_resource type="Script" path="res://src/user_interface/UI.gd" id="1_iwppc"] [ext_resource type="Script" path="res://src/combat/turn_queue/TurnQueue.gd" id="2_g7ayp"] [ext_resource type="Environment" uid="uid://b2aht3okhs1s7" path="res://default_env.tres" id="5_ashq5"] [sub_resource type="PlaneMesh" id="PlaneMesh_vh0vv"] [node name="MainScene" type="Node3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.1599) [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0812569, 1.08965, 0.255119) [node name="UI" type="CanvasLayer" parent="."] script = ExtResource( "1_iwppc" ) [node name="Environment" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.19731) [node name="CSGMesh3D" type="CSGMesh3D" parent="Environment"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -5.96046e-08) mesh = SubResource( "PlaneMesh_vh0vv" ) [node name="TurnQueue" type="Node3D" parent="."] script = ExtResource( "2_g7ayp" ) [node name="TestBattler1" parent="TurnQueue" instance=ExtResource( "1_a7b6r" )] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.07234) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = ExtResource( "5_ashq5" ) ```

And after I load that MainScene.tscn it opens normally but with error. Might be that new "enum" causes some problems.

ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed.
   at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601)

But then again this don't crash right away, again so don't have narrowed down cause of this.

LSP config in Godot ![image](https://user-images.githubusercontent.com/10142805/145719485-e320470d-3e75-40e4-bd57-03e354612dfa.png)
Whole launch log ``` ~/Projects/godot ∙ ./bin/godot.linuxbsd.tools.64 ᚴ upstream ⚡ develop Godot Engine v4.0.dev.custom_build.f1b63dce7 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4298) Vulkan API 1.2.200 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER Editing project: /home/amatrelan/Projects/DarkCrystal/Godot (::home::amatrelan::Projects::DarkCrystal::Godot) Godot Engine v4.0.dev.custom_build.f1b63dce7 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4298) Vulkan API 1.2.200 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER ~/Projects/godot ∙ ᚴ upstream ⚡ develop ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) Waiting for Emacs...Waiting for Emacs...ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.dev.custom_build (f1b63dce7121d9b3b2d2c7a1be0ad102207a4b9a) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7fddf7b2ada0] (??:0) [2] String::copy_from(char const*) (??:0) [3] String::String(char const*) (??:0) [4] StringName::operator String() const (??:0) [5] GDScriptParser::DataType::to_string() const (??:0) [6] ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (??:0) [7] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0) [8] ExtendGDScriptParser::update_symbols() (??:0) [9] ExtendGDScriptParser::parse(String const&, String const&) (??:0) [10] GDScriptWorkspace::parse_script(String const&, String const&) (??:0) [11] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0) [12] GDScriptTextDocument::didOpen(Variant const&) (??:0) [13] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0) [14] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector const&) (??:0) [15] MethodBindT::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [16] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [17] Object::callv(StringName const&, Array const&) (??:0) [18] JSONRPC::process_action(Variant const&, bool) (??:0) [19] JSONRPC::process_string(String const&) (??:0) [20] GDScriptLanguageProtocol::process_message(String const&) (??:0) [21] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0) [22] GDScriptLanguageProtocol::poll() (??:0) [23] GDScriptLanguageServer::thread_main(void*) (??:0) [24] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0) [25] void std::__invoke_impl(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [26] std::__invoke_result::type std::__invoke(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [27] void std::thread::_Invoker >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0) [28] std::thread::_Invoker >::operator()() (??:0) [29] std::thread::_State_impl > >::_M_run() (??:0) [30] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6966674) [0x562255cfa674] (??:0) [31] /usr/lib/libpthread.so.0(+0x9259) [0x7fddf7e10259] (??:0) [32] /usr/lib/libc.so.6(clone+0x43) [0x7fddf7bec5e3] (??:0) -- END OF BACKTRACE -- ================================================================ ~/Projects/godot ∙ ./bin/godot.linuxbsd.tools.64 ᚴ upstream ⚡ develop Godot Engine v4.0.dev.custom_build.f1b63dce7 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4298) Vulkan API 1.2.200 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER Editing project: /home/amatrelan/Projects/DarkCrystal/Godot (::home::amatrelan::Projects::DarkCrystal::Godot) Godot Engine v4.0.dev.custom_build.f1b63dce7 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4298) Vulkan API 1.2.200 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER ~/Projects/godot ∙ ᚴ upstream ⚡ develop ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: res://src/combat/battlers/Battler.tscn:9 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.gd at: _parse_ext_resource (scene/resources/resource_format_text.cpp:170) ERROR: res://src/combat/battlers/Battler.tscn:9 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.gd at: _parse_node_tag (scene/resources/resource_format_text.cpp:269) ERROR: Failed loading resource: res://src/combat/battlers/Battler.tscn. Make sure resources have been imported by opening the project in the editor at least once. at: _load (core/io/resource_loader.cpp:205) ERROR: res://src/main/prototype_scenes/MainScene.tscn:29 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.tscn at: _parse_ext_resource (scene/resources/resource_format_text.cpp:170) ERROR: res://src/main/prototype_scenes/MainScene.tscn:29 - Parse Error: [ext_resource] referenced non-loaded resource at: res://src/combat/battlers/Battler.tscn at: _parse_node_tag (scene/resources/resource_format_text.cpp:269) ERROR: Failed loading resource: res://src/main/prototype_scenes/MainScene.tscn. Make sure resources have been imported by opening the project in the editor at least once. at: _load (core/io/resource_loader.cpp:205) ERROR: Index p_idx = 1 is out of bounds (edited_scene.size() = 1). at: remove_scene (editor/editor_data.cpp:554) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Condition "!windows.has(event_from_window->get_window_id())" is true. at: _dispatch_input_event (platform/linuxbsd/display_server_x11.cpp:2965) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Native class BattlerStats.UpgradeableStats used in script doesn't exist or isn't exposed. at: get_function_signature (modules/gdscript/gdscript_analyzer.cpp:3601) ERROR: Rect2 size is negative, this is not supported. Use Rect2.abs() to get a Rect2 with a positive size. at: grow_individual (./core/math/rect2.h:243) ERROR: Rect2 size is negative, this is not supported. Use Rect2.abs() to get a Rect2 with a positive size. at: grow_individual (./core/math/rect2.h:243) ERROR: Rect2 size is negative, this is not supported. Use Rect2.abs() to get a Rect2 with a positive size. at: grow_individual (./core/math/rect2.h:243) ERROR: Rect2 size is negative, this is not supported. Use Rect2.abs() to get a Rect2 with a positive size. at: grow_individual (./core/math/rect2.h:243) ERROR: Rect2 size is negative, this is not supported. Use Rect2.abs() to get a Rect2 with a positive size. at: grow_individual (./core/math/rect2.h:243) ```

I will continue to narrow down the reason why and when this happens

Razoric480 commented 2 years ago

That's... unusual. Think there's something deeper going on than LSP issues.

Amatrelan commented 2 years ago

Ok now found one way to crash. took while to find out good way to crash. And still little random.

The annoying part about this is that I cannot create example from this. Now that it crashed few times in my project it stopped crashing, there seems to be some hidden things hiding still what I don't know yet.

It seems sometimes LSP or Script parser continues to try resolve things what are broken and after sometime it crashes, and it don't seem to do this always.

...
SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum.
          at: GDScript::reload (res://src/character/BaseCharacter.gd:4)
ERROR: Method/function failed. Returning: ERR_PARSE_ERROR
   at: reload (modules/gdscript/gdscript.cpp:873)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.dev.custom_build (14b69483b6b3ddc23e123c976a10c1adc91646f7)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7f853e661da0] (??:0)
[2] StringName::operator String() const (??:0)
[3] GDScriptParser::DataType::to_string() const (??:0)
[4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0)
[5] ExtendGDScriptParser::update_symbols() (??:0)
[6] ExtendGDScriptParser::parse(String const&, String const&) (??:0)
[7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0)
[8] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0)
[9] GDScriptTextDocument::didChange(Variant const&) (??:0)
[10] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0)
[11] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (??:0)
[12] MethodBindT<Variant const&>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[13] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[14] Object::callv(StringName const&, Array const&) (??:0)
[15] JSONRPC::process_action(Variant const&, bool) (??:0)
[16] JSONRPC::process_string(String const&) (??:0)
[17] GDScriptLanguageProtocol::process_message(String const&) (??:0)
[18] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0)
[19] GDScriptLanguageProtocol::poll() (??:0)
[20] GDScriptLanguageServer::thread_main(void*) (??:0)
[21] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0)
[22] void std::__invoke_impl<void, void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[23] std::__invoke_result<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[24] void std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0)
[25] std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::operator()() (??:0)
[26] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> > >::_M_run() (??:0)
[27] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6a95d34) [0x563aaf5c6d34] (??:0)
[28] /usr/lib/libpthread.so.0(+0x9259) [0x7f853e947259] (??:0)
[29] /usr/lib/libc.so.6(clone+0x43) [0x7f853e7235e3] (??:0)
-- END OF BACKTRACE --
================================================================
Whole log ``` SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) ERROR: Failed parse script res://src/character/BaseCharacter.gd Export type can only be built-in, a resource, or an enum. at: reload_all_workspace_scripts (modules/gdscript/language_server/gdscript_workspace.cpp:217) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Export type can only be built-in, a resource, or an enum. at: GDScript::reload (res://src/character/BaseCharacter.gd:4) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.dev.custom_build (14b69483b6b3ddc23e123c976a10c1adc91646f7) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7f6c22437da0] (??:0) [2] StringName::operator String() const (??:0) [3] GDScriptParser::DataType::to_string() const (??:0) [4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0) [5] ExtendGDScriptParser::update_symbols() (??:0) [6] ExtendGDScriptParser::parse(String const&, String const&) (??:0) [7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0) [8] GDScriptWorkspace::parse_local_script(String const&) (??:0) [9] GDScriptWorkspace::get_parse_successed_script(String const&) (??:0) [10] GDScriptWorkspace::resolve_document_links(String const&, List&) (??:0) [11] GDScriptTextDocument::documentLink(Dictionary const&) (??:0) [12] void call_with_variant_args_ret_helper<__UnexistingClass, Array, Dictionary const&, 0ul>(__UnexistingClass*, Array (__UnexistingClass::*)(Dictionary const&), Variant const**, Variant&, Callable::CallError&, IndexSequence<0ul>) (??:0) [13] void call_with_variant_args_ret_dv<__UnexistingClass, Array, Dictionary const&>(__UnexistingClass*, Array (__UnexistingClass::*)(Dictionary const&), Variant const**, int, Variant&, Callable::CallError&, Vector const&) (??:0) [14] MethodBindTR::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [15] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [16] Object::callv(StringName const&, Array const&) (??:0) [17] JSONRPC::process_action(Variant const&, bool) (??:0) [18] JSONRPC::process_string(String const&) (??:0) [19] GDScriptLanguageProtocol::process_message(String const&) (??:0) [20] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0) [21] GDScriptLanguageProtocol::poll() (??:0) [22] GDScriptLanguageServer::thread_main(void*) (??:0) [23] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0) [24] void std::__invoke_impl(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [25] std::__invoke_result::type std::__invoke(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0) [26] void std::thread::_Invoker >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0) [27] std::thread::_Invoker >::operator()() (??:0) [28] std::thread::_State_impl > >::_M_run() (??:0) [29] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6a95d34) [0x5647da3e8d34] (??:0) [30] /usr/lib/libpthread.so.0(+0x9259) [0x7f6c2271d259] (??:0) [31] /usr/lib/libc.so.6(clone+0x43) [0x7f6c224f95e3] (??:0) -- END OF BACKTRACE -- ================================================================ ```
Razoric480 commented 2 years ago

Can't get it to break here even with those steps. I just get the expected ERR_PARSE_ERROR: Export type can only be built-in, a resource, or an enum. messages. =\

Amatrelan commented 2 years ago

Yeah it did same to me too, it crashed again two times and after that it worked OK again.

Sometimes it only prints error message once but sometimes it does seem to do it in loop till crashes. I don't know how it sometimes goes to that loop so need to investigate what causes it. And when it will crash it actually takes sometime till it crashes.

I noticed that in Godot editor it shows those new error message popups and counter rises even when I don't do anything so last time it crashed I left it be, didn't touch anything. After 15 or so seconds later it crashed.

That error message counter Error message something (65) it got quite high, I would say around 65 and suddenly it crashed.

And actually forgot to mention, I used Emacs and mode for it, My cursor was all the time in that

@export var resource: ResouceTest # At end here kept my cursor.

If that might affect is somehow, it might be that it spams LSP requests for server when keeping in that position.

Razoric480 commented 2 years ago

Might just be that VSCode's internal LSP stuff is more stable and/or that emacs does something strange with the requests that the server can't handle. You could try setting up VSCode with the Godot-tools extension and see if that, too, crashes for you, in which case it might be a linux thing.

Hmm.

Amatrelan commented 2 years ago

Hmm now crashed with VSCode too, there seems to be something really unstable when GDScript contains "errors". Might be that this is not directly LSP related but GDScript parser/analyzer might be the problematic one. And now backtrace don't contain any directly to LSP but GDScript analyzer things.

Now this time I had originally

var _previous_selected_target = null # This was what I had originally,

I made copy of that line so

var _previous_selected_target = null
var _previous_selected_target = null

Made change to second line to correct

var _previous_selected_target = null
var _previous_selected_action = null

After this I don't know why but decided to hammer that

var _previous_selected_target = null
var _previous_selected_target = null # Made this same as first

After that I made small changes, like changing on second line target -> targe and save and back target and save and so on, about 5 times(?), but when reading log it seems to be over 25 times there

var _previous_selected_target = null
var _previous_selected_action = null

And few seconds later it crashed.

Engine version: Godot Engine v4.0.alpha.custom_build (31b73580e79084adb88c5bfa82e1ebb45c746ac4)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7f9fd324ada0] (??:0)
SCRIPT ERROR: Parse Error: Could not resolve class "CharacterStats", because of a parser error.
          at: GDScript::reload (res://src/character/BaseCharacter.gd:13)
ERROR: Method/function failed. Returning: ERR_PARSE_ERROR
   at: reload (modules/gdscript/gdscript.cpp:873)
[2] GDScriptParser::DataType::is_set() const (??:0)
[3] GDScriptAnalyzer::resolve_inheritance(GDScriptParser::ClassNode*, bool) (??:0)
[4] GDScriptAnalyzer::resolve_inheritance() (??:0)
[5] GDScriptParserRef::raise_status(GDScriptParserRef::Status) (??:0)
[6] GDScriptAnalyzer::make_global_class_meta_type(StringName const&, GDScriptParser::Node const*) (??:0)
[7] GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode*, bool) (??:0)
[8] GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode*) (??:0)
[9] GDScriptAnalyzer::reduce_expression(GDScriptParser::ExpressionNode*, bool) (??:0)
[10] GDScriptAnalyzer::resolve_assert(GDScriptParser::AssertNode*) (??:0)
[11] GDScriptAnalyzer::resolve_node(GDScriptParser::Node*) (??:0)
[12] GDScriptAnalyzer::resolve_suite(GDScriptParser::SuiteNode*) (??:0)
[13] GDScriptAnalyzer::resolve_function_body(GDScriptParser::FunctionNode*) (??:0)
[14] GDScriptAnalyzer::resolve_class_body(GDScriptParser::ClassNode*) (??:0)
[15] GDScriptAnalyzer::resolve_program() (??:0)
[16] GDScriptAnalyzer::analyze() (??:0)
[17] GDScriptLanguage::validate(String const&, String const&, List<String, DefaultAllocator>*, List<ScriptLanguage::ScriptError, DefaultAllocator>*, List<ScriptLanguage::Warning, DefaultAllocator>*, Set<int, Comparator<int>, DefaultAllocator>*) const (??:0)
[18] ScriptTextEditor::get_functions() (??:0)
[19] ScriptEditor::_update_members_overview() (??:0)
[20] ScriptEditor::_update_script_names() (??:0)
[21] ScriptEditor::_filesystem_changed() (??:0)
[22] void call_with_variant_args_helper<ScriptEditor>(ScriptEditor*, void (ScriptEditor::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (??:0)
[23] void call_with_variant_args<ScriptEditor>(ScriptEditor*, void (ScriptEditor::*)(), Variant const**, int, Callable::CallError&) (??:0)
[24] CallableCustomMethodPointer<ScriptEditor>::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0)
SCRIPT ERROR: Parse Error: Could not resolve class "CharacterStats", because of a parser error.
          at: GDScript::reload (res://src/character/BaseCharacter.gd:13)
SCRIPT ERROR: Parse Error: Identifier "previou" not declared in the current scope.
          at: GDScript::reload (res://src/character/BaseCharacter.gd:65)
ERROR: Method/function failed. Returning: ERR_PARSE_ERROR
   at: reload (modules/gdscript/gdscript.cpp:873)
[25] Callable::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0)
[26] Object::emit_signal(StringName const&, Variant const**, int) (??:0)
[27] Object::_emit_signal(Variant const**, int, Callable::CallError&) (??:0)
[28] MethodBindVarArg<Object>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[29] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[30] Callable::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0)
[31] MessageQueue::_call_function(Callable const&, Variant const*, int, bool) (??:0)
[32] MessageQueue::flush() (??:0)
[33] SceneTree::physics_process(double) (??:0)
[34] Main::iteration() (??:0)
[35] OS_LinuxBSD::run() (??:0)
[36] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x55d545c7cfed] (??:0)
[37] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f9fd3235b25] (??:0)
[38] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x55d545c7cdae] (??:0)
-- END OF BACKTRACE --
Full log ```text ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) SCRIPT ERROR: Parse Error: Identifier "Null" not declared in the current scope. at: GDScript::reload (res://src/character/BaseCharacter.gd:7) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Identifier "Null" not declared in the current scope. at: GDScript::reload (res://src/character/BaseCharacter.gd:7) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Variable "_previous_selected_target" has the same name as a previously declared variable. at: GDScript::reload (res://src/character/BaseCharacter.gd:8) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) ================================================================ handle_crash: Program crashed with signal 11 ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) ERROR: Non-existent native base class. at: is_shadowing (modules/gdscript/gdscript_analyzer.cpp:3761) Engine version: Godot Engine v4.0.alpha.custom_build (31b73580e79084adb88c5bfa82e1ebb45c746ac4) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7f9fd324ada0] (??:0) SCRIPT ERROR: Parse Error: Could not resolve class "CharacterStats", because of a parser error. at: GDScript::reload (res://src/character/BaseCharacter.gd:13) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) [2] GDScriptParser::DataType::is_set() const (??:0) [3] GDScriptAnalyzer::resolve_inheritance(GDScriptParser::ClassNode*, bool) (??:0) [4] GDScriptAnalyzer::resolve_inheritance() (??:0) [5] GDScriptParserRef::raise_status(GDScriptParserRef::Status) (??:0) [6] GDScriptAnalyzer::make_global_class_meta_type(StringName const&, GDScriptParser::Node const*) (??:0) [7] GDScriptAnalyzer::reduce_identifier(GDScriptParser::IdentifierNode*, bool) (??:0) [8] GDScriptAnalyzer::reduce_binary_op(GDScriptParser::BinaryOpNode*) (??:0) [9] GDScriptAnalyzer::reduce_expression(GDScriptParser::ExpressionNode*, bool) (??:0) [10] GDScriptAnalyzer::resolve_assert(GDScriptParser::AssertNode*) (??:0) [11] GDScriptAnalyzer::resolve_node(GDScriptParser::Node*) (??:0) [12] GDScriptAnalyzer::resolve_suite(GDScriptParser::SuiteNode*) (??:0) [13] GDScriptAnalyzer::resolve_function_body(GDScriptParser::FunctionNode*) (??:0) [14] GDScriptAnalyzer::resolve_class_body(GDScriptParser::ClassNode*) (??:0) [15] GDScriptAnalyzer::resolve_program() (??:0) [16] GDScriptAnalyzer::analyze() (??:0) [17] GDScriptLanguage::validate(String const&, String const&, List*, List*, List*, Set, DefaultAllocator>*) const (??:0) [18] ScriptTextEditor::get_functions() (??:0) [19] ScriptEditor::_update_members_overview() (??:0) [20] ScriptEditor::_update_script_names() (??:0) [21] ScriptEditor::_filesystem_changed() (??:0) [22] void call_with_variant_args_helper(ScriptEditor*, void (ScriptEditor::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (??:0) [23] void call_with_variant_args(ScriptEditor*, void (ScriptEditor::*)(), Variant const**, int, Callable::CallError&) (??:0) [24] CallableCustomMethodPointer::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0) SCRIPT ERROR: Parse Error: Could not resolve class "CharacterStats", because of a parser error. at: GDScript::reload (res://src/character/BaseCharacter.gd:13) SCRIPT ERROR: Parse Error: Identifier "previou" not declared in the current scope. at: GDScript::reload (res://src/character/BaseCharacter.gd:65) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) [25] Callable::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0) [26] Object::emit_signal(StringName const&, Variant const**, int) (??:0) [27] Object::_emit_signal(Variant const**, int, Callable::CallError&) (??:0) [28] MethodBindVarArg::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [29] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [30] Callable::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0) [31] MessageQueue::_call_function(Callable const&, Variant const*, int, bool) (??:0) [32] MessageQueue::flush() (??:0) [33] SceneTree::physics_process(double) (??:0) [34] Main::iteration() (??:0) [35] OS_LinuxBSD::run() (??:0) [36] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x55d545c7cfed] (??:0) [37] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f9fd3235b25] (??:0) [38] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x55d545c7cdae] (??:0) -- END OF BACKTRACE -- ================================================================ ```
Razoric480 commented 2 years ago

I'm still unable to recreate this on this end. At least on windows it never crashes no matter how often I switch between _target and _action. Maybe some GCC vs Microsoft build C++ thing.

Amatrelan commented 2 years ago

Hmm decided to run with valgrind with full memory check valgrind --leak-check=full --show-leak-kinds=all --trace-children=yes --track-origins=yes ./bin/godot.linuxbsd.tools.64 -e --path <project-name> 2>&1 | tee valgrid.log but it seems to crash even before editor is fully loaded.

ERROR: Method argument to Callable constructor must be a non-empty string
   at: Callable (core/variant/callable.cpp:274)

Comes 6536 times and after that comes stack overflow error in valgrind

==16644== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
==16644== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
==16644== Can't extend stack to 0x1ffe801028 during signal delivery for thread 1:
==16644==   no stack segment
==16644==
==16644== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==16644==  Access not within mapped region at address 0x1FFE801028
==16644== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
==16644==    at 0xB3AC13B: __vfprintf_internal (in /usr/lib/libc-2.33.so)
==16644==  If you believe this happened as a result of a stack
==16644==  overflow in your program's main thread (unlikely but
==16644==  possible), you can try to increase the size of the
==16644==  main thread stack using the --main-stacksize= flag.
==16644==  The main thread stack size used in this run was 8388608.
==16644==
==16644== HEAP SUMMARY:
==16644==     in use at exit: 294,618,275 bytes in 1,063,356 blocks
==16644==   total heap usage: 6,406,663 allocs, 5,343,307 frees, 1,527,863,008 bytes allocated

So cannot do full memory checks for this, I will try some other way to check memory usage. Might be that valgrind with full memory check is interfering with system too much and causes problems.

Amatrelan commented 2 years ago

This might be related to this, is those "toast" notifications stored somewhere in memory? Could it be that there is memory handling error and it overflows?

Started to thinking that all crashes seems to be related to that I make some error and that error notification comes up. At least I don't think this is anymore related to directly to LSP.

Razoric480 commented 2 years ago

The workspace stores the current script, parse results, data about native members.

The GDScript parser is extended to hold diagnostics and documentation links, but those are generated as new objects on the fly and are not persistent.

Amatrelan commented 2 years ago

@Razoric480 I meant that toast icon notification, bell icon. It don't seem to clear errors, if I press it again it shows them again even after some time, even if I have disabled in settings, Settings -> Interface -> Editor -> Show Internal Errors In Toast Notifications. It seems to store them into somewhere in memory. image

Edit: Seems to be that it don't store if it's disabled, but if it's disabled after some errors has come it keeps them in memory. I will disable this toast notifications and check out if it still continues to crash.

Razoric480 commented 2 years ago

Oh, I see. I'm not aware of how it works, unfortunately.

Amatrelan commented 2 years ago

Yeah, I will look into this if it don't crash anymore that I have disabled that, then it's certain that this don't have anything to do LSP, I don't actually believe this has anything to do with LSP anymore.

akien-mga commented 2 years ago
ERROR: Method argument to Callable constructor must be a non-empty string
   at: Callable (core/variant/callable.cpp:274)

IIRC @groud noticed something similar, also related to the toaster.

Amatrelan commented 2 years ago

And no, still crashing...

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.alpha.custom_build (b5c0184795363aa27c3df5bfa2a87fef35705e4d)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7f71a8d8eda0] (??:0)
[2] StringName::operator String() const (??:0)
[3] GDScriptParser::DataType::to_string() const (??:0)
[4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0)
[5] ExtendGDScriptParser::update_symbols() (??:0)
[6] ExtendGDScriptParser::parse(String const&, String const&) (??:0)
[7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0)
[8] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0)
[9] GDScriptTextDocument::didSave(Variant const&) (??:0)
[10] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0)
[11] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (??:0)
[12] MethodBindT<Variant const&>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[13] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[14] Object::callv(StringName const&, Array const&) (??:0)
[15] JSONRPC::process_action(Variant const&, bool) (??:0)
[16] JSONRPC::process_string(String const&) (??:0)
[17] GDScriptLanguageProtocol::process_message(String const&) (??:0)
[18] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0)
[19] GDScriptLanguageProtocol::poll() (??:0)
[20] GDScriptLanguageServer::thread_main(void*) (??:0)
[21] Thread::callback(Thread*, Thread::Settings const&, void (*)(void*), void*) (??:0)
[22] void std::__invoke_impl<void, void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[23] std::__invoke_result<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*>(void (*&&)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*&&, Thread::Settings&&, void (*&&)(void*), void*&&) (??:0)
[24] void std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (??:0)
[25] std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> >::operator()() (??:0)
[26] std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(Thread*, Thread::Settings const&, void (*)(void*), void*), Thread*, Thread::Settings, void (*)(void*), void*> > >::_M_run() (??:0)
[27] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(+0x6b43d14) [0x55a6d615dd14] (??:0)
[28] /usr/lib/libpthread.so.0(+0x9259) [0x7f71a9074259] (??:0)
[29] /usr/lib/libc.so.6(clone+0x43) [0x7f71a8e505e3] (??:0)
-- END OF BACKTRACE --
================================================================

And now I get it to crash consistently. But the change I do in GDScript is minimal when I get this to crash.

func _init(data, actor, targets:): # I save as this or with as `targets: ): it crashes.
    pass

Now it don't even manage put toast notification / print error to terminal before it crashes like this.

I don't know yet if this exact line causes crash, or just part of some more. I try to create minimal reproduction project from this tomorrow after work.

But now it crashes every time I save that file with LSP connected to external editor (VSCode). If VSCode is not connected to LSP it wont trigger the crash, so there isn't any file watcher what triggers this problem. LSP by himself is calling something that causes problems.

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.alpha.custom_build (b5c0184795363aa27c3df5bfa2a87fef35705e4d)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7fcaee61eda0] (??:0)
[2] StringName::operator String() const (??:0)
[3] GDScriptParser::DataType::to_string() const (??:0)
[4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0)
[5] ExtendGDScriptParser::update_symbols() (??:0)
[6] ExtendGDScriptParser::parse(String const&, String const&) (??:0)
[7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0)
[8] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0)
[9] GDScriptTextDocument::didSave(Variant const&) (??:0)
[10] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0)
[11] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (??:0)
[12] MethodBindT<Variant const&>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[13] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[14] Object::callv(StringName const&, Array const&) (??:0)
[15] JSONRPC::process_action(Variant const&, bool) (??:0)
[16] JSONRPC::process_string(String const&) (??:0)
[17] GDScriptLanguageProtocol::process_message(String const&) (??:0)
[18] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0)
[19] GDScriptLanguageProtocol::poll() (??:0)
[20] GDScriptLanguageServer::_notification(int) (??:0)
[21] GDScriptLanguageServer::_notificationv(int, bool) (??:0)
[22] Object::notification(int, bool) (??:0)
[23] SceneTree::_notify_group_pause(StringName const&, int) (??:0)
[24] SceneTree::process(double) (??:0)
[25] Main::iteration() (??:0)
[26] OS_LinuxBSD::run() (??:0)
[27] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x55c62ac03fed] (??:0)
[28] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7fcaee609b25] (??:0)
[29] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x55c62ac03dae] (??:0)
-- END OF BACKTRACE --
================================================================

Here is another one, and disabled threading from LSP.

Razoric480 commented 2 years ago

Still nothing on this end just with the script, with or without errors. Maybe it's something with the project contents, so I'll have to check a minimum project.

Though I do notice that threading being on or off does seem to make a difference in how errors are reported (though even with it off it doesn't crash for me)

Amatrelan commented 2 years ago

Hmm while writing minimal project, it crashed while writing it, I just created first ActionData.gd and after that I started writing Action.gd

  • Steps
    • Create empty project
    • Create new script (empty in my case)
    • Write down ActionData.gd
    • Write down Action.gd

One behavioural thing I do, I don't fix errors in code right away, I write usually till I'm finished that "section" and after that I fix errors (typos and other things).

ps. I continue tomorrow this after work.

# ActionData.gd
class_name ActionData
extends Resource

enum ExampleEnum {
    NONE,
    ONE,
    TWO,
    TREE,
    FOUR
}

@export var icon: Texture
@export var display_name := "Default Display Name"
@export var base_mana_cost := 0
@export var enumvar: ExampleEnum = ExampleEnum.NONE
@export var is_only_self := false
@export var is_only_all := false
# Action.gd
class_name Action
extends RefCounted

var _data: ActionData
var _ac # This was where it crashed, this was supposed to be `_actor`

#############################################
# I didn't manage write this yet completely but here is rest
var _actor
var _targets := []

func _init(data, actor, targets: ):
    pass
Full log ``` ~/Projects/godot ∙ ./bin/godot.linuxbsd.tools.64 ᚴ upstream ⚡ develop 1≡ Godot Engine v4.0.alpha.custom_build.b5c018479 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4304) Vulkan API 1.2.203 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER Editing project: /home/amatrelan/Downloads/LetsCrash (::home::amatrelan::Downloads::LetsCrash) Godot Engine v4.0.alpha.custom_build.b5c018479 - https://godotengine.org WARNING: Error setting locale modifiers at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4304) Vulkan API 1.2.203 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER ~/Projects/godot ∙ 17s ᚴ upstream ⚡ develop 1≡ ~/Projects/godot ∙ ERROR: Condition "err" is true. Returning: err 17s ᚴ upstream ⚡ develop 1≡ at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) SCRIPT ERROR: Parse Error: Expected identifier for the global class name after "class_name". at: GDScript::reload (res://action.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected identifier for the global class name after "class_name". at: GDScript::reload (res://action.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected identifier for the global class name after "class_name". at: GDScript::reload (res://action.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected identifier for the global class name after "class_name". at: GDScript::reload (res://action.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected identifier for the global class name after "class_name". at: GDScript::reload (res://action.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected "{" after enum name. at: GDScript::reload (res://action.gd:5) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:12) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected indented block for property after ":". at: GDScript::reload (res://action.gd:14) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Annotation "@export" does not precedes a valid target, so it will have no effect. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Unexpected "Identifier" in class body. at: GDScript::reload (res://action.gd:15) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Expected variable name after "var". at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:857) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Cannot use simple "@export" annotation with variable without type or initializer, since type can't be inferred. at: GDScript::reload (res://action.gd:16) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) SCRIPT ERROR: Parse Error: Class "ActionData" hides a global script class. at: GDScript::reload (res://ActionData.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) SCRIPT ERROR: Parse Error: Class "ActionData" hides a global script class. at: GDScript::reload (res://ActionData.gd:1) ERROR: Method/function failed. Returning: ERR_PARSE_ERROR at: reload (modules/gdscript/gdscript.cpp:873) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ERROR: Condition "err" is true. Returning: err at: load_source_code (modules/gdscript/gdscript.cpp:1023) ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.alpha.custom_build (b5c0184795363aa27c3df5bfa2a87fef35705e4d) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7f1e1f1b1da0] (??:0) [2] StringName::operator String() const (??:0) [3] GDScriptParser::DataType::to_string() const (??:0) [4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0) [5] ExtendGDScriptParser::update_symbols() (??:0) [6] ExtendGDScriptParser::parse(String const&, String const&) (??:0) [7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0) [8] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0) [9] GDScriptTextDocument::didChange(Variant const&) (??:0) [10] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0) [11] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector const&) (??:0) [12] MethodBindT::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [13] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [14] Object::callv(StringName const&, Array const&) (??:0) [15] JSONRPC::process_action(Variant const&, bool) (??:0) [16] JSONRPC::process_string(String const&) (??:0) [17] GDScriptLanguageProtocol::process_message(String const&) (??:0) [18] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0) [19] GDScriptLanguageProtocol::poll() (??:0) [20] GDScriptLanguageServer::_notification(int) (??:0) [21] GDScriptLanguageServer::_notificationv(int, bool) (??:0) [22] Object::notification(int, bool) (??:0) [23] SceneTree::_notify_group_pause(StringName const&, int) (??:0) [24] SceneTree::process(double) (??:0) [25] Main::iteration() (??:0) [26] OS_LinuxBSD::run() (??:0) [27] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x55ef7830bfed] (??:0) [28] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f1e1f19cb25] (??:0) [29] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x55ef7830bdae] (??:0) -- END OF BACKTRACE -- ================================================================
Amatrelan commented 2 years ago

I started continuing with my minimal project, and yet didn't found a way to crash it. But when I toggle that toast notification settings, it clearly goes really unstable at that point.

If I have disabled toast messages it crashes. But as I started today with toasts on it didn't crash (at least right away).

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.alpha.custom_build (b5c0184795363aa27c3df5bfa2a87fef35705e4d)
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /usr/lib/libc.so.6(+0x3cda0) [0x7ff647aeada0] (??:0)
[2] StringName::operator String() const (??:0)
[3] GDScriptParser::DataType::to_string() const (??:0)
[4] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0)
[5] ExtendGDScriptParser::update_symbols() (??:0)
[6] ExtendGDScriptParser::parse(String const&, String const&) (??:0)
[7] GDScriptWorkspace::parse_script(String const&, String const&) (??:0)
[8] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0)
[9] GDScriptTextDocument::didSave(Variant const&) (??:0)
[10] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0)
[11] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) (??:0)
[12] MethodBindT<Variant const&>::call(Object*, Variant const**, int, Callable::CallError&) (??:0)
[13] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0)
[14] Object::callv(StringName const&, Array const&) (??:0)
[15] JSONRPC::process_action(Variant const&, bool) (??:0)
[16] JSONRPC::process_string(String const&) (??:0)
[17] GDScriptLanguageProtocol::process_message(String const&) (??:0)
[18] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0)
[19] GDScriptLanguageProtocol::poll() (??:0)
[20] GDScriptLanguageServer::_notification(int) (??:0)
[21] GDScriptLanguageServer::_notificationv(int, bool) (??:0)
[22] Object::notification(int, bool) (??:0)
[23] SceneTree::_notify_group_pause(StringName const&, int) (??:0)
[24] SceneTree::process(double) (??:0)
[25] Main::iteration() (??:0)
[26] OS_LinuxBSD::run() (??:0)
[27] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x557c6fe92fed] (??:0)
[28] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7ff647ad5b25] (??:0)
[29] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x557c6fe92dae] (??:0)
-- END OF BACKTRACE --
================================================================

crash4.0.zip With this it crashes consistently for me. Edit: This is not exactly minimal project, but I stripped away all what is not directly affecting these lines of code, and still crashing.

Steps:

  • Unzip project
  • Open project
  • Change toast settings to false
  • Shutdown editor (completely)
  • Start again (In terminal?)
  • Edit in src/combat/Actions/Action.gd file
    func _init(data, actor, targets: ): # <- Here at end, put space for example
    pass
  • Save in editor that file.
  • Look it to crash.

At least for me it's crashes all the time with this. crash

Might be unrelated to this, this crash report ``` ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.alpha.custom_build (b5c0184795363aa27c3df5bfa2a87fef35705e4d) Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] /usr/lib/libc.so.6(+0x3cda0) [0x7f499354eda0] (??:0) [2] FileSystemDock::_get_imported_files(String const&, Vector&) const (??:0) [3] FileSystemDock::_update_import_dock() (??:0) [4] void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (??:0) [5] void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector const&) (??:0) [6] MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [7] Object::call(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [8] Callable::call(Variant const**, int, Variant&, Callable::CallError&) const (??:0) [9] MessageQueue::_call_function(Callable const&, Variant const*, int, bool) (??:0) [10] MessageQueue::flush() (??:0) [11] SceneTree::physics_process(double) (??:0) [12] Main::iteration() (??:0) [13] OS_LinuxBSD::run() (??:0) [14] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x56265dc51fed] (??:0) [15] /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f4993539b25] (??:0) [16] /home/amatrelan/Projects/godot/bin/godot.linuxbsd.tools.64(_start+0x2e) [0x56265dc51dae] (??:0) -- END OF BACKTRACE -- ================================================================ ```
Razoric480 commented 2 years ago

No crash, not even an error. I'll have to take out linux and try there.

Amatrelan commented 2 years ago

Before I even do anything it returns this

~/Projects ∙ ./godot/bin/godot.linuxbsd.tools.64
Godot Engine v4.0.alpha.custom_build.53297b46f - https://godotengine.org
WARNING: Error setting locale modifiers
     at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4304)
Vulkan API 1.2.203 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER

Editing project: /home/amatrelan/Projects/crash4.0 (::home::amatrelan::Projects::crash4.0)
Godot Engine v4.0.alpha.custom_build.53297b46f - https://godotengine.org
WARNING: Error setting locale modifiers
     at: DisplayServerX11 (platform/linuxbsd/display_server_x11.cpp:4304)
Vulkan API 1.2.203 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 2070 SUPER
~/Projects ∙
~/Projects ∙ ERROR: Condition "err" is true. Returning: err
   at: load_source_code (modules/gdscript/gdscript.cpp:1023)
ERROR: Condition "err" is true. Returning: err
   at: load_source_code (modules/gdscript/gdscript.cpp:1023)
ERROR: Condition "err" is true. Returning: err
   at: load_source_code (modules/gdscript/gdscript.cpp:1023)

Ah these errors comes from neovim plugin when using with vscode, it creates some temp files in project root.

Amatrelan commented 2 years ago

Little more information, it seems that LSP requests can overwhelm server / Godot. crash As you can see first:

  • I have editor open
  • Launch godot
  • Have cursor in "problematic point"
  • (Re)connecting to LSP
  • Crash

In right side of emacs there is all LSP requests and answers what LSP-mode got. It's a ton.

On second startup

  • I have editor open
  • Launch godot
  • Move cursor to bottom (not problematic point cause there is nothing)
  • (Re)connecting to LSP
  • And it don't crash.
LSP log from LSP-mode ``` [Trace - 07:09:49 PM] Sending request 'initialize - (15)'. Params: { "processId": null, "rootPath": "/home/amatrelan/Projects/DarkCrystal/godot4.0", "clientInfo": { "name": "emacs", "version": "GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.27, cairo version 1.17.4)\n of 2021-03-26" }, "rootUri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0", "capabilities": { "workspace": { "workspaceEdit": { "documentChanges": true, "resourceOperations": [ "create", "rename", "delete" ] }, "applyEdit": true, "symbol": { "symbolKind": { "valueSet": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] } }, "executeCommand": { "dynamicRegistration": false }, "didChangeWatchedFiles": { "dynamicRegistration": true }, "workspaceFolders": true, "configuration": true, "codeLens": { "refreshSupport": true }, "fileOperations": { "didCreate": false, "willCreate": false, "didRename": false, "willRename": false, "didDelete": false, "willDelete": false } }, "textDocument": { "declaration": { "linkSupport": true }, "definition": { "linkSupport": true }, "implementation": { "linkSupport": true }, "typeDefinition": { "linkSupport": true }, "synchronization": { "willSave": true, "didSave": true, "willSaveWaitUntil": true }, "documentSymbol": { "symbolKind": { "valueSet": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] }, "hierarchicalDocumentSymbolSupport": true }, "formatting": { "dynamicRegistration": true }, "rangeFormatting": { "dynamicRegistration": true }, "rename": { "dynamicRegistration": true, "prepareSupport": true }, "codeAction": { "dynamicRegistration": true, "isPreferredSupport": true, "codeActionLiteralSupport": { "codeActionKind": { "valueSet": [ "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" ] } }, "resolveSupport": { "properties": [ "edit", "command" ] }, "dataSupport": true }, "completion": { "completionItem": { "snippetSupport": true, "documentationFormat": [ "markdown", "plaintext" ], "resolveAdditionalTextEditsSupport": true, "insertReplaceSupport": true, "deprecatedSupport": true, "resolveSupport": { "properties": [ "documentation", "details", "additionalTextEdits", "command" ] }, "insertTextModeSupport": { "valueSet": [ 1, 2 ] } }, "contextSupport": true }, "signatureHelp": { "signatureInformation": { "parameterInformation": { "labelOffsetSupport": true } } }, "documentLink": { "dynamicRegistration": true, "tooltipSupport": true }, "hover": { "contentFormat": [ "markdown", "plaintext" ] }, "foldingRange": null, "callHierarchy": { "dynamicRegistration": false }, "publishDiagnostics": { "relatedInformation": true, "tagSupport": { "valueSet": [ 1, 2 ] }, "versionSupport": true }, "linkedEditingRange": { "dynamicRegistration": true } }, "window": { "workDoneProgress": true, "showMessage": null, "showDocument": { "support": true } } }, "initializationOptions": null, "workDoneToken": "1" } [Trace - 07:09:49 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/character/BaseCharacter.gd", "diagnostics": [ { "source": "gdscript", "severity": 2, "range": { "start": { "line": 7, "character": 0 }, "end": { "line": 7, "character": 37 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_previous_selected_actions' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 27, "character": 1 }, "end": { "line": 27, "character": 23 } }, "message": "(REDUNDANT_AWAIT): \"await\" keyword not needed in this case, because the expression isn't a coroutine nor a signal.", "code": 28 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 72, "character": 1 }, "end": { "line": 72, "character": 43 } }, "message": "(REDUNDANT_AWAIT): \"await\" keyword not needed in this case, because the expression isn't a coroutine nor a signal.", "code": 28 } ] } [Trace - 07:09:49 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/character/stats/CharacterStats.gd", "diagnostics": [] } [Trace - 07:09:49 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/ActionData.gd", "diagnostics": [] } [Trace - 07:09:49 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "diagnostics": [ { "source": "gdscript", "severity": 2, "range": { "start": { "line": 5, "character": 0 }, "end": { "line": 5, "character": 21 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_data' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 6, "character": 0 }, "end": { "line": 6, "character": 25 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_actor' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 7, "character": 0 }, "end": { "line": 7, "character": 69 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_targets' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'data' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_data'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'actor' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_actor'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'targets' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_targets'", "code": 7 } ] } [Trace - 07:09:49 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/CombatQueue.gd", "diagnostics": [ { "source": "gdscript", "severity": 2, "range": { "start": { "line": 44, "character": 1 }, "end": { "line": 44, "character": 16 } }, "message": "(NARROWING_CONVERSION): Narrowing conversion (float is converted to int and loses precision).", "code": 12 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 61, "character": 1 }, "end": { "line": 61, "character": 45 } }, "message": "(REDUNDANT_AWAIT): \"await\" keyword not needed in this case, because the expression isn't a coroutine nor a signal.", "code": 28 } ] } [Trace - 07:09:50 PM] Received response 'initialize - (15)' in 591ms. Result: { "capabilities": { "workspaceSymbolProvider": true, "workspace": { "fileOperations": { "didDelete": { "filters": [ { "pattern": { "matches": "file", "glob": "**/*.gd" } } ] } } }, "typeDefinitionProvider": null, "textDocumentSync": { "willSaveWaitUntil": null, "willSave": null, "save": { "includeText": true }, "openClose": true, "change": 1 }, "signatureHelpProvider": { "triggerCharacters": [ ",", "(" ] }, "renameProvider": { "prepareProvider": null }, "referencesProvider": null, "implementationProvider": null, "hoverProvider": true, "foldingRangeProvider": null, "executeCommandProvider": { "commands": [] }, "documentSymbolProvider": true, "documentRangeFormattingProvider": null, "documentOnTypeFormattingProvider": { "moreTriggerCharacter": [], "firstTriggerCharacter": "" }, "documentLinkProvider": { "resolveProvider": null }, "documentHighlightProvider": null, "documentFormattingProvider": null, "definitionProvider": true, "declarationProvider": true, "completionProvider": { "triggerCharacters": [ ".", "$", "'", "\"" ], "resolveProvider": true }, "colorProvider": null, "codeActionProvider": null } } [Trace - 07:09:50 PM] Sending notification 'initialized'. Params: { } [Trace - 07:09:50 PM] Sending notification 'textDocument/didOpen'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "languageId": "gdscript", "version": 0, "text": "class_name Action\nextends RefCounted\n\nsignal finished\n\nvar _data: ActionData\nvar _actor: BaseCharacter\nvar _targets := [] # TODO: Can I somehow type array of BaseCharacters\n\nfunc _init(data, actor, targets: ):\n pass\n" } } [Trace - 07:09:50 PM] Sending request 'textDocument/documentLink - (16)'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd" } } [Trace - 07:09:50 PM] Sending notification 'textDocument/didChange'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "version": 1 }, "contentChanges": [ { "text": "class_name Action\nextends RefCounted\n\nsignal finished\n\nvar _data: ActionData\nvar _actor: BaseCharacter\nvar _targets := [] # TODO: Can I somehow type array of BaseCharacters\n\nfunc _init(data, actor, targets: ):\n pass\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } ] } [Trace - 07:09:50 PM] Sending request 'textDocument/documentLink - (17)'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd" } } [Trace - 07:09:50 PM] Received notification 'gdscript/capabilities'. Params: { "native_classes": [ { "name": "@GDScript", "inherits": "" }, { "name": "@GlobalScope", "inherits": "" }, { "name": "AABB", "inherits": "" }, { "name": "AESContext", "inherits": "RefCounted" }, { "name": "AStar", "inherits": "RefCounted" }, { "name": "AStar2D", "inherits": "RefCounted" }, { "name": "AcceptDialog", "inherits": "Window" }, { "name": "Action", "inherits": "RefCounted" }, { "name": "ActionData", "inherits": "Resource" }, { "name": "AnimatableBody2D", "inherits": "StaticBody2D" }, { "name": "AnimatableBody3D", "inherits": "StaticBody3D" }, { "name": "AnimatedSprite2D", "inherits": "Node2D" }, { "name": "AnimatedSprite3D", "inherits": "SpriteBase3D" }, { "name": "AnimatedTexture", "inherits": "Texture2D" }, { "name": "Animation", "inherits": "Resource" }, { "name": "AnimationNode", "inherits": "Resource" }, { "name": "AnimationNodeAdd2", "inherits": "AnimationNode" }, { "name": "AnimationNodeAdd3", "inherits": "AnimationNode" }, { "name": "AnimationNodeAnimation", "inherits": "AnimationRootNode" }, { "name": "AnimationNodeBlend2", "inherits": "AnimationNode" }, { "name": "AnimationNodeBlend3", "inherits": "AnimationNode" }, { "name": "AnimationNodeBlendSpace1D", "inherits": "AnimationRootNode" }, { "name": "AnimationNodeBlendSpace2D", "inherits": "AnimationRootNode" }, { "name": "AnimationNodeBlendTree", "inherits": "AnimationRootNode" }, { "name": "AnimationNodeOneShot", "inherits": "AnimationNode" }, { "name": "AnimationNodeOutput", "inherits": "AnimationNode" }, { "name": "AnimationNodeStateMachine", "inherits": "AnimationRootNode" }, { "name": "AnimationNodeStateMachinePlayback", "inherits": "Resource" }, { "name": "AnimationNodeStateMachineTransition", "inherits": "Resource" }, { "name": "AnimationNodeTimeScale", "inherits": "AnimationNode" }, { "name": "AnimationNodeTimeSeek", "inherits": "AnimationNode" }, { "name": "AnimationNodeTransition", "inherits": "AnimationNode" }, { "name": "AnimationPlayer", "inherits": "Node" }, { "name": "AnimationRootNode", "inherits": "AnimationNode" }, { "name": "AnimationTrackEditPlugin", "inherits": "RefCounted" }, { "name": "AnimationTree", "inherits": "Node" }, { "name": "Area2D", "inherits": "CollisionObject2D" }, { "name": "Area3D", "inherits": "CollisionObject3D" }, { "name": "Array", "inherits": "" }, { "name": "ArrayMesh", "inherits": "Mesh" }, { "name": "AspectRatioContainer", "inherits": "Container" }, { "name": "AtlasTexture", "inherits": "Texture2D" }, { "name": "AudioBusLayout", "inherits": "Resource" }, { "name": "AudioEffect", "inherits": "Resource" }, { "name": "AudioEffectAmplify", "inherits": "AudioEffect" }, { "name": "AudioEffectBandLimitFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectBandPassFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectCapture", "inherits": "AudioEffect" }, { "name": "AudioEffectChorus", "inherits": "AudioEffect" }, { "name": "AudioEffectCompressor", "inherits": "AudioEffect" }, { "name": "AudioEffectDelay", "inherits": "AudioEffect" }, { "name": "AudioEffectDistortion", "inherits": "AudioEffect" }, { "name": "AudioEffectEQ", "inherits": "AudioEffect" }, { "name": "AudioEffectEQ10", "inherits": "AudioEffectEQ" }, { "name": "AudioEffectEQ21", "inherits": "AudioEffectEQ" }, { "name": "AudioEffectEQ6", "inherits": "AudioEffectEQ" }, { "name": "AudioEffectFilter", "inherits": "AudioEffect" }, { "name": "AudioEffectHighPassFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectHighShelfFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectInstance", "inherits": "RefCounted" }, { "name": "AudioEffectLimiter", "inherits": "AudioEffect" }, { "name": "AudioEffectLowPassFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectLowShelfFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectNotchFilter", "inherits": "AudioEffectFilter" }, { "name": "AudioEffectPanner", "inherits": "AudioEffect" }, { "name": "AudioEffectPhaser", "inherits": "AudioEffect" }, { "name": "AudioEffectPitchShift", "inherits": "AudioEffect" }, { "name": "AudioEffectRecord", "inherits": "AudioEffect" }, { "name": "AudioEffectReverb", "inherits": "AudioEffect" }, { "name": "AudioEffectSpectrumAnalyzer", "inherits": "AudioEffect" }, { "name": "AudioEffectSpectrumAnalyzerInstance", "inherits": "AudioEffectInstance" }, { "name": "AudioEffectStereoEnhance", "inherits": "AudioEffect" }, { "name": "AudioListener2D", "inherits": "Node2D" }, { "name": "AudioListener3D", "inherits": "Node3D" }, { "name": "AudioServer", "inherits": "Object" }, { "name": "AudioStream", "inherits": "Resource" }, { "name": "AudioStreamGenerator", "inherits": "AudioStream" }, { "name": "AudioStreamGeneratorPlayback", "inherits": "AudioStreamPlaybackResampled" }, { "name": "AudioStreamMP3", "inherits": "AudioStream" }, { "name": "AudioStreamMicrophone", "inherits": "AudioStream" }, { "name": "AudioStreamOGGVorbis", "inherits": "AudioStream" }, { "name": "AudioStreamPlayback", "inherits": "RefCounted" }, { "name": "AudioStreamPlaybackOGGVorbis", "inherits": "AudioStreamPlaybackResampled" }, { "name": "AudioStreamPlaybackResampled", "inherits": "AudioStreamPlayback" }, { "name": "AudioStreamPlayer", "inherits": "Node" }, { "name": "AudioStreamPlayer2D", "inherits": "Node2D" }, { "name": "AudioStreamPlayer3D", "inherits": "Node3D" }, { "name": "AudioStreamRandomPitch", "inherits": "AudioStream" }, { "name": "AudioStreamSample", "inherits": "AudioStream" }, { "name": "BackBufferCopy", "inherits": "Node2D" }, { "name": "BaseButton", "inherits": "Control" }, { "name": "BaseCharacter", "inherits": "Node3D" }, { "name": "BaseMaterial3D", "inherits": "Material" }, { "name": "Basis", "inherits": "" }, { "name": "BitMap", "inherits": "Resource" }, { "name": "Bone2D", "inherits": "Node2D" }, { "name": "BoneAttachment3D", "inherits": "Node3D" }, { "name": "BoxContainer", "inherits": "Container" }, { "name": "BoxMesh", "inherits": "PrimitiveMesh" }, { "name": "BoxShape3D", "inherits": "Shape3D" }, { "name": "Button", "inherits": "BaseButton" }, { "name": "ButtonGroup", "inherits": "Resource" }, { "name": "CPUParticles2D", "inherits": "Node2D" }, { "name": "CPUParticles3D", "inherits": "GeometryInstance3D" }, { "name": "CSGBox3D", "inherits": "CSGPrimitive3D" }, { "name": "CSGCombiner3D", "inherits": "CSGShape3D" }, { "name": "CSGCylinder3D", "inherits": "CSGPrimitive3D" }, { "name": "CSGMesh3D", "inherits": "CSGPrimitive3D" }, { "name": "CSGPolygon3D", "inherits": "CSGPrimitive3D" }, { "name": "CSGPrimitive3D", "inherits": "CSGShape3D" }, { "name": "CSGShape3D", "inherits": "GeometryInstance3D" }, { "name": "CSGSphere3D", "inherits": "CSGPrimitive3D" }, { "name": "CSGTorus3D", "inherits": "CSGPrimitive3D" }, { "name": "Callable", "inherits": "" }, { "name": "CallbackTweener", "inherits": "Tweener" }, { "name": "Camera2D", "inherits": "Node2D" }, { "name": "Camera3D", "inherits": "Node3D" }, { "name": "CameraEffects", "inherits": "Resource" }, { "name": "CameraFeed", "inherits": "RefCounted" }, { "name": "CameraServer", "inherits": "Object" }, { "name": "CameraTexture", "inherits": "Texture2D" }, { "name": "CanvasGroup", "inherits": "Node2D" }, { "name": "CanvasItem", "inherits": "Node" }, { "name": "CanvasItemMaterial", "inherits": "Material" }, { "name": "CanvasLayer", "inherits": "Node" }, { "name": "CanvasModulate", "inherits": "Node2D" }, { "name": "CanvasTexture", "inherits": "Texture2D" }, { "name": "CapsuleMesh", "inherits": "PrimitiveMesh" }, { "name": "CapsuleShape2D", "inherits": "Shape2D" }, { "name": "CapsuleShape3D", "inherits": "Shape3D" }, { "name": "CenterContainer", "inherits": "Container" }, { "name": "CharFXTransform", "inherits": "RefCounted" }, { "name": "CharacterBody2D", "inherits": "PhysicsBody2D" }, { "name": "CharacterBody3D", "inherits": "PhysicsBody3D" }, { "name": "CharacterStats", "inherits": "Resource" }, { "name": "CheckBox", "inherits": "Button" }, { "name": "CheckButton", "inherits": "Button" }, { "name": "CircleShape2D", "inherits": "Shape2D" }, { "name": "ClassDB", "inherits": "Object" }, { "name": "CodeEdit", "inherits": "TextEdit" }, { "name": "CodeHighlighter", "inherits": "SyntaxHighlighter" }, { "name": "CollisionObject2D", "inherits": "Node2D" }, { "name": "CollisionObject3D", "inherits": "Node3D" }, { "name": "CollisionPolygon2D", "inherits": "Node2D" }, { "name": "CollisionPolygon3D", "inherits": "Node3D" }, { "name": "CollisionShape2D", "inherits": "Node2D" }, { "name": "CollisionShape3D", "inherits": "Node3D" }, { "name": "Color", "inherits": "" }, { "name": "ColorPicker", "inherits": "BoxContainer" }, { "name": "ColorPickerButton", "inherits": "Button" }, { "name": "ColorRect", "inherits": "Control" }, { "name": "CombatQueue", "inherits": "Node3D" }, { "name": "ConcavePolygonShape2D", "inherits": "Shape2D" }, { "name": "ConcavePolygonShape3D", "inherits": "Shape3D" }, { "name": "ConeTwistJoint3D", "inherits": "Joint3D" }, { "name": "ConfigFile", "inherits": "RefCounted" }, { "name": "ConfirmationDialog", "inherits": "AcceptDialog" }, { "name": "Container", "inherits": "Control" }, { "name": "Control", "inherits": "CanvasItem" }, { "name": "ConvexPolygonShape2D", "inherits": "Shape2D" }, { "name": "ConvexPolygonShape3D", "inherits": "Shape3D" }, { "name": "Crypto", "inherits": "RefCounted" }, { "name": "CryptoKey", "inherits": "Resource" }, { "name": "Cubemap", "inherits": "ImageTextureLayered" }, { "name": "CubemapArray", "inherits": "ImageTextureLayered" }, { "name": "Curve", "inherits": "Resource" }, { "name": "Curve2D", "inherits": "Resource" }, { "name": "Curve3D", "inherits": "Resource" }, { "name": "CurveTexture", "inherits": "Texture2D" }, { "name": "CurveXYZTexture", "inherits": "Texture2D" }, { "name": "CylinderMesh", "inherits": "PrimitiveMesh" }, { "name": "CylinderShape3D", "inherits": "Shape3D" }, { "name": "DTLSServer", "inherits": "RefCounted" }, { "name": "DampedSpringJoint2D", "inherits": "Joint2D" }, { "name": "Decal", "inherits": "VisualInstance3D" }, { "name": "Dictionary", "inherits": "" }, { "name": "DirectionalLight2D", "inherits": "Light2D" }, { "name": "DirectionalLight3D", "inherits": "Light3D" }, { "name": "Directory", "inherits": "RefCounted" }, { "name": "DisplayServer", "inherits": "Object" }, { "name": "ENetConnection", "inherits": "RefCounted" }, { "name": "ENetMultiplayerPeer", "inherits": "MultiplayerPeer" }, { "name": "ENetPacketPeer", "inherits": "PacketPeer" }, { "name": "EditorCommandPalette", "inherits": "ConfirmationDialog" }, { "name": "EditorDebuggerPlugin", "inherits": "Control" }, { "name": "EditorExportPlugin", "inherits": "RefCounted" }, { "name": "EditorFeatureProfile", "inherits": "RefCounted" }, { "name": "EditorFileDialog", "inherits": "ConfirmationDialog" }, { "name": "EditorFileSystem", "inherits": "Node" }, { "name": "EditorFileSystemDirectory", "inherits": "Object" }, { "name": "EditorImportPlugin", "inherits": "ResourceImporter" }, { "name": "EditorInspector", "inherits": "ScrollContainer" }, { "name": "EditorInspectorPlugin", "inherits": "RefCounted" }, { "name": "EditorInterface", "inherits": "Node" }, { "name": "EditorNode3DGizmo", "inherits": "Node3DGizmo" }, { "name": "EditorNode3DGizmoPlugin", "inherits": "Resource" }, { "name": "EditorPaths", "inherits": "Object" }, { "name": "EditorPlugin", "inherits": "Node" }, { "name": "EditorProperty", "inherits": "Container" }, { "name": "EditorResourceConversionPlugin", "inherits": "RefCounted" }, { "name": "EditorResourcePicker", "inherits": "HBoxContainer" }, { "name": "EditorResourcePreview", "inherits": "Node" }, { "name": "EditorResourcePreviewGenerator", "inherits": "RefCounted" }, { "name": "EditorSceneFormatImporter", "inherits": "RefCounted" }, { "name": "EditorSceneFormatImporterFBX", "inherits": "EditorSceneFormatImporter" }, { "name": "EditorSceneFormatImporterGLTF", "inherits": "EditorSceneFormatImporter" }, { "name": "EditorScenePostImport", "inherits": "RefCounted" }, { "name": "EditorScenePostImportPlugin", "inherits": "RefCounted" }, { "name": "EditorScript", "inherits": "RefCounted" }, { "name": "EditorScriptPicker", "inherits": "EditorResourcePicker" }, { "name": "EditorSelection", "inherits": "Object" }, { "name": "EditorSettings", "inherits": "Resource" }, { "name": "EditorSpinSlider", "inherits": "Range" }, { "name": "EditorSyntaxHighlighter", "inherits": "SyntaxHighlighter" }, { "name": "EditorTranslationParserPlugin", "inherits": "RefCounted" }, { "name": "EditorVCSInterface", "inherits": "Object" }, { "name": "EncodedObjectAsID", "inherits": "RefCounted" }, { "name": "Engine", "inherits": "Object" }, { "name": "EngineDebugger", "inherits": "Object" }, { "name": "Environment", "inherits": "Resource" }, { "name": "Expression", "inherits": "RefCounted" }, { "name": "File", "inherits": "RefCounted" }, { "name": "FileDialog", "inherits": "ConfirmationDialog" }, { "name": "FileSystemDock", "inherits": "VBoxContainer" }, { "name": "FlowContainer", "inherits": "Container" }, { "name": "FogMaterial", "inherits": "Material" }, { "name": "FogVolume", "inherits": "VisualInstance3D" }, { "name": "Font", "inherits": "Resource" }, { "name": "FontData", "inherits": "Resource" }, { "name": "GDNative", "inherits": "RefCounted" }, { "name": "GDNativeLibrary", "inherits": "Resource" }, { "name": "GDScript", "inherits": "Script" }, { "name": "GLTFAccessor", "inherits": "Resource" }, { "name": "GLTFAnimation", "inherits": "Resource" }, { "name": "GLTFBufferView", "inherits": "Resource" }, { "name": "GLTFCamera", "inherits": "Resource" }, { "name": "GLTFDocument", "inherits": "Resource" }, { "name": "GLTFDocumentExtension", "inherits": "Resource" }, { "name": "GLTFDocumentExtensionConvertImporterMesh", "inherits": "GLTFDocumentExtension" }, { "name": "GLTFLight", "inherits": "Resource" }, { "name": "GLTFMesh", "inherits": "Resource" }, { "name": "GLTFNode", "inherits": "Resource" }, { "name": "GLTFSkeleton", "inherits": "Resource" }, { "name": "GLTFSkin", "inherits": "Resource" }, { "name": "GLTFSpecGloss", "inherits": "Resource" }, { "name": "GLTFState", "inherits": "Resource" }, { "name": "GLTFTexture", "inherits": "Resource" }, { "name": "GPUParticles2D", "inherits": "Node2D" }, { "name": "GPUParticles3D", "inherits": "GeometryInstance3D" }, { "name": "GPUParticlesAttractor3D", "inherits": "VisualInstance3D" }, { "name": "GPUParticlesAttractorBox3D", "inherits": "GPUParticlesAttractor3D" }, { "name": "GPUParticlesAttractorSphere3D", "inherits": "GPUParticlesAttractor3D" }, { "name": "GPUParticlesAttractorVectorField3D", "inherits": "GPUParticlesAttractor3D" }, { "name": "GPUParticlesCollision3D", "inherits": "VisualInstance3D" }, { "name": "GPUParticlesCollisionBox3D", "inherits": "GPUParticlesCollision3D" }, { "name": "GPUParticlesCollisionHeightField3D", "inherits": "GPUParticlesCollision3D" }, { "name": "GPUParticlesCollisionSDF3D", "inherits": "GPUParticlesCollision3D" }, { "name": "GPUParticlesCollisionSphere3D", "inherits": "GPUParticlesCollision3D" }, { "name": "Generic6DOFJoint3D", "inherits": "Joint3D" }, { "name": "Geometry2D", "inherits": "Object" }, { "name": "Geometry3D", "inherits": "Object" }, { "name": "GeometryInstance3D", "inherits": "VisualInstance3D" }, { "name": "Gradient", "inherits": "Resource" }, { "name": "GradientTexture1D", "inherits": "Texture2D" }, { "name": "GradientTexture2D", "inherits": "Texture2D" }, { "name": "GraphEdit", "inherits": "Control" }, { "name": "GraphNode", "inherits": "Container" }, { "name": "GridContainer", "inherits": "Container" }, { "name": "GridMap", "inherits": "Node3D" }, { "name": "GrooveJoint2D", "inherits": "Joint2D" }, { "name": "HBoxContainer", "inherits": "BoxContainer" }, { "name": "HFlowContainer", "inherits": "FlowContainer" }, { "name": "HMACContext", "inherits": "RefCounted" }, { "name": "HScrollBar", "inherits": "ScrollBar" }, { "name": "HSeparator", "inherits": "Separator" }, { "name": "HSlider", "inherits": "Slider" }, { "name": "HSplitContainer", "inherits": "SplitContainer" }, { "name": "HTTPClient", "inherits": "RefCounted" }, { "name": "HTTPRequest", "inherits": "Node" }, { "name": "HashingContext", "inherits": "RefCounted" }, { "name": "HeightMapShape3D", "inherits": "Shape3D" }, { "name": "HingeJoint3D", "inherits": "Joint3D" }, { "name": "IP", "inherits": "Object" }, { "name": "Image", "inherits": "Resource" }, { "name": "ImageTexture", "inherits": "Texture2D" }, { "name": "ImageTexture3D", "inherits": "Texture3D" }, { "name": "ImageTextureLayered", "inherits": "TextureLayered" }, { "name": "ImmediateMesh", "inherits": "Mesh" }, { "name": "ImporterMesh", "inherits": "Resource" }, { "name": "ImporterMeshInstance3D", "inherits": "Node3D" }, { "name": "Input", "inherits": "Object" }, { "name": "InputEvent", "inherits": "Resource" }, { "name": "InputEventAction", "inherits": "InputEvent" }, { "name": "InputEventFromWindow", "inherits": "InputEvent" }, { "name": "InputEventGesture", "inherits": "InputEventWithModifiers" }, { "name": "InputEventJoypadButton", "inherits": "InputEvent" }, { "name": "InputEventJoypadMotion", "inherits": "InputEvent" }, { "name": "InputEventKey", "inherits": "InputEventWithModifiers" }, { "name": "InputEventMIDI", "inherits": "InputEvent" }, { "name": "InputEventMagnifyGesture", "inherits": "InputEventGesture" }, { "name": "InputEventMouse", "inherits": "InputEventWithModifiers" }, { "name": "InputEventMouseButton", "inherits": "InputEventMouse" }, { "name": "InputEventMouseMotion", "inherits": "InputEventMouse" }, { "name": "InputEventPanGesture", "inherits": "InputEventGesture" }, { "name": "InputEventScreenDrag", "inherits": "InputEventFromWindow" }, { "name": "InputEventScreenTouch", "inherits": "InputEventFromWindow" }, { "name": "InputEventShortcut", "inherits": "InputEvent" }, { "name": "InputEventWithModifiers", "inherits": "InputEventFromWindow" }, { "name": "InputMap", "inherits": "Object" }, { "name": "InstancePlaceholder", "inherits": "Node" }, { "name": "IntervalTweener", "inherits": "Tweener" }, { "name": "ItemList", "inherits": "Control" }, { "name": "JNISingleton", "inherits": "Object" }, { "name": "JSON", "inherits": "RefCounted" }, { "name": "JSONRPC", "inherits": "Object" }, { "name": "JavaClass", "inherits": "RefCounted" }, { "name": "JavaClassWrapper", "inherits": "Object" }, { "name": "JavaScript", "inherits": "Object" }, { "name": "JavaScriptObject", "inherits": "RefCounted" }, { "name": "Joint2D", "inherits": "Node2D" }, { "name": "Joint3D", "inherits": "Node3D" }, { "name": "KinematicCollision2D", "inherits": "RefCounted" }, { "name": "KinematicCollision3D", "inherits": "RefCounted" }, { "name": "Label", "inherits": "Control" }, { "name": "Light2D", "inherits": "Node2D" }, { "name": "Light3D", "inherits": "VisualInstance3D" }, { "name": "LightOccluder2D", "inherits": "Node2D" }, { "name": "LightmapGI", "inherits": "VisualInstance3D" }, { "name": "LightmapGIData", "inherits": "Resource" }, { "name": "LightmapProbe", "inherits": "Node3D" }, { "name": "Lightmapper", "inherits": "RefCounted" }, { "name": "LightmapperRD", "inherits": "Lightmapper" }, { "name": "Line2D", "inherits": "Node2D" }, { "name": "LineEdit", "inherits": "Control" }, { "name": "LinkButton", "inherits": "BaseButton" }, { "name": "MainLoop", "inherits": "Object" }, { "name": "MarginContainer", "inherits": "Container" }, { "name": "Marshalls", "inherits": "Object" }, { "name": "Material", "inherits": "Resource" }, { "name": "MenuButton", "inherits": "Button" }, { "name": "Mesh", "inherits": "Resource" }, { "name": "MeshDataTool", "inherits": "RefCounted" }, { "name": "MeshInstance2D", "inherits": "Node2D" }, { "name": "MeshInstance3D", "inherits": "GeometryInstance3D" }, { "name": "MeshLibrary", "inherits": "Resource" }, { "name": "MeshTexture", "inherits": "Texture2D" }, { "name": "MethodTweener", "inherits": "Tweener" }, { "name": "MobileVRInterface", "inherits": "XRInterface" }, { "name": "MultiMesh", "inherits": "Resource" }, { "name": "MultiMeshInstance2D", "inherits": "Node2D" }, { "name": "MultiMeshInstance3D", "inherits": "GeometryInstance3D" }, { "name": "MultiplayerAPI", "inherits": "RefCounted" }, { "name": "MultiplayerPeer", "inherits": "PacketPeer" }, { "name": "MultiplayerPeerExtension", "inherits": "MultiplayerPeer" }, { "name": "MultiplayerReplicator", "inherits": "Object" }, { "name": "Mutex", "inherits": "RefCounted" }, { "name": "NativeExtension", "inherits": "Resource" }, { "name": "NativeExtensionManager", "inherits": "Object" }, { "name": "NativeScript", "inherits": "Script" }, { "name": "NavigationAgent2D", "inherits": "Node" }, { "name": "NavigationAgent3D", "inherits": "Node" }, { "name": "NavigationMesh", "inherits": "Resource" }, { "name": "NavigationMeshGenerator", "inherits": "Object" }, { "name": "NavigationObstacle2D", "inherits": "Node" }, { "name": "NavigationObstacle3D", "inherits": "Node" }, { "name": "NavigationPolygon", "inherits": "Resource" }, { "name": "NavigationRegion2D", "inherits": "Node2D" }, { "name": "NavigationRegion3D", "inherits": "Node3D" }, { "name": "NavigationServer2D", "inherits": "Object" }, { "name": "NavigationServer3D", "inherits": "Object" }, { "name": "NinePatchRect", "inherits": "Control" }, { "name": "Node", "inherits": "Object" }, { "name": "Node2D", "inherits": "CanvasItem" }, { "name": "Node3D", "inherits": "Node" }, { "name": "Node3DGizmo", "inherits": "RefCounted" }, { "name": "NodePath", "inherits": "" }, { "name": "NoiseTexture", "inherits": "Texture2D" }, { "name": "OGGPacketSequence", "inherits": "Resource" }, { "name": "OGGPacketSequencePlayback", "inherits": "RefCounted" }, { "name": "ORMMaterial3D", "inherits": "BaseMaterial3D" }, { "name": "OS", "inherits": "Object" }, { "name": "Object", "inherits": "" }, { "name": "Occluder3D", "inherits": "Resource" }, { "name": "OccluderInstance3D", "inherits": "Node3D" }, { "name": "OccluderPolygon2D", "inherits": "Resource" }, { "name": "OmniLight3D", "inherits": "Light3D" }, { "name": "OpenSimplexNoise", "inherits": "Resource" }, { "name": "OptimizedTranslation", "inherits": "Translation" }, { "name": "OptionButton", "inherits": "Button" }, { "name": "PCKPacker", "inherits": "RefCounted" }, { "name": "PackedByteArray", "inherits": "" }, { "name": "PackedColorArray", "inherits": "" }, { "name": "PackedDataContainer", "inherits": "Resource" }, { "name": "PackedDataContainerRef", "inherits": "RefCounted" }, { "name": "PackedFloat32Array", "inherits": "" }, { "name": "PackedFloat64Array", "inherits": "" }, { "name": "PackedInt32Array", "inherits": "" }, { "name": "PackedInt64Array", "inherits": "" }, { "name": "PackedScene", "inherits": "Resource" }, { "name": "PackedStringArray", "inherits": "" }, { "name": "PackedVector2Array", "inherits": "" }, { "name": "PackedVector3Array", "inherits": "" }, { "name": "PacketPeer", "inherits": "RefCounted" }, { "name": "PacketPeerDTLS", "inherits": "PacketPeer" }, { "name": "PacketPeerExtension", "inherits": "PacketPeer" }, { "name": "PacketPeerStream", "inherits": "PacketPeer" }, { "name": "PacketPeerUDP", "inherits": "PacketPeer" }, { "name": "Panel", "inherits": "Control" }, { "name": "PanelContainer", "inherits": "Container" }, { "name": "PanoramaSkyMaterial", "inherits": "Material" }, { "name": "ParallaxBackground", "inherits": "CanvasLayer" }, { "name": "ParallaxLayer", "inherits": "Node2D" }, { "name": "ParticlesMaterial", "inherits": "Material" }, { "name": "Path2D", "inherits": "Node2D" }, { "name": "Path3D", "inherits": "Node3D" }, { "name": "PathFollow2D", "inherits": "Node2D" }, { "name": "PathFollow3D", "inherits": "Node3D" }, { "name": "Performance", "inherits": "Object" }, { "name": "PhysicalBone2D", "inherits": "RigidDynamicBody2D" }, { "name": "PhysicalBone3D", "inherits": "PhysicsBody3D" }, { "name": "PhysicalSkyMaterial", "inherits": "Material" }, { "name": "PhysicsBody2D", "inherits": "CollisionObject2D" }, { "name": "PhysicsBody3D", "inherits": "CollisionObject3D" }, { "name": "PhysicsDirectBodyState2D", "inherits": "Object" }, { "name": "PhysicsDirectBodyState3D", "inherits": "Object" }, { "name": "PhysicsDirectSpaceState2D", "inherits": "Object" }, { "name": "PhysicsDirectSpaceState3D", "inherits": "Object" }, { "name": "PhysicsMaterial", "inherits": "Resource" }, { "name": "PhysicsPointQueryParameters2D", "inherits": "RefCounted" }, { "name": "PhysicsPointQueryParameters3D", "inherits": "RefCounted" }, { "name": "PhysicsRayQueryParameters2D", "inherits": "RefCounted" }, { "name": "PhysicsRayQueryParameters3D", "inherits": "RefCounted" }, { "name": "PhysicsServer2D", "inherits": "Object" }, { "name": "PhysicsServer3D", "inherits": "Object" }, { "name": "PhysicsShapeQueryParameters2D", "inherits": "RefCounted" }, { "name": "PhysicsShapeQueryParameters3D", "inherits": "RefCounted" }, { "name": "PhysicsTestMotionParameters2D", "inherits": "RefCounted" }, { "name": "PhysicsTestMotionParameters3D", "inherits": "RefCounted" }, { "name": "PhysicsTestMotionResult2D", "inherits": "RefCounted" }, { "name": "PhysicsTestMotionResult3D", "inherits": "RefCounted" }, { "name": "PinJoint2D", "inherits": "Joint2D" }, { "name": "PinJoint3D", "inherits": "Joint3D" }, { "name": "Plane", "inherits": "" }, { "name": "PlaneMesh", "inherits": "PrimitiveMesh" }, { "name": "PluginScript", "inherits": "Script" }, { "name": "PointLight2D", "inherits": "Light2D" }, { "name": "PointMesh", "inherits": "PrimitiveMesh" }, { "name": "Polygon2D", "inherits": "Node2D" }, { "name": "PolygonPathFinder", "inherits": "Resource" }, { "name": "Popup", "inherits": "Window" }, { "name": "PopupMenu", "inherits": "Popup" }, { "name": "PopupPanel", "inherits": "Popup" }, { "name": "Position2D", "inherits": "Node2D" }, { "name": "Position3D", "inherits": "Node3D" }, { "name": "PrimitiveMesh", "inherits": "Mesh" }, { "name": "PrismMesh", "inherits": "PrimitiveMesh" }, { "name": "ProceduralSkyMaterial", "inherits": "Material" }, { "name": "ProgressBar", "inherits": "Range" }, { "name": "ProjectSettings", "inherits": "Object" }, { "name": "PropertyTweener", "inherits": "Tweener" }, { "name": "ProxyTexture", "inherits": "Texture2D" }, { "name": "QuadMesh", "inherits": "PrimitiveMesh" }, { "name": "Quaternion", "inherits": "" }, { "name": "RDAttachmentFormat", "inherits": "RefCounted" }, { "name": "RDFramebufferPass", "inherits": "RefCounted" }, { "name": "RDPipelineColorBlendState", "inherits": "RefCounted" }, { "name": "RDPipelineColorBlendStateAttachment", "inherits": "RefCounted" }, { "name": "RDPipelineDepthStencilState", "inherits": "RefCounted" }, { "name": "RDPipelineMultisampleState", "inherits": "RefCounted" }, { "name": "RDPipelineRasterizationState", "inherits": "RefCounted" }, { "name": "RDPipelineSpecializationConstant", "inherits": "RefCounted" }, { "name": "RDSamplerState", "inherits": "RefCounted" }, { "name": "RDShaderFile", "inherits": "Resource" }, { "name": "RDShaderSPIRV", "inherits": "Resource" }, { "name": "RDShaderSource", "inherits": "RefCounted" }, { "name": "RDTextureFormat", "inherits": "RefCounted" }, { "name": "RDTextureView", "inherits": "RefCounted" }, { "name": "RDUniform", "inherits": "RefCounted" }, { "name": "RDVertexAttribute", "inherits": "RefCounted" }, { "name": "RID", "inherits": "" }, { "name": "RandomNumberGenerator", "inherits": "RefCounted" }, { "name": "Range", "inherits": "Control" }, { "name": "RayCast2D", "inherits": "Node2D" }, { "name": "RayCast3D", "inherits": "Node3D" }, { "name": "Rect2", "inherits": "" }, { "name": "Rect2i", "inherits": "" }, { "name": "RectangleShape2D", "inherits": "Shape2D" }, { "name": "RefCounted", "inherits": "Object" }, { "name": "ReferenceRect", "inherits": "Control" }, { "name": "ReflectionProbe", "inherits": "VisualInstance3D" }, { "name": "RegEx", "inherits": "RefCounted" }, { "name": "RegExMatch", "inherits": "RefCounted" }, { "name": "RemoteTransform2D", "inherits": "Node2D" }, { "name": "RemoteTransform3D", "inherits": "Node3D" }, { "name": "RenderingDevice", "inherits": "Object" }, { "name": "RenderingServer", "inherits": "Object" }, { "name": "Resource", "inherits": "RefCounted" }, { "name": "ResourceFormatLoader", "inherits": "RefCounted" }, { "name": "ResourceFormatSaver", "inherits": "RefCounted" }, { "name": "ResourceImporter", "inherits": "RefCounted" }, { "name": "ResourceLoader", "inherits": "Object" }, { "name": "ResourcePreloader", "inherits": "Node" }, { "name": "ResourceSaver", "inherits": "Object" }, { "name": "ResourceUID", "inherits": "Object" }, { "name": "RibbonTrailMesh", "inherits": "PrimitiveMesh" }, { "name": "RichTextEffect", "inherits": "Resource" }, { "name": "RichTextLabel", "inherits": "Control" }, { "name": "RigidDynamicBody2D", "inherits": "PhysicsBody2D" }, { "name": "RigidDynamicBody3D", "inherits": "PhysicsBody3D" }, { "name": "RootMotionView", "inherits": "VisualInstance3D" }, { "name": "SceneState", "inherits": "RefCounted" }, { "name": "SceneTree", "inherits": "MainLoop" }, { "name": "SceneTreeTimer", "inherits": "RefCounted" }, { "name": "Script", "inherits": "Resource" }, { "name": "ScriptCreateDialog", "inherits": "ConfirmationDialog" }, { "name": "ScriptEditor", "inherits": "PanelContainer" }, { "name": "ScriptEditorBase", "inherits": "VBoxContainer" }, { "name": "ScrollBar", "inherits": "Range" }, { "name": "ScrollContainer", "inherits": "Container" }, { "name": "SegmentShape2D", "inherits": "Shape2D" }, { "name": "Semaphore", "inherits": "RefCounted" }, { "name": "SeparationRayShape2D", "inherits": "Shape2D" }, { "name": "SeparationRayShape3D", "inherits": "Shape3D" }, { "name": "Separator", "inherits": "Control" }, { "name": "Shader", "inherits": "Resource" }, { "name": "ShaderGlobalsOverride", "inherits": "Node" }, { "name": "ShaderMaterial", "inherits": "Material" }, { "name": "Shape2D", "inherits": "Resource" }, { "name": "Shape3D", "inherits": "Resource" }, { "name": "ShapeCast2D", "inherits": "Node2D" }, { "name": "Shortcut", "inherits": "Resource" }, { "name": "Signal", "inherits": "" }, { "name": "Skeleton2D", "inherits": "Node2D" }, { "name": "Skeleton3D", "inherits": "Node3D" }, { "name": "SkeletonIK3D", "inherits": "Node" }, { "name": "SkeletonModification2D", "inherits": "Resource" }, { "name": "SkeletonModification2DCCDIK", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DFABRIK", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DJiggle", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DLookAt", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DPhysicalBones", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DStackHolder", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification2DTwoBoneIK", "inherits": "SkeletonModification2D" }, { "name": "SkeletonModification3D", "inherits": "Resource" }, { "name": "SkeletonModification3DCCDIK", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModification3DFABRIK", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModification3DJiggle", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModification3DLookAt", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModification3DStackHolder", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModification3DTwoBoneIK", "inherits": "SkeletonModification3D" }, { "name": "SkeletonModificationStack2D", "inherits": "Resource" }, { "name": "SkeletonModificationStack3D", "inherits": "Resource" }, { "name": "Skin", "inherits": "Resource" }, { "name": "SkinReference", "inherits": "RefCounted" }, { "name": "Sky", "inherits": "Resource" }, { "name": "Slider", "inherits": "Range" }, { "name": "SliderJoint3D", "inherits": "Joint3D" }, { "name": "SoftDynamicBody3D", "inherits": "MeshInstance3D" }, { "name": "SphereMesh", "inherits": "PrimitiveMesh" }, { "name": "SphereShape3D", "inherits": "Shape3D" }, { "name": "SpinBox", "inherits": "Range" }, { "name": "SplitContainer", "inherits": "Container" }, { "name": "SpotLight3D", "inherits": "Light3D" }, { "name": "SpringArm3D", "inherits": "Node3D" }, { "name": "Sprite2D", "inherits": "Node2D" }, { "name": "Sprite3D", "inherits": "SpriteBase3D" }, { "name": "SpriteBase3D", "inherits": "GeometryInstance3D" }, { "name": "SpriteFrames", "inherits": "Resource" }, { "name": "StandardMaterial3D", "inherits": "BaseMaterial3D" }, { "name": "StaticBody2D", "inherits": "PhysicsBody2D" }, { "name": "StaticBody3D", "inherits": "PhysicsBody3D" }, { "name": "StreamCubemap", "inherits": "StreamTextureLayered" }, { "name": "StreamCubemapArray", "inherits": "StreamTextureLayered" }, { "name": "StreamPeer", "inherits": "RefCounted" }, { "name": "StreamPeerBuffer", "inherits": "StreamPeer" }, { "name": "StreamPeerExtension", "inherits": "StreamPeer" }, { "name": "StreamPeerSSL", "inherits": "StreamPeer" }, { "name": "StreamPeerTCP", "inherits": "StreamPeer" }, { "name": "StreamTexture2D", "inherits": "Texture2D" }, { "name": "StreamTexture2DArray", "inherits": "StreamTextureLayered" }, { "name": "StreamTexture3D", "inherits": "Texture3D" }, { "name": "StreamTextureLayered", "inherits": "TextureLayered" }, { "name": "String", "inherits": "" }, { "name": "StringName", "inherits": "" }, { "name": "StyleBox", "inherits": "Resource" }, { "name": "StyleBoxEmpty", "inherits": "StyleBox" }, { "name": "StyleBoxFlat", "inherits": "StyleBox" }, { "name": "StyleBoxLine", "inherits": "StyleBox" }, { "name": "StyleBoxTexture", "inherits": "StyleBox" }, { "name": "SubViewport", "inherits": "Viewport" }, { "name": "SubViewportContainer", "inherits": "Container" }, { "name": "SurfaceTool", "inherits": "RefCounted" }, { "name": "SyntaxHighlighter", "inherits": "Resource" }, { "name": "TCPServer", "inherits": "RefCounted" }, { "name": "TabBar", "inherits": "Control" }, { "name": "TabContainer", "inherits": "Container" }, { "name": "TextEdit", "inherits": "Control" }, { "name": "TextLine", "inherits": "RefCounted" }, { "name": "TextParagraph", "inherits": "RefCounted" }, { "name": "TextServer", "inherits": "RefCounted" }, { "name": "TextServerAdvanced", "inherits": "TextServer" }, { "name": "TextServerExtension", "inherits": "TextServer" }, { "name": "TextServerManager", "inherits": "Object" }, { "name": "Texture", "inherits": "Resource" }, { "name": "Texture2D", "inherits": "Texture" }, { "name": "Texture2DArray", "inherits": "ImageTextureLayered" }, { "name": "Texture3D", "inherits": "Texture" }, { "name": "TextureButton", "inherits": "BaseButton" }, { "name": "TextureLayered", "inherits": "Texture" }, { "name": "TextureProgressBar", "inherits": "Range" }, { "name": "TextureRect", "inherits": "Control" }, { "name": "Theme", "inherits": "Resource" }, { "name": "Thread", "inherits": "RefCounted" }, { "name": "TileData", "inherits": "Object" }, { "name": "TileMap", "inherits": "Node2D" }, { "name": "TileMapPattern", "inherits": "Resource" }, { "name": "TileSet", "inherits": "Resource" }, { "name": "TileSetAtlasSource", "inherits": "TileSetSource" }, { "name": "TileSetScenesCollectionSource", "inherits": "TileSetSource" }, { "name": "TileSetSource", "inherits": "Resource" }, { "name": "Time", "inherits": "Object" }, { "name": "Timer", "inherits": "Node" }, { "name": "TouchScreenButton", "inherits": "Node2D" }, { "name": "Transform2D", "inherits": "" }, { "name": "Transform3D", "inherits": "" }, { "name": "Translation", "inherits": "Resource" }, { "name": "TranslationServer", "inherits": "Object" }, { "name": "Tree", "inherits": "Control" }, { "name": "TreeItem", "inherits": "Object" }, { "name": "TriangleMesh", "inherits": "RefCounted" }, { "name": "TubeTrailMesh", "inherits": "PrimitiveMesh" }, { "name": "Tween", "inherits": "RefCounted" }, { "name": "Tweener", "inherits": "RefCounted" }, { "name": "UDPServer", "inherits": "RefCounted" }, { "name": "UPNP", "inherits": "RefCounted" }, { "name": "UPNPDevice", "inherits": "RefCounted" }, { "name": "UndoRedo", "inherits": "Object" }, { "name": "VBoxContainer", "inherits": "BoxContainer" }, { "name": "VFlowContainer", "inherits": "FlowContainer" }, { "name": "VScrollBar", "inherits": "ScrollBar" }, { "name": "VSeparator", "inherits": "Separator" }, { "name": "VSlider", "inherits": "Slider" }, { "name": "VSplitContainer", "inherits": "SplitContainer" }, { "name": "Variant", "inherits": "" }, { "name": "Vector2", "inherits": "" }, { "name": "Vector2i", "inherits": "" }, { "name": "Vector3", "inherits": "" }, { "name": "Vector3i", "inherits": "" }, { "name": "VehicleBody3D", "inherits": "RigidDynamicBody3D" }, { "name": "VehicleWheel3D", "inherits": "Node3D" }, { "name": "VelocityTracker3D", "inherits": "RefCounted" }, { "name": "VideoStream", "inherits": "Resource" }, { "name": "VideoStreamGDNative", "inherits": "VideoStream" }, { "name": "VideoStreamPlayer", "inherits": "Control" }, { "name": "VideoStreamTheora", "inherits": "VideoStream" }, { "name": "Viewport", "inherits": "Node" }, { "name": "ViewportTexture", "inherits": "Texture2D" }, { "name": "VisibleOnScreenEnabler2D", "inherits": "VisibleOnScreenNotifier2D" }, { "name": "VisibleOnScreenEnabler3D", "inherits": "VisibleOnScreenNotifier3D" }, { "name": "VisibleOnScreenNotifier2D", "inherits": "Node2D" }, { "name": "VisibleOnScreenNotifier3D", "inherits": "VisualInstance3D" }, { "name": "VisualInstance3D", "inherits": "Node3D" }, { "name": "VisualScript", "inherits": "Script" }, { "name": "VisualScriptBasicTypeConstant", "inherits": "VisualScriptNode" }, { "name": "VisualScriptBuiltinFunc", "inherits": "VisualScriptNode" }, { "name": "VisualScriptClassConstant", "inherits": "VisualScriptNode" }, { "name": "VisualScriptComment", "inherits": "VisualScriptNode" }, { "name": "VisualScriptComposeArray", "inherits": "VisualScriptLists" }, { "name": "VisualScriptCondition", "inherits": "VisualScriptNode" }, { "name": "VisualScriptConstant", "inherits": "VisualScriptNode" }, { "name": "VisualScriptConstructor", "inherits": "VisualScriptNode" }, { "name": "VisualScriptCustomNode", "inherits": "VisualScriptNode" }, { "name": "VisualScriptCustomNodes", "inherits": "Object" }, { "name": "VisualScriptDeconstruct", "inherits": "VisualScriptNode" }, { "name": "VisualScriptEmitSignal", "inherits": "VisualScriptNode" }, { "name": "VisualScriptEngineSingleton", "inherits": "VisualScriptNode" }, { "name": "VisualScriptExpression", "inherits": "VisualScriptNode" }, { "name": "VisualScriptFunction", "inherits": "VisualScriptNode" }, { "name": "VisualScriptFunctionCall", "inherits": "VisualScriptNode" }, { "name": "VisualScriptFunctionState", "inherits": "RefCounted" }, { "name": "VisualScriptGlobalConstant", "inherits": "VisualScriptNode" }, { "name": "VisualScriptIndexGet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptIndexSet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptInputAction", "inherits": "VisualScriptNode" }, { "name": "VisualScriptIterator", "inherits": "VisualScriptNode" }, { "name": "VisualScriptLists", "inherits": "VisualScriptNode" }, { "name": "VisualScriptLocalVar", "inherits": "VisualScriptNode" }, { "name": "VisualScriptLocalVarSet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptMathConstant", "inherits": "VisualScriptNode" }, { "name": "VisualScriptNode", "inherits": "Resource" }, { "name": "VisualScriptOperator", "inherits": "VisualScriptNode" }, { "name": "VisualScriptPreload", "inherits": "VisualScriptNode" }, { "name": "VisualScriptPropertyGet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptPropertySet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptResourcePath", "inherits": "VisualScriptNode" }, { "name": "VisualScriptReturn", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSceneNode", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSceneTree", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSelect", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSelf", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSequence", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSubCall", "inherits": "VisualScriptNode" }, { "name": "VisualScriptSwitch", "inherits": "VisualScriptNode" }, { "name": "VisualScriptTypeCast", "inherits": "VisualScriptNode" }, { "name": "VisualScriptVariableGet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptVariableSet", "inherits": "VisualScriptNode" }, { "name": "VisualScriptWhile", "inherits": "VisualScriptNode" }, { "name": "VisualScriptYield", "inherits": "VisualScriptNode" }, { "name": "VisualScriptYieldSignal", "inherits": "VisualScriptNode" }, { "name": "VisualShader", "inherits": "Shader" }, { "name": "VisualShaderNode", "inherits": "Resource" }, { "name": "VisualShaderNodeBillboard", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeBooleanConstant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeBooleanUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeClamp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeColorConstant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeColorFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeColorOp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeColorUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeComment", "inherits": "VisualShaderNodeResizableBase" }, { "name": "VisualShaderNodeCompare", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeConstant", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeCubemap", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeCubemapUniform", "inherits": "VisualShaderNodeTextureUniform" }, { "name": "VisualShaderNodeCurveTexture", "inherits": "VisualShaderNodeResizableBase" }, { "name": "VisualShaderNodeCurveXYZTexture", "inherits": "VisualShaderNodeResizableBase" }, { "name": "VisualShaderNodeCustom", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeDerivativeFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeDeterminant", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeDotProduct", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeExpression", "inherits": "VisualShaderNodeGroupBase" }, { "name": "VisualShaderNodeFaceForward", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeFloatConstant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeFloatFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeFloatOp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeFloatUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeFresnel", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeGlobalExpression", "inherits": "VisualShaderNodeExpression" }, { "name": "VisualShaderNodeGroupBase", "inherits": "VisualShaderNodeResizableBase" }, { "name": "VisualShaderNodeIf", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeInput", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeIntConstant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeIntFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeIntOp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeIntUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeIs", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeMix", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeMultiplyAdd", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeOuterProduct", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeOutput", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleAccelerator", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleBoxEmitter", "inherits": "VisualShaderNodeParticleEmitter" }, { "name": "VisualShaderNodeParticleConeVelocity", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleEmit", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleEmitter", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleMeshEmitter", "inherits": "VisualShaderNodeParticleEmitter" }, { "name": "VisualShaderNodeParticleMultiplyByAxisAngle", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleOutput", "inherits": "VisualShaderNodeOutput" }, { "name": "VisualShaderNodeParticleRandomness", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeParticleRingEmitter", "inherits": "VisualShaderNodeParticleEmitter" }, { "name": "VisualShaderNodeParticleSphereEmitter", "inherits": "VisualShaderNodeParticleEmitter" }, { "name": "VisualShaderNodeResizableBase", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeSDFRaymarch", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeSDFToScreenUV", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeSample3D", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeScreenUVToSDF", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeSmoothStep", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeStep", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeSwitch", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTexture", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTexture2DArray", "inherits": "VisualShaderNodeSample3D" }, { "name": "VisualShaderNodeTexture2DArrayUniform", "inherits": "VisualShaderNodeTextureUniform" }, { "name": "VisualShaderNodeTexture3D", "inherits": "VisualShaderNodeSample3D" }, { "name": "VisualShaderNodeTexture3DUniform", "inherits": "VisualShaderNodeTextureUniform" }, { "name": "VisualShaderNodeTextureSDF", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTextureSDFNormal", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTextureUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeTextureUniformTriplanar", "inherits": "VisualShaderNodeTextureUniform" }, { "name": "VisualShaderNodeTransformCompose", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTransformConstant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeTransformDecompose", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTransformFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTransformOp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeTransformUniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeTransformVecMult", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeUVFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeUniform", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeUniformRef", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVec3Constant", "inherits": "VisualShaderNodeConstant" }, { "name": "VisualShaderNodeVec3Uniform", "inherits": "VisualShaderNodeUniform" }, { "name": "VisualShaderNodeVectorCompose", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorDecompose", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorDistance", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorFunc", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorLen", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorOp", "inherits": "VisualShaderNode" }, { "name": "VisualShaderNodeVectorRefract", "inherits": "VisualShaderNode" }, { "name": "VoxelGI", "inherits": "VisualInstance3D" }, { "name": "VoxelGIData", "inherits": "Resource" }, { "name": "WeakRef", "inherits": "RefCounted" }, { "name": "WebRTCDataChannel", "inherits": "PacketPeer" }, { "name": "WebRTCDataChannelExtension", "inherits": "WebRTCDataChannel" }, { "name": "WebRTCMultiplayerPeer", "inherits": "MultiplayerPeer" }, { "name": "WebRTCPeerConnection", "inherits": "RefCounted" }, { "name": "WebRTCPeerConnectionExtension", "inherits": "WebRTCPeerConnection" }, { "name": "WebSocketClient", "inherits": "WebSocketMultiplayerPeer" }, { "name": "WebSocketMultiplayerPeer", "inherits": "MultiplayerPeer" }, { "name": "WebSocketPeer", "inherits": "PacketPeer" }, { "name": "WebSocketServer", "inherits": "WebSocketMultiplayerPeer" }, { "name": "WebXRInterface", "inherits": "XRInterface" }, { "name": "Window", "inherits": "Viewport" }, { "name": "World2D", "inherits": "Resource" }, { "name": "World3D", "inherits": "Resource" }, { "name": "WorldBoundaryShape2D", "inherits": "Shape2D" }, { "name": "WorldBoundaryShape3D", "inherits": "Shape3D" }, { "name": "WorldEnvironment", "inherits": "Node" }, { "name": "X509Certificate", "inherits": "Resource" }, { "name": "XMLParser", "inherits": "RefCounted" }, { "name": "XRAnchor3D", "inherits": "XRNode3D" }, { "name": "XRCamera3D", "inherits": "Camera3D" }, { "name": "XRController3D", "inherits": "XRNode3D" }, { "name": "XRInterface", "inherits": "RefCounted" }, { "name": "XRInterfaceExtension", "inherits": "XRInterface" }, { "name": "XRNode3D", "inherits": "Node3D" }, { "name": "XROrigin3D", "inherits": "Node3D" }, { "name": "XRPose", "inherits": "RefCounted" }, { "name": "XRPositionalTracker", "inherits": "RefCounted" }, { "name": "XRServer", "inherits": "Object" }, { "name": "bool", "inherits": "" }, { "name": "float", "inherits": "" }, { "name": "int", "inherits": "" } ] } [Trace - 07:09:50 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "diagnostics": [ { "source": "gdscript", "severity": 2, "range": { "start": { "line": 5, "character": 0 }, "end": { "line": 5, "character": 21 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_data' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 6, "character": 0 }, "end": { "line": 6, "character": 25 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_actor' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 7, "character": 0 }, "end": { "line": 7, "character": 69 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_targets' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'data' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_data'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'actor' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_actor'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'targets' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_targets'", "code": 7 } ] } [Trace - 07:09:50 PM] Received notification 'textDocument/publishDiagnostics'. Params: { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "diagnostics": [ { "source": "gdscript", "severity": 2, "range": { "start": { "line": 5, "character": 0 }, "end": { "line": 5, "character": 21 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_data' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 6, "character": 0 }, "end": { "line": 6, "character": 25 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_actor' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 7, "character": 0 }, "end": { "line": 7, "character": 69 } }, "message": "(UNUSED_PRIVATE_CLASS_VARIABLE): The class variable '_targets' is declared but never used in the script.", "code": 6 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'data' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_data'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'actor' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_actor'", "code": 7 }, { "source": "gdscript", "severity": 2, "range": { "start": { "line": 9, "character": 0 }, "end": { "line": 9, "character": 35 } }, "message": "(UNUSED_PARAMETER): The parameter 'targets' is never used in the function '_init'. If this is intended, prefix it with an underscore: '_targets'", "code": 7 } ] } [Trace - 07:09:50 PM] Received response 'textDocument/documentLink - (16)' in 309ms. Result: [] [Trace - 07:09:50 PM] Sending notification '$/cancelRequest'. Params: { "id": 17 } [Trace - 07:09:50 PM] Sending request 'textDocument/documentLink - (18)'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd" } } [Trace - 07:09:50 PM] Sending notification 'textDocument/didChange'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "version": 16 }, "contentChanges": [ { "text": "class_name Action\nextends RefCounted\n\nsignal finished\n\nvar _data: ActionData\nvar _actor: BaseCharacter\nvar _targets := [] # TODO: Can I somehow type array of BaseCharacters\n\nfunc _init(data, actor, targets: ):\n pass\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } ] } [Trace - 07:09:50 PM] Sending request 'textDocument/documentLink - (19)'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd" } } [Trace - 07:09:50 PM] Received response 'nil - (17)' in 0ms. Result: [] [Trace - 07:09:51 PM] Sending notification '$/cancelRequest'. Params: { "id": 19 } [Trace - 07:09:51 PM] Sending notification '$/cancelRequest'. Params: { "id": 18 } [Trace - 07:09:51 PM] Sending request 'textDocument/documentLink - (20)'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd" } } [Trace - 07:09:51 PM] Sending notification 'textDocument/didChange'. Params: { "textDocument": { "uri": "file:///home/amatrelan/Projects/DarkCrystal/godot4.0/src/combat/Actions/Action.gd", "version": 31 }, "contentChanges": [ { "text": "class_name Action\nextends RefCounted\n\nsignal finished\n\nvar _data: ActionData\nvar _actor: BaseCharacter\nvar _targets := [] # TODO: Can I somehow type array of BaseCharacters\n\nfunc _init(data, actor, targets: ):\n pass\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" } ] } [Trace - 07:09:53 PM] Sending notification '$/cancelRequest'. Params: { "id": 20 } ```
Amatrelan commented 2 years ago

One new thing, type defining in parameters isn't required for it to crash.

func _init(data, actor, targets):
    pass

Also causes it to crash.

But if I change the line to

func _init(_dataa, _actora, _targetsa): # So that there isn't any errors.
    pass

Only adding underscores to parameters causes them to shadow values which also crashes editor.

Amatrelan commented 2 years ago

Clean Linux install and still crashes on emacs, but VSCode works for a while but after while it crashes as previously.

VSCode seems to go slow in LSP functionality before it crashes. It seems to be that more errors comes it goes to slower. But it also is quite random what I have done before it crashes.

Here is some more info about system if these help.

gcc --version
gcc (GCC) 11.1.0
ld --version
GNU ld (GNU Binutils) 2.36.1
inxi -Fx ``` λ inxi -Fx System: Host: amatrelan-ms7c02 Kernel: 5.16.5-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0 Desktop: Qtile 0.20.0 Distro: Garuda Linux base: Arch Linux Machine: Type: Desktop Mobo: Micro-Star model: B450 TOMAHAWK MAX (MS-7C02) v: 1.0 serial: UEFI: American Megatrends v: 3.40 date: 10/25/2019 CPU: Info: 6-core model: AMD Ryzen 5 3600 bits: 64 type: MT MCP arch: Zen 2 rev: 0 cache: L1: 384 KiB L2: 3 MiB L3: 32 MiB Speed (MHz): avg: 3962 high: 4192 min/max: 2200/4208 boost: enabled cores: 1: 3950 2: 4170 3: 3599 4: 3997 5: 4115 6: 4033 7: 4136 8: 4192 9: 3975 10: 3622 11: 3598 12: 4164 bogomips: 86398 Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm Graphics: Device-1: NVIDIA TU104 [GeForce RTX 2070 SUPER] vendor: ASUSTeK driver: nvidia v: 510.47.03 bus-ID: 26:00.0 Display: x11 server: X.Org 1.21.1.3 driver: loaded: nvidia resolution: 5120x1440~120Hz OpenGL: renderer: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2 v: 4.6.0 NVIDIA 510.47.03 direct render: Yes Audio: Device-1: NVIDIA TU104 HD Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel bus-ID: 26:00.1 Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI driver: snd_hda_intel v: kernel bus-ID: 28:00.4 Device-3: Blue Microphones Yeti Stereo Microphone type: USB driver: hid-generic,snd-usb-audio,usbhid bus-ID: 1-9:3 Sound Server-1: ALSA v: k5.16.5-zen1-1-zen running: yes Sound Server-2: PulseAudio v: 15.0 running: no Sound Server-3: PipeWire v: 0.3.45 running: yes Network: Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Micro-Star MSI driver: r8169 v: kernel port: f000 bus-ID: 22:00.0 IF: enp34s0 state: up speed: 1000 Mbps duplex: full mac: 00:d8:61:c4:3e:79 Drives: Local Storage: total: 1013.5 GiB used: 47.56 GiB (4.7%) ID-1: /dev/sda vendor: Kingston model: SA400S37960G size: 894.25 GiB ID-2: /dev/sdb vendor: SanDisk model: SD9SN8W-128G-1006 size: 119.24 GiB Partition: ID-1: / size: 101.85 GiB used: 10.42 GiB (10.2%) fs: btrfs dev: /dev/sdb2 ID-2: /boot/efi size: 300.4 MiB used: 576 KiB (0.2%) fs: vfat dev: /dev/sdb3 ID-3: /home size: 894.25 GiB used: 37.14 GiB (4.2%) fs: btrfs dev: /dev/sda1 ID-4: /var/log size: 101.85 GiB used: 10.42 GiB (10.2%) fs: btrfs dev: /dev/sdb2 ID-5: /var/tmp size: 101.85 GiB used: 10.42 GiB (10.2%) fs: btrfs dev: /dev/sdb2 Swap: ID-1: swap-1 type: partition size: 17.1 GiB used: 0 KiB (0.0%) dev: /dev/sdb1 ID-2: swap-2 type: zram size: 15.63 GiB used: 2 MiB (0.0%) dev: /dev/zram0 Sensors: System Temperatures: cpu: N/A mobo: N/A gpu: nvidia temp: 52 C Fan Speeds (RPM): N/A gpu: nvidia fan: 0% Info: Processes: 336 Uptime: 54m Memory: 15.63 GiB used: 2.89 GiB (18.5%) Init: systemd Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: 1358 Shell: fish v: 3.3.1 inxi: 3.3.12 ```
qaptoR commented 2 years ago

Not sure if I should create a new issue, but the language server is also causing a crash whenever I edit a .gdshader (in vscode) if the language server is connected to vscode.

image

jivvy commented 2 years ago

Similar occurance. Using neovim external editor

Crash report ``` ================================================================ handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.0.alpha.custom_build (afdae67cc381bb340da2e864279da6b836804b7f) Dumping the backtrace. Please include this when reporting the bug to the project developer. [1] /usr/lib/libc.so.6(+0x3e8e0) [0x7f72e283e8e0] (??:0) [2] /usr/lib/libc.so.6(+0x1607fd) [0x7f72e29607fd] (??:0) [3] String::copy_from(char const*) (??:0) [4] String::String(char const*) (??:0) [5] StringName::operator String() const (??:0) [6] GDScriptParser::DataType::to_string() const (??:0) [7] ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (??:0) [8] ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (??:0) [9] ExtendGDScriptParser::update_symbols() (??:0) [10] ExtendGDScriptParser::parse(String const&, String const&) (??:0) [11] GDScriptWorkspace::parse_script(String const&, String const&) (??:0) [12] GDScriptTextDocument::sync_script_content(String const&, String const&) (??:0) [13] GDScriptTextDocument::didChange(Variant const&) (??:0) [14] void call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) (??:0) [15] void call_with_variant_args_dv<__UnexistingClass, Variant const&>(__UnexistingClass*, void (__UnexistingClass::*)(Variant const&), Variant const**, int, Callable::CallError&, Vector const&) (??:0) [16] MethodBindT::call(Object*, Variant const**, int, Callable::CallError&) (??:0) [17] Object::callp(StringName const&, Variant const**, int, Callable::CallError&) (??:0) [18] Object::callv(StringName const&, Array const&) (??:0) [19] JSONRPC::process_action(Variant const&, bool) (??:0) [20] JSONRPC::process_string(String const&) (??:0) [21] GDScriptLanguageProtocol::process_message(String const&) (??:0) [22] GDScriptLanguageProtocol::LSPeer::handle_data() (??:0) [23] GDScriptLanguageProtocol::poll() (??:0) [24] GDScriptLanguageServer::_notification(int) (??:0) [25] GDScriptLanguageServer::_notificationv(int, bool) (??:0) [26] Object::notification(int, bool) (??:0) [27] SceneTree::_notify_group_pause(StringName const&, int) (??:0) [28] SceneTree::process(double) (??:0) [29] Main::iteration() (??:0) [30] OS_LinuxBSD::run() (??:0) [31] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.tools.64(main+0x174) [0x55c088d772fd] (??:0) [32] /usr/lib/libc.so.6(+0x29290) [0x7f72e2829290] (??:0) [33] /usr/lib/libc.so.6(__libc_start_main+0x8a) [0x7f72e282934a] (??:0) [34] /mnt/data-drive/code/downloads/godot/bin/godot.linuxbsd.tools.64(_start+0x25) [0x55c088d770b5] (??:0) -- END OF BACKTRACE -- ================================================================ ```
Norgg commented 1 year ago

I get a very similar crash to jivvy there for my project in Linux after updating it to the 4.0 beta running on Ubuntu 20.04 in both the downloaded version and one I built myself, doesn't seem to happen for the same project in Windows.

Norgg commented 1 year ago

Interestingly this doesn't happen on another almost identical Ubuntu 20.04 install of mine on the same project... I wonder if it's some strange driver interaction? The one it does happen on is a laptop while the one that doesn't crash is a desktop. The crash still happens if I run the editor headless though so I doubt it's a GPU thing... I'm using an up-to-date version of VS Code as the external editor on both.

Norgg commented 1 year ago

Okay I've got this down to a minimal example although the more I simplify it the less frequent the crash gets. It might be possible to remove some further lines from these but I haven't managed to get it to crash if I do yet, I'm fairly sure the enum is required.

I've got two script files:

Thing.gd:

class_name Thing

enum E {A, B}

func _init(_a, _b, _c):
    pass

and ThingGroup.gd:

class_name ThingGroup

func func1(_a: float, _b: float, _c := 1) -> Thing:
    return null

func func2(a, c := 1) -> Thing:
    var thing := func1(a.x, a.y, c)
    return thing

I can currently reproduce this by running godot headless with: godot --headless minimal_lang_server_crash/project.godot, opening ThingGroup.gd in VSCode (with godot-tools) and saving it repeatedly (hitting ctrl-S anywhere between 10 and 50 times, sometimes more). It was more frequent before reducing it down.

Full minimal project here: minimal_lang_server_crash.zip

Razoric480 commented 1 year ago

I couldn't get it to do it in editor, but I could get it to hit in headless. Looks like it's possible for the function's return datatype's script type to be null in the GDScriptParser, which is why the stack trace notes that datatype::to_string fails.

Adding in a quick nullptr check and returning an empty string instead seems to fix it.

Razoric480 commented 1 year ago

@Norgg If you can give #66306 a shot and see if that fixes your issue.

Norgg commented 1 year ago

Still getting a crash unfortunately, although in a different place I think, this is from gdb after putting an abort() statement into the crash handler because for some reason it wasn't giving line numbers in that.

#0  StringName::operator String (this=0x55557733d3b8) at ./core/string/string_name.h:138
#1  0x00005555580d4354 in GDScriptParser::DataType::to_string (this=0x7fffffffc930) at modules/gdscript/gdscript_parser.cpp:3997
#2  0x0000555558154903 in ExtendGDScriptParser::parse_function_symbol (this=0x555574fc7690, p_func=0x555573154920, r_symbol=...)
    at modules/gdscript/language_server/gdscript_extend_parser.cpp:425
#3  0x0000555558153462 in ExtendGDScriptParser::parse_class_symbol (this=0x555574fc7690, p_class=0x55557246e1a0, r_symbol=...)
    at modules/gdscript/language_server/gdscript_extend_parser.cpp:302
#4  0x0000555558151550 in ExtendGDScriptParser::update_symbols (this=0x555574fc7690) at modules/gdscript/language_server/gdscript_extend_parser.cpp:88
#5  0x0000555558159e44 in ExtendGDScriptParser::parse (this=0x555574fc7690, p_code=..., p_path=...) at modules/gdscript/language_server/gdscript_extend_parser.cpp:854
#6  0x0000555557fef62a in GDScriptWorkspace::parse_script (this=0x5555705187a0, p_path=..., p_content=...) at modules/gdscript/language_server/gdscript_workspace.cpp:427
#7  0x0000555557fdf43c in GDScriptTextDocument::sync_script_content (this=0x555570518a50, p_path=..., p_content=...) at modules/gdscript/language_server/gdscript_text_document.cpp:417
#8  0x0000555557fdc047 in GDScriptTextDocument::didSave (this=0x555570518a50, p_param=...) at modules/gdscript/language_server/gdscript_text_document.cpp:89
#9  0x0000555557fd7385 in call_with_variant_args_helper<__UnexistingClass, Variant const&, 0ul> (p_instance=0x555570518a50, p_method=
    (void (__UnexistingClass::*)(__UnexistingClass * const, const Variant &)) 0x555557fdbf9e <GDScriptTextDocument::didSave(Variant const&)>, p_args=0x7fffffffd070, r_error=...)
    at ./core/variant/binder_common.h:262
#10 0x0000555557fd63ad in call_with_variant_args_dv<__UnexistingClass, Variant const&> (p_instance=0x555570518a50, p_method=
    (void (__UnexistingClass::*)(__UnexistingClass * const, const Variant &)) 0x555557fdbf9e <GDScriptTextDocument::didSave(Variant const&)>, p_args=0x7fffffffd1a0, p_argcount=1, 
    r_error=..., default_values=...) at ./core/variant/binder_common.h:409
#11 0x0000555557fd5156 in MethodBindT<Variant const&>::call (this=0x555570515650, p_object=0x555570518a50, p_args=0x7fffffffd1a0, p_arg_count=1, r_error=...)
    at ./core/object/method_bind.h:320
#12 0x000055555c297a8b in Object::callp (this=0x555570518a50, p_method=..., p_args=0x7fffffffd1a0, p_argcount=1, r_error=...) at core/object/object.cpp:733
#13 0x000055555c297564 in Object::callv (this=0x555570518a50, p_method=..., p_args=...) at core/object/object.cpp:670
#14 0x00005555584c22b1 in JSONRPC::process_action (this=0x555570518170, p_action=..., p_process_arr_elements=true) at modules/jsonrpc/jsonrpc.cpp:130
#15 0x00005555584c2adc in JSONRPC::process_string (this=0x555570518170, p_input=...) at modules/jsonrpc/jsonrpc.cpp:162
#16 0x0000555557fc778d in GDScriptLanguageProtocol::process_message (this=0x555570518170, p_text=...) at modules/gdscript/language_server/gdscript_language_protocol.cpp:142
#17 0x0000555557fc71ae in GDScriptLanguageProtocol::LSPeer::handle_data (this=0x555574bc2530) at modules/gdscript/language_server/gdscript_language_protocol.cpp:97
#18 0x0000555557fc8ba7 in GDScriptLanguageProtocol::poll (this=0x555570518170) at modules/gdscript/language_server/gdscript_language_protocol.cpp:247
#19 0x0000555557fd8c5b in GDScriptLanguageServer::_notification (this=0x555570517b50, p_what=25) at modules/gdscript/language_server/gdscript_language_server.cpp:59
#20 0x0000555557fda15c in GDScriptLanguageServer::_notificationv (this=0x555570517b50, p_notification=25, p_reversed=false) at modules/gdscript/language_server/gdscript_language_server.h:39
#21 0x000055555c297e73 in Object::notification (this=0x555570517b50, p_notification=25, p_reversed=false) at core/object/object.cpp:790
#22 0x000055555a0fd89f in SceneTree::_notify_group_pause (this=0x5555615a2a90, p_group=..., p_notification=25) at scene/main/scene_tree.cpp:867
#23 0x000055555a0fbbbf in SceneTree::process (this=0x5555615a2a90, p_time=0.0055555555555555549) at scene/main/scene_tree.cpp:464
#24 0x0000555557b74987 in Main::iteration () at main/main.cpp:3138
#25 0x0000555557b1cc36 in OS_LinuxBSD::run (this=0x7fffffffda30) at platform/linuxbsd/os_linuxbsd.cpp:575
#26 0x0000555557b17cc8 in main (argc=3, argv=0x7fffffffdf48) at platform/linuxbsd/godot_linuxbsd.cpp:72

With full frame arguments for the first few:

#0  StringName::operator String (this=0x55557733d3b8) at ./core/string/string_name.h:138
#1  0x00005555580d4354 in GDScriptParser::DataType::to_string (this=0x7fffffffc930) at modules/gdscript/gdscript_parser.cpp:3997
#2  0x0000555558154903 in ExtendGDScriptParser::parse_function_symbol (this=0x555574fc7690, p_func=0x555573154920, r_symbol=
          @0x7fffffffcb10: {name = {_cowdata = {_ptr = 0x555575904050 U"func2"}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, detail = {_cowdata = {_ptr = 0x55557733d3a0 U"func func2(a, c: int = 1) -> GDScript"}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, documentation = {_cowdata = {_ptr = 0x0}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, native_class = {_cowdata = {_ptr = 0x0}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, kind = 6, deprecated = false, range = {start = {line = 5, character = 0}, end = {line = 5, character = 1}}, selectionRange = {start = {line = 5, character = 0}, end = {line = 0, character = 0}}, uri = {_cowdata = {_ptr = 0x555575bd0b90 U"file:///home/norgg/gamedev/gd-crash-repro/ThingGroup.gd"}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, script_path = {_cowdata = {_ptr = 0x555575ba9f70 U"res://ThingGroup.gd"}, static _null = 0 U'\000', static invalid_node_name_characters = {_cowdata = {_ptr = 0x555560579450 U". : @ / \" %"}, static _null = 0 U'\000', static invalid_node_name_characters = <same as static member of an already seen type>}}, children = {write = {<No data fields>}, _cowdata = {_ptr = 0x55557512eb60}}})
Norgg commented 1 year ago

And here's some valgrind output:

==424674== Invalid read of size 8
==424674==    at 0x2C88323: GDScriptParser::DataType::to_string() const (gdscript_parser.cpp:3996)
==424674==    by 0x2D08902: ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (gdscript_extend_parser.cpp:425)
==424674==    by 0x2D07461: ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (gdscript_extend_parser.cpp:302)
==424674==    by 0x2D0554F: ExtendGDScriptParser::update_symbols() (gdscript_extend_parser.cpp:88)
==424674==    by 0x2D0DE43: ExtendGDScriptParser::parse(String const&, String const&) (gdscript_extend_parser.cpp:854)
==424674==    by 0x2BA3629: GDScriptWorkspace::parse_script(String const&, String const&) (gdscript_workspace.cpp:427)
==424674==    by 0x2BA0F7F: GDScriptWorkspace::reload_all_workspace_scripts() (gdscript_workspace.cpp:210)
==424674==    by 0x2BA2C9E: GDScriptWorkspace::initialize() (gdscript_workspace.cpp:400)
==424674==    by 0x2B7C480: GDScriptLanguageProtocol::initialize(Dictionary const&) (gdscript_language_protocol.cpp:206)
==424674==    by 0x2B8B682: void call_with_variant_args_ret_helper<__UnexistingClass, Dictionary, Dictionary const&, 0ul>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(Dictionary const&), Variant const**, Variant&, Callable::CallError&, IndexSequence<0ul>) (binder_common.h:680)
==424674==    by 0x2B8A695: void call_with_variant_args_ret_dv<__UnexistingClass, Dictionary, Dictionary const&>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(Dictionary const&), Variant const**, int, Variant&, Callable::CallError&, Vector<Variant> const&) (binder_common.h:493)
==424674==    by 0x2B8933A: MethodBindTR<Dictionary, Dictionary const&>::call(Object*, Variant const**, int, Callable::CallError&) (method_bind.h:481)
==424674==  Address 0x30e782a8 is 296 bytes inside a block of size 680 free'd
==424674==    at 0xB94FA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==424674==    by 0x68782EC: Memory::free_static(void*, bool) (memory.cpp:168)
==424674==    by 0x2CB35BC: void memdelete<GDScriptParser::Node>(GDScriptParser::Node*) (memory.h:112)
==424674==    by 0x2C73EC8: GDScriptParser::clear() (gdscript_parser.cpp:160)
==424674==    by 0x2C73D79: GDScriptParser::~GDScriptParser() (gdscript_parser.cpp:153)
==424674==    by 0x2C21FDE: void memdelete<GDScriptParser>(GDScriptParser*) (memory.h:109)
==424674==    by 0x2C20E33: GDScriptParserRef::~GDScriptParserRef() (gdscript_cache.cpp:100)
==424674==    by 0x2BEFAB8: void memdelete<GDScriptParserRef>(GDScriptParserRef*) (memory.h:109)
==424674==    by 0x2BEF013: Ref<GDScriptParserRef>::unref() (ref_counted.h:221)
==424674==    by 0x2BEC24D: Ref<GDScriptParserRef>::~Ref() (ref_counted.h:233)
==424674==    by 0x2BED82F: KeyValue<String, Ref<GDScriptParserRef> >::~KeyValue() (pair.h:82)
==424674==    by 0x2BED85F: HashMapElement<String, Ref<GDScriptParserRef> >::~HashMapElement() (hash_map.h:55)
==424674==  Block was alloc'd at
==424674==    at 0xB94E7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==424674==    by 0x6877C32: Memory::alloc_static(unsigned long, bool) (memory.cpp:75)
==424674==    by 0x6877BB2: operator new(unsigned long, char const*) (memory.cpp:40)
==424674==    by 0x2CB4604: GDScriptParser::ClassNode* GDScriptParser::alloc_node<GDScriptParser::ClassNode>() (gdscript_parser.h:1311)
==424674==    by 0x2C75F7E: GDScriptParser::parse_program() (gdscript_parser.cpp:536)
==424674==    by 0x2C7520C: GDScriptParser::parse(String const&, String const&, bool) (gdscript_parser.cpp:387)
==424674==    by 0x2C20C3F: GDScriptParserRef::raise_status(GDScriptParserRef::Status) (gdscript_cache.cpp:62)
==424674==    by 0x2BF59DE: GDScriptAnalyzer::resolve_datatype(GDScriptParser::TypeNode*) (gdscript_analyzer.cpp:491)
==424674==    by 0x2BFBCA6: GDScriptAnalyzer::resolve_function_signature(GDScriptParser::FunctionNode*) (gdscript_analyzer.cpp:1179)
==424674==    by 0x2BF92EA: GDScriptAnalyzer::resolve_class_interface(GDScriptParser::ClassNode*) (gdscript_analyzer.cpp:840)
==424674==    by 0x2C14696: GDScriptAnalyzer::resolve_program() (gdscript_analyzer.cpp:4276)
==424674==    by 0x2C147E5: GDScriptAnalyzer::analyze() (gdscript_analyzer.cpp:4294)
==424674== 
==424674== Invalid read of size 8
==424674==    at 0x2C88337: GDScriptParser::DataType::to_string() const (gdscript_parser.cpp:3997)
==424674==    by 0x2D08902: ExtendGDScriptParser::parse_function_symbol(GDScriptParser::FunctionNode const*, lsp::DocumentSymbol&) (gdscript_extend_parser.cpp:425)
==424674==    by 0x2D07461: ExtendGDScriptParser::parse_class_symbol(GDScriptParser::ClassNode const*, lsp::DocumentSymbol&) (gdscript_extend_parser.cpp:302)
==424674==    by 0x2D0554F: ExtendGDScriptParser::update_symbols() (gdscript_extend_parser.cpp:88)
==424674==    by 0x2D0DE43: ExtendGDScriptParser::parse(String const&, String const&) (gdscript_extend_parser.cpp:854)
==424674==    by 0x2BA3629: GDScriptWorkspace::parse_script(String const&, String const&) (gdscript_workspace.cpp:427)
==424674==    by 0x2BA0F7F: GDScriptWorkspace::reload_all_workspace_scripts() (gdscript_workspace.cpp:210)
==424674==    by 0x2BA2C9E: GDScriptWorkspace::initialize() (gdscript_workspace.cpp:400)
==424674==    by 0x2B7C480: GDScriptLanguageProtocol::initialize(Dictionary const&) (gdscript_language_protocol.cpp:206)
==424674==    by 0x2B8B682: void call_with_variant_args_ret_helper<__UnexistingClass, Dictionary, Dictionary const&, 0ul>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(Dictionary const&), Variant const**, Variant&, Callable::CallError&, IndexSequence<0ul>) (binder_common.h:680)
==424674==    by 0x2B8A695: void call_with_variant_args_ret_dv<__UnexistingClass, Dictionary, Dictionary const&>(__UnexistingClass*, Dictionary (__UnexistingClass::*)(Dictionary const&), Variant const**, int, Variant&, Callable::CallError&, Vector<Variant> const&) (binder_common.h:493)
==424674==    by 0x2B8933A: MethodBindTR<Dictionary, Dictionary const&>::call(Object*, Variant const**, int, Callable::CallError&) (method_bind.h:481)
==424674==  Address 0x30e782a8 is 296 bytes inside a block of size 680 free'd
==424674==    at 0xB94FA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==424674==    by 0x68782EC: Memory::free_static(void*, bool) (memory.cpp:168)
==424674==    by 0x2CB35BC: void memdelete<GDScriptParser::Node>(GDScriptParser::Node*) (memory.h:112)
==424674==    by 0x2C73EC8: GDScriptParser::clear() (gdscript_parser.cpp:160)
==424674==    by 0x2C73D79: GDScriptParser::~GDScriptParser() (gdscript_parser.cpp:153)
==424674==    by 0x2C21FDE: void memdelete<GDScriptParser>(GDScriptParser*) (memory.h:109)
==424674==    by 0x2C20E33: GDScriptParserRef::~GDScriptParserRef() (gdscript_cache.cpp:100)
==424674==    by 0x2BEFAB8: void memdelete<GDScriptParserRef>(GDScriptParserRef*) (memory.h:109)
==424674==    by 0x2BEF013: Ref<GDScriptParserRef>::unref() (ref_counted.h:221)
==424674==    by 0x2BEC24D: Ref<GDScriptParserRef>::~Ref() (ref_counted.h:233)
==424674==    by 0x2BED82F: KeyValue<String, Ref<GDScriptParserRef> >::~KeyValue() (pair.h:82)
==424674==    by 0x2BED85F: HashMapElement<String, Ref<GDScriptParserRef> >::~HashMapElement() (hash_map.h:55)
==424674==  Block was alloc'd at
==424674==    at 0xB94E7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==424674==    by 0x6877C32: Memory::alloc_static(unsigned long, bool) (memory.cpp:75)
==424674==    by 0x6877BB2: operator new(unsigned long, char const*) (memory.cpp:40)
==424674==    by 0x2CB4604: GDScriptParser::ClassNode* GDScriptParser::alloc_node<GDScriptParser::ClassNode>() (gdscript_parser.h:1311)
==424674==    by 0x2C75F7E: GDScriptParser::parse_program() (gdscript_parser.cpp:536)
==424674==    by 0x2C7520C: GDScriptParser::parse(String const&, String const&, bool) (gdscript_parser.cpp:387)
==424674==    by 0x2C20C3F: GDScriptParserRef::raise_status(GDScriptParserRef::Status) (gdscript_cache.cpp:62)
==424674==    by 0x2BF59DE: GDScriptAnalyzer::resolve_datatype(GDScriptParser::TypeNode*) (gdscript_analyzer.cpp:491)
==424674==    by 0x2BFBCA6: GDScriptAnalyzer::resolve_function_signature(GDScriptParser::FunctionNode*) (gdscript_analyzer.cpp:1179)
==424674==    by 0x2BF92EA: GDScriptAnalyzer::resolve_class_interface(GDScriptParser::ClassNode*) (gdscript_analyzer.cpp:840)
==424674==    by 0x2C14696: GDScriptAnalyzer::resolve_program() (gdscript_analyzer.cpp:4276)
==424674==    by 0x2C147E5: GDScriptAnalyzer::analyze() (gdscript_analyzer.cpp:4294)
Razoric480 commented 1 year ago

Strange... will have to poke at it some more.

Norgg commented 1 year ago

66306 didn't fully fix this issue, would it be possible to re-open it?

Faless commented 1 year ago

Based on #66306 changeset I think this is also needed if script_type can be null.

diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index b5cb5a4680..b29774a408 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -4104,7 +4104,7 @@ String GDScriptParser::DataType::to_string() const {
            return class_type->fqcn;
        case SCRIPT: {
            if (is_meta_type) {
-               return script_type->get_class_name().operator String();
+               return script_type != nullptr : script_type->get_class_name().operator String() : "";
            }
            String name = script_type != nullptr ? script_type->get_name() : "";
            if (!name.is_empty()) {

cc @Razoric480

akien-mga commented 1 year ago

Assuming fixed by #75943. Please let us know if this is still reproducible in 4.1 beta 3 or later.

Norgg commented 1 year ago

Yeah, something fixed this for me around about 4.0 release, not seen any crashes for a while, thanks!