diff --git a/addons/ingameconsole/GameConsole.tscn b/addons/ingameconsole/GameConsole.tscn
new file mode 100644
index 0000000..75aa145
--- /dev/null
+++ b/addons/ingameconsole/GameConsole.tscn
@@ -0,0 +1,55 @@
+[gd_scene load_steps=3 format=3 uid="uid://cy50f6k4ov4ep"]
+
+[ext_resource type="Theme" uid="uid://cl7daepdmawmm" path="res://addons/ingameconsole/game_console_theme.tres" id="1_jmwsb"]
+[ext_resource type="Script" path="res://addons/ingameconsole/scripts/GameConsole.gd" id="2_pu7gl"]
+
+[node name="GameConsole" type="Control"]
+process_mode = 3
+z_index = 4096
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+size_flags_horizontal = 3
+size_flags_vertical = 3
+theme = ExtResource("1_jmwsb")
+script = ExtResource("2_pu7gl")
+welcome_message = "### IN-GAME CONSOLE by BELLSWORNE ####
+> Type `list` to see availible commands
+
+[img=131x64]addons/ingameconsole/ps1hagrid.png[/img]"
+
+[node name="Panel" type="Panel" parent="."]
+layout_mode = 1
+anchors_preset = 10
+anchor_right = 1.0
+offset_bottom = 376.0
+grow_horizontal = 2
+theme = ExtResource("1_jmwsb")
+
+[node name="VBoxContainer" type="VBoxContainer" parent="Panel"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="MarginContainer" type="MarginContainer" parent="Panel/VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+theme = ExtResource("1_jmwsb")
+
+[node name="LogLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer"]
+layout_mode = 2
+size_flags_vertical = 3
+theme = ExtResource("1_jmwsb")
+bbcode_enabled = true
+scroll_following = true
+
+[node name="InputField" type="LineEdit" parent="Panel/VBoxContainer"]
+layout_mode = 2
+size_flags_vertical = 8
+theme = ExtResource("1_jmwsb")
diff --git a/addons/ingameconsole/game_console_theme.tres b/addons/ingameconsole/game_console_theme.tres
new file mode 100644
index 0000000..6387904
--- /dev/null
+++ b/addons/ingameconsole/game_console_theme.tres
@@ -0,0 +1,17 @@
+[gd_resource type="Theme" load_steps=3 format=3 uid="uid://cl7daepdmawmm"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_peh3f"]
+bg_color = Color(0, 0, 0, 1)
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1phxn"]
+bg_color = Color(0, 0, 0, 0.498039)
+
+[resource]
+LineEdit/font_sizes/font_size = 15
+LineEdit/styles/normal = SubResource("StyleBoxFlat_peh3f")
+MarginContainer/constants/margin_bottom = 10
+MarginContainer/constants/margin_left = 20
+MarginContainer/constants/margin_right = 20
+MarginContainer/constants/margin_top = 10
+Panel/styles/panel = SubResource("StyleBoxFlat_1phxn")
+RichTextLabel/font_sizes/normal_font_size = 15
diff --git a/addons/ingameconsole/plugin.cfg b/addons/ingameconsole/plugin.cfg
new file mode 100644
index 0000000..b2e6445
--- /dev/null
+++ b/addons/ingameconsole/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="InGameConsole"
+description=""
+author="Bellsworne"
+version="1.0a"
+script="/scripts/main.gd"
diff --git a/addons/ingameconsole/ps1hagrid.png b/addons/ingameconsole/ps1hagrid.png
new file mode 100644
index 0000000..2704916
Binary files /dev/null and b/addons/ingameconsole/ps1hagrid.png differ
diff --git a/addons/ingameconsole/ps1hagrid.png.import b/addons/ingameconsole/ps1hagrid.png.import
new file mode 100644
index 0000000..40c4b26
--- /dev/null
+++ b/addons/ingameconsole/ps1hagrid.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://fwub8fvl2u4i"
+path="res://.godot/imported/ps1hagrid.png-c23425fa4ddfd6de7aebcbcf4a03083a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://addons/ingameconsole/ps1hagrid.png"
+dest_files=["res://.godot/imported/ps1hagrid.png-c23425fa4ddfd6de7aebcbcf4a03083a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/addons/ingameconsole/scripts/Command.gd b/addons/ingameconsole/scripts/Command.gd
new file mode 100644
index 0000000..299a0f1
--- /dev/null
+++ b/addons/ingameconsole/scripts/Command.gd
@@ -0,0 +1,29 @@
+class_name Command
+
+var name: String
+var callable: Callable
+var arg_count: int
+var description: String
+var arg_names: Array[String]
+
+func _init(_name:String, _callable:Callable, _arg_names:Array[String], _description:String):
+ self.name = _name.to_lower()
+ self.callable = _callable
+ self.arg_names = _arg_names
+ self.description = _description
+
+func INVOKE(args:Array[String] = []):
+ var arg_dict: Dictionary = {}
+ if (arg_names.size() != args.size()):
+ if (ProjectSettings.get_setting("_global_script_classes").has("GameConsole")):
+ ProjectSettings.get_setting("_global_script_classes")["GameConsole"].log_error("Command needs " + str(arg_names.size()) + " arguments but recieved " + str(args.size()) + ".")
+ return
+ else:
+ for i in args.size():
+ arg_dict[arg_names[i]] = args[i]
+
+ if arg_dict.size() == 0:
+ callable.call()
+ return
+ else:
+ callable.call(arg_dict)
diff --git a/addons/ingameconsole/scripts/GameConsole.gd b/addons/ingameconsole/scripts/GameConsole.gd
new file mode 100644
index 0000000..92d43b6
--- /dev/null
+++ b/addons/ingameconsole/scripts/GameConsole.gd
@@ -0,0 +1,145 @@
+extends Control
+
+@export_category("Settings")
+@export_multiline var welcome_message: String
+@export var pause_tree_when_open: bool = true
+@export_subgroup("Log Colors")
+@export var default_color: Color = Color.WHITE
+@export var log_color: Color = Color.BLUE
+@export var warning_color: Color = Color.YELLOW
+@export var error_color: Color = Color.RED
+@export_subgroup("Keybinds")
+@export var toggle_key_action: String = "debug"
+@export var enter_key_action: String = "accept"
+
+@onready var log_label = $Panel/VBoxContainer/MarginContainer/LogLabel
+@onready var input_field = $Panel/VBoxContainer/InputField
+
+var registered_commands: Dictionary
+
+
+func _ready():
+ visible = false
+ registered_commands.clear()
+ log_label.append_text(welcome_message + "\n")
+ register_builtin_commands()
+
+
+func _process(delta):
+ if (Input.is_action_just_pressed(toggle_key_action)):
+ toggle_console()
+
+ if (Input.is_action_just_pressed("accept") and input_field.has_focus()):
+ submit_input()
+
+
+func toggle_console():
+ visible = !visible
+ if (pause_tree_when_open): get_tree().paused = visible
+
+ if (visible):
+ input_field.grab_focus()
+ Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
+
+ input_field.clear()
+
+
+func register_command(command:Command):
+ if (registered_commands.has(command.name)):
+ log_error("Command already registered with name: " + command.name)
+ return
+ else:
+ registered_commands[command.name] = command
+
+
+func submit_input():
+ if (input_field.text == ""): return
+
+ print_line("> " + input_field.text)
+ run_command(input_field.text)
+
+ input_field.text = ""
+
+
+func run_command(input:String):
+ var parsed_input:Dictionary = parse_input(input)
+ var command_name:String = parsed_input["name"]
+ var args:Array[String] = parsed_input["args"]
+
+ if (registered_commands.has(command_name)):
+ if args.size() == 0:
+ registered_commands[command_name].INVOKE()
+ else:
+ registered_commands[command_name].INVOKE(args)
+ else:
+ log_error("Command " + command_name + " not recognized")
+
+
+func parse_input(input:String) -> Dictionary:
+ input = input.to_lower()
+ var input_array = input.split(' ')
+ var command_name = input_array[0]
+ var args: Array[String]
+
+ for i in input_array.size():
+ if i == 0: continue
+ args.append(input_array[i])
+
+ return {"name": command_name, "args": args}
+
+
+func command_lookup(command_name:String) -> Command:
+ if (registered_commands.has(command_name)):
+ return registered_commands[command_name]
+ else:
+ log_error("No command '" + command_name + "' found.")
+ return null
+
+
+func print_line(message:String):
+ log_label.append_text(str("[color=" + default_color.to_html(true) + "]" + message + "[/color]\n"))
+
+
+func log_debug(message:String):
+ log_label.append_text(str("[color=" + log_color.to_html(true) + "]" + "[LOG] " + message + "[/color]\n"))
+
+
+func log_error(message:String):
+ log_label.append_text(str("[color=" + error_color.to_html(true) + "]" + "[ERROR] " + message + "[/color]\n"))
+
+
+func log_warning(message:String):
+ log_label.append_text(str("[color=" + warning_color.to_html(true) + "]" + "[WARNING] " + message + "[/color]\n"))
+
+
+func register_builtin_commands():
+ register_command(Command.new("clear", clear_command, [], "Clears the console"))
+ register_command(Command.new("help", help_command, ["command_name"], "Shows help for given command"))
+ register_command(Command.new("list", list_command, [], "Lists all registered commands."))
+
+
+func clear_command():
+ log_label.clear()
+
+
+func help_command(args:Dictionary):
+ if (args.size() == 0 or !args.has("command_name")):
+ log_error("Invalid arguments")
+ return
+
+ var command_name = args["command_name"]
+ var command: Command = command_lookup(command_name)
+ if (command == null): return
+
+ print_line("-- HELP for " + command_name + " --")
+ print_line(command.description)
+ var args_string: String
+ for name in command.arg_names:
+ args_string += "[" + name + "] "
+ print_line("Args: " + args_string + "\n")
+
+
+func list_command():
+ print_line("-- REGISTERED COMMANDS --")
+ for command in registered_commands:
+ print_line(command)
diff --git a/addons/ingameconsole/scripts/main.gd b/addons/ingameconsole/scripts/main.gd
new file mode 100644
index 0000000..d0bf5b1
--- /dev/null
+++ b/addons/ingameconsole/scripts/main.gd
@@ -0,0 +1,9 @@
+@tool extends EditorPlugin
+
+const game_console_path = "res://addons/ingameconsole/GameConsole.tscn"
+
+func _enable_plugin():
+ add_autoload_singleton("GameConsole", game_console_path)
+
+func _disable_plugin():
+ remove_autoload_singleton("GameConsole")
diff --git a/addons/ingameconsole/test_scene.tscn b/addons/ingameconsole/test_scene.tscn
new file mode 100644
index 0000000..772c1b8
--- /dev/null
+++ b/addons/ingameconsole/test_scene.tscn
@@ -0,0 +1,22 @@
+[gd_scene load_steps=3 format=3 uid="uid://cirsv2n2ym87b"]
+
+[sub_resource type="GDScript" id="GDScript_0a8if"]
+script/source = "extends Node2D
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+ GameConsole.register_command(Command.new(\"test\", test_command, [\"my_arg\"], \"I am a test command\"))
+
+func test_command(args:Dictionary):
+ GameConsole.log_debug(args[\"my_arg\"])
+"
+
+[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_j23v7"]
+
+[node name="TestScene" type="Node2D"]
+script = SubResource("GDScript_0a8if")
+
+[node name="Ps1Haggrid_png" type="Sprite2D" parent="."]
+position = Vector2(613, 316)
+texture = SubResource("CompressedTexture2D_j23v7")
diff --git a/godot-jolt/LICENSE.txt b/godot-jolt/LICENSE.txt
new file mode 100644
index 0000000..2675022
--- /dev/null
+++ b/godot-jolt/LICENSE.txt
@@ -0,0 +1,18 @@
+Copyright (c) Mikael Hermansson and Godot Jolt contributors.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/godot-jolt/THIRDPARTY.txt b/godot-jolt/THIRDPARTY.txt
new file mode 100644
index 0000000..e294095
--- /dev/null
+++ b/godot-jolt/THIRDPARTY.txt
@@ -0,0 +1,91 @@
+Godot Jolt incorporates third-party material from the projects listed below.
+
+Godot Engine (https://github.com/godotengine/godot)
+
+ Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md).
+ Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+
+godot-cpp (https://github.com/godot-jolt/godot-cpp)
+
+ Copyright (c) 2017-present Godot Engine contributors.
+ Copyright (c) 2022-present Mikael Hermansson.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+
+Jolt Physics (https://github.com/godot-jolt/jolt)
+
+ Copyright (c) 2021 Jorrit Rouwe.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
+
+mimalloc (https://github.com/godot-jolt/mimalloc)
+
+ Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to
+ deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ IN THE SOFTWARE.
diff --git a/godot-jolt/android/libgodot-jolt_android-arm32.so b/godot-jolt/android/libgodot-jolt_android-arm32.so
new file mode 100644
index 0000000..20ae181
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-arm32.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-arm32_editor.so b/godot-jolt/android/libgodot-jolt_android-arm32_editor.so
new file mode 100644
index 0000000..bfe3744
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-arm32_editor.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-arm64.so b/godot-jolt/android/libgodot-jolt_android-arm64.so
new file mode 100644
index 0000000..a089ce6
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-arm64.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-arm64_editor.so b/godot-jolt/android/libgodot-jolt_android-arm64_editor.so
new file mode 100644
index 0000000..95af658
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-arm64_editor.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-x64.so b/godot-jolt/android/libgodot-jolt_android-x64.so
new file mode 100644
index 0000000..f764940
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-x64.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-x64_editor.so b/godot-jolt/android/libgodot-jolt_android-x64_editor.so
new file mode 100644
index 0000000..43f9d2b
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-x64_editor.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-x86.so b/godot-jolt/android/libgodot-jolt_android-x86.so
new file mode 100644
index 0000000..e8d6cad
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-x86.so differ
diff --git a/godot-jolt/android/libgodot-jolt_android-x86_editor.so b/godot-jolt/android/libgodot-jolt_android-x86_editor.so
new file mode 100644
index 0000000..5583ff2
Binary files /dev/null and b/godot-jolt/android/libgodot-jolt_android-x86_editor.so differ
diff --git a/godot-jolt/godot-jolt.gdextension b/godot-jolt/godot-jolt.gdextension
new file mode 100644
index 0000000..8a7e50b
--- /dev/null
+++ b/godot-jolt/godot-jolt.gdextension
@@ -0,0 +1,41 @@
+[godot-jolt]
+version = "0.14.0-stable"
+build = "3392156fab"
+
+[configuration]
+
+entry_symbol = "godot_jolt_main"
+compatibility_minimum = "4.3"
+compatibility_maximum = "4.3"
+
+[libraries]
+
+windows.release.single.x86_64 = "windows/godot-jolt_windows-x64.dll"
+windows.debug.single.x86_64 = "windows/godot-jolt_windows-x64_editor.dll"
+
+windows.release.single.x86_32 = "windows/godot-jolt_windows-x86.dll"
+windows.debug.single.x86_32 = "windows/godot-jolt_windows-x86_editor.dll"
+
+linux.release.single.x86_64 = "linux/godot-jolt_linux-x64.so"
+linux.debug.single.x86_64 = "linux/godot-jolt_linux-x64_editor.so"
+
+linux.release.single.x86_32 = "linux/godot-jolt_linux-x86.so"
+linux.debug.single.x86_32 = "linux/godot-jolt_linux-x86_editor.so"
+
+macos.release.single = "macos/godot-jolt_macos.framework"
+macos.debug.single = "macos/godot-jolt_macos_editor.framework"
+
+ios.release.single = "ios/godot-jolt_ios.framework"
+ios.debug.single = "ios/godot-jolt_ios_editor.framework"
+
+android.release.single.arm64 = "android/libgodot-jolt_android-arm64.so"
+android.debug.single.arm64 = "android/libgodot-jolt_android-arm64_editor.so"
+
+android.release.single.arm32 = "android/libgodot-jolt_android-arm32.so"
+android.debug.single.arm32 = "android/libgodot-jolt_android-arm32_editor.so"
+
+android.release.single.x86_64 = "android/libgodot-jolt_android-x64.so"
+android.debug.single.x86_64 = "android/libgodot-jolt_android-x64_editor.so"
+
+android.release.single.x86_32 = "android/libgodot-jolt_android-x86.so"
+android.debug.single.x86_32 = "android/libgodot-jolt_android-x86_editor.so"
diff --git a/godot-jolt/ios/godot-jolt_ios.framework/Info.plist b/godot-jolt/ios/godot-jolt_ios.framework/Info.plist
new file mode 100644
index 0000000..ae5f211
--- /dev/null
+++ b/godot-jolt/ios/godot-jolt_ios.framework/Info.plist
@@ -0,0 +1,51 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ godot-jolt_ios
+ CFBundleName
+ Godot Jolt
+ CFBundleDisplayName
+ Godot Jolt
+ CFBundleIdentifier
+ org.godot-jolt.godot-jolt
+ NSHumanReadableCopyright
+ Copyright (c) Mikael Hermansson and Godot Jolt contributors.
+ CFBundleVersion
+ 0.14.0
+ CFBundleShortVersionString
+ 0.14.0
+ CFBundlePackageType
+ FMWK
+ CFBundleSupportedPlatforms
+
+ iPhoneOS
+
+ CSResourcesFileMapped
+
+ DTPlatformName
+ iphoneos
+ MinimumOSVersion
+ 12.0
+
+
+ AvailableLibraries
+
+
+ BinaryPath
+ godot-jolt_ios.dylib
+
+
+
+
diff --git a/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios b/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios
new file mode 100644
index 0000000..39d38b8
Binary files /dev/null and b/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios differ
diff --git a/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist b/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist
new file mode 100644
index 0000000..44285c4
--- /dev/null
+++ b/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist
@@ -0,0 +1,51 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ godot-jolt_ios_editor
+ CFBundleName
+ Godot Jolt
+ CFBundleDisplayName
+ Godot Jolt
+ CFBundleIdentifier
+ org.godot-jolt.godot-jolt
+ NSHumanReadableCopyright
+ Copyright (c) Mikael Hermansson and Godot Jolt contributors.
+ CFBundleVersion
+ 0.14.0
+ CFBundleShortVersionString
+ 0.14.0
+ CFBundlePackageType
+ FMWK
+ CFBundleSupportedPlatforms
+
+ iPhoneOS
+
+ CSResourcesFileMapped
+
+ DTPlatformName
+ iphoneos
+ MinimumOSVersion
+ 12.0
+
+
+ AvailableLibraries
+
+
+ BinaryPath
+ godot-jolt_ios_editor.dylib
+
+
+
+
diff --git a/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor b/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor
new file mode 100644
index 0000000..33e172d
Binary files /dev/null and b/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor differ
diff --git a/godot-jolt/linux/godot-jolt_linux-x64.so b/godot-jolt/linux/godot-jolt_linux-x64.so
new file mode 100644
index 0000000..844f4a6
Binary files /dev/null and b/godot-jolt/linux/godot-jolt_linux-x64.so differ
diff --git a/godot-jolt/linux/godot-jolt_linux-x64_editor.so b/godot-jolt/linux/godot-jolt_linux-x64_editor.so
new file mode 100644
index 0000000..ee33458
Binary files /dev/null and b/godot-jolt/linux/godot-jolt_linux-x64_editor.so differ
diff --git a/godot-jolt/linux/godot-jolt_linux-x86.so b/godot-jolt/linux/godot-jolt_linux-x86.so
new file mode 100644
index 0000000..7271775
Binary files /dev/null and b/godot-jolt/linux/godot-jolt_linux-x86.so differ
diff --git a/godot-jolt/linux/godot-jolt_linux-x86_editor.so b/godot-jolt/linux/godot-jolt_linux-x86_editor.so
new file mode 100644
index 0000000..18df932
Binary files /dev/null and b/godot-jolt/linux/godot-jolt_linux-x86_editor.so differ
diff --git a/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist b/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist
new file mode 100644
index 0000000..a17a9b8
--- /dev/null
+++ b/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist
@@ -0,0 +1,36 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ godot-jolt_macos
+ CFBundleName
+ Godot Jolt
+ CFBundleDisplayName
+ Godot Jolt
+ CFBundleIdentifier
+ org.godot-jolt.godot-jolt
+ NSHumanReadableCopyright
+ Copyright (c) Mikael Hermansson and Godot Jolt contributors.
+ CFBundleVersion
+ 0.14.0
+ CFBundleShortVersionString
+ 0.14.0
+ CFBundlePackageType
+ FMWK
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CSResourcesFileMapped
+
+ DTPlatformName
+ macosx
+ LSMinimumSystemVersion
+ 10.12
+
+
diff --git a/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources b/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..bfa44d7
--- /dev/null
+++ b/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources
@@ -0,0 +1,128 @@
+
+
+
+
+ files
+
+ Resources/Info.plist
+
+ et0C7sxAlu4eIDcq2ihFQ2BhDSk=
+
+
+ files2
+
+ Resources/Info.plist
+
+ hash2
+
+ ZnG0hD4DciikOVWrf1Ai1Qedz9hESuIFvUujZAebHRY=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos b/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos
new file mode 100644
index 0000000..8e08a86
Binary files /dev/null and b/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos differ
diff --git a/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist b/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist
new file mode 100644
index 0000000..1a54a40
--- /dev/null
+++ b/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist
@@ -0,0 +1,36 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ godot-jolt_macos_editor
+ CFBundleName
+ Godot Jolt
+ CFBundleDisplayName
+ Godot Jolt
+ CFBundleIdentifier
+ org.godot-jolt.godot-jolt
+ NSHumanReadableCopyright
+ Copyright (c) Mikael Hermansson and Godot Jolt contributors.
+ CFBundleVersion
+ 0.14.0
+ CFBundleShortVersionString
+ 0.14.0
+ CFBundlePackageType
+ FMWK
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CSResourcesFileMapped
+
+ DTPlatformName
+ macosx
+ LSMinimumSystemVersion
+ 10.12
+
+
diff --git a/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources b/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000..f7016fd
--- /dev/null
+++ b/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources
@@ -0,0 +1,128 @@
+
+
+
+
+ files
+
+ Resources/Info.plist
+
+ oIAzxlQz4Hun6JnLVOu9jafYxGE=
+
+
+ files2
+
+ Resources/Info.plist
+
+ hash2
+
+ FA6I/u5+Ww0DzXAvawYXs792eum+8Bim8uHBbg98jqY=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor b/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor
new file mode 100644
index 0000000..6724cef
Binary files /dev/null and b/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor differ
diff --git a/godot-jolt/windows/godot-jolt_windows-x64.dll b/godot-jolt/windows/godot-jolt_windows-x64.dll
new file mode 100644
index 0000000..a427abe
Binary files /dev/null and b/godot-jolt/windows/godot-jolt_windows-x64.dll differ
diff --git a/godot-jolt/windows/godot-jolt_windows-x64_editor.dll b/godot-jolt/windows/godot-jolt_windows-x64_editor.dll
new file mode 100644
index 0000000..c05d288
Binary files /dev/null and b/godot-jolt/windows/godot-jolt_windows-x64_editor.dll differ
diff --git a/godot-jolt/windows/godot-jolt_windows-x86.dll b/godot-jolt/windows/godot-jolt_windows-x86.dll
new file mode 100644
index 0000000..bdfe732
Binary files /dev/null and b/godot-jolt/windows/godot-jolt_windows-x86.dll differ
diff --git a/godot-jolt/windows/godot-jolt_windows-x86_editor.dll b/godot-jolt/windows/godot-jolt_windows-x86_editor.dll
new file mode 100644
index 0000000..1a54df4
Binary files /dev/null and b/godot-jolt/windows/godot-jolt_windows-x86_editor.dll differ
diff --git a/project.godot b/project.godot
index 56cf5c5..051e9ae 100644
--- a/project.godot
+++ b/project.godot
@@ -15,7 +15,28 @@ run/main_scene="res://assets/scenes/main.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://assets/icon.png"
+[autoload]
+
+GameConsole="*res://addons/ingameconsole/GameConsole.tscn"
+
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
+
+[editor_plugins]
+
+enabled=PackedStringArray("res://addons/ingameconsole/plugin.cfg")
+
+[input]
+
+debug={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":96,"key_label":0,"unicode":96,"location":0,"echo":false,"script":null)
+]
+}
+accept={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}