diff --git a/src/icon.png.import b/src/icon.png.import
index a4c02e6e27173699ab89f60c32661726fadfdbcd..8054d9006691534e33a4c7fa2a57f5df11afddf4 100644
--- a/src/icon.png.import
+++ b/src/icon.png.import
@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture"
-path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://ua51liqpigdd"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://icon.png"
-dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/bptc_ldr=0
+compress/hdr_compression=1
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/src/materials/lazer_shader.tres b/src/materials/lazer_shader.tres
index f0cfc0acf215dc0c103f73abc7c4269ed3ab3794..b4de5a7bc84c7a2535a5398cf96a7fe55d57016b 100644
--- a/src/materials/lazer_shader.tres
+++ b/src/materials/lazer_shader.tres
@@ -1,175 +1,181 @@
-[gd_resource type="VisualShader" load_steps=18 format=2]
+[gd_resource type="VisualShader" load_steps=18 format=3 uid="uid://bs7x2onxixxga"]
 
-[sub_resource type="VisualShaderNodeInput" id=11]
+[sub_resource type="VisualShaderNodeInput" id="11"]
 input_name = "screen_texture"
 
-[sub_resource type="VisualShaderNodeInput" id=12]
+[sub_resource type="VisualShaderNodeInput" id="12"]
 input_name = "uv"
 
-[sub_resource type="VisualShaderNodeScalarUniform" id=13]
-uniform_name = "speed"
+[sub_resource type="VisualShaderNodeFloatParameter" id="13"]
+parameter_name = "speed"
 
-[sub_resource type="VisualShaderNodeScalarOp" id=14]
+[sub_resource type="VisualShaderNodeFloatOp" id="14"]
 operator = 2
 
-[sub_resource type="VisualShaderNodeScalarOp" id=15]
-default_input_values = [ 0, 0.0, 1, 1.0 ]
+[sub_resource type="VisualShaderNodeFloatOp" id="15"]
+default_input_values = [0, 0.0, 1, 1.0]
 
-[sub_resource type="VisualShaderNodeScalarOp" id=16]
-default_input_values = [ 0, 0.0, 1, 2.0 ]
+[sub_resource type="VisualShaderNodeFloatOp" id="16"]
+default_input_values = [0, 0.0, 1, 2.0]
 operator = 3
 
-[sub_resource type="VisualShaderNodeInput" id=17]
+[sub_resource type="VisualShaderNodeInput" id="17"]
 input_name = "screen_uv"
 
-[sub_resource type="VisualShaderNodeVectorDecompose" id=18]
+[sub_resource type="VisualShaderNodeVectorDecompose" id="18"]
 
-[sub_resource type="VisualShaderNodeScalarOp" id=19]
+[sub_resource type="VisualShaderNodeFloatOp" id="19"]
 
-[sub_resource type="VisualShaderNodeInput" id=2]
+[sub_resource type="VisualShaderNodeInput" id="2"]
 output_port_for_preview = 0
 input_name = "time"
 
-[sub_resource type="VisualShaderNodeScalarUniform" id=20]
-uniform_name = "speed2"
+[sub_resource type="VisualShaderNodeFloatParameter" id="20"]
+parameter_name = "speed2"
 default_value_enabled = true
 default_value = 1.0
 
-[sub_resource type="VisualShaderNodeScalarOp" id=21]
+[sub_resource type="VisualShaderNodeFloatOp" id="21"]
 operator = 2
 
-[sub_resource type="VisualShaderNodeScalarFunc" id=3]
+[sub_resource type="VisualShaderNodeFloatFunc" id="3"]
 function = 0
 
-[sub_resource type="VisualShaderNodeColorUniform" id=4]
-uniform_name = "red"
+[sub_resource type="VisualShaderNodeColorParameter" id="4"]
+parameter_name = "red"
 default_value_enabled = true
-default_value = Color( 1, 0, 0, 1 )
+default_value = Color(1, 0, 0, 1)
 
-[sub_resource type="VisualShaderNodeColorUniform" id=5]
+[sub_resource type="VisualShaderNodeColorParameter" id="5"]
 output_port_for_preview = 0
-uniform_name = "green"
+parameter_name = "green"
 default_value_enabled = true
-default_value = Color( 0.227111, 0.883618, 0.249583, 1 )
+default_value = Color(0.227111, 0.883618, 0.249583, 1)
 
-[sub_resource type="VisualShaderNodeVectorInterp" id=6]
+[sub_resource type="VisualShaderNodeMix" id="6"]
 
-[sub_resource type="VisualShaderNodeVectorInterp" id=8]
+[sub_resource type="VisualShaderNodeMix" id="8"]
 
 [resource]
 code = "shader_type canvas_item;
-uniform vec4 green : hint_color = vec4(0.227111, 0.883618, 0.249583, 1.000000);
-uniform vec4 red : hint_color = vec4(1.000000, 0.000000, 0.000000, 1.000000);
+render_mode blend_mix;
+
+uniform vec4 green : source_color = vec4(0.227111, 0.883618, 0.249583, 1.000000);
+uniform vec4 red : source_color = vec4(1.000000, 0.000000, 0.000000, 1.000000);
 uniform float speed;
 uniform float speed2 = 1;
 
 
 
-void vertex() {
-// Output:0
+void fragment() {
+// ColorParameter:5
+	vec4 n_out5p0 = green;
 
-}
 
-void fragment() {
-// ColorUniform:5
-	vec3 n_out5p0 = green.rgb;
-	float n_out5p1 = green.a;
+// ColorParameter:4
+	vec4 n_out4p0 = red;
 
-// ColorUniform:4
-	vec3 n_out4p0 = red.rgb;
-	float n_out4p1 = red.a;
 
-// ScalarUniform:13
+// FloatParameter:13
 	float n_out13p0 = speed;
 
+
 // Input:2
 	float n_out2p0 = TIME;
 
-// ScalarOp:14
+
+// FloatOp:14
 	float n_out14p0 = n_out13p0 * n_out2p0;
 
-// ScalarUniform:20
+
+// FloatParameter:20
 	float n_out20p0 = speed2;
 
+
 // Input:17
-	vec3 n_out17p0 = vec3(SCREEN_UV, 0.0);
+	vec2 n_out17p0 = SCREEN_UV;
+
 
 // VectorDecompose:18
-	float n_out18p0 = n_out17p0.x;
-	float n_out18p1 = n_out17p0.y;
-	float n_out18p2 = n_out17p0.z;
+	float n_out18p0 = vec3(n_out17p0, 0.0).x;
+	float n_out18p1 = vec3(n_out17p0, 0.0).y;
+	float n_out18p2 = vec3(n_out17p0, 0.0).z;
 
-// ScalarOp:21
+
+// FloatOp:21
 	float n_out21p0 = n_out20p0 * n_out18p0;
 
-// ScalarOp:19
+
+// FloatOp:19
 	float n_out19p0 = n_out14p0 + n_out21p0;
 
-// ScalarFunc:3
+
+// FloatFunc:3
 	float n_out3p0 = sin(n_out19p0);
 
-// ScalarOp:15
+
+// FloatOp:15
 	float n_in15p1 = 1.00000;
 	float n_out15p0 = n_out3p0 + n_in15p1;
 
-// ScalarOp:16
+
+// FloatOp:16
 	float n_in16p1 = 2.00000;
 	float n_out16p0 = n_out15p0 / n_in16p1;
 
-// VectorMix:6
-	vec3 n_out6p0 = mix(n_out5p0, n_out4p0, vec3(n_out16p0));
 
-// VectorMix:8
-	vec3 n_in8p1 = vec3(1.00000, 1.00000, 1.00000);
-	vec3 n_in8p2 = vec3(0.50000, 0.50000, 0.50000);
-	vec3 n_out8p0 = mix(n_out6p0, n_in8p1, n_in8p2);
+// Mix:6
+	float n_out6p0 = mix(n_out5p0.x, n_out4p0.x, n_out16p0);
 
-// Output:0
-	COLOR.rgb = n_out8p0;
 
-}
+// Mix:8
+	float n_in8p1 = 1.00000;
+	float n_in8p2 = 0.50000;
+	float n_out8p0 = mix(n_out6p0, n_in8p1, n_in8p2);
+
 
-void light() {
 // Output:0
+	COLOR.rgb = vec3(n_out8p0);
+
 
 }
 "
-graph_offset = Vector2( 13.2411, 198.954 )
+graph_offset = Vector2(13.2411, 198.954)
 mode = 1
 flags/light_only = false
-nodes/fragment/0/position = Vector2( 600, 60 )
-nodes/fragment/2/node = SubResource( 2 )
-nodes/fragment/2/position = Vector2( 60, 120 )
-nodes/fragment/3/node = SubResource( 3 )
-nodes/fragment/3/position = Vector2( 460, 340 )
-nodes/fragment/4/node = SubResource( 4 )
-nodes/fragment/4/position = Vector2( 120, 20 )
-nodes/fragment/5/node = SubResource( 5 )
-nodes/fragment/5/position = Vector2( 120, -80 )
-nodes/fragment/6/node = SubResource( 6 )
-nodes/fragment/6/position = Vector2( 468.25, 39.25 )
-nodes/fragment/8/node = SubResource( 8 )
-nodes/fragment/8/position = Vector2( 460, 160 )
-nodes/fragment/11/node = SubResource( 11 )
-nodes/fragment/11/position = Vector2( -340, 380 )
-nodes/fragment/12/node = SubResource( 12 )
-nodes/fragment/12/position = Vector2( -193.485, 370.785 )
-nodes/fragment/13/node = SubResource( 13 )
-nodes/fragment/13/position = Vector2( -200, 140 )
-nodes/fragment/14/node = SubResource( 14 )
-nodes/fragment/14/position = Vector2( 80, 260 )
-nodes/fragment/15/node = SubResource( 15 )
-nodes/fragment/15/position = Vector2( 280, 240 )
-nodes/fragment/16/node = SubResource( 16 )
-nodes/fragment/16/position = Vector2( 320, 240 )
-nodes/fragment/17/node = SubResource( 17 )
-nodes/fragment/17/position = Vector2( 80, 340 )
-nodes/fragment/18/node = SubResource( 18 )
-nodes/fragment/18/position = Vector2( 80, 380 )
-nodes/fragment/19/node = SubResource( 19 )
-nodes/fragment/19/position = Vector2( 320, 340 )
-nodes/fragment/20/node = SubResource( 20 )
-nodes/fragment/20/position = Vector2( 29.0027, 450.48 )
-nodes/fragment/21/node = SubResource( 21 )
-nodes/fragment/21/position = Vector2( 260, 440 )
-nodes/fragment/connections = PoolIntArray( 5, 0, 6, 0, 4, 0, 6, 1, 6, 0, 8, 0, 8, 0, 0, 0, 13, 0, 14, 0, 2, 0, 14, 1, 3, 0, 15, 0, 15, 0, 16, 0, 16, 0, 6, 2, 17, 0, 18, 0, 19, 0, 3, 0, 18, 0, 21, 1, 14, 0, 19, 0, 21, 0, 19, 1, 20, 0, 21, 0 )
+nodes/fragment/0/position = Vector2(600, 60)
+nodes/fragment/2/node = SubResource("2")
+nodes/fragment/2/position = Vector2(60, 120)
+nodes/fragment/3/node = SubResource("3")
+nodes/fragment/3/position = Vector2(460, 340)
+nodes/fragment/4/node = SubResource("4")
+nodes/fragment/4/position = Vector2(120, 20)
+nodes/fragment/5/node = SubResource("5")
+nodes/fragment/5/position = Vector2(120, -80)
+nodes/fragment/6/node = SubResource("6")
+nodes/fragment/6/position = Vector2(468.25, 39.25)
+nodes/fragment/8/node = SubResource("8")
+nodes/fragment/8/position = Vector2(460, 160)
+nodes/fragment/11/node = SubResource("11")
+nodes/fragment/11/position = Vector2(-340, 380)
+nodes/fragment/12/node = SubResource("12")
+nodes/fragment/12/position = Vector2(-193.485, 370.785)
+nodes/fragment/13/node = SubResource("13")
+nodes/fragment/13/position = Vector2(-200, 140)
+nodes/fragment/14/node = SubResource("14")
+nodes/fragment/14/position = Vector2(80, 260)
+nodes/fragment/15/node = SubResource("15")
+nodes/fragment/15/position = Vector2(280, 240)
+nodes/fragment/16/node = SubResource("16")
+nodes/fragment/16/position = Vector2(320, 240)
+nodes/fragment/17/node = SubResource("17")
+nodes/fragment/17/position = Vector2(80, 340)
+nodes/fragment/18/node = SubResource("18")
+nodes/fragment/18/position = Vector2(80, 380)
+nodes/fragment/19/node = SubResource("19")
+nodes/fragment/19/position = Vector2(320, 340)
+nodes/fragment/20/node = SubResource("20")
+nodes/fragment/20/position = Vector2(29.0027, 450.48)
+nodes/fragment/21/node = SubResource("21")
+nodes/fragment/21/position = Vector2(260, 440)
+nodes/fragment/connections = PackedInt32Array(5, 0, 6, 0, 4, 0, 6, 1, 6, 0, 8, 0, 8, 0, 0, 0, 13, 0, 14, 0, 2, 0, 14, 1, 3, 0, 15, 0, 15, 0, 16, 0, 16, 0, 6, 2, 17, 0, 18, 0, 19, 0, 3, 0, 18, 0, 21, 1, 14, 0, 19, 0, 21, 0, 19, 1, 20, 0, 21, 0)
diff --git a/src/materials/monke.png.import b/src/materials/monke.png.import
index cce5da50051bb7f451f1d7b0ca20751a2084a286..c06520ee2fdff378a778b0a4b6611b3ecbaa5e6a 100644
--- a/src/materials/monke.png.import
+++ b/src/materials/monke.png.import
@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture"
-path="res://.import/monke.png-5c444fb4094cf68dd7a3da6f87b7cb92.stex"
+type="CompressedTexture2D"
+uid="uid://77sk1235c1ny"
+path="res://.godot/imported/monke.png-5c444fb4094cf68dd7a3da6f87b7cb92.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://materials/monke.png"
-dest_files=[ "res://.import/monke.png-5c444fb4094cf68dd7a3da6f87b7cb92.stex" ]
+dest_files=["res://.godot/imported/monke.png-5c444fb4094cf68dd7a3da6f87b7cb92.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/bptc_ldr=0
+compress/hdr_compression=1
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/src/materials/monkebars.png.import b/src/materials/monkebars.png.import
index f7337d073dba7c7a385df1ac3e459887e707e770..98adad295912dcc59572b6ff3a948331d9e573be 100644
--- a/src/materials/monkebars.png.import
+++ b/src/materials/monkebars.png.import
@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture"
-path="res://.import/monkebars.png-45a3145816749295b788b09bf80a0706.stex"
+type="CompressedTexture2D"
+uid="uid://b0lhxx3k5mvsb"
+path="res://.godot/imported/monkebars.png-45a3145816749295b788b09bf80a0706.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://materials/monkebars.png"
-dest_files=[ "res://.import/monkebars.png-45a3145816749295b788b09bf80a0706.stex" ]
+dest_files=["res://.godot/imported/monkebars.png-45a3145816749295b788b09bf80a0706.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/bptc_ldr=0
+compress/hdr_compression=1
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/src/materials/monkewall.png.import b/src/materials/monkewall.png.import
index fe48ab590e4b09d4d1cc987d8e3f3376e926f6f2..4e6a43f3d3f0b0404153d870123afd7534cc7e00 100644
--- a/src/materials/monkewall.png.import
+++ b/src/materials/monkewall.png.import
@@ -1,8 +1,9 @@
 [remap]
 
 importer="texture"
-type="StreamTexture"
-path="res://.import/monkewall.png-49501426c22f18fcf5efdf424ebf8da5.stex"
+type="CompressedTexture2D"
+uid="uid://luuyjcv1elyw"
+path="res://.godot/imported/monkewall.png-49501426c22f18fcf5efdf424ebf8da5.ctex"
 metadata={
 "vram_texture": false
 }
@@ -10,26 +11,24 @@ metadata={
 [deps]
 
 source_file="res://materials/monkewall.png"
-dest_files=[ "res://.import/monkewall.png-49501426c22f18fcf5efdf424ebf8da5.stex" ]
+dest_files=["res://.godot/imported/monkewall.png-49501426c22f18fcf5efdf424ebf8da5.ctex"]
 
 [params]
 
 compress/mode=0
+compress/high_quality=false
 compress/lossy_quality=0.7
-compress/hdr_mode=0
-compress/bptc_ldr=0
+compress/hdr_compression=1
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+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/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/src/objects/monkebars.gd b/src/objects/monkebars.gd
index f46384a782e4331de72db3e5eabbcbf1d34d9cbd..c7079006d3b71c80aa332f43071799ef81c89a6e 100644
--- a/src/objects/monkebars.gd
+++ b/src/objects/monkebars.gd
@@ -1,7 +1,7 @@
 extends Node2D
 
-onready var radius = $RigidBody2D/CollisionShape2D.shape.radius
+@onready var radius = $RigidBody2D/CollisionShape2D.shape.radius
 var position2
-func _physics_process(delta):
+func _physics_process(_delta):
 	position2 = $RigidBody2D.position + self.position
 #	pass
diff --git a/src/project.godot b/src/project.godot
index 28faec34d3b8f3f83279bfc9ee3eca20372ea64a..b1873940ea534b7e9ee1a629154e24485c2fd826 100644
--- a/src/project.godot
+++ b/src/project.godot
@@ -6,41 +6,23 @@
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 
-config_version=4
+config_version=5
 
 [application]
 
 config/name="Shedemon"
 run/main_scene="res://scenes/main.tscn"
+config/features=PackedStringArray("4.1")
 config/icon="res://icon.png"
 
+[dotnet]
+
+project/assembly_name="Shedemon"
+
 [gui]
 
 common/drop_mouse_on_gui_input_disabled=true
 
-[input]
-
-up={
-"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
- ]
-}
-down={
-"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
- ]
-}
-left={
-"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
- ]
-}
-right={
-"deadzone": 0.5,
-"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
- ]
-}
-
 [physics]
 
 common/enable_pause_aware_picking=true
diff --git a/src/scenes/debug.gd b/src/scenes/debug.gd
new file mode 100644
index 0000000000000000000000000000000000000000..949ed712f60fa2aa20ffbe91debdbd008f007611
--- /dev/null
+++ b/src/scenes/debug.gd
@@ -0,0 +1,12 @@
+extends Node2D
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+	pass # Replace with function body.
+	print()
+
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(_delta):
+	pass
diff --git a/src/scenes/main.tscn b/src/scenes/main.tscn
index 64a7d801d0b0e52caf56e9f29c2f1cb017f9e6b8..40570e6c14e8c34c8b4dbe6fbefc5d06164e2b5a 100644
--- a/src/scenes/main.tscn
+++ b/src/scenes/main.tscn
@@ -1,114 +1,108 @@
-[gd_scene load_steps=11 format=2]
+[gd_scene load_steps=12 format=3 uid="uid://bicsfb00qqjgu"]
 
-[ext_resource path="res://objects/monkebars.tscn" type="PackedScene" id=1]
-[ext_resource path="res://materials/monke.png" type="Texture" id=2]
-[ext_resource path="res://scripts/player.gd" type="Script" id=3]
-[ext_resource path="res://objects/monkewall.tscn" type="PackedScene" id=4]
-[ext_resource path="res://materials/lazer_shader.tres" type="Shader" id=5]
+[ext_resource type="PackedScene" path="res://objects/monkebars.tscn" id="1"]
+[ext_resource type="Script" path="res://scenes/debug.gd" id="1_0e4y6"]
+[ext_resource type="Texture2D" uid="uid://77sk1235c1ny" path="res://materials/monke.png" id="2"]
+[ext_resource type="Script" path="res://scripts/player.gd" id="3"]
+[ext_resource type="PackedScene" path="res://objects/monkewall.tscn" id="4"]
+[ext_resource type="Shader" uid="uid://bs7x2onxixxga" path="res://materials/lazer_shader.tres" id="5"]
 
-[sub_resource type="VisualShaderNodeColorUniform" id=9]
-uniform_name = "ColorUniform"
+[sub_resource type="VisualShaderNodeColorParameter" id="9"]
+parameter_name = "ColorUniform"
 default_value_enabled = true
-default_value = Color( 0.0207183, 0, 0.795573, 1 )
+default_value = Color(0.0207183, 0, 0.795573, 1)
 
-[sub_resource type="VisualShader" id=10]
+[sub_resource type="VisualShader" id="10"]
 code = "shader_type spatial;
-render_mode specular_schlick_ggx, async_visible;
+render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_lambert, specular_schlick_ggx;
 
-uniform vec4 ColorUniform : hint_color = vec4(0.020718, 0.000000, 0.795573, 1.000000);
+uniform vec4 ColorUniform : source_color = vec4(0.020718, 0.000000, 0.795573, 1.000000);
 
 
 
-void vertex() {
-// Output:0
-
-}
-
 void fragment() {
-// ColorUniform:2
-	vec3 n_out2p0 = ColorUniform.rgb;
-	float n_out2p1 = ColorUniform.a;
+// ColorParameter:2
+	vec4 n_out2p0 = ColorUniform;
 
-// Output:0
-	ALBEDO = n_out2p0;
-
-}
 
-void light() {
 // Output:0
+	ALBEDO = vec3(n_out2p0.xyz);
+
 
 }
 "
-graph_offset = Vector2( 84.6881, 306.758 )
-nodes/fragment/2/node = SubResource( 9 )
-nodes/fragment/2/position = Vector2( 140, 220 )
-nodes/fragment/connections = PoolIntArray( 2, 0, 0, 0 )
+graph_offset = Vector2(84.6881, 306.758)
+nodes/fragment/2/node = SubResource("9")
+nodes/fragment/2/position = Vector2(140, 220)
+nodes/fragment/connections = PackedInt32Array(2, 0, 0, 0)
 
-[sub_resource type="ShaderMaterial" id=11]
-shader = SubResource( 10 )
-shader_param/ColorUniform = Color( 0.020718, 0, 0.795573, 1 )
+[sub_resource type="ShaderMaterial" id="11"]
+render_priority = 0
+shader = SubResource("10")
+shader_parameter/ColorUniform = Color(0.020718, 0, 0.795573, 1)
 
-[sub_resource type="CircleShape2D" id=1]
+[sub_resource type="CircleShape2D" id="1"]
 radius = 22.05
 
-[sub_resource type="ShaderMaterial" id=8]
-shader = ExtResource( 5 )
-shader_param/green = Color( 0.737255, 0.588235, 1, 1 )
-shader_param/red = Color( 0, 0, 0, 1 )
-shader_param/speed = 11.849
-shader_param/speed2 = 80.0
+[sub_resource type="ShaderMaterial" id="8"]
+shader = ExtResource("5")
+shader_parameter/green = Color(0.737255, 0.588235, 1, 1)
+shader_parameter/red = Color(0, 0, 0, 1)
+shader_parameter/speed = 11.849
+shader_parameter/speed2 = 80.0
 
 [node name="Node2D" type="Node2D"]
-material = SubResource( 11 )
-position = Vector2( -1, 3 )
+material = SubResource("11")
+position = Vector2(-1, 3)
+script = ExtResource("1_0e4y6")
 
-[node name="player" type="KinematicBody2D" parent="."]
-position = Vector2( 255, 158 )
-script = ExtResource( 3 )
+[node name="player" type="CharacterBody2D" parent="."]
+position = Vector2(255, 158)
+script = ExtResource("3")
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="player"]
-position = Vector2( -3, 3 )
-shape = SubResource( 1 )
+position = Vector2(-3, 3)
+shape = SubResource("1")
 
-[node name="Sprite" type="Sprite" parent="player"]
-position = Vector2( 224, 25 )
-scale = Vector2( 0.352364, 0.368132 )
-texture = ExtResource( 2 )
-offset = Vector2( -643, -67 )
+[node name="Sprite" type="Sprite2D" parent="player"]
+position = Vector2(224, 25)
+scale = Vector2(0.352364, 0.368132)
+texture = ExtResource("2")
+offset = Vector2(-643, -67)
 
 [node name="pillars" type="Node2D" parent="."]
 
-[node name="monkebars" parent="pillars" instance=ExtResource( 1 )]
-position = Vector2( 403, 57 )
+[node name="monkebars" parent="pillars" instance=ExtResource("1")]
+position = Vector2(403, 57)
 
-[node name="monkebars2" parent="pillars" instance=ExtResource( 1 )]
-position = Vector2( 416, 283 )
+[node name="monkebars2" parent="pillars" instance=ExtResource("1")]
+position = Vector2(416, 283)
 
-[node name="monkebars3" parent="pillars" instance=ExtResource( 1 )]
-position = Vector2( 95, 275 )
+[node name="monkebars3" parent="pillars" instance=ExtResource("1")]
+position = Vector2(95, 275)
 
 [node name="walls" type="Node2D" parent="."]
 
-[node name="monkewall" parent="walls" instance=ExtResource( 4 )]
-position = Vector2( 506, -125 )
-scale = Vector2( 19.9319, 4.98211 )
+[node name="monkewall" parent="walls" instance=ExtResource("4")]
+position = Vector2(506, -125)
+scale = Vector2(19.9319, 4.98211)
 
-[node name="monkewall3" parent="walls" instance=ExtResource( 4 )]
-position = Vector2( 474, 723 )
-scale = Vector2( 19.9319, 4.98211 )
+[node name="monkewall3" parent="walls" instance=ExtResource("4")]
+position = Vector2(474, 723)
+scale = Vector2(19.9319, 4.98211)
 
-[node name="monkewall2" parent="walls" instance=ExtResource( 4 )]
-position = Vector2( -109, 311 )
-scale = Vector2( 4.58318, 11.3502 )
+[node name="monkewall2" parent="walls" instance=ExtResource("4")]
+position = Vector2(-109, 311)
+scale = Vector2(4.58318, 11.3502)
 
-[node name="monkewall4" parent="walls" instance=ExtResource( 4 )]
-position = Vector2( 1110, 304 )
-scale = Vector2( 4.58318, 11.3502 )
+[node name="monkewall4" parent="walls" instance=ExtResource("4")]
+position = Vector2(1110, 304)
+scale = Vector2(4.58318, 11.3502)
 
 [node name="debug" type="Node2D" parent="."]
 
 [node name="Line2D" type="Line2D" parent="debug"]
-material = SubResource( 8 )
-points = PoolVector2Array( 0, 0, 32.2308, 32.2308, 50, 50 )
+material = SubResource("8")
+points = PackedVector2Array(0, 0, 32.2308, 32.2308, 50, 50)
 width = 4.134
-default_color = Color( 0.4, 0.501961, 1, 1 )
+default_color = Color(0.4, 0.501961, 1, 1)
diff --git a/src/scripts/player.gd b/src/scripts/player.gd
index 3680fba54f7ce58eba54a1ee6970e4e948d3a8fd..e8b123c7cf34254089144d5f23153c1674f30363 100644
--- a/src/scripts/player.gd
+++ b/src/scripts/player.gd
@@ -1,42 +1,40 @@
-extends KinematicBody2D
+extends CharacterBody2D
 
+@export var speed: float = 2.0
 
-
-export (int) var speed = 2.0
-
-var velocity = Vector2()
-onready var body = self
+var velocity_ = Vector2()
+@onready var body = self
 
 func get_input():
 	var jolt = Vector2()
-	if Input.is_action_pressed("right"):
+	if Input.is_action_pressed("ui_right"):
 		jolt.x += 1
-	if Input.is_action_pressed("left"):
+	if Input.is_action_pressed("ui_left"):
 		jolt.x -= 1
-	if Input.is_action_pressed("down"):
+	if Input.is_action_pressed("ui_down"):
 		jolt.y += 1
-	if Input.is_action_pressed("up"):
+	if Input.is_action_pressed("ui_up"):
 		jolt.y -= 1
-	velocity += jolt.normalized() * speed
+	velocity_ += jolt.normalized() * speed
 
-func _physics_process(delta):
+func _physics_process(_delta):
 	get_input()
-	var hittest = body.move_and_collide(velocity)
+	var hittest = body.move_and_collide(velocity_)
 	if hittest:
-		velocity *= 0
+		velocity_ *= 0
 		print(hittest)
 	
-	velocity *= 0.9
-	#print(delta, ", ", velocity)
+	velocity_ *= 0.9
+	#print(delta, ", ", velocity_)
 
-onready var debug_line = $"../debug/Line2D"
+@onready var debug_line = $"../debug/Line2D"
 func _ready():
 	#debug_line.position = body.position  + Vector2(50, 50)
 	#print(debug_line.position, ", ", body.position)
 	pass
 
-onready var pillars = $"../pillars"
-func _process(delta):
+@onready var pillars = $"../pillars"
+func _process(_delta):
 	debug_line.clear_points()
 	debug_line.add_point(body.position)