diff --git a/Chunk0_0 b/Chunk0_0
new file mode 100644
index 0000000..a051bc4
Binary files /dev/null and b/Chunk0_0 differ
diff --git a/etc/default_theme.tres b/etc/default_theme.tres
new file mode 100644
index 0000000..b14a6c0
--- /dev/null
+++ b/etc/default_theme.tres
@@ -0,0 +1,14 @@
+[gd_resource type="Theme" load_steps=3 format=3 uid="uid://ypdn3bt0bsw"]
+
+[ext_resource type="FontFile" uid="uid://ciqqp7ps6fpm2" path="res://etc/fonts/pixel_operator/PixelOperator8.ttf" id="1_d85by"]
+
+[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_71vis"]
+bg_color = Color(0, 0, 0, 1)
+border_width_left = 2
+border_width_top = 2
+border_width_right = 2
+border_width_bottom = 2
+
+[resource]
+default_font = ExtResource("1_d85by")
+Button/styles/focus = SubResource("StyleBoxFlat_71vis")
diff --git a/etc/fonts/pixel_operator/LICENSE.txt b/etc/fonts/pixel_operator/LICENSE.txt
new file mode 100644
index 0000000..354f1e0
--- /dev/null
+++ b/etc/fonts/pixel_operator/LICENSE.txt
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
diff --git a/etc/fonts/pixel_operator/PixelOperator-Bold.ttf b/etc/fonts/pixel_operator/PixelOperator-Bold.ttf
new file mode 100644
index 0000000..745734f
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperator-Bold.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperator-Bold.ttf.import b/etc/fonts/pixel_operator/PixelOperator-Bold.ttf.import
new file mode 100644
index 0000000..b70ff27
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperator-Bold.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://cauifav6bd4f"
+path="res://.godot/imported/PixelOperator-Bold.ttf-0405c0dce3a9808d69f713b05f8cbf9e.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperator-Bold.ttf"
+dest_files=["res://.godot/imported/PixelOperator-Bold.ttf-0405c0dce3a9808d69f713b05f8cbf9e.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperator.ttf b/etc/fonts/pixel_operator/PixelOperator.ttf
new file mode 100644
index 0000000..34fe947
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperator.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperator.ttf.import b/etc/fonts/pixel_operator/PixelOperator.ttf.import
new file mode 100644
index 0000000..574e096
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperator.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://jowtfwhfycu7"
+path="res://.godot/imported/PixelOperator.ttf-9e7ebdf6357c7437575112610bac1280.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperator.ttf"
+dest_files=["res://.godot/imported/PixelOperator.ttf-9e7ebdf6357c7437575112610bac1280.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf b/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf
new file mode 100644
index 0000000..10225eb
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf.import b/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf.import
new file mode 100644
index 0000000..54c8f84
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperator8-Bold.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://bntab87bbf323"
+path="res://.godot/imported/PixelOperator8-Bold.ttf-fbafa1448be1228bf4d97afda555aa75.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperator8-Bold.ttf"
+dest_files=["res://.godot/imported/PixelOperator8-Bold.ttf-fbafa1448be1228bf4d97afda555aa75.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperator8.ttf b/etc/fonts/pixel_operator/PixelOperator8.ttf
new file mode 100644
index 0000000..f9146ac
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperator8.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperator8.ttf.import b/etc/fonts/pixel_operator/PixelOperator8.ttf.import
new file mode 100644
index 0000000..4963600
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperator8.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://ciqqp7ps6fpm2"
+path="res://.godot/imported/PixelOperator8.ttf-e0244b07667fdaa19e2dd39d0ed66d09.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperator8.ttf"
+dest_files=["res://.godot/imported/PixelOperator8.ttf-e0244b07667fdaa19e2dd39d0ed66d09.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorHB.ttf b/etc/fonts/pixel_operator/PixelOperatorHB.ttf
new file mode 100644
index 0000000..d63fa39
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorHB.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorHB.ttf.import b/etc/fonts/pixel_operator/PixelOperatorHB.ttf.import
new file mode 100644
index 0000000..4745646
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorHB.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://degfsq5tqjrai"
+path="res://.godot/imported/PixelOperatorHB.ttf-f4a572806502b76dc76abf561f616521.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorHB.ttf"
+dest_files=["res://.godot/imported/PixelOperatorHB.ttf-f4a572806502b76dc76abf561f616521.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorHB8.ttf b/etc/fonts/pixel_operator/PixelOperatorHB8.ttf
new file mode 100644
index 0000000..5283cb5
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorHB8.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorHB8.ttf.import b/etc/fonts/pixel_operator/PixelOperatorHB8.ttf.import
new file mode 100644
index 0000000..89d54fd
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorHB8.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://bpgvni12uqh6b"
+path="res://.godot/imported/PixelOperatorHB8.ttf-50d4813ae41a6b9b30e7a32ad54b5d32.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorHB8.ttf"
+dest_files=["res://.godot/imported/PixelOperatorHB8.ttf-50d4813ae41a6b9b30e7a32ad54b5d32.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf b/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf
new file mode 100644
index 0000000..b8fa149
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf.import b/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf.import
new file mode 100644
index 0000000..cb36847
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorHBSC.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://cknjxdvxflqdb"
+path="res://.godot/imported/PixelOperatorHBSC.ttf-55d58002855e1dc2a1b90bb80b33ed0d.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorHBSC.ttf"
+dest_files=["res://.godot/imported/PixelOperatorHBSC.ttf-55d58002855e1dc2a1b90bb80b33ed0d.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf b/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf
new file mode 100644
index 0000000..215d4a2
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf.import
new file mode 100644
index 0000000..e90ae30
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://vhpb2vieaq8"
+path="res://.godot/imported/PixelOperatorMono-Bold.ttf-2494014c77de955df9751c0742797015.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMono-Bold.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMono-Bold.ttf-2494014c77de955df9751c0742797015.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono.ttf b/etc/fonts/pixel_operator/PixelOperatorMono.ttf
new file mode 100644
index 0000000..1c1edcc
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMono.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMono.ttf.import
new file mode 100644
index 0000000..0cbd193
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMono.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://ceyybtmb61ii0"
+path="res://.godot/imported/PixelOperatorMono.ttf-7490f1ae3c6925e3d6316597573634b3.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMono.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMono.ttf-7490f1ae3c6925e3d6316597573634b3.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf b/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf
new file mode 100644
index 0000000..fc5b82b
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf.import
new file mode 100644
index 0000000..074fadf
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://deb36ggu7suem"
+path="res://.godot/imported/PixelOperatorMono8-Bold.ttf-5cbdbf49638651dc23cb9fd29d4afb6a.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMono8-Bold.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMono8-Bold.ttf-5cbdbf49638651dc23cb9fd29d4afb6a.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono8.ttf b/etc/fonts/pixel_operator/PixelOperatorMono8.ttf
new file mode 100644
index 0000000..9e871ea
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMono8.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMono8.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMono8.ttf.import
new file mode 100644
index 0000000..ea240c6
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMono8.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://ibijfvsw2fod"
+path="res://.godot/imported/PixelOperatorMono8.ttf-960a1fa1a22e4dedbf1194b6116601d7.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMono8.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMono8.ttf-960a1fa1a22e4dedbf1194b6116601d7.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf b/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf
new file mode 100644
index 0000000..55410fb
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf.import
new file mode 100644
index 0000000..596946a
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://davoaymidyabb"
+path="res://.godot/imported/PixelOperatorMonoHB.ttf-570601c70ec2d3c4d4b0d92483fc3b39.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMonoHB.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMonoHB.ttf-570601c70ec2d3c4d4b0d92483fc3b39.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf b/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf
new file mode 100644
index 0000000..1e10e3b
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf.import b/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf.import
new file mode 100644
index 0000000..f16b722
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://by1840752txqo"
+path="res://.godot/imported/PixelOperatorMonoHB8.ttf-a8315b0486739a33b12fc9800f8c260d.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorMonoHB8.ttf"
+dest_files=["res://.godot/imported/PixelOperatorMonoHB8.ttf-a8315b0486739a33b12fc9800f8c260d.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf b/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf
new file mode 100644
index 0000000..a44caaf
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf.import b/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf.import
new file mode 100644
index 0000000..6e8f0b5
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://b0ojoixe5jb6p"
+path="res://.godot/imported/PixelOperatorSC-Bold.ttf-7ce41d94b438f99bb1bf271918be6aa7.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorSC-Bold.ttf"
+dest_files=["res://.godot/imported/PixelOperatorSC-Bold.ttf-7ce41d94b438f99bb1bf271918be6aa7.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/etc/fonts/pixel_operator/PixelOperatorSC.ttf b/etc/fonts/pixel_operator/PixelOperatorSC.ttf
new file mode 100644
index 0000000..06783f8
Binary files /dev/null and b/etc/fonts/pixel_operator/PixelOperatorSC.ttf differ
diff --git a/etc/fonts/pixel_operator/PixelOperatorSC.ttf.import b/etc/fonts/pixel_operator/PixelOperatorSC.ttf.import
new file mode 100644
index 0000000..0687161
--- /dev/null
+++ b/etc/fonts/pixel_operator/PixelOperatorSC.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://dqhn8gq10jdnd"
+path="res://.godot/imported/PixelOperatorSC.ttf-8514225db649dc2009d3ea3fefe06d09.fontdata"
+
+[deps]
+
+source_file="res://etc/fonts/pixel_operator/PixelOperatorSC.ttf"
+dest_files=["res://.godot/imported/PixelOperatorSC.ttf-8514225db649dc2009d3ea3fefe06d09.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/project.godot b/project.godot
index d02381c..b5f3b48 100644
--- a/project.godot
+++ b/project.godot
@@ -31,9 +31,14 @@ window/size/viewport_height=256
 window/size/resizable=false
 window/size/window_width_override=512
 window/size/window_height_override=512
+window/subwindows/embed_subwindows=false
 window/stretch/mode="canvas_items"
 window/stretch/scale_mode="integer"
 
+[gui]
+
+theme/custom="res://etc/default_theme.tres"
+
 [input]
 
 ui_left={
diff --git a/savefile b/savefile
new file mode 100644
index 0000000..ee2fef0
Binary files /dev/null and b/savefile differ
diff --git a/scenes/map_editor.tscn b/scenes/map_editor.tscn
new file mode 100644
index 0000000..d628015
--- /dev/null
+++ b/scenes/map_editor.tscn
@@ -0,0 +1,22 @@
+[gd_scene format=3 uid="uid://b36mrl1orxgqc"]
+
+[node name="MapEditor" type="Window"]
+title = "Map Editor"
+initial_position = 1
+size = Vector2i(128, 128)
+unresizable = true
+
+[node name="List" type="VBoxContainer" parent="."]
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="Button" type="Button" parent="List"]
+layout_mode = 2
+text = "TEST"
+
+[node name="Button2" type="Button" parent="List"]
+layout_mode = 2
+text = "TEST"
diff --git a/scenes/world.tscn b/scenes/world.tscn
index a442096..b7f4060 100644
--- a/scenes/world.tscn
+++ b/scenes/world.tscn
@@ -1,13 +1,15 @@
-[gd_scene load_steps=3 format=4 uid="uid://cj745xdkfs07e"]
+[gd_scene load_steps=4 format=4 uid="uid://cj745xdkfs07e"]
 
+[ext_resource type="Script" path="res://scripts/world.gd" id="1_esegs"]
 [ext_resource type="TileSet" uid="uid://stnhmu4q2gsn" path="res://etc/main_tileset.tres" id="1_xai1s"]
 [ext_resource type="PackedScene" uid="uid://qf1tj52hbpvv" path="res://scenes/player.tscn" id="2_6pie4"]
 
 [node name="World" type="Node2D"]
+script = ExtResource("1_esegs")
 metadata/_edit_lock_ = true
 
 [node name="TileMapLayer" type="TileMapLayer" parent="."]
-tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA8AAAAAAAAAAAABAA8AAAAAAAAAAAACAA8AAAAAAAAAAAADAA8AAAAAAAAAAAAEAA8AAAAAAAAAAAAFAA8AAAAAAAAAAAAGAA8AAAAAAAAAAAAHAA8AAAAAAAAAAAAJAA8AAAAAAAAAAAAKAA8AAAAAAAAAAAALAA8AAAAAAAAAAAAMAA8AAAAAAAAAAAANAA8AAAAAAAAAAAAOAA8AAAAAAAAAAAAPAA8AAAAAAAAAAAAPAA4AAAAAAAAAAAAPAA0AAAAAAAAAAAAPAAwAAAAAAAAAAAAPAAsAAAAAAAAAAAAPAAoAAAAAAAAAAAAPAAkAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAPAAMAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAIAA8AAAAAAAAAAAAPAAgAAAAAAAAAAAAEAAQAAAAAAAAAAAAEAAUAAAAAAAAAAAAEAAYAAAAAAAAAAAAEAAkAAAAAAAAAAAAEAAoAAAAAAAAAAAALAAYAAAAAAAAAAAALAAUAAAAAAAAAAAALAAQAAAAAAAAAAAAKAAQAAAAAAAAAAAAJAAQAAAAAAAAAAAAGAAQAAAAAAAAAAAAFAAQAAAAAAAAAAAALAAkAAAAAAAAAAAALAAoAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAGAAsAAAAAAAAAAAAJAAsAAAAAAAAAAAAKAAsAAAAAAAAAAAALAAsAAAAAAAAAAAACAAkAAAABAAAAAAACAAgAAAABAAAAAAACAAcAAAABAAAAAAACAAYAAAABAAAAAAACAAUAAAABAAAAAAACAAQAAAABAAAAAAACAAMAAAABAAAAAAACAAIAAAABAAAAAAACAAEAAAABAAAAAAABAAEAAAABAAAAAAABAAIAAAABAAAAAAABAAMAAAABAAAAAAABAAQAAAABAAAAAAABAAUAAAABAAAAAAABAAYAAAABAAAAAAABAAcAAAABAAAAAAABAAgAAAABAAAAAAABAAkAAAABAAAAAAABAAoAAAABAAAAAAABAAsAAAABAAAAAAABAAwAAAABAAAAAAABAA0AAAABAAAAAAABAA4AAAABAAAAAAACAA4AAAABAAAAAAACAA0AAAABAAAAAAACAAwAAAABAAAAAAACAAsAAAABAAAAAAACAAoAAAABAAAAAAADAAoAAAABAAAAAAADAAkAAAABAAAAAAADAAgAAAABAAAAAAADAAcAAAABAAAAAAADAAYAAAABAAAAAAADAAUAAAABAAAAAAADAAQAAAABAAAAAAADAAMAAAABAAAAAAADAAIAAAABAAAAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAEAAIAAAABAAAAAAAEAAMAAAABAAAAAAAFAAMAAAABAAAAAAAFAAIAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAGAAIAAAABAAAAAAAGAAMAAAABAAAAAAAHAAMAAAABAAAAAAAHAAIAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAIAAIAAAABAAAAAAAIAAMAAAABAAAAAAAIAAQAAAABAAAAAAAHAAQAAAABAAAAAAAHAAUAAAABAAAAAAAGAAUAAAABAAAAAAAFAAUAAAABAAAAAAAFAAYAAAABAAAAAAAFAAcAAAABAAAAAAAEAAcAAAABAAAAAAAEAAgAAAABAAAAAAAFAAgAAAABAAAAAAAFAAkAAAABAAAAAAAFAAoAAAABAAAAAAAGAAoAAAABAAAAAAAGAAkAAAABAAAAAAAGAAgAAAABAAAAAAAGAAcAAAABAAAAAAAGAAYAAAABAAAAAAAHAAYAAAABAAAAAAAHAAcAAAABAAAAAAAHAAgAAAABAAAAAAAHAAkAAAABAAAAAAAHAAoAAAABAAAAAAAHAAsAAAABAAAAAAAHAAwAAAABAAAAAAAGAAwAAAABAAAAAAAFAAwAAAABAAAAAAAEAAwAAAABAAAAAAADAAwAAAABAAAAAAADAAsAAAABAAAAAAADAA0AAAABAAAAAAADAA4AAAABAAAAAAAEAA4AAAABAAAAAAAEAA0AAAABAAAAAAAFAA0AAAABAAAAAAAFAA4AAAABAAAAAAAGAA4AAAABAAAAAAAGAA0AAAABAAAAAAAHAA0AAAABAAAAAAAHAA4AAAABAAAAAAAIAA4AAAABAAAAAAAIAA0AAAABAAAAAAAIAAwAAAABAAAAAAAIAAsAAAABAAAAAAAIAAoAAAABAAAAAAAIAAkAAAABAAAAAAAIAAgAAAABAAAAAAAIAAcAAAABAAAAAAAIAAYAAAABAAAAAAAIAAUAAAABAAAAAAAJAAUAAAABAAAAAAAJAAYAAAABAAAAAAAJAAcAAAABAAAAAAAJAAgAAAABAAAAAAAJAAkAAAABAAAAAAAJAAoAAAABAAAAAAAKAAoAAAABAAAAAAAKAAkAAAABAAAAAAAKAAgAAAABAAAAAAAKAAcAAAABAAAAAAAKAAYAAAABAAAAAAAKAAUAAAABAAAAAAALAAcAAAABAAAAAAALAAgAAAABAAAAAAAMAAgAAAABAAAAAAAMAAcAAAABAAAAAAAMAAYAAAABAAAAAAAMAAUAAAABAAAAAAAMAAQAAAABAAAAAAAMAAMAAAABAAAAAAAMAAIAAAABAAAAAAAMAAEAAAABAAAAAAALAAEAAAABAAAAAAAKAAEAAAABAAAAAAAJAAEAAAABAAAAAAAJAAIAAAABAAAAAAAJAAMAAAABAAAAAAAKAAMAAAABAAAAAAAKAAIAAAABAAAAAAALAAIAAAABAAAAAAALAAMAAAABAAAAAAANAAEAAAABAAAAAAANAAIAAAABAAAAAAANAAMAAAABAAAAAAANAAQAAAABAAAAAAANAAUAAAABAAAAAAANAAYAAAABAAAAAAANAAcAAAABAAAAAAANAAgAAAABAAAAAAANAAkAAAABAAAAAAAMAAkAAAABAAAAAAAMAAoAAAABAAAAAAAMAAsAAAABAAAAAAAMAAwAAAABAAAAAAALAAwAAAABAAAAAAAKAAwAAAABAAAAAAAJAAwAAAABAAAAAAAJAA0AAAABAAAAAAAJAA4AAAABAAAAAAAKAA4AAAABAAAAAAAKAA0AAAABAAAAAAALAA0AAAABAAAAAAALAA4AAAABAAAAAAAMAA4AAAABAAAAAAAMAA0AAAABAAAAAAANAA0AAAABAAAAAAANAAwAAAABAAAAAAANAAsAAAABAAAAAAANAAoAAAABAAAAAAAOAAoAAAABAAAAAAAOAAkAAAABAAAAAAAOAAgAAAABAAAAAAAOAAcAAAABAAAAAAAOAAYAAAABAAAAAAAOAAUAAAABAAAAAAAOAAQAAAABAAAAAAAOAAMAAAABAAAAAAAOAAIAAAABAAAAAAAOAAEAAAABAAAAAAAOAAsAAAABAAAAAAAOAAwAAAABAAAAAAAOAA0AAAABAAAAAAAOAA4AAAABAAAAAAANAA4AAAABAAAAAAA=")
+tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA8AAAAAAAAAAAABAA8AAAAAAAAAAAACAA8AAAAAAAAAAAADAA8AAAAAAAAAAAAEAA8AAAAAAAAAAAAFAA8AAAAAAAAAAAAGAA8AAAAAAAAAAAAHAA8AAAAAAAAAAAAJAA8AAAAAAAAAAAAKAA8AAAAAAAAAAAALAA8AAAAAAAAAAAAMAA8AAAAAAAAAAAANAA8AAAAAAAAAAAAOAA8AAAAAAAAAAAAPAA8AAAAAAAAAAAAPAA4AAAAAAAAAAAAPAA0AAAAAAAAAAAAPAAwAAAAAAAAAAAAPAAsAAAAAAAAAAAAPAAoAAAAAAAAAAAAPAAkAAAAAAAAAAAAPAAcAAAAAAAAAAAAPAAYAAAAAAAAAAAAPAAUAAAAAAAAAAAAPAAQAAAAAAAAAAAAPAAIAAAAAAAAAAAAPAAEAAAAAAAAAAAAPAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAPAAMAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAIAA8AAAAAAAAAAAAPAAgAAAAAAAAAAAAEAAQAAAABAAAAAAAEAAUAAAABAAAAAAAEAAYAAAABAAAAAAAEAAkAAAABAAAAAAAEAAoAAAABAAAAAAALAAYAAAABAAAAAAALAAUAAAABAAAAAAALAAQAAAABAAAAAAAKAAQAAAABAAAAAAAJAAQAAAABAAAAAAAGAAQAAAABAAAAAAAFAAQAAAABAAAAAAALAAkAAAABAAAAAAALAAoAAAABAAAAAAAEAAsAAAABAAAAAAAFAAsAAAABAAAAAAAGAAsAAAABAAAAAAAJAAsAAAABAAAAAAAKAAsAAAABAAAAAAALAAsAAAABAAAAAAACAAkAAAABAAAAAAACAAgAAAABAAAAAAACAAcAAAABAAAAAAACAAYAAAABAAAAAAACAAUAAAABAAAAAAACAAQAAAABAAAAAAACAAMAAAABAAAAAAACAAIAAAABAAAAAAACAAEAAAABAAAAAAABAAEAAAABAAAAAAABAAIAAAABAAAAAAABAAMAAAABAAAAAAABAAQAAAABAAAAAAABAAUAAAABAAAAAAABAAYAAAABAAAAAAABAAcAAAABAAAAAAABAAgAAAABAAAAAAABAAkAAAABAAAAAAABAAoAAAABAAAAAAABAAsAAAABAAAAAAABAAwAAAABAAAAAAABAA0AAAABAAAAAAABAA4AAAABAAAAAAACAA4AAAABAAAAAAACAA0AAAABAAAAAAACAAwAAAABAAAAAAACAAsAAAABAAAAAAACAAoAAAABAAAAAAADAAoAAAABAAAAAAADAAkAAAABAAAAAAADAAgAAAABAAAAAAADAAcAAAABAAAAAAADAAYAAAABAAAAAAADAAUAAAABAAAAAAADAAQAAAABAAAAAAADAAMAAAABAAAAAAADAAIAAAABAAAAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAEAAIAAAABAAAAAAAEAAMAAAABAAAAAAAFAAMAAAABAAAAAAAFAAIAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAGAAIAAAABAAAAAAAGAAMAAAABAAAAAAAHAAMAAAABAAAAAAAHAAIAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAIAAIAAAABAAAAAAAIAAMAAAABAAAAAAAIAAQAAAABAAAAAAAHAAQAAAABAAAAAAAHAAUAAAABAAAAAAAGAAUAAAABAAAAAAAFAAUAAAABAAAAAAAFAAYAAAABAAAAAAAFAAcAAAABAAAAAAAEAAcAAAABAAAAAAAEAAgAAAABAAAAAAAFAAgAAAABAAAAAAAFAAkAAAABAAAAAAAFAAoAAAABAAAAAAAGAAoAAAABAAAAAAAGAAkAAAABAAAAAAAGAAgAAAABAAAAAAAGAAcAAAABAAAAAAAGAAYAAAABAAAAAAAHAAYAAAABAAAAAAAHAAcAAAABAAAAAAAHAAgAAAABAAAAAAAHAAkAAAABAAAAAAAHAAoAAAABAAAAAAAHAAsAAAABAAAAAAAHAAwAAAABAAAAAAAGAAwAAAABAAAAAAAFAAwAAAABAAAAAAAEAAwAAAABAAAAAAADAAwAAAABAAAAAAADAAsAAAABAAAAAAADAA0AAAABAAAAAAADAA4AAAABAAAAAAAEAA4AAAABAAAAAAAEAA0AAAABAAAAAAAFAA0AAAABAAAAAAAFAA4AAAABAAAAAAAGAA4AAAABAAAAAAAGAA0AAAABAAAAAAAHAA0AAAABAAAAAAAHAA4AAAABAAAAAAAIAA4AAAABAAAAAAAIAA0AAAABAAAAAAAIAAwAAAABAAAAAAAIAAsAAAABAAAAAAAIAAoAAAABAAAAAAAIAAkAAAABAAAAAAAIAAgAAAABAAAAAAAIAAcAAAABAAAAAAAIAAYAAAABAAAAAAAIAAUAAAABAAAAAAAJAAUAAAABAAAAAAAJAAYAAAABAAAAAAAJAAcAAAABAAAAAAAJAAgAAAABAAAAAAAJAAkAAAABAAAAAAAJAAoAAAABAAAAAAAKAAoAAAABAAAAAAAKAAkAAAABAAAAAAAKAAgAAAABAAAAAAAKAAcAAAABAAAAAAAKAAYAAAABAAAAAAAKAAUAAAABAAAAAAALAAcAAAABAAAAAAALAAgAAAABAAAAAAAMAAgAAAABAAAAAAAMAAcAAAABAAAAAAAMAAYAAAABAAAAAAAMAAUAAAABAAAAAAAMAAQAAAABAAAAAAAMAAMAAAABAAAAAAAMAAIAAAABAAAAAAAMAAEAAAABAAAAAAALAAEAAAABAAAAAAAKAAEAAAABAAAAAAAJAAEAAAABAAAAAAAJAAIAAAABAAAAAAAJAAMAAAABAAAAAAAKAAMAAAABAAAAAAAKAAIAAAABAAAAAAALAAIAAAABAAAAAAALAAMAAAABAAAAAAANAAEAAAABAAAAAAANAAIAAAABAAAAAAANAAMAAAABAAAAAAANAAQAAAABAAAAAAANAAUAAAABAAAAAAANAAYAAAABAAAAAAANAAcAAAABAAAAAAANAAgAAAABAAAAAAANAAkAAAABAAAAAAAMAAkAAAABAAAAAAAMAAoAAAABAAAAAAAMAAsAAAABAAAAAAAMAAwAAAABAAAAAAALAAwAAAABAAAAAAAKAAwAAAABAAAAAAAJAAwAAAABAAAAAAAJAA0AAAABAAAAAAAJAA4AAAABAAAAAAAKAA4AAAABAAAAAAAKAA0AAAABAAAAAAALAA0AAAABAAAAAAALAA4AAAABAAAAAAAMAA4AAAABAAAAAAAMAA0AAAABAAAAAAANAA0AAAABAAAAAAANAAwAAAABAAAAAAANAAsAAAABAAAAAAANAAoAAAABAAAAAAAOAAoAAAABAAAAAAAOAAkAAAABAAAAAAAOAAgAAAABAAAAAAAOAAcAAAABAAAAAAAOAAYAAAABAAAAAAAOAAUAAAABAAAAAAAOAAQAAAABAAAAAAAOAAMAAAABAAAAAAAOAAIAAAABAAAAAAAOAAEAAAABAAAAAAAOAAsAAAABAAAAAAAOAAwAAAABAAAAAAAOAA0AAAABAAAAAAAOAA4AAAABAAAAAAANAA4AAAABAAAAAAA=")
 tile_set = ExtResource("1_xai1s")
 
 [node name="Player" parent="." instance=ExtResource("2_6pie4")]
diff --git a/scripts/world.gd b/scripts/world.gd
new file mode 100644
index 0000000..2bf143a
--- /dev/null
+++ b/scripts/world.gd
@@ -0,0 +1,38 @@
+extends Node2D
+
+@onready var WorldTiles : TileMapLayer = $TileMapLayer
+
+var chunkPos : Vector2i = Vector2i(0,0)
+
+enum {WALL, AIR}
+
+# Called when the node enters the scene tree for the first time.
+func _ready() -> void:
+	get_tree().auto_accept_quit = false
+	load_game("Chunk"+str(chunkPos.x)+"_"+str(chunkPos.y), WorldTiles)
+
+# Called every frame. 'delta' is the elapsed time since the previous frame.
+func _process(delta: float) -> void:
+
+	if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
+		var setPos : Vector2i = WorldTiles.local_to_map(get_local_mouse_position())
+		WorldTiles.set_cell(setPos,WALL,Vector2i(0,0))
+
+	if Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT):
+		var setPos : Vector2i = WorldTiles.local_to_map(get_local_mouse_position())
+		WorldTiles.set_cell(setPos,AIR,Vector2i(0,0))
+		
+func load_game(path:String, tile_map_layer:TileMapLayer) -> void:
+	var file : FileAccess = FileAccess.open(path, FileAccess.READ)
+	if file:
+		tile_map_layer.tile_map_data = file.get_var()
+
+func save(path:String, tile_map_layer:TileMapLayer) -> void:
+	var file : FileAccess = FileAccess.open(path, FileAccess.WRITE)
+	file.store_var(tile_map_layer.tile_map_data)
+	file.close()
+
+func _notification(what: int) -> void:
+	if what == NOTIFICATION_WM_CLOSE_REQUEST:
+		save("Chunk"+str(chunkPos.x)+"_"+str(chunkPos.y), WorldTiles)
+		get_tree().quit()