diff --git a/src-tauri/gd/2.2/Geode.dll b/src-tauri/gd/2.2/Geode.dll
new file mode 100644
index 0000000..f81a841
Binary files /dev/null and b/src-tauri/gd/2.2/Geode.dll differ
diff --git a/src-tauri/gd/2.2/Geode.pdb b/src-tauri/gd/2.2/Geode.pdb
new file mode 100644
index 0000000..619dd59
Binary files /dev/null and b/src-tauri/gd/2.2/Geode.pdb differ
diff --git a/src-tauri/gd/2.2/GeodeUninstaller.exe b/src-tauri/gd/2.2/GeodeUninstaller.exe
new file mode 100644
index 0000000..8097861
Binary files /dev/null and b/src-tauri/gd/2.2/GeodeUninstaller.exe differ
diff --git a/src-tauri/gd/2.2/GeodeUpdater.exe b/src-tauri/gd/2.2/GeodeUpdater.exe
new file mode 100644
index 0000000..861ec62
Binary files /dev/null and b/src-tauri/gd/2.2/GeodeUpdater.exe differ
diff --git a/src-tauri/gd/2.2/XInput1_4.dll b/src-tauri/gd/2.2/XInput1_4.dll
new file mode 100644
index 0000000..4f8a4c5
Binary files /dev/null and b/src-tauri/gd/2.2/XInput1_4.dll differ
diff --git a/src-tauri/gd/2.2/geode/config/geode.texture-loader/packs/background-shader/menu-shader.fsh b/src-tauri/gd/2.2/geode/config/geode.texture-loader/packs/background-shader/menu-shader.fsh
new file mode 100644
index 0000000..eb13472
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/config/geode.texture-loader/packs/background-shader/menu-shader.fsh
@@ -0,0 +1,102 @@
+precision highp float;
+
+
+float gTime = 0.;
+const float REPEAT = 5.0;
+
+// 回転行列
+mat2 rot(float a) {
+ float c = cos(a), s = sin(a);
+ return mat2(c,s,-s,c);
+}
+
+float sdBox( vec3 p, vec3 b )
+{
+ vec3 q = abs(p) - b;
+ return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);
+}
+
+float box(vec3 pos, float scale) {
+ pos *= scale;
+ float base = sdBox(pos, vec3(.4,.4,.1)) /1.5;
+ pos.xy *= 5.;
+ pos.y -= 3.5;
+ pos.xy *= rot(.75);
+ float result = -base;
+ return result;
+}
+
+float box_set(vec3 pos, float iTime) {
+ vec3 pos_origin = pos;
+ pos = pos_origin;
+ pos .y += sin(gTime * 0.4) * 2.5;
+ pos.xy *= rot(.8);
+ float box1 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);
+ pos = pos_origin;
+ pos .y -=sin(gTime * 0.4) * 2.5;
+ pos.xy *= rot(.8);
+ float box2 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);
+ pos = pos_origin;
+ pos .x +=sin(gTime * 0.4) * 2.5;
+ pos.xy *= rot(.8);
+ float box3 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);
+ pos = pos_origin;
+ pos .x -=sin(gTime * 0.4) * 2.5;
+ pos.xy *= rot(.8);
+ float box4 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);
+ pos = pos_origin;
+ pos.xy *= rot(.8);
+ float box5 = box(pos,.5) * 6.;
+ pos = pos_origin;
+ float box6 = box(pos,.5) * 6.;
+ float result = max(max(max(max(max(box1,box2),box3),box4),box5),box6);
+ return result;
+}
+
+float map(vec3 pos, float iTime) {
+ vec3 pos_origin = pos;
+ float box_set1 = box_set(pos, iTime);
+
+ return box_set1;
+}
+
+
+void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
+ vec2 p = (fragCoord.xy * 2. - iResolution.xy) / min(iResolution.x, iResolution.y);
+ vec3 ro = vec3(0., -0.2 ,iTime * 4.);
+ vec3 ray = normalize(vec3(p, 1.5));
+ ray.xy = ray.xy * rot(sin(iTime * .03) * 5.);
+ ray.yz = ray.yz * rot(sin(iTime * .05) * .2);
+ float t = 0.1;
+ vec3 col = vec3(0.);
+ float ac = 0.0;
+
+
+ for (int i = 0; i < 99; i++){
+ vec3 pos = ro + ray * t;
+ pos = mod(pos-2., 4.) -2.;
+ gTime = iTime -float(i) * 0.01;
+
+ float d = map(pos, iTime);
+
+ d = max(abs(d), 0.01);
+ ac += exp(-d*23.);
+
+ t += d* 0.55;
+ }
+
+ col = vec3(ac * 0.02);
+
+ col +=vec3(0.,0.2 * abs(sin(iTime)),0.5 + sin(iTime) * 0.2);
+
+
+ fragColor = vec4(col ,1.0 - t * (0.02 + 0.02 * sin (iTime)));
+}
+
+/** SHADERDATA
+{
+ "title": "Octgrams",
+ "description": "Lorem ipsum dolor",
+ "model": "person"
+}
+*/
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/mods/capeling.startpos_switcher.geode b/src-tauri/gd/2.2/geode/mods/capeling.startpos_switcher.geode
new file mode 100644
index 0000000..a459e34
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/capeling.startpos_switcher.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/cgytrus.menu-shaders.geode b/src-tauri/gd/2.2/geode/mods/cgytrus.menu-shaders.geode
new file mode 100644
index 0000000..636c3a1
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/cgytrus.menu-shaders.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/cvolton.betterinfo.geode b/src-tauri/gd/2.2/geode/mods/cvolton.betterinfo.geode
new file mode 100644
index 0000000..3d7ea6f
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/cvolton.betterinfo.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/cvolton.level-id-api.geode b/src-tauri/gd/2.2/geode/mods/cvolton.level-id-api.geode
new file mode 100644
index 0000000..1826427
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/cvolton.level-id-api.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/cvolton.misc_bugfixes.geode b/src-tauri/gd/2.2/geode/mods/cvolton.misc_bugfixes.geode
new file mode 100644
index 0000000..ce74825
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/cvolton.misc_bugfixes.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/geode.custom-keybinds.geode b/src-tauri/gd/2.2/geode/mods/geode.custom-keybinds.geode
new file mode 100644
index 0000000..c061530
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/geode.custom-keybinds.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/geode.node-ids.geode b/src-tauri/gd/2.2/geode/mods/geode.node-ids.geode
new file mode 100644
index 0000000..b902d26
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/geode.node-ids.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/geode.texture-loader.geode b/src-tauri/gd/2.2/geode/mods/geode.texture-loader.geode
new file mode 100644
index 0000000..3714af8
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/geode.texture-loader.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/hjfod.backups.geode b/src-tauri/gd/2.2/geode/mods/hjfod.backups.geode
new file mode 100644
index 0000000..6169656
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/hjfod.backups.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/hjfod.betteredit.geode b/src-tauri/gd/2.2/geode/mods/hjfod.betteredit.geode
new file mode 100644
index 0000000..d7a558d
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/hjfod.betteredit.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/hjfod.gdshare.geode b/src-tauri/gd/2.2/geode/mods/hjfod.gdshare.geode
new file mode 100644
index 0000000..1c8dee8
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/hjfod.gdshare.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/hjfod.gmd-api.geode b/src-tauri/gd/2.2/geode/mods/hjfod.gmd-api.geode
new file mode 100644
index 0000000..c2e8bf9
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/hjfod.gmd-api.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/hjfod.trashcan.geode b/src-tauri/gd/2.2/geode/mods/hjfod.trashcan.geode
new file mode 100644
index 0000000..85ee9ed
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/hjfod.trashcan.geode differ
diff --git a/src-tauri/gd/2.2/geode/mods/thesillydoggo.comment_emojis.geode b/src-tauri/gd/2.2/geode/mods/thesillydoggo.comment_emojis.geode
new file mode 100644
index 0000000..18d1534
Binary files /dev/null and b/src-tauri/gd/2.2/geode/mods/thesillydoggo.comment_emojis.geode differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.plist
new file mode 100644
index 0000000..217bb72
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.plist
@@ -0,0 +1,696 @@
+
+
+
+
+ frames
+
+ geode.loader/category-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {127,77}
+ spriteSourceSize
+ {127,77}
+ textureRect
+ {{0,0},{127,77}}
+ textureRotated
+
+
+ geode.loader/category-dot.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {77,77}
+ spriteSourceSize
+ {77,77}
+ textureRect
+ {{129,0},{77,77}}
+ textureRotated
+
+
+ geode.loader/changelog.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {40,51}
+ spriteSourceSize
+ {40,51}
+ textureRect
+ {{208,0},{40,51}}
+ textureRotated
+
+
+ geode.loader/close.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {50,50}
+ spriteSourceSize
+ {50,50}
+ textureRect
+ {{261,0},{50,50}}
+ textureRotated
+
+
+ geode.loader/delete-white.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {36,50}
+ spriteSourceSize
+ {36,50}
+ textureRect
+ {{313,0},{36,50}}
+ textureRotated
+
+
+ geode.loader/double-nav.png
+
+ spriteOffset
+ {0,-5}
+ spriteSize
+ {89,122}
+ spriteSourceSize
+ {89,131}
+ textureRect
+ {{365,0},{89,122}}
+ textureRotated
+
+
+ geode.loader/download.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {85,97}
+ spriteSourceSize
+ {85,97}
+ textureRect
+ {{489,0},{85,97}}
+ textureRotated
+
+
+ geode.loader/exclamation-red.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {28,57}
+ spriteSourceSize
+ {28,57}
+ textureRect
+ {{588,0},{28,57}}
+ textureRotated
+
+
+ geode.loader/exclamation.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {19,60}
+ spriteSourceSize
+ {19,60}
+ textureRect
+ {{647,0},{19,60}}
+ textureRotated
+
+
+ geode.loader/external-link.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,64}
+ spriteSourceSize
+ {64,64}
+ textureRect
+ {{709,0},{64,64}}
+ textureRotated
+
+
+ geode.loader/file-add.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {95,121}
+ spriteSourceSize
+ {95,121}
+ textureRect
+ {{208,52},{95,121}}
+ textureRotated
+
+
+ geode.loader/file.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {47,59}
+ spriteSourceSize
+ {47,59}
+ textureRect
+ {{775,0},{47,59}}
+ textureRotated
+
+
+ geode.loader/geode-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {4,60}
+ spriteSourceSize
+ {4,60}
+ textureRect
+ {{647,21},{4,60}}
+ textureRotated
+
+
+ geode.loader/geode-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {687,32}
+ spriteSourceSize
+ {687,32}
+ textureRect
+ {{0,149},{687,32}}
+ textureRotated
+
+
+ geode.loader/gift.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {63,63}
+ spriteSourceSize
+ {63,63}
+ textureRect
+ {{689,66},{63,63}}
+ textureRotated
+
+
+ geode.loader/github.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {63,63}
+ spriteSourceSize
+ {63,63}
+ textureRect
+ {{754,66},{63,63}}
+ textureRotated
+
+
+ geode.loader/globe.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {90,90}
+ spriteSourceSize
+ {90,90}
+ textureRect
+ {{689,131},{90,90}}
+ textureRotated
+
+
+ geode.loader/grid-view.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,46}
+ spriteSourceSize
+ {46,46}
+ textureRect
+ {{0,183},{46,46}}
+ textureRotated
+
+
+ geode.loader/homepage.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {63,63}
+ spriteSourceSize
+ {63,63}
+ textureRect
+ {{48,183},{63,63}}
+ textureRotated
+
+
+ geode.loader/hue-sliders.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {89,89}
+ spriteSourceSize
+ {89,89}
+ textureRect
+ {{113,183},{89,89}}
+ textureRotated
+
+
+ geode.loader/info-alert.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {47,47}
+ spriteSourceSize
+ {47,47}
+ textureRect
+ {{204,183},{47,47}}
+ textureRotated
+
+
+ geode.loader/info-warning.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {57,55}
+ spriteSourceSize
+ {57,57}
+ textureRect
+ {{253,183},{57,55}}
+ textureRotated
+
+
+ geode.loader/install.png
+
+ spriteOffset
+ {1,0}
+ spriteSize
+ {44,47}
+ spriteSourceSize
+ {47,47}
+ textureRect
+ {{781,131},{44,47}}
+ textureRotated
+
+
+ geode.loader/message.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {60,56}
+ spriteSourceSize
+ {60,56}
+ textureRect
+ {{312,183},{60,56}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {778,70}
+ spriteSourceSize
+ {778,70}
+ textureRect
+ {{0,274},{778,70}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {778,70}
+ spriteSourceSize
+ {778,70}
+ textureRect
+ {{0,346},{778,70}}
+ textureRotated
+
+
+ geode.loader/mods-list-side-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,128}
+ spriteSourceSize
+ {33,128}
+ textureRect
+ {{781,180},{33,128}}
+ textureRotated
+
+
+ geode.loader/mods-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,128}
+ spriteSourceSize
+ {33,128}
+ textureRect
+ {{780,310},{33,128}}
+ textureRotated
+
+
+ geode.loader/mods-list-top-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {825,120}
+ spriteSourceSize
+ {825,120}
+ textureRect
+ {{0,440},{825,120}}
+ textureRotated
+
+
+ geode.loader/mods-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {825,120}
+ spriteSourceSize
+ {825,120}
+ textureRect
+ {{0,562},{825,120}}
+ textureRotated
+
+
+ geode.loader/news.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,47}
+ spriteSourceSize
+ {41,47}
+ textureRect
+ {{0,684},{41,47}}
+ textureRotated
+
+
+ geode.loader/persistent.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {64,54}
+ spriteSourceSize
+ {64,64}
+ textureRect
+ {{49,684},{64,54}}
+ textureRotated
+
+
+ geode.loader/reload.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,57}
+ spriteSourceSize
+ {64,57}
+ textureRect
+ {{115,684},{64,57}}
+ textureRotated
+
+
+ geode.loader/reset-gold.png
+
+ spriteOffset
+ {0,2}
+ spriteSize
+ {60,57}
+ spriteSourceSize
+ {61,61}
+ textureRect
+ {{181,684},{60,57}}
+ textureRotated
+
+
+ geode.loader/reset.png
+
+ spriteOffset
+ {0,2}
+ spriteSize
+ {60,57}
+ spriteSourceSize
+ {61,61}
+ textureRect
+ {{243,684},{60,57}}
+ textureRotated
+
+
+ geode.loader/save.png
+
+ spriteOffset
+ {-1,1}
+ spriteSize
+ {59,59}
+ spriteSourceSize
+ {64,64}
+ textureRect
+ {{305,684},{59,59}}
+ textureRotated
+
+
+ geode.loader/search.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {104,106}
+ spriteSourceSize
+ {104,106}
+ textureRect
+ {{366,684},{104,106}}
+ textureRotated
+
+
+ geode.loader/settings.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,64}
+ spriteSourceSize
+ {64,64}
+ textureRect
+ {{474,684},{64,64}}
+ textureRotated
+
+
+ geode.loader/tab-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {110,110}
+ spriteSourceSize
+ {110,110}
+ textureRect
+ {{540,684},{110,110}}
+ textureRotated
+
+
+ geode.loader/tag-featured.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,78}
+ spriteSourceSize
+ {86,78}
+ textureRect
+ {{652,684},{86,78}}
+ textureRotated
+
+
+ geode.loader/tag-joke.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,78}
+ spriteSourceSize
+ {86,78}
+ textureRect
+ {{740,684},{86,78}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {351,78}
+ spriteSourceSize
+ {351,78}
+ textureRect
+ {{0,745},{351,78}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {282,78}
+ spriteSourceSize
+ {282,78}
+ textureRect
+ {{353,796},{282,78}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,78}
+ spriteSourceSize
+ {86,78}
+ textureRect
+ {{652,764},{86,78}}
+ textureRotated
+
+
+ geode.loader/tag-modtober.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,78}
+ spriteSourceSize
+ {86,78}
+ textureRect
+ {{740,772},{86,78}}
+ textureRotated
+
+
+ geode.loader/tag-paid-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {204,78}
+ spriteSourceSize
+ {204,78}
+ textureRect
+ {{0,825},{204,78}}
+ textureRotated
+
+
+ geode.loader/tag-paid.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,78}
+ spriteSourceSize
+ {86,78}
+ textureRect
+ {{206,825},{86,78}}
+ textureRotated
+
+
+ geode.loader/update.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {71,57}
+ spriteSourceSize
+ {71,57}
+ textureRect
+ {{294,825},{71,57}}
+ textureRotated
+
+
+ geode.loader/updates-available.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {58,58}
+ spriteSourceSize
+ {58,58}
+ textureRect
+ {{637,844},{58,58}}
+ textureRotated
+
+
+ geode.loader/updates-failed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {58,58}
+ spriteSourceSize
+ {58,58}
+ textureRect
+ {{697,860},{58,58}}
+ textureRotated
+
+
+ geode.loader/updates-installed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {58,58}
+ spriteSourceSize
+ {58,58}
+ textureRect
+ {{757,860},{58,58}}
+ textureRotated
+
+
+ geode.loader/version.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,50}
+ spriteSourceSize
+ {32,50}
+ textureRect
+ {{353,876},{32,50}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/APISheet-hd.png
+ size
+ {825,918}
+ textureFileName
+ geode.loader/APISheet-hd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.png
new file mode 100644
index 0000000..e9ab032
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.plist
new file mode 100644
index 0000000..eb9e501
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.plist
@@ -0,0 +1,696 @@
+
+
+
+
+ frames
+
+ geode.loader/category-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {255,155}
+ spriteSourceSize
+ {255,155}
+ textureRect
+ {{0,0},{255,155}}
+ textureRotated
+
+
+ geode.loader/category-dot.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {155,155}
+ spriteSourceSize
+ {155,155}
+ textureRect
+ {{257,0},{155,155}}
+ textureRotated
+
+
+ geode.loader/changelog.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {81,103}
+ spriteSourceSize
+ {81,103}
+ textureRect
+ {{414,0},{81,103}}
+ textureRotated
+
+
+ geode.loader/close.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {100,100}
+ spriteSourceSize
+ {100,100}
+ textureRect
+ {{519,0},{100,100}}
+ textureRotated
+
+
+ geode.loader/delete-white.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {71,100}
+ spriteSourceSize
+ {72,100}
+ textureRect
+ {{621,0},{71,100}}
+ textureRotated
+
+
+ geode.loader/double-nav.png
+
+ spriteOffset
+ {-1,-11}
+ spriteSize
+ {176,239}
+ spriteSourceSize
+ {178,262}
+ textureRect
+ {{723,0},{176,239}}
+ textureRotated
+
+
+ geode.loader/download.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {170,195}
+ spriteSourceSize
+ {170,195}
+ textureRect
+ {{964,0},{170,195}}
+ textureRotated
+
+
+ geode.loader/exclamation-red.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {56,114}
+ spriteSourceSize
+ {56,114}
+ textureRect
+ {{1161,0},{56,114}}
+ textureRotated
+
+
+ geode.loader/exclamation.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {39,120}
+ spriteSourceSize
+ {39,120}
+ textureRect
+ {{1277,0},{39,120}}
+ textureRotated
+
+
+ geode.loader/external-link.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {128,128}
+ spriteSourceSize
+ {128,128}
+ textureRect
+ {{1399,0},{128,128}}
+ textureRotated
+
+
+ geode.loader/file-add.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {190,241}
+ spriteSourceSize
+ {191,242}
+ textureRect
+ {{414,102},{190,241}}
+ textureRotated
+
+
+ geode.loader/file.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {94,118}
+ spriteSourceSize
+ {94,118}
+ textureRect
+ {{1529,0},{94,118}}
+ textureRotated
+
+
+ geode.loader/geode-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {8,120}
+ spriteSourceSize
+ {8,120}
+ textureRect
+ {{1277,41},{8,120}}
+ textureRotated
+
+
+ geode.loader/geode-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1374,64}
+ spriteSourceSize
+ {1374,64}
+ textureRect
+ {{0,294},{1374,64}}
+ textureRotated
+
+
+ geode.loader/gift.png
+
+ spriteOffset
+ {2,-2}
+ spriteSize
+ {121,121}
+ spriteSourceSize
+ {126,126}
+ textureRect
+ {{1529,96},{121,121}}
+ textureRotated
+
+
+ geode.loader/github.png
+
+ spriteOffset
+ {2,-2}
+ spriteSize
+ {121,121}
+ spriteSourceSize
+ {126,126}
+ textureRect
+ {{1376,130},{121,121}}
+ textureRotated
+
+
+ geode.loader/globe.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {180,181}
+ spriteSourceSize
+ {181,181}
+ textureRect
+ {{1376,253},{180,181}}
+ textureRotated
+
+
+ geode.loader/grid-view.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {92,92}
+ spriteSourceSize
+ {92,92}
+ textureRect
+ {{0,360},{92,92}}
+ textureRotated
+
+
+ geode.loader/homepage.png
+
+ spriteOffset
+ {2,-1}
+ spriteSize
+ {121,119}
+ spriteSourceSize
+ {126,126}
+ textureRect
+ {{94,360},{121,119}}
+ textureRotated
+
+
+ geode.loader/hue-sliders.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {175,177}
+ spriteSourceSize
+ {179,179}
+ textureRect
+ {{217,360},{175,177}}
+ textureRotated
+
+
+ geode.loader/info-alert.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {92,92}
+ spriteSourceSize
+ {94,94}
+ textureRect
+ {{396,360},{92,92}}
+ textureRotated
+
+
+ geode.loader/info-warning.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {114,99}
+ spriteSourceSize
+ {114,114}
+ textureRect
+ {{490,360},{114,99}}
+ textureRotated
+
+
+ geode.loader/install.png
+
+ spriteOffset
+ {1,-1}
+ spriteSize
+ {79,91}
+ spriteSourceSize
+ {94,94}
+ textureRect
+ {{1559,219},{79,91}}
+ textureRotated
+
+
+ geode.loader/message.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {120,112}
+ spriteSourceSize
+ {120,112}
+ textureRect
+ {{606,360},{120,112}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1556,140}
+ spriteSourceSize
+ {1556,140}
+ textureRect
+ {{0,537},{1556,140}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1556,140}
+ spriteSourceSize
+ {1556,140}
+ textureRect
+ {{0,679},{1556,140}}
+ textureRotated
+
+
+ geode.loader/mods-list-side-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {66,256}
+ spriteSourceSize
+ {66,256}
+ textureRect
+ {{1559,300},{66,256}}
+ textureRotated
+
+
+ geode.loader/mods-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {66,256}
+ spriteSourceSize
+ {66,256}
+ textureRect
+ {{1558,558},{66,256}}
+ textureRotated
+
+
+ geode.loader/mods-list-top-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1650,240}
+ spriteSourceSize
+ {1650,240}
+ textureRect
+ {{0,821},{1650,240}}
+ textureRotated
+
+
+ geode.loader/mods-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1650,240}
+ spriteSourceSize
+ {1650,240}
+ textureRect
+ {{0,1063},{1650,240}}
+ textureRotated
+
+
+ geode.loader/news.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {82,94}
+ spriteSourceSize
+ {82,94}
+ textureRect
+ {{0,1305},{82,94}}
+ textureRotated
+
+
+ geode.loader/persistent.png
+
+ spriteOffset
+ {-1,1}
+ spriteSize
+ {124,98}
+ spriteSourceSize
+ {128,128}
+ textureRect
+ {{96,1305},{124,98}}
+ textureRotated
+
+
+ geode.loader/reload.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {129,115}
+ spriteSourceSize
+ {129,115}
+ textureRect
+ {{222,1305},{129,115}}
+ textureRotated
+
+
+ geode.loader/reset-gold.png
+
+ spriteOffset
+ {-1,5}
+ spriteSize
+ {110,106}
+ spriteSourceSize
+ {122,122}
+ textureRect
+ {{353,1305},{110,106}}
+ textureRotated
+
+
+ geode.loader/reset.png
+
+ spriteOffset
+ {-1,5}
+ spriteSize
+ {110,106}
+ spriteSourceSize
+ {122,122}
+ textureRect
+ {{465,1305},{110,106}}
+ textureRotated
+
+
+ geode.loader/save.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {108,108}
+ spriteSourceSize
+ {128,128}
+ textureRect
+ {{577,1305},{108,108}}
+ textureRotated
+
+
+ geode.loader/search.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {209,212}
+ spriteSourceSize
+ {209,212}
+ textureRect
+ {{687,1305},{209,212}}
+ textureRotated
+
+
+ geode.loader/settings.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {126,126}
+ spriteSourceSize
+ {128,128}
+ textureRect
+ {{901,1305},{126,126}}
+ textureRotated
+
+
+ geode.loader/tab-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {220,220}
+ spriteSourceSize
+ {220,220}
+ textureRect
+ {{1029,1305},{220,220}}
+ textureRotated
+
+
+ geode.loader/tag-featured.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {172,156}
+ spriteSourceSize
+ {173,157}
+ textureRect
+ {{1251,1305},{172,156}}
+ textureRotated
+
+
+ geode.loader/tag-joke.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {172,156}
+ spriteSourceSize
+ {173,157}
+ textureRect
+ {{1425,1305},{172,156}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-long.png
+
+ spriteOffset
+ {-1,0}
+ spriteSize
+ {701,156}
+ spriteSourceSize
+ {702,157}
+ textureRect
+ {{0,1516},{701,156}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {565,156}
+ spriteSourceSize
+ {565,157}
+ textureRect
+ {{901,1527},{565,156}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {172,156}
+ spriteSourceSize
+ {173,157}
+ textureRect
+ {{1468,1463},{172,156}}
+ textureRotated
+
+
+ geode.loader/tag-modtober.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {172,156}
+ spriteSourceSize
+ {173,157}
+ textureRect
+ {{703,1516},{172,156}}
+ textureRotated
+
+
+ geode.loader/tag-paid-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {408,156}
+ spriteSourceSize
+ {408,157}
+ textureRect
+ {{0,1674},{408,156}}
+ textureRotated
+
+
+ geode.loader/tag-paid.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {172,156}
+ spriteSourceSize
+ {173,157}
+ textureRect
+ {{1468,1621},{172,156}}
+ textureRotated
+
+
+ geode.loader/update.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {143,115}
+ spriteSourceSize
+ {143,115}
+ textureRect
+ {{410,1674},{143,115}}
+ textureRotated
+
+
+ geode.loader/updates-available.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {110,110}
+ spriteSourceSize
+ {116,116}
+ textureRect
+ {{555,1674},{110,110}}
+ textureRotated
+
+
+ geode.loader/updates-failed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {112,112}
+ spriteSourceSize
+ {116,116}
+ textureRect
+ {{667,1674},{112,112}}
+ textureRotated
+
+
+ geode.loader/updates-installed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {112,112}
+ spriteSourceSize
+ {116,116}
+ textureRect
+ {{781,1674},{112,112}}
+ textureRotated
+
+
+ geode.loader/version.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {65,100}
+ spriteSourceSize
+ {65,100}
+ textureRect
+ {{895,1685},{65,100}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/APISheet-uhd.png
+ size
+ {1650,1830}
+ textureFileName
+ geode.loader/APISheet-uhd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.png
new file mode 100644
index 0000000..f641e6e
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.plist
new file mode 100644
index 0000000..8fdb17c
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.plist
@@ -0,0 +1,696 @@
+
+
+
+
+ frames
+
+ geode.loader/category-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {63,38}
+ spriteSourceSize
+ {63,38}
+ textureRect
+ {{0,0},{63,38}}
+ textureRotated
+
+
+ geode.loader/category-dot.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,38}
+ spriteSourceSize
+ {38,38}
+ textureRect
+ {{65,0},{38,38}}
+ textureRotated
+
+
+ geode.loader/changelog.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {20,25}
+ spriteSourceSize
+ {20,25}
+ textureRect
+ {{105,0},{20,25}}
+ textureRotated
+
+
+ geode.loader/close.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {25,25}
+ spriteSourceSize
+ {25,25}
+ textureRect
+ {{132,0},{25,25}}
+ textureRotated
+
+
+ geode.loader/delete-white.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {18,25}
+ spriteSourceSize
+ {18,25}
+ textureRect
+ {{159,0},{18,25}}
+ textureRotated
+
+
+ geode.loader/double-nav.png
+
+ spriteOffset
+ {0,-2}
+ spriteSize
+ {44,62}
+ spriteSourceSize
+ {44,65}
+ textureRect
+ {{186,0},{44,62}}
+ textureRotated
+
+
+ geode.loader/download.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {42,48}
+ spriteSourceSize
+ {42,48}
+ textureRect
+ {{250,0},{42,48}}
+ textureRotated
+
+
+ geode.loader/exclamation-red.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {14,28}
+ spriteSourceSize
+ {14,28}
+ textureRect
+ {{300,0},{14,28}}
+ textureRotated
+
+
+ geode.loader/exclamation.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {9,30}
+ spriteSourceSize
+ {9,30}
+ textureRect
+ {{330,0},{9,30}}
+ textureRotated
+
+
+ geode.loader/external-link.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,32}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{362,0},{32,32}}
+ textureRotated
+
+
+ geode.loader/file-add.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {47,60}
+ spriteSourceSize
+ {47,60}
+ textureRect
+ {{300,16},{47,60}}
+ textureRotated
+
+
+ geode.loader/file.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,29}
+ spriteSourceSize
+ {23,29}
+ textureRect
+ {{159,20},{23,29}}
+ textureRotated
+
+
+ geode.loader/geode-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {2,30}
+ spriteSourceSize
+ {2,30}
+ textureRect
+ {{105,27},{2,30}}
+ textureRotated
+
+
+ geode.loader/geode-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {343,16}
+ spriteSourceSize
+ {343,16}
+ textureRect
+ {{0,65},{343,16}}
+ textureRotated
+
+
+ geode.loader/gift.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {31,31}
+ spriteSourceSize
+ {31,31}
+ textureRect
+ {{362,34},{31,31}}
+ textureRotated
+
+
+ geode.loader/github.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {31,31}
+ spriteSourceSize
+ {31,31}
+ textureRect
+ {{345,67},{31,31}}
+ textureRotated
+
+
+ geode.loader/globe.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {45,45}
+ spriteSourceSize
+ {45,45}
+ textureRect
+ {{0,83},{45,45}}
+ textureRotated
+
+
+ geode.loader/grid-view.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,23}
+ spriteSourceSize
+ {23,23}
+ textureRect
+ {{378,67},{23,23}}
+ textureRotated
+
+
+ geode.loader/homepage.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {31,31}
+ spriteSourceSize
+ {31,31}
+ textureRect
+ {{47,83},{31,31}}
+ textureRotated
+
+
+ geode.loader/hue-sliders.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {44,44}
+ spriteSourceSize
+ {44,44}
+ textureRect
+ {{80,83},{44,44}}
+ textureRotated
+
+
+ geode.loader/info-alert.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,23}
+ spriteSourceSize
+ {23,23}
+ textureRect
+ {{126,83},{23,23}}
+ textureRotated
+
+
+ geode.loader/info-warning.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {28,27}
+ spriteSourceSize
+ {28,28}
+ textureRect
+ {{151,83},{28,27}}
+ textureRotated
+
+
+ geode.loader/install.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {23,23}
+ spriteSourceSize
+ {23,23}
+ textureRect
+ {{181,83},{23,23}}
+ textureRotated
+
+
+ geode.loader/message.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {30,28}
+ spriteSourceSize
+ {30,28}
+ textureRect
+ {{206,83},{30,28}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {389,35}
+ spriteSourceSize
+ {389,35}
+ textureRect
+ {{0,130},{389,35}}
+ textureRotated
+
+
+ geode.loader/mods-list-bottom.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {389,35}
+ spriteSourceSize
+ {389,35}
+ textureRect
+ {{0,167},{389,35}}
+ textureRotated
+
+
+ geode.loader/mods-list-side-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {16,64}
+ spriteSourceSize
+ {16,64}
+ textureRect
+ {{391,92},{16,64}}
+ textureRotated
+
+
+ geode.loader/mods-list-side.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {16,64}
+ spriteSourceSize
+ {16,64}
+ textureRect
+ {{0,204},{16,64}}
+ textureRotated
+
+
+ geode.loader/mods-list-top-gd.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {412,60}
+ spriteSourceSize
+ {412,60}
+ textureRect
+ {{0,222},{412,60}}
+ textureRotated
+
+
+ geode.loader/mods-list-top.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {412,60}
+ spriteSourceSize
+ {412,60}
+ textureRect
+ {{0,284},{412,60}}
+ textureRotated
+
+
+ geode.loader/news.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {20,23}
+ spriteSourceSize
+ {20,23}
+ textureRect
+ {{0,346},{20,23}}
+ textureRotated
+
+
+ geode.loader/persistent.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {32,29}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{25,346},{32,29}}
+ textureRotated
+
+
+ geode.loader/reload.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,28}
+ spriteSourceSize
+ {32,28}
+ textureRect
+ {{59,346},{32,28}}
+ textureRotated
+
+
+ geode.loader/reset-gold.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {30,29}
+ spriteSourceSize
+ {30,30}
+ textureRect
+ {{93,346},{30,29}}
+ textureRotated
+
+
+ geode.loader/reset.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {30,29}
+ spriteSourceSize
+ {30,30}
+ textureRect
+ {{125,346},{30,29}}
+ textureRotated
+
+
+ geode.loader/save.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,32}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{157,346},{32,32}}
+ textureRotated
+
+
+ geode.loader/search.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {52,53}
+ spriteSourceSize
+ {52,53}
+ textureRect
+ {{191,346},{52,53}}
+ textureRotated
+
+
+ geode.loader/settings.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,32}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{246,346},{32,32}}
+ textureRotated
+
+
+ geode.loader/tab-bg.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {55,55}
+ spriteSourceSize
+ {55,55}
+ textureRect
+ {{280,346},{55,55}}
+ textureRotated
+
+
+ geode.loader/tag-featured.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,39}
+ spriteSourceSize
+ {43,39}
+ textureRect
+ {{337,346},{43,39}}
+ textureRotated
+
+
+ geode.loader/tag-joke.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,39}
+ spriteSourceSize
+ {43,39}
+ textureRect
+ {{0,377},{43,39}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {175,39}
+ spriteSourceSize
+ {175,39}
+ textureRect
+ {{45,400},{175,39}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {141,39}
+ spriteSourceSize
+ {141,39}
+ textureRect
+ {{222,403},{141,39}}
+ textureRotated
+
+
+ geode.loader/tag-modtober-winner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,39}
+ spriteSourceSize
+ {43,39}
+ textureRect
+ {{365,387},{43,39}}
+ textureRotated
+
+
+ geode.loader/tag-modtober.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,39}
+ spriteSourceSize
+ {43,39}
+ textureRect
+ {{0,418},{43,39}}
+ textureRotated
+
+
+ geode.loader/tag-paid-long.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {102,39}
+ spriteSourceSize
+ {102,39}
+ textureRect
+ {{45,441},{102,39}}
+ textureRotated
+
+
+ geode.loader/tag-paid.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,39}
+ spriteSourceSize
+ {43,39}
+ textureRect
+ {{365,428},{43,39}}
+ textureRotated
+
+
+ geode.loader/update.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {35,28}
+ spriteSourceSize
+ {35,28}
+ textureRect
+ {{149,441},{35,28}}
+ textureRotated
+
+
+ geode.loader/updates-available.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {29,29}
+ spriteSourceSize
+ {29,29}
+ textureRect
+ {{186,441},{29,29}}
+ textureRotated
+
+
+ geode.loader/updates-failed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {29,29}
+ spriteSourceSize
+ {29,29}
+ textureRect
+ {{217,444},{29,29}}
+ textureRotated
+
+
+ geode.loader/updates-installed.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {29,29}
+ spriteSourceSize
+ {29,29}
+ textureRect
+ {{248,444},{29,29}}
+ textureRotated
+
+
+ geode.loader/version.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {16,25}
+ spriteSourceSize
+ {16,25}
+ textureRect
+ {{279,444},{16,25}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/APISheet.png
+ size
+ {412,480}
+ textureFileName
+ geode.loader/APISheet.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.png b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.png
new file mode 100644
index 0000000..925c5a7
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/APISheet.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.plist
new file mode 100644
index 0000000..597d6e9
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.plist
@@ -0,0 +1,1086 @@
+
+
+
+
+ frames
+
+ geode.loader/baseAccount_Normal_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,83}
+ spriteSourceSize
+ {86,83}
+ textureRect
+ {{0,0},{86,83}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,83}
+ spriteSourceSize
+ {86,83}
+ textureRect
+ {{88,0},{86,83}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Purple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {86,83}
+ spriteSourceSize
+ {86,83}
+ textureRect
+ {{176,0},{86,83}}
+ textureRotated
+
+
+ geode.loader/baseCategory_Big_Green.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {201,200}
+ spriteSourceSize
+ {209,208}
+ textureRect
+ {{264,0},{201,200}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Blue.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{467,0},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Cyan.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{583,0},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkAqua.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{699,0},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkPurple.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{0,85},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Gray.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{116,85},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Green.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{467,112},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Pink.png
+
+ spriteOffset
+ {1,-3}
+ spriteSize
+ {110,114}
+ spriteSourceSize
+ {112,121}
+ textureRect
+ {{583,112},{110,114}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{699,112},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{0,197},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{113,197},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{226,202},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{339,202},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{699,222},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {108,111}
+ spriteSourceSize
+ {108,113}
+ textureRect
+ {{452,224},{108,111}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Blue.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{0,307},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Cyan.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{162,312},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkAqua.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{699,332},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkPurple.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{452,334},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Gray.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{0,466},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Green.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{162,471},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Pink.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {157,160}
+ spriteSourceSize
+ {160,166}
+ textureRect
+ {{614,491},{157,160}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{324,312},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{324,416},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkAqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{776,491},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkPurple.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{432,493},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{324,520},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{776,595},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,106}
+ spriteSourceSize
+ {105,114}
+ textureRect
+ {{432,597},{102,106}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{324,624},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{0,625},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{97,630},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{194,630},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{540,650},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{637,650},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {93,95}
+ spriteSourceSize
+ {93,98}
+ textureRect
+ {{734,699},{93,95}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{421,701},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{291,719},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{0,720},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{88,725},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{176,725},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{509,745},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {83,86}
+ spriteSourceSize
+ {83,88}
+ textureRect
+ {{597,745},{83,86}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{379,786},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{685,794},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{767,794},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{264,804},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{0,805},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{82,810},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {77,80}
+ spriteSourceSize
+ {77,82}
+ textureRect
+ {{164,810},{77,80}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{461,830},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{519,830},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{577,830},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{346,865},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{404,865},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{635,873},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {53,56}
+ spriteSourceSize
+ {53,58}
+ textureRect
+ {{693,873},{53,56}}
+ textureRotated
+
+
+ geode.loader/baseCross_Huge_Green.png
+
+ spriteOffset
+ {5,-5}
+ spriteSize
+ {213,213}
+ spriteSourceSize
+ {229,229}
+ textureRect
+ {{0,889},{213,213}}
+ textureRotated
+
+
+ geode.loader/baseCross_Small_Green.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {137,138}
+ spriteSourceSize
+ {147,147}
+ textureRect
+ {{751,873},{137,138}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Aqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {67,69}
+ spriteSourceSize
+ {67,72}
+ textureRect
+ {{246,883},{67,69}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{459,885},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_BrightGreen.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{529,885},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{317,920},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DarkGray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{387,923},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DimGreen.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{599,928},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{669,928},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{215,952},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_LightBlue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{457,953},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Magenta.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{527,953},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Orange.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{285,988},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{355,991},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Salmon.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{597,996},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Teal.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {66,69}
+ textureRect
+ {{667,996},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Selected.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {67,71}
+ textureRect
+ {{737,1012},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Unselected.png
+
+ spriteOffset
+ {1,-2}
+ spriteSize
+ {66,68}
+ spriteSourceSize
+ {67,71}
+ textureRect
+ {{807,1012},{66,68}}
+ textureRotated
+
+
+ geode.loader/baseLeaderboard_Normal_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {71,68}
+ spriteSourceSize
+ {72,68}
+ textureRect
+ {{425,1021},{71,68}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Selected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {184,62}
+ spriteSourceSize
+ {184,64}
+ textureRect
+ {{215,1059},{184,62}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Unselected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {184,63}
+ spriteSourceSize
+ {184,64}
+ textureRect
+ {{498,1064},{184,63}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_UnselectedDark.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {184,63}
+ spriteSourceSize
+ {184,64}
+ textureRect
+ {{684,1080},{184,63}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/BlankSheet-hd.png
+ size
+ {889,1143}
+ textureFileName
+ geode.loader/BlankSheet-hd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.png
new file mode 100644
index 0000000..f400013
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.plist
new file mode 100644
index 0000000..8a52af7
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.plist
@@ -0,0 +1,1086 @@
+
+
+
+
+ frames
+
+ geode.loader/baseAccount_Normal_Blue.png
+
+ spriteOffset
+ {3,-1}
+ spriteSize
+ {166,163}
+ spriteSourceSize
+ {172,166}
+ textureRect
+ {{0,0},{166,163}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Gray.png
+
+ spriteOffset
+ {3,-1}
+ spriteSize
+ {166,163}
+ spriteSourceSize
+ {172,166}
+ textureRect
+ {{168,0},{166,163}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Purple.png
+
+ spriteOffset
+ {3,-1}
+ spriteSize
+ {166,163}
+ spriteSourceSize
+ {172,166}
+ textureRect
+ {{336,0},{166,163}}
+ textureRotated
+
+
+ geode.loader/baseCategory_Big_Green.png
+
+ spriteOffset
+ {10,-10}
+ spriteSize
+ {395,395}
+ spriteSourceSize
+ {418,416}
+ textureRect
+ {{504,0},{395,395}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Blue.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{901,0},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Cyan.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{1121,0},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkAqua.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{1341,0},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkPurple.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{1561,0},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Gray.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{0,165},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Green.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{220,165},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Pink.png
+
+ spriteOffset
+ {3,-6}
+ spriteSize
+ {211,218}
+ spriteSourceSize
+ {225,243}
+ textureRect
+ {{901,213},{211,218}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{1121,213},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{1336,213},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkAqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{1551,213},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkPurple.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{0,378},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{215,378},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{430,397},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {211,213}
+ spriteSourceSize
+ {216,226}
+ textureRect
+ {{645,397},{211,213}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Blue.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{860,426},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Cyan.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{1173,426},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkAqua.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{0,591},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkPurple.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{313,610},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Gray.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{626,733},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Green.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{939,733},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Pink.png
+
+ spriteOffset
+ {4,-4}
+ spriteSize
+ {305,311}
+ spriteSourceSize
+ {321,333}
+ textureRect
+ {{1252,733},{305,311}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Blue.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{1565,426},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Cyan.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{1565,623},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkAqua.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{1565,820},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkPurple.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{0,898},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Gray.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{204,917},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Green.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{408,917},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Pink.png
+
+ spriteOffset
+ {3,-7}
+ spriteSize
+ {195,202}
+ spriteSourceSize
+ {210,228}
+ textureRect
+ {{1565,1017},{195,202}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Blue.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{612,1040},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Cyan.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{796,1040},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkAqua.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{980,1040},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkPurple.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{1164,1040},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Gray.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{1348,1040},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Green.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{0,1095},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Pink.png
+
+ spriteOffset
+ {2,-4}
+ spriteSize
+ {179,182}
+ spriteSourceSize
+ {187,196}
+ textureRect
+ {{184,1114},{179,182}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{368,1114},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{1532,1214},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkAqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{535,1221},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkPurple.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{702,1221},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{869,1221},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{1036,1221},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {162,165}
+ spriteSourceSize
+ {166,176}
+ textureRect
+ {{1203,1221},{162,165}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{1370,1221},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{0,1276},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkAqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{368,1278},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkPurple.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{153,1295},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{1370,1371},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{1523,1378},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {148,151}
+ spriteSourceSize
+ {154,164}
+ textureRect
+ {{521,1385},{148,151}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{1676,1378},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{674,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkAqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{780,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkPurple.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{886,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{992,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{1098,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {102,104}
+ spriteSourceSize
+ {106,116}
+ textureRect
+ {{1204,1385},{102,104}}
+ textureRotated
+
+
+ geode.loader/baseCross_Huge_Green.png
+
+ spriteOffset
+ {10,-11}
+ spriteSize
+ {417,416}
+ spriteSourceSize
+ {458,458}
+ textureRect
+ {{0,1445},{417,416}}
+ textureRotated
+
+
+ geode.loader/baseCross_Small_Green.png
+
+ spriteOffset
+ {7,-7}
+ spriteSize
+ {265,265}
+ spriteSourceSize
+ {294,294}
+ textureRect
+ {{674,1489},{265,265}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Aqua.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {134,144}
+ textureRect
+ {{941,1489},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Blue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1074,1489},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_BrightGreen.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1207,1489},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Cyan.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1340,1521},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DarkGray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1473,1528},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DimGreen.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1606,1528},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Gray.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{419,1535},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Green.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{941,1619},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_LightBlue.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1074,1619},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Magenta.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1207,1619},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Orange.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1340,1651},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Pink.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1473,1658},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Salmon.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{1606,1658},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Teal.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {128,131}
+ spriteSourceSize
+ {132,138}
+ textureRect
+ {{419,1665},{128,131}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Selected.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {124,127}
+ spriteSourceSize
+ {134,142}
+ textureRect
+ {{941,1749},{124,127}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Unselected.png
+
+ spriteOffset
+ {2,-3}
+ spriteSize
+ {124,127}
+ spriteSourceSize
+ {134,142}
+ textureRect
+ {{1070,1749},{124,127}}
+ textureRotated
+
+
+ geode.loader/baseLeaderboard_Normal_Blue.png
+
+ spriteOffset
+ {3,-1}
+ spriteSize
+ {134,131}
+ spriteSourceSize
+ {144,136}
+ textureRect
+ {{1199,1749},{134,131}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Selected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {369,114}
+ spriteSourceSize
+ {369,128}
+ textureRect
+ {{552,1756},{369,114}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Unselected.png
+
+ spriteOffset
+ {0,-3}
+ spriteSize
+ {369,121}
+ spriteSourceSize
+ {369,128}
+ textureRect
+ {{1335,1788},{369,121}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_UnselectedDark.png
+
+ spriteOffset
+ {0,-3}
+ spriteSize
+ {369,121}
+ spriteSourceSize
+ {369,128}
+ textureRect
+ {{0,1863},{369,121}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/BlankSheet-uhd.png
+ size
+ {1780,1984}
+ textureFileName
+ geode.loader/BlankSheet-uhd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.png
new file mode 100644
index 0000000..44ea793
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.plist
new file mode 100644
index 0000000..5f15b4f
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.plist
@@ -0,0 +1,1086 @@
+
+
+
+
+ frames
+
+ geode.loader/baseAccount_Normal_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,41}
+ spriteSourceSize
+ {43,41}
+ textureRect
+ {{0,0},{43,41}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,41}
+ spriteSourceSize
+ {43,41}
+ textureRect
+ {{45,0},{43,41}}
+ textureRotated
+
+
+ geode.loader/baseAccount_Normal_Purple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {43,41}
+ spriteSourceSize
+ {43,41}
+ textureRect
+ {{90,0},{43,41}}
+ textureRotated
+
+
+ geode.loader/baseCategory_Big_Green.png
+
+ spriteOffset
+ {1,-1}
+ spriteSize
+ {101,101}
+ spriteSourceSize
+ {104,104}
+ textureRect
+ {{135,0},{101,101}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{238,0},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{298,0},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{358,0},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{0,43},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{60,43},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{238,58},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_BigAlt_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {56,58}
+ spriteSourceSize
+ {56,60}
+ textureRect
+ {{298,58},{56,58}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{358,58},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{0,101},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkAqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{58,101},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_DarkPurple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{116,103},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{174,103},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{358,114},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Big_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {54,56}
+ spriteSourceSize
+ {54,56}
+ textureRect
+ {{232,116},{54,56}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{0,157},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{84,159},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{358,170},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{232,172},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{0,239},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{84,241},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Large_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {80,82}
+ spriteSourceSize
+ {80,83}
+ textureRect
+ {{316,252},{80,82}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Blue.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{168,159},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Cyan.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{168,213},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkAqua.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{225,254},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_DarkPurple.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{168,267},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Gray.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{225,308},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Green.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{168,321},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_MediumAlt_Pink.png
+
+ spriteOffset
+ {0,-1}
+ spriteSize
+ {52,55}
+ spriteSourceSize
+ {52,57}
+ textureRect
+ {{0,321},{52,55}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{57,323},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{108,323},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkAqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{282,334},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_DarkPurple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{333,334},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{384,334},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{225,362},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Medium_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {46,49}
+ spriteSourceSize
+ {46,49}
+ textureRect
+ {{57,371},{46,49}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{108,371},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{154,375},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkAqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{0,375},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_DarkPurple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{276,382},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{322,382},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{368,382},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_SmallAlt_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {41,44}
+ spriteSourceSize
+ {41,44}
+ textureRect
+ {{200,410},{41,44}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{108,414},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{151,418},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkAqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{0,418},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_DarkPurple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{43,419},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{246,425},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{289,425},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Small_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {38,41}
+ spriteSourceSize
+ {38,41}
+ textureRect
+ {{332,425},{38,41}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{414,382},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{414,413},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkAqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{375,425},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_DarkPurple.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{406,444},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{194,453},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{375,453},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCircle_Tiny_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {26,29}
+ spriteSourceSize
+ {26,29}
+ textureRect
+ {{86,454},{26,29}}
+ textureRotated
+
+
+ geode.loader/baseCross_Huge_Green.png
+
+ spriteOffset
+ {2,-2}
+ spriteSize
+ {109,109}
+ spriteSourceSize
+ {114,114}
+ textureRect
+ {{225,465},{109,109}}
+ textureRotated
+
+
+ geode.loader/baseCross_Small_Green.png
+
+ spriteOffset
+ {2,-2}
+ spriteSize
+ {70,70}
+ spriteSourceSize
+ {73,73}
+ textureRect
+ {{117,458},{70,70}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Aqua.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,36}
+ spriteSourceSize
+ {33,36}
+ textureRect
+ {{0,458},{33,36}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{38,459},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_BrightGreen.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{336,465},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Cyan.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{406,472},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DarkGray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{189,481},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_DimGreen.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{74,482},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Gray.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{0,493},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Green.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{36,494},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_LightBlue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{336,500},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Magenta.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{372,507},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Orange.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{408,507},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Pink.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{189,516},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Salmon.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{72,517},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseEditor_Normal_Teal.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,34}
+ spriteSourceSize
+ {33,34}
+ textureRect
+ {{0,528},{33,34}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Selected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,35}
+ spriteSourceSize
+ {33,35}
+ textureRect
+ {{108,530},{33,35}}
+ textureRotated
+
+
+ geode.loader/baseIconSelect_Normal_Unselected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {33,35}
+ spriteSourceSize
+ {33,35}
+ textureRect
+ {{145,530},{33,35}}
+ textureRotated
+
+
+ geode.loader/baseLeaderboard_Normal_Blue.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {36,34}
+ spriteSourceSize
+ {36,34}
+ textureRect
+ {{36,529},{36,34}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Selected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {92,32}
+ spriteSourceSize
+ {92,32}
+ textureRect
+ {{336,543},{92,32}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_Unselected.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {92,32}
+ spriteSourceSize
+ {92,32}
+ textureRect
+ {{72,565},{92,32}}
+ textureRotated
+
+
+ geode.loader/baseTab_Normal_UnselectedDark.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {92,32}
+ spriteSourceSize
+ {92,32}
+ textureRect
+ {{182,576},{92,32}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/BlankSheet.png
+ size
+ {441,608}
+ textureFileName
+ geode.loader/BlankSheet.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.png b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.png
new file mode 100644
index 0000000..cbc0b25
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/BlankSheet.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.plist
new file mode 100644
index 0000000..a7a0ddf
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.plist
@@ -0,0 +1,59 @@
+
+
+
+
+ frames
+
+ geode.loader/modtober24-banner-2.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {795,74}
+ spriteSourceSize
+ {795,74}
+ textureRect
+ {{0,0},{795,74}}
+ textureRotated
+
+
+ geode.loader/modtober24-banner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {788,67}
+ spriteSourceSize
+ {788,67}
+ textureRect
+ {{0,76},{788,67}}
+ textureRotated
+
+
+ geode.loader/modtober24-popup.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {863,570}
+ spriteSourceSize
+ {863,570}
+ textureRect
+ {{0,145},{863,570}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/EventSheet-hd.png
+ size
+ {863,715}
+ textureFileName
+ geode.loader/EventSheet-hd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.png
new file mode 100644
index 0000000..8145da7
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.plist
new file mode 100644
index 0000000..de75308
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.plist
@@ -0,0 +1,59 @@
+
+
+
+
+ frames
+
+ geode.loader/modtober24-banner-2.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1590,148}
+ spriteSourceSize
+ {1590,148}
+ textureRect
+ {{0,0},{1590,148}}
+ textureRotated
+
+
+ geode.loader/modtober24-banner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1576,134}
+ spriteSourceSize
+ {1576,134}
+ textureRect
+ {{0,150},{1576,134}}
+ textureRotated
+
+
+ geode.loader/modtober24-popup.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {1726,1140}
+ spriteSourceSize
+ {1726,1140}
+ textureRect
+ {{0,286},{1726,1140}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/EventSheet-uhd.png
+ size
+ {1726,1426}
+ textureFileName
+ geode.loader/EventSheet-uhd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.png
new file mode 100644
index 0000000..2b407af
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.plist
new file mode 100644
index 0000000..f0a771c
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.plist
@@ -0,0 +1,59 @@
+
+
+
+
+ frames
+
+ geode.loader/modtober24-banner-2.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {397,37}
+ spriteSourceSize
+ {397,37}
+ textureRect
+ {{0,0},{397,37}}
+ textureRotated
+
+
+ geode.loader/modtober24-banner.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {394,33}
+ spriteSourceSize
+ {394,33}
+ textureRect
+ {{0,39},{394,33}}
+ textureRotated
+
+
+ geode.loader/modtober24-popup.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {431,285}
+ spriteSourceSize
+ {431,285}
+ textureRect
+ {{0,74},{431,285}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/EventSheet.png
+ size
+ {431,359}
+ textureFileName
+ geode.loader/EventSheet.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.png b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.png
new file mode 100644
index 0000000..09ec8f1
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/EventSheet.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-hd.png
new file mode 100644
index 0000000..1fcc6b9
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-uhd.png
new file mode 100644
index 0000000..7bf9f13
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01.png
new file mode 100644
index 0000000..b3ccc32
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_01.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-hd.png
new file mode 100644
index 0000000..259277f
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-uhd.png
new file mode 100644
index 0000000..9c74198
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02.png
new file mode 100644
index 0000000..c975725
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_02.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-hd.png
new file mode 100644
index 0000000..45b2dc6
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-uhd.png
new file mode 100644
index 0000000..ad2a80e
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03.png
new file mode 100644
index 0000000..7a9ed83
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_03.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-hd.png
new file mode 100644
index 0000000..dbdf67c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-uhd.png
new file mode 100644
index 0000000..35a862f
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04.png
new file mode 100644
index 0000000..d408e27
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_04.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-hd.png
new file mode 100644
index 0000000..56706a8
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-uhd.png
new file mode 100644
index 0000000..c193955
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05.png
new file mode 100644
index 0000000..35427d6
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_button_05.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-hd.png
new file mode 100644
index 0000000..0b734bb
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-uhd.png
new file mode 100644
index 0000000..fedecfe
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01.png
new file mode 100644
index 0000000..cc5be45
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square01.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-hd.png
new file mode 100644
index 0000000..63e1ce0
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-uhd.png
new file mode 100644
index 0000000..1434f1b
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02.png
new file mode 100644
index 0000000..b5d5f1f
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square02.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-hd.png
new file mode 100644
index 0000000..36dedb7
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-uhd.png
new file mode 100644
index 0000000..deebbca
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03.png b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03.png
new file mode 100644
index 0000000..f7d9b4c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/GE_square03.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.plist
new file mode 100644
index 0000000..85f8689
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.plist
@@ -0,0 +1,111 @@
+
+
+
+
+ frames
+
+ geode.loader/geode-circle.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,64}
+ spriteSourceSize
+ {64,64}
+ textureRect
+ {{0,0},{64,64}}
+ textureRotated
+
+
+ geode.loader/geode-logo-color.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {118,118}
+ spriteSourceSize
+ {118,118}
+ textureRect
+ {{66,0},{118,118}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline-gold.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,66}
+ spriteSourceSize
+ {64,66}
+ textureRect
+ {{186,0},{64,66}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {64,65}
+ spriteSourceSize
+ {64,65}
+ textureRect
+ {{186,66},{64,65}}
+ textureRotated
+
+
+ geode.loader/geode-logo.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {166,166}
+ spriteSourceSize
+ {168,168}
+ textureRect
+ {{0,120},{166,166}}
+ textureRotated
+
+
+ geode.loader/logo-base.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {166,166}
+ spriteSourceSize
+ {168,168}
+ textureRect
+ {{0,288},{166,166}}
+ textureRotated
+
+
+ geode.loader/logo-glow.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {187,189}
+ spriteSourceSize
+ {190,190}
+ textureRect
+ {{0,456},{187,189}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/LogoSheet-hd.png
+ size
+ {252,643}
+ textureFileName
+ geode.loader/LogoSheet-hd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.png
new file mode 100644
index 0000000..6259194
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.plist
new file mode 100644
index 0000000..3af38fb
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.plist
@@ -0,0 +1,111 @@
+
+
+
+
+ frames
+
+ geode.loader/geode-circle.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {128,128}
+ spriteSourceSize
+ {128,128}
+ textureRect
+ {{0,0},{128,128}}
+ textureRotated
+
+
+ geode.loader/geode-logo-color.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {228,229}
+ spriteSourceSize
+ {236,237}
+ textureRect
+ {{130,0},{228,229}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline-gold.png
+
+ spriteOffset
+ {0,1}
+ spriteSize
+ {129,131}
+ spriteSourceSize
+ {129,133}
+ textureRect
+ {{361,0},{129,131}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {129,131}
+ spriteSourceSize
+ {129,131}
+ textureRect
+ {{494,0},{129,131}}
+ textureRotated
+
+
+ geode.loader/geode-logo.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {324,324}
+ spriteSourceSize
+ {336,336}
+ textureRect
+ {{0,230},{324,324}}
+ textureRotated
+
+
+ geode.loader/logo-base.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {324,324}
+ spriteSourceSize
+ {336,336}
+ textureRect
+ {{0,556},{324,324}}
+ textureRotated
+
+
+ geode.loader/logo-glow.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {371,375}
+ spriteSourceSize
+ {380,380}
+ textureRect
+ {{0,882},{371,375}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/LogoSheet-uhd.png
+ size
+ {625,1253}
+ textureFileName
+ geode.loader/LogoSheet-uhd.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.png
new file mode 100644
index 0000000..c63e70c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.plist b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.plist
new file mode 100644
index 0000000..b35256d
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.plist
@@ -0,0 +1,111 @@
+
+
+
+
+ frames
+
+ geode.loader/geode-circle.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,32}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{0,0},{32,32}}
+ textureRotated
+
+
+ geode.loader/geode-logo-color.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {59,59}
+ spriteSourceSize
+ {59,59}
+ textureRect
+ {{34,0},{59,59}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline-gold.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,33}
+ spriteSourceSize
+ {32,33}
+ textureRect
+ {{95,0},{32,33}}
+ textureRotated
+
+
+ geode.loader/geode-logo-outline.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {32,32}
+ spriteSourceSize
+ {32,32}
+ textureRect
+ {{0,34},{32,32}}
+ textureRotated
+
+
+ geode.loader/geode-logo.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {84,84}
+ spriteSourceSize
+ {84,84}
+ textureRect
+ {{34,61},{84,84}}
+ textureRotated
+
+
+ geode.loader/logo-base.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {84,84}
+ spriteSourceSize
+ {84,84}
+ textureRect
+ {{0,147},{84,84}}
+ textureRotated
+
+
+ geode.loader/logo-glow.png
+
+ spriteOffset
+ {0,0}
+ spriteSize
+ {94,95}
+ spriteSourceSize
+ {95,95}
+ textureRect
+ {{0,233},{94,95}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ realTextureFileName
+ geode.loader/LogoSheet.png
+ size
+ {128,327}
+ textureFileName
+ geode.loader/LogoSheet.png
+
+
+
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.png b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.png
new file mode 100644
index 0000000..b0951d1
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/LogoSheet.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/about.md b/src-tauri/gd/2.2/geode/resources/geode.loader/about.md
new file mode 100644
index 0000000..d121e28
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/about.md
@@ -0,0 +1,39 @@
+# Geode SDK
+
+This mod is the internal representation of **Geode SDK**. You can customize Geode's settings through this mod.
+
+## About
+
+**Geode** is a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) mod loader and modding SDK with a modern approach towards mod development. Unlike previous mod loaders, which merely inject the DLLs and let devs handle the rest, Geode aims to be a more comprehensive project, which manages loaded mods & hooks itself. Geode has been built to ensure compatibility, portability and ease of use while retaining performance. For devs, Geode means easy development and portability; for end users, Geode means an uniform and easy experience using mods.
+
+## Help, Contributing, Etc.
+
+If you need help using Geode or would like to contribute, feel free to join our [Discord Server](https://discord.gg/9e43WMKzhp).
+
+See [Documentation](https://geode-sdk.github.io/docs) for info about developing mods for Geode.
+
+## Credits
+
+Developed by
+
+ * [HJfod](user:104257) - [GitHub](https://github.com/HJfod)
+ * [Alk1m123](user:11535118) - [GitHub](https://github.com/altalk23/)
+ * [Mat](user:5568872) - [GitHub](https://github.com/matcool/)
+ * [ConfiG](user:807756) - [GitHub](https://github.com/cgytrus/)
+ * [Cvolton](user:761691) - [GitHub](https://github.com/Cvolton/)
+ * Camila314 - [GitHub](https://github.com/camila314/)
+ * zmx - [GitHub](https://github.com/qimiko/)
+ * PoweredByPie - [GitHub](https://github.com/poweredbypie/)
+ * [fig](user:107269) - [GitHub](https://github.com/FigmentBoy)
+ * FireCubez - [GitHub](https://github.com/FireCubez)
+ * [And more!](https://github.com/geode-sdk/geode/graphs/contributors)
+
+Using
+
+ * [Cocos2d-x](https://github.com/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.3)
+ * [FMOD](https://www.fmod.com/)
+ * [fmt](https://fmt.dev/latest/index.html)
+ * [PEGTL](https://github.com/taocpp/PEGTL)
+ * [md4c](https://github.com/mity/md4c)
+
+Special thanks to [RobTop Games](https://twitter.com/RobTopGames/) for making this amazing game and providing us and so many others with hours of entertainment <3
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-hd.png
new file mode 100644
index 0000000..f0d2287
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-uhd.png
new file mode 100644
index 0000000..2bb4b19
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/black-square.png b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square.png
new file mode 100644
index 0000000..78c9055
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/black-square.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/byeNotif00.ogg b/src-tauri/gd/2.2/geode/resources/geode.loader/byeNotif00.ogg
new file mode 100644
index 0000000..89774d5
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/byeNotif00.ogg differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/changelog.md b/src-tauri/gd/2.2/geode/resources/geode.loader/changelog.md
new file mode 100644
index 0000000..b13b546
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/changelog.md
@@ -0,0 +1,1179 @@
+# Geode Changelog
+
+## v4.1.2
+ * Prevent crashlog recursion on MacOS (a69c4c2)
+ * Fix a grave misspelling error (#1203)
+ * Fix a logic bug in SettingChangedFilter (3665da9)
+ * Less strict sdk version checking for developers (100be49)
+
+## v4.1.1
+ * Check is mod is available for current version in ModPopup (fdf4348)
+ * Revert earlier commit that broke incompatibilities (ded70bb)
+ * Fix `fmt::join` on logs (22e4cbf, #979)
+ * Allow any float or int type in `getSettingValue` (d08e141)
+ * Fix cocos headers (9dd7128, 6c039c6)
+ * Fix target Geode version comparison with tags (ec2e8d8)
+ * Fix "GD 0.000" from being displayed in mod listing (fb85530)
+ * Id overload for `openInfoPopup` now fetches the latest mod version (c6666a3, bda9444)
+
+## v4.1.0
+ * Add Modtober winner announcement (0aa2449)
+ * Add `getHighestChildZ` crash fix (24189b1)
+ * Add Greek and German to Windows installer (bff6324, f7559ec)
+ * Add command line arg support for MacOS (6a62813)
+ * Add ID for ModItem badge container (d7177c1)
+ * Add `Stub` and `Replace` hook priorities (1f50390)
+ * Allow passing pointers to `getChildByType`, `CCArrayExt`, `CCDictExt` (b956596)
+ * Make `CCEGLView` members public (0d607bf)
+ * Fix links not appearing on non-installed mods (#1184)
+ * Fix trailing gap on `AxisLayout` when auto grow enabled (4b5d112)
+ * Fix `null` not being convertible to `std::optional` in `JsonExpectedValue` (15a1b34)
+ * Update Result, matjson, TulipHook (12069db)
+
+## v4.0.1
+ * Add cutoff constructor for CCRenderTexture (#1171)
+
+## v4.0.0
+ * Make chosen display type in mod list be saved between startups (07d92a3)
+ * Fix `Task::all` not returning results in order (227adb0)
+ * Fix bugs with changing display type (555ebe3, f90461f)
+
+## v4.0.0-beta.2
+ * Add grid view to mod list (7bcf50d, 1ff24f0)
+ * Add safe mode tip to windows crashlog window (38f3385)
+ * Disable enabled button on outdated mods (302eea1)
+ * Add a button to copy list of mods to clipboard (#1039)
+ * Fix VersionInfo toJson (f6c2322)
+ * Add `GEODE_DESKTOP(...)` and `GEODE_MOBILE(...)` macros (d6f0c59)
+ * Fix CCCallFuncExt (b9fb2f6)
+ * Fix `utils::string::replaceIP` when filter is empty (4d5e465)
+ * Fix more log nesting issues (2221095)
+ * Fix new before/after priority system (17bf772)
+ * Added European Portuguese translation (#1160)
+ * Add missing CCHttpRequest methods and members (#1161)
+ * Fix downloading many mods at once causing the UI to lag (c94a533)
+ * Fix vv version (6e86b38)
+
+## v4.0.0-beta.1
+ * Button to manually install mods from files (e881dc5)
+ * Add `ModRequestedAction::Update` (e881dc5)
+ * Add `ModMetadata::checkGeodeVersion` and `ModMetadata::checkTargetVersions` (e881dc5)
+ * Add `geode::createModLogo` for creating a logo from a `.geode` package (e881dc5)
+ * Tags now use names provided by the server (893b03e)
+ * Add web support for multiple request headers with same name (#1150)
+ * Fix `Task::chain` using the wrong type in the impl (22a11b9)
+ * Fix installing mods not checking the current version (#1148)
+ * Fix searching for mods ignoring geode and gd version (#1153)
+ * Fix crash when checking tags (01807fe)
+ * Fix 'Outdated' label being visible while updating (6679a69)
+ * Fix log nesting issue (0e8d4c6)
+ * Remove forward compat message box as it confuses users (5592ef6)
+ * Fix crash on opening mod changelogs (9834cb2)
+ * Make `ColorPickPopup` pimpl (1a201e1)
+ * Fix lag issue in `ColorPickPopup` (3081164)
+ * Change return type of `ModSettingsManager::save` (da92090)
+ * Fix every misspelling of successfully (#1151)
+ * Allow building geode itself in debug mode (5645399)
+
+## v4.0.0-alpha.1
+ * Support for the 2.2074 update
+ * Developers, see [this page for a migration guide](https://docs.geode-sdk.org/tutorials/migrate-v4)
+ * Major API breaks:
+ * Remove everything previously marked deprecated
+ * `utils::MiniFunction` removed
+ * Rewritten `geode::Result` class
+ * Rewritten matjson library
+ * Settings V2 completely removed, use V3 now
+ * `JsonChecker` removed
+ * Add new system for ordered hook priority, [see docs](https://docs.geode-sdk.org/tutorials/hookpriority) (673317d, 6db3084)
+ * C++20 coroutine support for `geode::Task`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#coroutines) (e61b2c0, ab196b9)
+ * Add `Task::chain`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#chaining-tasks) (3248831)
+ * Single page local mods list (efb1fbf)
+ * Split mod problems into load and outdated (12e8bbb, 09fa872, df2528c)
+ * This means mods made for outdated gd or geode versions no longer count as actual errors, resulting in less clutter in the ui
+ * Fix safe mode popup on windows showing up when not supposed to (038788b)
+ * WebRequest::ignoreContentLength (#1126)
+ * Lots of smaller fixes to the geode ui (c9afa75, f5f3365, 2d66279, 02845d9, 9b95301, 6d13f78, 123b3ab, 0b2fc66, f96ea5e, cad670f)
+ * Fix CCArrayExt::pop_back() return type (#1130)
+ * Add missing spanish translations to installer (#1145)
+ * Add hashtag symbol to CommonFilter::Any (#1131)
+ * Disable forward compat on android (c9e97af)
+
+## v3.9.3
+ * Add cutoff constructor for CCRenderTexture (#1171)
+ * Add XInputSetState export in proxy loader, fixing certain steam emus (480b12)
+ * Force update to 4.0.1 on forward compat (2ed1886)
+
+## v3.9.2
+ * Fix searching for mods returning unavailable mods (#1149)
+
+## v3.9.1
+ * Fix mod downloads not checking version (f575187)
+
+## v3.9.0
+ * Many changes to the settings ui (#1108)
+ * Fuzzy search is now more reasonable
+ * Add `CCNode::getChildByType` utility method, replacing the `getChildOfType` util (0089d13, c8aa2e3, 5f70080)
+ * Add `geode::utils::string::caseInsensitiveCompare` (f3d38a7)
+ * Now local mods are ordered correctly
+ * Add `CCCallFuncExt` util, which accepts lambdas and such (d1053b1, 1d31576)
+ * Add missing `m_nExtraKerning` to `CCLabelBMFont` (#1088)
+ * Truncate numbers in `numToAbbreviatedString`, no longer rounding up (82e703b)
+ * Fix string settings not having their character filters applied (6d0b583)
+ * Error on `numFromString` when string has left over data (d4ca28c)
+ * Change positioning of MenuLayer `top-right-menu` menu (6d2557b)
+ * Add `SceneManager::getPersistedNodes` (5009caa)
+ * Fix android `std::unordered_map` copy constructor (67f59e7)
+ * Fix crash on Linux when piping output to terminal (8ecb1c5)
+ * Fix crash when geode menu is disabled (b69f810)
+ * Fix infinite recursion in `WeakRef` hashing (d68e358)
+
+## v3.8.1
+ * Fix CCLightning header
+ * Fix server query default value (8be97b7)
+ * Fix importance resolving in disabled mods (d40ba6d)
+
+## v3.8.0
+ * Add Modtober integration! For more about Modtober, join [the GDP Discord server](https://discord.gg/gd-programming-646101505417674758) (964624b)
+ * Add `Popup::CloseEvent` (6270e1c)
+ * Add `openSettingsPopup` overload that returns the created `Popup` (dc8d271)
+ * Fix `CCNode::querySelector` logspamming (b53759f)
+ * Fix `followThunkFunction` following through into hook handlers (ad26357)
+
+## v3.7.1
+ * Fix crash with saving older custom settings (c3e7f23)
+ * Add missing CCDrawNode::drawRect overload (145adb2)
+
+## v3.7.0
+ * Add persistent directory for mods to save data that won't be deleted when the mod/Geode is uninstalled (68ab475)
+ * Fix touch priority issues in the settings popup (b3d5474)
+ * Fix settings with custom types not being saved & loaded properly (f0b6a70)
+
+## v3.6.1
+ * Fix modrm rip relative instruction displacement saving the clobbered register (ddfe8e2)
+ * Fix `DataSaved` and `DataLoaded` events (8615bbd, 43adb35)
+ * Fix file settings mixed separators (1281c76)
+
+## v3.6.0
+ * Major rework of the entire settings system with lots of new features; see the [docs page](https://docs.geode-sdk.org/mods/settings) for more
+ * Rework JSON validation; now uses the `JsonExpectedValue` class with the `checkJson` helper (89d1a51)
+ * Add `Task::cancelled` for creating immediately cancelled Tasks (1a82d12)
+ * Add function type utilities in `utils/function.hpp` (659c168)
+ * Add `typeinfo_pointer_cast` for casting `std::shared_ptr`s (28cc6fd)
+ * Add `GEODE_PLATFORM_SHORT_IDENTIFIER_NOARCH` (1032d9a)
+ * Add `PlatformID::getCovered` (d5718be)
+ * Add `limitNodeWidth` and `limitNodeHeight` utils (e8751bf)
+ * Add `std::hash` (2d9ce8f)
+ * Allow limiting image width/height in `MDTextArea` (e8751bf)
+ * The current working directory is automatically always set to the game directory (7c558ee)
+ * Rename `toByteArray` to `toBytes` (6eb0797)
+ * Improve `AxisLayout::getSizeHint` (85e7b5e)
+ * Fix issues with file dialogs on Windows (62b6241, 971e3fb)
+ * Fix PCH issues (aedd986)
+ * Mod incompatibilities may now be platform-specific (9f1c70a)
+ * Show appropriate popup for unavailable mods (6944f80, 30dc70c)
+ * Add support for description as a default value on file settings (75186f6)
+ * Remove early ub related to console (54ff48c)
+ * Temporary workaround for Wine crash due to console (dc170d7)
+ * Check also for incompatibilities with newly installed mods when downloading (9115091)
+ * Make cocos geometry classes constexpr (db8a6c8)
+ * Fix rip displacement issues when hooking some functions on Windows (175dc27)
+
+## v3.5.0
+ * Move CCLightning to cocos headers (#1036)
+ * Add new `gd::string` constructor (bae22b4)
+ * Use `getChildren` instead of member in `getChildByID` (fe730ed)
+ * Fix sprite order in `CCMenuItemExt::createToggler` (d729a12, 59a0ade)
+ * Add restart button to windows's crashlog window (#1025)
+ * Update FMOD headers (63b82f9)
+ * Change SwelvyBG sprites to be 2048x512 (#1029)
+ * Fix missing `GEODE_DLL` (e4054d4)
+ * Add code of conduct (80693c1, ab8ace0, ca3a2a3)
+ * Add ID system to Geode's web requests (#1040, 1f2aa2c, 1b5ae86)
+ * Add `Notification::cancel` (cd5a66c)
+ * Update matjson (e5dd2c9)
+ * Update TulipHook (a31c68f)
+ * Fix a bug where only 1 word wrap variant can exist (#1058)
+ * Fix ScrollLayer when anchor point is not ignored (d95a43b)
+ * Move macOS builds to using apple clang, fixing issues on older macOS versions (#1030)
+ * Allow dashes when searching for developers (#1023)
+ * Split update checks into multiple batches (#1066)
+ * Show invalid mods on mod search (#1065)
+
+## v3.4.0
+ * Add an API for modifying the Geode UI via events; see [the corresponding docs page](https://docs.geode-sdk.org/tutorials/modify-geode) (2a3c35f)
+ * Add `openInfoPopup` overload that accepts a mod ID and can open both an installed mod page or a server page (028bbf9)
+ * Add `LoadingSpinner` for creating loading circles easily (5c84012)
+ * Add `TextInput::focus` and `TextInput::unfocus` (749fdf1)
+ * MDTextArea changes: hex colors are now formatted as ``; added support for ``, ``, ``, and ``; fixed `mod:` links (028bbf9)
+ * Deprecate `cc3x` (6080fdb)
+ * Don't cancel subtasks on `Task` destructor (4b4bc0e)
+
+## v3.3.1
+ * Move ObjectDecoder and its delegate to Cocos headers (95f9eeb, dceb91e)
+ * Fix weird behavior with textures, objects and more by changing en-US.utf8 locale to C (2cd1a9e)
+ * Change all C number parsing to use `numFromString` to further remove the risk of this happening again (006ede8)
+
+## v3.3.0
+ * Update network libraries, fixing problems with old Wine versions (e26fe95)
+ * Fix scale on mod logos for low quality (ba7b0fa)
+ * Fix platform-specific dependencies by using CLI 3.2.0 (98f82ff)
+ * Add `GEODE_DONT_USE_CCACHE` CMake option (2edfb71)
+ * Remove now useless `std::hash` impl for `std::filesystem::path` on android (2b35e0e)
+ * Implement custom window for showing crashlog on windows (4f32197)
+ * Update docs version to show v3.0.0 (f86d4db)
+ * Check hash for downloaded mods (61e000d)
+ * Update chinese installer translation (#995, #997)
+ * Update polish installer translation (#998)
+
+## v3.2.0
+ * Fix auto-updater on MacOS (d752bc2)
+ * Use tasks for `FileSettingNode` (f94e95e)
+ * Fix single argument overload of `Task` (6fe1ac9)
+ * Fix the GLFW message box fix (09c188a)
+ * Shrink `TextInput` input to give some padding (1da73cf)
+ * Undither account and editor blank sprites, add missing editor blank sprites (427e86e, efc4a00, 9fd9a78)
+ * Fix populating web headers and add some new getters (a96ec91)
+ * Build mods to load stack statically (255066a)
+ * Force internal mod to always appear enabled (e659b97)
+ * Bring back uninstall Geode button on Windows (22b2580)
+ * Add `geode::openChangelogPopup` (e432e72)
+ * Add special visuals for paid tag (0082765)
+ * Add 64-bit check to the Windows installer (c45d8f6)
+ * Add `Mod::checkUpdates` (9d02155)
+ * Error on attempting to hook missing or inlined functions (2dc989f)
+ * Implement function bound checking on Windows crashlog for symbol resolution (66c2f9a)
+ * Add new syntax for image scale arguments (#983)
+
+## v3.1.1
+ * Update Windows installer translations (ae589d2, dca28db, d12fb37, 08d8af3, f52cf02, 3fa1d9b)
+ * Add safe mode by holding shift on MacOS (e4905a0)
+ * Fix bug on android where `FileOperation::getFilePath` was not actually hooked (9885212)
+ * This was a problem with our bindings, there the return type was TodoReturn instead of gd::string causing the hook to silently fail, leaving only the launcher hook (which is prone to failing) as a fallback.
+
+## v3.1.0
+ * Implement LoaderImpl::getGameVersion on android, requires 1.4.0 launcher (00799b6)
+ * Better compression for windows installer, saves 6mb (54da3b0)
+ * Fix mod install confirmation popup not properly showing mods (5886324)
+ * Fix missing version check for incompatibilities (83bb3c2)
+ * Update TulipHook (f6260a5)
+ * This fixes a crash with CustomKeybinds
+ * Add more options to `web::WebRequest` (83f8a32) (#943)
+ * Prioritize mod updates over failed mods on the main menu icon (89ed81a)
+ * Windows installer improvements:
+ * Delete old geode/update folder to prevent downgrading (116af49)
+ * Delete left over dlls from 2.204 (d1e2919)
+ * Installer can now forcibly install over existing mod loaders (736a61e)
+ * Make installer delete msvcp dlls in gd folder (d9c7610, 9c6841e)
+ * Improve CI by cross compiling from linux (#935, #939)
+ * Alternate way of getting main function address on Windows (1384604)
+ * Previously this would affect about 2 people on earth
+ * Show special error on proxy loader if bad dlls are in gd folder (fd476fe)
+
+## v3.0.0
+ * Show loader commit hashes again (b72bb9e)
+ * Don't save data if mod is uninstalled with save (518f941)
+ * Add "open in browser" button to mods (581e2d3)
+ * Remove the unimplemented Versions tab temporarily (581e2d3, 1f5ebf9)
+ * Texture fix (#941)
+ * Implement Android 64 bit exception fix in client side (cfb682e)
+ * Most of the fix is in the launcher itself, so you need to update to 1.4.0 for the full fix
+
+## v3.0.0-beta.5
+ * Add More Details button for mod problems (9095005)
+ * Display mods not on current platform (2cd0990)
+ * Fix `DefaultEventListenerPool` missing constructor ABI break for Dispatch (d88a93e)
+ * Implement `one-of` setting without ABI break (7742b57)
+ * Remove the missing custom setting warning (4509607)
+
+## v3.0.0-beta.4
+ * Fix events crash caused by immediate enabling & disabling (e796711)
+ * Make some classes final (ea96e2c)
+
+## v3.0.0-beta.3
+ * Fix a crash that might happen when entering the Geode mods page (79689cd)
+ * Fix a locale related crash (fdb473a)
+ * Cleanup old field syntax remnants (34e51ff)
+ * Use `clamp` for `SwelvyBG` instead of `repeat` (0a6a5e6)
+ * Add support for `one-of` settings for mods (3f674e5, 7d79ddd)
+ * Remove `RT_ADD` and `RT_REMOVE` (7bd8a1a)
+ * Add `CCDirector::m_bFastMenu` back (c3058ff)
+ * Fix UI visual bugs in `ModsLayer` (e273ef2, b3925f1, 255a42c)
+ * Fix race conditions for event pools (636be07, 4c15bdb, abc34f9)
+ * Add a `static_assert` to prevent old field syntax (5f37d30)
+ * Fix dangling `string_view` for `Task` names (92704b9)
+ * Download the exact update suggested by Index instead of latest version (115f0e7)
+ * Small cleanup and improvements for Windows stacktraces (2824c17)
+ * Fix bugs related to `delayload` (ec1d846)
+
+## v3.0.0-beta.2
+ * (WebRequest) Don't change the method from POST to GET on redirect follow (6ae11dd)
+ * Make `file::openFolder` actually work on selecting paths on Windows (0309e01)
+ * Hide platform console option on Android (df3d147)
+ * Add `gd::vector::erase` for Android (c3c2afa) - thanks SpaghettDev
+ * Stop using `android_stl=c++_shared` on mods (100dbdc)
+ * Show confirm dialog directly when updating mods (8f1a9cf)
+ * Only check for updates once per launch (3313a44)
+ * Fix various bugs with texture pack reloading (aeaf7f7)
+ * Fix `Ref` and `WeakRef` move assignment (f352503)
+ * Add comma to download counts (de50b98)
+ * Add check for Texture Loader's fallback function for mod logos (a421047)
+ * Bring back safe mode UI (6e6dace)
+ * Fix texture corruption bug on `ModsLayer` (76e2ed4)
+ * Fix `CCArrayExt::value_type` (97d2e44)
+ * Add `AxisAlignment::Between`, for equal space between elements (adc4469)
+ * Add discord and website links to loader mod.json (8792747) - thanks coopeeo
+ * Make mod updates log into an info log instead of error (815c4a3)
+ * Hopefully finally fix Windows crashlogs (70fe096)
+
+## v3.0.0-beta.1
+ * Add a special error for 1114 - vcredist update (d0821f5)
+ * Properly fix Windows exceptions (84a2c6b)
+ * Add keyboard support to ModsLayer (2b53e8a)
+ * Fix "Loading mods cancelled" appearing with no reason (698112a)
+ * Fix various compile warnings (68ac2b0, cb1e7de)
+ * Use `string_view` instead of `string` for some Task functions (da617ee)
+ * Add `Task::listen` for listening to Tasks globally (fa7a2de, eb7c4d9)
+ * Add 2.2 `CCDrawNode` members (562fbf6) - thanks Prevter
+ * Use `SPACE_WRAP` for mod problem textarea (4d267d3)
+ * Fix download links for mods being generated without prerelease tag (06bd2e2)
+ * Make developer filter search by username (014ec68, 1c40a63)
+ * Fix `Notification` crashing when shown during a transition fade (0270d47)
+ * Split `GEODE_PLATFORM_NAME` for Mac ARM and Mac Intel (48a7981)
+ * Use `string_view` instead of `const char*` for `expandSpriteName` (22cc33b)
+ * Make `_spr` compile time (b22a59d, bacab92)
+ * Update server UserAgent format (9679b40)
+ * Allow mods with old `gd` key syntax in `mod.json` to be checked for updates (c1fbc08)
+ * Replace the "Recommended" tab with "Featured" (#897)
+ * Use c++_shared STL on Android64 (115b9cf, d0cc62a, fbc6416)
+ * `file::pick` and `file::pickMany` are the new file APIs, which use Tasks (#899)
+
+## v3.0.0-alpha.2
+ * Add `WebResponse::into()` for writing responses to files (f909a73)
+ * Add `geodeImplicitEntry` and `geodeCustomEntry` (6b2ac24, 5969c90)
+ * Fix padding and add a custom color for borders (#868)
+ * Add more SMJS nodes to UI include (#869)
+ * Fix an issue with CCParticleQuad (330c20e, #865)
+ * Hopefully fix Windows crashlogs
+ * Fix supersede incompatiblity IDs being validated (754ae3c)
+ * Fix dates not respecting timezones (1c36854)
+ * Change dependency / incompatibility / settings 'platform' string values (80d95cf)
+ * Make tasks cancel when the handle is destroyed (c82112f)
+ * Increase delay when restarting GD (84c0ba5)
+ * trigger $on_mod(Loaded) for Loader
+ * Make Windows installer use x64 vc_redist (6793fbd)
+ * Fix some cocos members (#872, #881) - thanks Acaruso and SpaghettDev
+ * geode::ui::Border fixes (#883) - thanks SMJS
+ * Update the developer popup, and various other UI fixes (#877) - thanks Alphalaneous
+ * Check if is_json is defined for getSavedValue custom types
+
+## v3.0.0-alpha.1
+ * Deprecated the old web API, replacing it with a new one (b129808)
+ * Replace `ghc::filesystem` with `std::filesystem` (#713)
+ * Make `queueInMainThread` take a move only function
+ * Remove "gd" shorthand from mod.json (#471)
+ * Remove old fields syntax (#715)
+ * Make `TodoReturn` unusable (#714)
+ * Remove unused wstring utilities
+ * Add support for Geometry Dash 2.206
+ * New UI for the Index, which also uses a server implementation (#833)
+ * Implements new popups `ConfirmUninstallPopup`, `DevPopup`, `FiltersPopup`, `ModErrorPopup`, `ModPopup`, `SortPopup`
+ * Mod popup now has new features like tags, reverting accidental disabling, version (1876af8, dac16a4, f365dc4)
+ * Adds 4 tabs to the Geode menu: Installed, Recommended, Download, Recent
+ * Creates a fancy new background with `SwelvyBG`
+ * The entire color scheme has been changed to fit Geode's color language of pastel purple-pastel gold gradient
+ * Remove old web utilities (b129808)
+ * Implement Windows 64-bit and MacOS M1 arm64 support
+ * Add color support to `ListView` (#854, #859)
+ * Use `std::string` for `gd::string` on Windows (144b2d7)
+ * Make `queueInMainThread` take in a movable callback (0c35a92)
+ * Add `CCMenuItemExt` for lambda versions of CCMenuItem classes (de73317)
+ * Add `scrollToTop` for ScrollLayer (7071bb1)
+ * Add a new `Task` class for generic asynchronous task implementations
+ * Documentation can be found [here](https://docs.geode-sdk.org/tutorials/tasks/)
+ * Add a special task named `WebTask` for handling web requests
+ * Fix `Unzip` crash on missing progress callback (1145426)
+ * Fix `AnchorLayout` not ignoring `ignoreAnchorPointForPosition` (547c047)
+ * Add `ObjWrapper` class for wrapping objects inside a `CCObject` (5e76da1)
+ * Adjust fuzzy searching (cc5cb07)
+ * Add `TextInput::setLabel` (991fce0)
+
+## v2.0.0-beta.27
+ * Implement some `BasedButtonSprite` fixes (edb8e6c)
+ * Add early version check for MacOS (4083950)
+ * Move `Enums.hpp` to bindings (23e04a0)
+ * Add a query selector for query based child selection (c75ec63)
+ * Add `getDisplayFactor` utility for MacOS Retina (d725126)
+ * Add `Result::unwrapOrDefault` (1dc9ec4)
+ * Fix texture pack removal (006413a)
+
+## v2.0.0-beta.26
+ * Bring in several UI helpers from the `new-index-but-better` branch: `ListBorders`, `addSideArt`, `AxisLayout` improvements, ... (26729c3, 7ff257c)
+ * Make it possible to compile mods in Debug mode (517ad45)
+ * Add `GJDifficultyName` and `GJFeatureState` (#706)
+ * Add `geode::cocos::isSpriteName` and `geode::cocos::getChildBySpriteName` (#725)
+ * Add some Android keycodes (4fa8098)
+ * Update FMOD on Mac (c4a682b)
+ * Bump JSON version (5cc23e7)
+ * Fixes to `InputNode` touches (29b4732)
+ * Fix `file::readFromJson` (77e0f2e)
+ * Fix issues with TulipHook (f2ce7d0)
+
+## v2.0.0-beta.25
+ * Fix updater sometimes skipping releases (18dd0b7)
+ * Fix resources getting downloaded every time (5f571d9)
+ * Modify fields are now done using an explicit `Fields` struct to avoid forgetting `m_fields` (4505b0d)
+ * Fix memory leak on new field containers (db32732)
+
+## v2.0.0-beta.24
+ * CMake error when compiling with Android SDK below 23 (ea34e12)
+ * Fix rendering of soft line breaks in MDTextArea (c7f8b5f)
+ * Fix `getChildOfType` entering an infinite loop with negative indices (a795487)
+ * Don't cache fonts on Windows (e9da55f)
+ * Add `level:` and `mod:` to MDTextArea (8c61a6f)
+ * Fix json floating precision errors (318a7f2)
+ * Fix loading bar going out of bounds (e50c3ab)
+ * Fix field containers for modified classes that have an inheritance relationship sharing the container (00e971a)
+ * Error if mod target geode version doesn't match installed SDK version (2c559f8)
+ * Fix dangling pointer in `disownPatch` (4c492c1)
+ * Add a way to access internal setting container (798cacc)
+ * Add the crashed thread to Windows crashlog (f84e866)
+ * Add Greek, Ukranian, Simplified and Traditional Chinese, French translations for the installer (8002ca0, bd5db26, 33fcd52, c02cc6d)
+
+## v2.0.0-beta.23
+ * Fix `CCMenuItem::activate` crashes (005d245, 7f9dcc6)
+ * Fix ProfilePage fix misaligning profiles (b44184c)
+ * Fix Impostor PlayLayer Fix being enabled in forward compatibility mode (96fee44)
+ * Fix IPC using an incorrect mod ID (c02dc7d)
+ * Fix opening folders not working with certain mods installed (43cf9fa)
+ * Update Android `gd::map` (d165616, e4ab881, ea6ac9f)
+ * Change outdated GD message on Windows (8ab3f56)
+ * Enable FMOD initialization check on all platforms (682144f, 1a67f9b)
+ * Re-implement `gd::unordered_map` and `gd::unordered_set` on Windows (#636, #644, 912aa23)
+ * Fix handleTouchPriority not retaining nodes and sometimes crashing (2d13d4f, c8d1e88)
+ * Fix restarting the game if executable filename includes spaces (223f168)
+ * Implement "Report Issue" button (#634)
+ * Fix a thread safety issue in logging (7155705)
+ * Operation Big Sister - disallow modifying TodoReturn functions (f3267b0, 55e1f6a, dd6e20b)
+ * Tuliphook: Fix parameters bigger than 4 bytes being passed through registers (f7bda30)
+ * Tuliphook: Double the size of the handler and the trampoline (1a67f9b)
+
+## v2.0.0-beta.22
+ * Add `Patch::updateBytes` to update a patch (ba648340)
+ * (Possibly) fix random curl crashes (dd440433, 1fb12f2d, 6cd6e4d0, 8998041e, 2be58549)
+ * This was done by using a build with the thread resolver enabled, possibly fixing race conditions when initing curl
+ * Prevent `GeodeUpdater.exe` from hanging (d139049b)
+ * Fix a duplicated node ID in LoadingLayer (#574)
+ * Fix minor memory leak in AsyncWebRequest (52ea6ea5)
+ * Fix Wine crashing when launching via terminal (#501)
+ * Use C locale instead of US (#566)
+ * Impostor playlayer fix (#562)
+
+## v2.0.0-beta.21
+ * Fix `numFromString` for floating point numbers (6d91804)
+ * Fix `ScrollLayer` cropping (5c8ee29)
+ * Show featured mods on top (4e06c20)
+ * Don't require admin for installer (5f8dc3a)
+ * Add `char const*` and `std::string` overloads for `gd::string` (982e8ab, a19d26d)
+ * Remove dithering from some textures (b9a76b3, 76a615c)
+ * Replace node attributes with id based user objects (363a028)
+ * Add FMOD initialization check for Android (0623563)
+ * Remove deprecated values from `Permissions` (b082dd1)
+ * Add a progress percentage to index unzipping (baf3a6b)
+ * Fix `pushNest/popNest` not doing correct indent value (c7a1f76)
+ * Optimize `DispatchEvent` to use their own pools, greatly increasing performance (d8ac85b)
+ * Check for presence of children in `handleTouchPriority` (28bd757)
+ * Fix floating point returns for optcall/membercall functions (dba5b01)
+
+## v2.0.0-beta.20
+ * Enable PCH on Mac for better compile times (dd62eac)
+ * Add `numFromString` utility for safely parsing numbers (c4e9c17)
+ * Add `CCNode::setContentWidth` along with respective height setter and getters (e06b907)
+ * Add `getChildBySpriteFrameName` (85f8a20)
+ * Add `isSpriteFrameName` (eea3556)
+ * Add new more refined `TextInput` class, deprecating `InputNode` (28f393b)
+ * Fix `InputNode` and `TextInput` using tags on their internal input node for controlling behaviour (29f99c2)
+ * Remove `strfmt` and `cstrfmt` utilties for being outdated and unsafe (b69ac71)
+ * Make `clamp` utility use template magic for better type inference (4ba0b7d)
+ * Improve user errors (4b667cc)
+ * Deprecate invalidally formatted mod IDs (e80d228)
+ * Add new `superseded` importance level to incompatabilities (e80d228)
+ * Fix `pickFile` on Android (9051779)
+
+## v2.0.0-beta.19
+ * Fix Windows forward compatibility mode (eef949c5, 824efbf3, 456075a2)
+ * This was caused by Clang not setting `/DELAYLOAD` properly, but also a mutex introduced in beta.7 causing Geode not to load at all
+ * Slightly improve Mod List sorting (3497692)
+
+## v2.0.0-beta.18
+ * Use sccache for caching instead of PCH to improve compile times (#493)
+ * Add translations for Japanese in installer (#504)
+ * Add `geode::openSupportPopup` for opening the Support page for a mod (438252f)
+ * Add `` to MDTextArea (ca683fa)
+ * Add more `GameObjectType`s (8e4b76f)
+ * Add `Mod::hasAvailableUpdate` (b71ae17)
+ * Add callbacks for Android keyboard inputs (#507)
+ * Add option to activate Safe Mode on Windows by holding Shift when launching (a327f72)
+ * Move loader commit hash information to the Info popup (94ab199)
+ * Make `is_json` functions more accurate (803df4f)
+ * Fix color parsing from hex (131539f)
+ * Fix `JsonValidation` leaking exceptions in `into` (83847e3)
+ * Fix struct returns for `CCPoint` not actually working properly (1daa671)
+ * Fix `geode::web::fetchJSON` and `ColorPickPopup` not being DLL-exported (2c1eb67, 8250a73)
+ * Fix usernames not showing up on profile links in Markdown (3fe102d)
+ * Fix `MDPopup` height estimations (cc4c32e)
+ * Various other small fixes & improvements
+
+## v2.0.0-beta.17
+ * Add `$override` macro for syntactic sugar (e7a1913)
+ * Add support for platform-specific setting default values as well as platform-specific settings (9c8fcf1)
+ * Change `cc3bFromHexString` and `cc4bFromHexString` to be more strict with parsing by default (9c8fcf1)
+ * `JsonMaybeValue::is` is now a lot more reasonable (9c8fcf1)
+ * Make `LayoutOptions` also `CCObject` (3b7621c)
+ * Fix RobTop's socials in MenuLayer (cee8c74)
+ * Fix issues in CMake (d574248, 4ddd92d)
+ * Fix input nodes being clickable when invisible (bf32946)
+ * Add `gd::vector::push_back` and `gd::vector::pop_back` (1593564)
+
+## v2.0.0-beta.16
+ * Bump minimum CMake version to 3.25
+ * Add support for platform-specific dependencies (30c7d3f)
+ * Adjust content size for the bottom menu in MenuLayer to prevent overlaps
+
+## v2.0.0-beta.15
+ * Add `!` for problem mods to crashlog (5c45725)
+ * Log crashlog path when saved (f832cc5)
+ * Change log filenames (65907ca)
+ * Fix `o` not appearing in crashlog (e95d454)
+ * Fix Scrollbar touch (34e80c1)
+ * Fix infinite loop in nested dependency chain (fda3790)
+ * Fix touch priority messing up after mod download (ba0e13f)
+ * Improve safe mode, listing mods as normal (241ddc3)
+ * Fix `SimpleTextArea` text alignment and size (9d92a7c)
+ * Install resources on local Geode build (e9aa889)
+ * Update json library for better errors (0731f44)
+ * Run binding codegen in CMake configure time (2e20ccc)
+ * Replace media perms with file perms (5f7af1a)
+ * Fix `FloatSettingNode` not accepting decimal point (c83858d)
+ * Throw on invalid json output (e2150cc)
+ * Fix icon positioning in `InstallListCell` (cb7c024)
+
+## v2.0.0-beta.14
+ * Use Breakpad for crash reports on Android ([#481](https://github.com/geode-sdk/geode/pull/481))
+ * Fix available label on LocalModInfoPopup (b4037093)
+ * Remove trailing CR from headers (17153a4f)
+ * Ends up **fixing auto update**
+ * Implement getGameVersion on mac (86ae005f)
+ * Fix mysterious AsyncWebRequest crash (c0352782)
+ * Show message for old android launcher users (c00ccd35)
+ * Add install target for loader itself (36727ced)
+
+## v2.0.0-beta.13
+ * Add new `AnchorLayout` feature ([#476](https://github.com/geode-sdk/geode/pull/476))
+ * Add support for multiple developers in `mod.json` through the `developers` key (85180d5f, f21542a8)
+ * requires CLI v2.9.0 and VS Code extension v1.7.0
+ * No longer consider outdated mods invalid .geode files altogether (d9c65b37)
+
+## v2.0.0-beta.12
+ * Increase target MacOS version to 10.15 (6dc6e9b4)
+ * Not even steam supports 10.13 anymore, and with this change
+ we can finally stop worrying about std::filesystem
+ * Add safety hook for save path on android (0188eee5)
+ * We had a bug where the game would randomly reset your save file
+ on android, and we believe this to be a hook by the launcher itself
+ not being placed properly. So, we also do the hook on Geode itself,
+ for safety.
+ * Fix rob's broken MessageBoxW on Windows (5d631921)
+ * Add utils for setting thread name, show it on log (832bcf81, ce53fb31)
+ * Add some launch arguments for geode (7ccaef90)
+ * Deprecate blocking file picking utils (ee97e2da)
+ * Sort mods by id in crashlog (984d1482)
+
+## v2.0.0-beta.11
+ * Fix `InputNode` funkiness on Windows (bb1fcbe)
+ * Add methods for requesting and querying permissions (9ff9191)
+
+## v2.0.0-beta.10
+ * Make index loading when not downloading async (e81b5e9)
+ * (I can't wait to get rid of the old index)
+ * Log nesting and alignment improvements (f7980d3, 4693eb1)
+ * Fix `Patch` intersection code (45ce360)
+ * Fix `InputNode` touch logic (c551d43)
+ * Force Windows errors to be in English (6ba656c)
+ * Add sprite scaling for `MDTextArea` (5802b78)
+
+## v2.0.0-beta.9
+ * Make the index population async as well (3b3e174)
+ * Run Android file callbacks on main thread (79d9184)
+ * Implement launch arguments support (a2b164a)
+
+## v2.0.0-beta.8
+ * Fix TulipHook arm32 relocation of conditional branch - blame Dobby (69b9b2d)
+ * Remove try-catch blocks, replacing them with other means of handling (065d0c4)
+ * Revert touch priority hook, instead make it an opt-in behavior for nodes (7370761)
+ * This should fix every touch priority issue that happened before
+ * Implement conditional requests to GitHub API (df07409)
+ * Add response headers to `SentAsyncWebRequest` (df07409)
+ * Move deletion of old index folder into separate thread (6835f57)
+ * Fix MacOS installer erroring after installing anyway (09ebcf9)
+ * Fix Windows `openFolder` opening parent folder (9e973a9)
+ * Reenable last crashed popup and index update on MenuLayer (16b9689)
+
+## v2.0.0-beta.7
+ * MacOS Support! (9869ddc)
+ * Huge thanks to @dankmeme01 for almost single-handedly making this work!
+ * Note most mods do not support MacOS at the moment.
+ * Fix exceptions on android32 (9c87d4c)
+ * Move GD version check to loadBinary (d2a51354, 82808c3a)
+ * Show updates for mods that are disabled (bd9d0635)
+ * Force geode internal mod to be first on list (c2d1e587)
+ * Fix geode layer eating inputs if search is selected (18983974)
+ * Move clipping rect fix, fixes editor particle editor (eeeedbb9)
+ * Fix force priority fix, fixes editor scale warp lock button (fd8c3630, f1a32b6a)
+ * Clearer error message when platform binary is missing from mod (dc8cd219)
+ * Better error message on windows dll load failure (77736d3)
+ * Make Logger::push thread-safe (d9358d8)
+
+## v2.0.0-beta.6
+ * Fix unzipping skipping first entry (2bc0d1a)
+ * Revert the input box fix again (4ab7197)
+
+## v2.0.0-beta.5
+ * Android 2.205 support, both 32 and 64 bit!
+ * Fix Android 32 bit TulipHook relocation of branching (98e1519)
+ * Fix logcat adding all crashlogs if it can't strip (d7ed016)
+ * Readd the text input box fix from 2.1 (316e652)
+ * Fix resource hash mismatches for good (4916669)
+
+## v2.0.0-beta.4
+ * Show which DLL is needed to remove on Windows installer (d323f0e)
+ * Optimize unzipping of index (b22ed7d)
+ * Force all children of Layout to ignore anchor point (c42b5dd)
+ * Fix squishing of layouts (b61d466)
+ * Fix `SearchFilterPopup` ui (5bacaf3)
+
+## v2.0.0-beta.3
+ * Avoid virtual functions in forward compat code (dc2fba2)
+ * Fix updating index message (b63611e)
+ * Use new launcher function for unzipped mod dir (120fa4a)
+
+## v2.0.0-beta.2
+ * Fix `geode::utils::cocos::reloadTextures` on windows
+
+## v2.0.0-beta.1
+ * 2.2 support!
+ * Android arm64-v8 support!
+ * Future version compatibility mode, where the Geode UI is disabled
+ * Split bindings into their own repo (3aa3ae7d)
+ * Add `gd` as a required key in mod.json, to specify target GD version (f7a3947c)
+ * Load native binaries from mod resources (acd9bd78)
+ * Refactor json library, namespace and headers renamed to `matjson` (b9a09f73)
+ * Refactor `AsyncWebRequest` class (d56c70fe)
+ * `postFields` renamed to `body` and `bodyRaw`
+ * `customRequest` renamed to `method`
+ * Change api for `CCDictionaryExt`, now 2nd template arg must be a pointer, making it more similar to std::map (e1b7b1f4)
+ * Refactor Hook and Patch classes, Mod::addHook renamed to Mod::hook (a5a3a08d)
+ * Remove many deprecated keys from `mod.json`, most importantly `required` in dependencies (39d372c7, b4235bb5)
+ * Refactor logging, now pipes directly to fmtlib (2ba8761f)
+ * Refactor gd::string (24bbc65f)
+ * Refactor many other parts of the codebase
+
+## v1.4.0
+ * Add Android support !!!!
+ * Implement every Geode functionality except `utils::file::openFolder`
+ * Requires the Geode launcher in order to be used
+ * Fixes the text input node allowing typing for 1 less character
+ * Uses `logcat` in order to get crash reports, so reopening the game is required to generate them
+ * Broma requires classes to be added `[[link(android)]]` in order to be linked
+ * All Geode and GD files are stored in `Android/data/com.geode.launcher/files`
+ * Game files in `game`, save files in `save`
+ * Allow logging to be disabled per mod (6d599a5)
+ * Mod cells use layouts (114fa46)
+ * MacOS console is now separate (182984d)
+ * Add uninstall button to Geode mod (Only functional in Windows currently) (a738320)
+ * Make new version label invisible on download (0f179da)
+ * Fix the toggling of disabled dependencies (cd89ef1)
+ * Fix spritesheet issues (ef47647)
+ * Change `LoadingLayer` (ef47647)
+ * Make mod info popup top a layout (dd806e0)
+ * Add `GEODE_HIDDEN` to inline unique functions (71a79ab)
+ * Fix big mod icons (26a6c7e)
+ * Fix `CCNode::removeChildByID` export (23cd456)
+ * Make `MDTextArea` fit its size (140f38b)
+ * Enable ESC/Back to go back in Geode mod list (2847bee)
+ * Add `SimpleTextArea` (7f277a7)
+ * Check modified date when unzipping `.geode` files (5c765c6)
+ * Only hash markdown files on resource checking (f563c46)
+
+## v1.3.10
+ * Panic if decompressString2 fails, to prevent data loss (0787b8f4)
+
+## v1.3.9
+ * Fix followThunkFunction (4b766301)
+
+## v1.3.8
+ * Implement a save file fix for Windows (391f63ed)
+ * Recursively follow jumps in followThunkFunction (44a018cd)
+ * Remove need for GEODE_DEBUG for crashlogs (e8a326f7)
+ * Some bindings (f18335fa)
+
+## v1.3.7
+ * Fix web download deadlock (16418562)
+ * Set max time for updating index notification (f7962246)
+ * Log geode version on startup (c5550a67)
+ * Fix logic error in addHook (5cf0f3c2)
+ * Improve logging + minor refactors (5083017b)
+ * Some bindings changes
+
+## v1.3.6
+ * Allow error responses in our WebRequest classes (237128bf)
+ * Display unhandled C++ exceptions in crash log (fdd78aca, 0d091626, 52421d8c, 0472075f)
+ * Fix GEODE_CLI force caching when not found (0a113744)
+ * Only write checksum file after unzipping, fixes inconsistent index state (b4fbea51)
+ * Fix the index notif staying on all the time (c967b520)
+ * Bump minimum required CMake version in codegen (27ed63e7)
+ * Only show update indicator if mod is enabled (8762714c)
+ * Fix FLAlertLayer m_scrollingLayer not being a ScrollingLayer (9694b35d)
+ * Fix gnustl vector dtor (b55e6465, 0bdb0df7)
+ * Loads of bindings changes
+
+## v1.3.5
+ * Follow redirect in web::utils functions (a942a45)
+ * Lots of bindings
+ * Make codegen symbols private visibility (696a2ca)
+ * Add deadstrip to macos (0d62940)
+ * Readd the nullptr check in InstallListPopup::createCells (499f256)
+ * Fix garagelayer ids on not logged in users (dd0179c)
+
+## v1.3.4
+ * Implement string setting character filters (cf8fbba)
+ * Update bindings
+
+## v1.3.3
+ * Reunify resources.zip (81de161)
+
+## v1.3.2
+ * Fix alignment of some textures (8f39c38)
+ * Bring back unknown problems (0663569)
+ * Fix some Windows 7 incompatibility (2d2bdd1)
+ * Remove enabled from the crashlogs (5b7d318)
+ * Make index unzipping async (7c582f1)
+ * Fix mods by developer crashing when mod was toggled (a6a47bf)
+ * Fix nested lists in the markdown (2723588)
+ * Fix search paths (8f39c38, aa55ebe)
+
+## v1.3.1
+ * Fix TulipHook not relocating RIP relative operands on MacOS (6cad19d)
+
+## v1.3.0
+ * Completely remove runtime enabling & disabling of mods (d817749)
+ * Patches auto enabling can be disabled (69821f3)
+ * Move ModEventType::Loaded to after hooks & patches are enabled (23c3095)
+ * Update index to be able to store multiple versions of the same mod (5572f9c)
+ * Implement UI for selection of downloading specific mod versions (5d15eb0)
+ * Change install & uninstall popups to reflect the new changes (d40f467)
+ * Keep the scroll when enabling, installing etc. a mod (b3d444a)
+ * Update MacOS crashlog to include base and offset (7816c43)
+ * Add user agent to AsyncWebRequest (c256207)
+ * Add post and custom requests to AsyncWebRequest (c256207)
+
+## v1.2.1
+ * Mods now target macOS 10.13 instead of 10.14 (7cc1cd4)
+ * Fix CustomizeObjectLayer ids moving around when multiple objects are selected (9ee0994, 87749d4)
+ * Fix Windows uninstaller trying to uninstall from parent directory instead of current (bcb8a6f)
+ * Fix search paths on reload (65b4364)
+ * Fix search paths missing for mods without spritesheets (e78eaf0)
+ * Fix dependencies getting installed again when they're already installed (4f2835a)
+
+## v1.2.0
+ * Add Objective-C hooking utilities (a31d072)
+ * Rename queueInGDThread to queueInMainThread (277f68b)
+ * Fix build on apple silicon (dd16797)
+ * Move windows uninstaller to gd folder (bdf11a2)
+ * Option to pick features on windows installer (4cc9164)
+ * Improve lag in some places due to search paths (9875f5d)
+ * Some missing methods for macOS gd::map (db02c3d)
+ * Some missing methods for windows gd::string (7139ac4)
+
+## v1.1.1
+ * Improve installation confirmation popup (9192769)
+ * Remove unnecessary main thread queues for mod events (38cc38c)
+ * Fix search and filter buttons being not clickable when over the view/restart button of a mod (ef1f1d1)
+ * Improve tab textures (108f56a)
+ * Properly align the borders
+ * Make the selected and unselected tabs the same height
+
+## v1.1.0
+ * Fix json library not actually being dynamically exported/imported (5f65d97)
+ * Update TulipHook, gets rid of keystone dependency and adds stdcall support (efcbf58, 7b90903)
+ * Make resources.zip platform dependent (e41784e)
+ * Add utils::string::join (82e128b)
+ * Add logger nesting: log::pushNest, log::pushNest (7d74f16)
+ * Add "any" version to comparable versions (2b1dc17)
+ * Deprecate ModInfo, replaced with ModMetadata (53b52ea)
+ * Add utils::game::restart (7f449b9, 0e1d639)
+ * Rework the way dependencies and mod loading works (5200128)
+ * Early load loads mods before the game starts, while non-early load loads on the loading screen now (e718069)
+ * Add support for specifying incompatibilities (5200128, 8908235)
+ * Add support for specifying suggested and recommended optional dependencies (5200128)
+ * Add UI to select which mods to install (3707418, 73169fb, cd772bd)
+ * Dependencies/dependants automatically get toggled on toggle (5200128, 6ab542d)
+ * Add problems list (5200128, aee84c0)
+ * Show amount of currently loaded mods on the loading screen while they're loading (e718069, 1d5fae8)
+ * Improve index-related UI (73169fb)
+ * Remove Android and iOS filters for now
+ * Add filter to show non-installable mods
+ * API in quick popups to distinguish between pressing button 1 and the Escape key
+ * Add "API" label to API mods (cb8759b)
+ * Fix index not displaying tags (ed5b5c9)
+ * Change "Cancel" to say "Keep" in the remove mod data on mod uninstall dialogue (cd772bd)
+ * Fix typos in the word "successfully" (5200128, f316c86)
+ * Fix MacOS HSV button missing in `CustomizeObjectLayer` (d98cb2d)
+ * Make missing functions and members private (d98cb2d)
+ * Update Broma to latest version (0a58432)
+ * Implement standalone function support in codegen (a552160)
+ * Add link attribute to codegen for functions linked from elsewhere (a552160)
+
+## v1.0.3
+ * Fix mod changelogs only showing Geode's own changelog (2945422)
+ * Fix some filesystem functions for Geode running under wine (7a83354)
+ * Lazy load the real XInput9 dll, removing the need for an XInput 1.3 (041d44c)
+ * Fix MacOS requiring openssl@3 directly from homebrew (e489681)
+ * Default to Steam installation on MacOS installer (072a18c)
+ * Implement uninstaller for MacOS (072a18c)
+
+## v1.0.2
+ * Fix auto-updating (1f7e6da)
+
+## v1.0.1
+ * New textures for list tabs (8ce1227)
+ * Switch libraries for SHA3 256 (bbf2608)
+ * Fix MacOS installer (ea5a5f0)
+ * Add mod ids to deprecated keys logs of ModInfo (fc72c24)
+ * Rename platform labels: (MacOS -> macOS, iOS -> IOS) (cf3ed32)
+ * Fix Geode not loading when GeodeBootsrapper.dll exists (c2aacd9)
+ * Hide tag from version in cmake when it doesnt exist (fc8a8e1)
+ * Change MacOS installer fmod original name for compatibility with the old installer (44d5aff)
+
+## v1.0.0
+ * Make JSON library exported (a2b8f27)
+ * Fix GLFW headers for Windows (6ada069)
+ * Add crashlog to MacOS (9b58b33)
+ * Implement a new updater / bootstrapper for Windows (b47870e)
+ * Don't download resources if the tag doesn't exist (991e714)
+ * Fix MacOS wine by using `std::filesystem::weakly_canonical` (46fab0e)
+ * Make the Index pimpl aswell as remove ability for multiple sources (7a0ade2)
+ * All mods including disabled ones are now always unzipped in order to load their logos (0a6d31e)
+ * Add IDs and layouts for `CustomizeObjectLayer` (6d92bb8, 138fdbb, f8da816)
+ * Add option to disable the Last Crashed popup (e00b3a6)
+ * Fix `SpacerNode` not actually taking up any space (8ca2b99)
+
+## v1.0.0-beta.18
+ * Fix pickup bounds checks
+
+## v1.0.0-beta.17
+ * Fix `Mod::addHook` (372e2aa)
+ * Enable ANSI color support on Windows for logs (af8d4a0)
+ * Better unicode support for paths on Windows (a1e9ac4)
+
+## v1.0.0-beta.16
+ * Fix mod.json not loading because of broken working directory on MacOS (d7ccfde)
+ * Fix markdown resources not updating between versions (b0cf6dc)
+
+## v1.0.0-beta.15
+ * Fix `ghc::filesystem::create_directories` crash on wine (c174f81)
+ * Fix fuzzy search giving meaningless results (7af062f)
+ * Add logging for gd::string (e7ab46c)
+ * Fix `ComparableVersionInfo` comparison being inverted (e7ab46c)
+ * Add `FileWatchEvent` for file watching (50ff15c)
+ * Fix `geode::utils::file::pickFile` on MacOS (8842e8f)
+ * Fix `geode::utils::file::writeToJson` (1c699c3)
+ * Fix notifications not being at the top (4754994)
+ * Fix filter copy constructors (4cec5d7)
+ * Update json library
+
+## v1.0.0-beta.14
+ * Error on trying to use missing bindings at compile time
+ * Fix every resources getting reloaded every time a mod is loaded
+ * Fix every listener getting called on every event post
+ * Fix `CCTextInputNode` content size to be off
+ * Return `ListenerResult` from events
+ * Log severity with colors on MacOS
+
+## v1.0.0-beta.13
+ * Add `SpacerNode` for layouts
+ * Add the `Dispatch` system for using events without linking to optional dependencies
+ * Add `EventFilter::getCallback` and make `EventListener::getFilter` return a reference
+ * Add `CCNode::getEventListenerCount`
+ * Add IDs to `CustomSongWidget`
+ * Rework event listeners to have them not all be placed in the same queue aswell as fixing issues with dangling pointers
+ * Make `SentAsyncWebRequest` dllexported, allowing mods to use async web requests
+ * Fix issues with `WeakRef`
+ * Fix being able to recursively click on developer names to open the list of their created mods
+
+Thank you to [Fleeym](https://github.com/Fleeym/Fleeym) for contributing to this release!
+
+## v1.0.0-beta.12
+ * Fix crash when installing mods
+ * FMOD is now linked on MacOS
+ * `GEODE_DEBUG` on longer needs to be defined for `log::debug` to work
+ * Make Geode changelog visible in-game
+ * Make the changelog only be loaded once the changelog button is pressed in ModInfoPopup
+ * Fix the scrollbar not working for the changelog in ModInfoPopup
+ * Fix visual issues with scrollbars
+
+## v1.0.0-beta.11
+ * New `geode::prelude` namespace to replace the old `USE_GEODE_NAMESPACE()` macro
+ * Add `CCNode::removeChildByID`
+ * Add `CCNode::hasAncestor`
+ * Add `CCScene::get` and `CCScheduler::get`
+ * Add `geode::cocos::getMousePos`
+ * Add `GEODE_DONT_INSTALL_MODS` option to CMake
+ * Add logging `std::vector` with `log::` functions
+ * Add `EventListener::getFilter`
+ * Add `AttributeSetEvent` for detecting when attributes are added to nodes
+ * Add `CCNode::addEventListener` (along with other related functions) as convenience methods for adding event listeners that target nodes
+ * Add `WeakRef` as a weak pointer alternative to `Ref` (see [the docs](https://docs.geode-sdk.org/tutorials/memory#weakref) for a tutorial)
+ * Add option to ignore invisible children to `Layout`
+ * `CCNode` attributes now use `json::Value` over `std::any` for ABI compatability
+ * Implement file picker on Mac
+ * Define `CCNode::retainCount` inline
+ * `Layout` now inherits from `CCObject`, allowing you to share layouts across multiple nodes
+ * Update TulipHook version
+ * Make sure mod load/enable/etc. events are only ever posted in the GD thread
+ * `Mod::getResourcesDir` now returns `geode/unzipped/{mod.id}/resources/{mod.id}` in conjunction with [CLI v2.1.0](https://github.com/geode-sdk/cli/releases/tag/v2.1.1)
+ * Give a name to `ccTouchType`
+ * Fix `Scrollbar` being funky sometimes
+ * Fix mod resources not being loaded if the mod is enabled at runtime
+ * Fix `EditLevelLayer` description update button ID & layout
+ * Fix hooking functions with unpredictable calling conventions
+ * Fix `setup_geode_mod` not linking to Geode if CLI calls are disabled
+ * Fix code editors showing a ton of warnings with `$modify`
+ * Fix top sprite sizes of `CircleButtonSprite` and `EditorButtonSprite`
+ * Fix `Mod::enableHook` error message
+ * Lots of bindings on both Windows & Mac (50+ commits related to bindings)
+
+## v1.0.0-beta.10
+ * Fix loader minimum mod version preventing the loader itself from loading
+ * Fix recursive comparison in VersionTag
+ * `geode/unzipped` is now deleted on startup if it exists
+
+## v1.0.0-beta.9
+ * Fix multiple modifiers not being able to have fields on same class due to having same field index
+ * Add `Result::ok` and `Result::err` for converting the `Result` into `std::optional`
+
+## v1.0.0-beta.8
+ * Unload the mod even when first time warning pops up
+ * Error when address of a function returns nullptr when hooking
+ * Add support for Geode CLI v2.0.0 (which has not been released yet)
+ * Logging no longer causes a crash on invalid formats, but instead just warns
+ * `file::pickFile` now uses the last item in the default path as the default filename to save/open
+ * Fix `EditorPauseLayer` crashing constantly due to some members being accidentally set to `nullptr`
+
+## v1.0.0-beta.7
+ * Add `Mod::getResourcesDir` for getting the mod resources directory
+ * Deprecate `file::listFiles` for `file::readDirectory`
+ * Fix getting virtual function addresses for CCFileUtils
+ * Rename `BasedButtonSprite` sprite names to be more expressive
+ * Fix `typeinfo_cast` causing a crash if passed a `nullptr` on MacOS
+ * Fix settings not getting broadcasted
+ * Make `Loader::getLoadedMod` and `Loader::isModLoaded` also check if mod is enabled
+ * Display Geode commit hash in the bottom right of the mod info layer
+ * Fix `EditorPauseLayer` info labels on the top left being too big
+
+## v1.0.0-beta.6
+ * Reworked layouts from the ground up - see [the docs page](https://docs.geode-sdk.org/tutorials/layouts) for more information about how the new system works (#137)
+ * Update the IDs for a bunch of layers, aswell as adding some predefined layouts (3f64b98, ef9e741, a78bc0c, cb1a6f1, ea037a9, f7ddf0a, ...)
+ * Add IDs & layouts to `EditorPauseLayer`
+ * Add `CCNode::insertBefore` and `CCNode::insertAfter` for adding children before/after existing ones
+ * Add `CCSize::aspect` convenience method
+ * Add `Mod::getResourcesDir` for getting a mod's runtime resources directory (where `[mod.json].resources.files` are placed)
+ * Add `Mod::addCustomSetting` for convenience in registering custom settings
+ * Add `file::readDirectory` as a sanely named alternative to `file::listFiles`
+ * Move `GEODE_DLL` to the structs themselves in `JsonValidation`
+ * Versions now support tag numbers & version tags are now used in comparisons. This change does not affect old betas, which still internally report their version as just `v1.0.0-beta`, but starting with this beta the version is correctly reported as `v1.0.0-beta.6` and correctly compared against other versions
+ * `Loader::getLoadedMod` and `Loader::isModLoaded` now only return if the mod is also enabled
+ * Geode's internal mod representation is now included in the loader's loaded mods list
+ * Fix settings value changes not being broadcast. This causes an API break relating to custom settings; `SettingValue` now requires the owner mod ID in its constructor
+ * Fix some warnings
+ * Fix `CCNode::swapChildIndices`
+ * Fix `typeinfo_cast` causing a crash if passed a `nullptr`
+ * Fix `ranges::reverse` causing UB
+ * Other fixes & improvements
+
+## v1.0.0-beta.5
+- Make ModInfo Pimpl
+- Fix crash with event listeners
+- Some bindings
+- Make mods binaries not silently fail to load
+- Assume dependency version is >= comparison by default
+- Fix not following thunks
+
+## v1.0.0-beta.4
+- Add some bindings
+- Fix macOS libzstd crash
+
+## v1.0.0-beta.3
+ - Better support for dependencies with [Geode CLI v1.4.x](https://github.com/geode-sdk/cli/releases/latest): mod dependencies are now automatically installed from the mods index by simply declaring them in your `mod.json`. See [the tutorial page in docs](https://docs.geode-sdk.org/mods/dependencies/) for more
+ - The `create_geode_file` CMake function has been replaced by `setup_geode_mod`. The old `create_geode_file` function is still available, but will be deprecated in the future
+ - `Result::except` now works with non-copyable types
+ - `Zip` and `Unzip` now support in-memory ZIP extraction and creation
+ - `ComparableVersionInfo::compare` now always returns false if the major versions are different
+ - `ComparableVersionInfo` parsing now expects equal to be marked with a single `=` instead of two (`==v1.2.3` => `=v1.2.3`)
+ - Fix `DS_Dictionary`-related `gd::string` Cocos2d functions not being linked
+ - `CC_DLL` no longer expands to dllexport/dllimport
+ - The JSON lib now default constructs to object, hopefully fixing uncaught bugs
+ - Something related to codegen and addresser? I have no clue what it does, so you probably won't have either
+ - MacOS minimum version bumped to 10.14
+
+## v1.0.0-beta.2
+ * Fixed bug where `Mod::getSavedValue` would cause a crash due to trying operator on a null JSON value
+ * Fixed bug where loading would crash if one of the mods' binaries failed to load
+
+## v1.0.0-beta.1
+ * Switched to [a new custom-built JSON library](https://github.com/geode-sdk/json) to replace `nlohmann::json` for compile-time improvements; if you were using the old JSON library, you can add & link to `nlohmann::json` in your own project, or update to use the new API.
+ * Fix resources not being downloaded automatically by using a fallback to latest release
+ * Add a new clear instruction popup in case downloading still fails
+ * String ID hooks now have higher priority, so they should always be applied regardless of if you call `NodeIDs::provideFor` or not (though it can still be called to absolutely ensure the IDs are there!)
+ * Various internal bugfixes & improvements
+
+
+## v1.0.0-alpha
+ - Major rework of the entire framework; most notable changes include switching to a whole new hooking framework (TulipHook), simplifying many parts of the framework, and making it production-ready.
+
+## v0.7.0
+ - Jesus H. Christmas Kallen there's like 300 new commits since v0.6.1 I don't think there's a point in listing them all, we basically redesigned the whole framework
+
+## v0.6.1
+ - Add `geode::cocos::switchToScene` utility for easily switching to a layer with the default fade transition
+ - Add `Mod::getPackagePath` as a replacement for `Mod::getPath`
+ - Add `geode/config` directory as a standardized place for mods to add their config files
+ - Add `Mod::getConfigDir` for getting a mods' config directory
+ - Add open config directory button to mods with a config directory
+ - Add open save directory button to mods' settings popup
+ - Removed deprecation from `Result` (it still will be replaced in v1.0.0, we just got tired of the warnings)
+ - `JsonChecker` and `JsonChecker` are now defined in-source as exported symbols to speed up compilation times
+ - Add more bindings
+
+## v0.6.0
+ - Mod resource loading has been reworked again, with the intent of adding support for texture pack loaders
+ - Added `Loader::addTexturePath` and `Loader::removeTexturePath` to work with additional resource paths
+ - Mods that work with Cocos2d search paths directly should convert to using the above functions
+ - New header `Geode/ui/LayerBG.hpp` with `createLayerBG` function for creating the blue gradient background GD layers have
+ - All Cocos2d include paths have been changed to be relative
+ - `cocos2dx` folder has been removed, cocos2d is now directly inside `Geode/cocos`
+ - Loader resources updating will no longer check for plist file differences due to problems with CLI on Mac
+ - More codegen optimizations, Geode mods should now compile faster
+ - Added `NewResult` class, which will eventually replace the old `Result`
+ - Add `deprecate` and `nodiscard` attributes to the old `Result` class
+ - Cocos2d selectors (like `SEL_MenuHandler`) no longer require `using namespace cocos2d`
+ - Many more bindings on Mac and Windows
+ - Add IDs to `LevelSearchLayer` (thank you @Jollycistaken)
+
+## v0.5.0
+ - Added `CCFileUtils::get`
+ - Fix crashes related to setting IDs in `MenuLayer`
+ - Remove `Loader::updateModResourcePaths` and `Loader::updateResourcePaths`. The minimum mod target version is still v0.4.0 however, as you should never have been using these functions.
+ - Rework how mod resources are added
+ - Deprecate `geode::utils::vector` and `geode::utils::container` namespaces and replace them with `geode::utils::ranges`
+ - Finally added a license to Geode! The framework is now licensed under BSL v1.0.
+
+## v0.4.8
+ - CLI issues fixed in v1.0.6 so loader again verifies if loader resources are missing / corrupt on startup
+ - Resource download text is no longer a popup on top of the title but instead just replaces the loading text
+ - Add delegates to `EditLevelLayer`
+
+## v0.4.7
+ - Loader resources check would always fail due to CLI issues, so for now loader just checks if the resources folder exists
+
+## v0.4.6
+ - Automatically checks & downloads loader resources if they are missing / corrupt on startup
+ - CMake rework; `GeodeFile.cmake` now checks and verifies CLI version
+ - Add optional `DONT_INSTALL` parameter to `create_geode_file`
+ - Test mods are now no longer automatically installed
+ - Add `package_geode_resources_now` command for packaging resources at configure time and creating a header with their calculated hashes
+ - Fix `getSceneDelegate`
+ - Change `CCArrayExt` to use `Ref`
+
+## v0.4.5
+ - Rework bindings and codegen to improve compile times, now individual bindings can be included with ``
+ - Modify has also been separated, you can now include individual modifiers with ``
+ - Various other fixes to improve compile times
+ - Fix mod resources not being loaded when installed from Index
+ - Fix crashes related to downloading mods
+ - Fix `Loader::queueInGDThread` sometimes leaving out functions
+ - Fix crashes related to logging
+ - Add new overloads to `file` utils and deprecate ones that don't use `ghc::filesystem::path`
+ - Index mods now show their `about.md` files
+ - More addresses
+ - Various other fixes & improvements
+ - Index reworked
+ - Fix issues with `VERSION` file
+ - Add `GEODE_DEBUG` macro for enabling `log::debug` to actually print stuff
+ - Show crashlog on crash when `GEODE_DEBUG` is enabled
+ - Add `JsonChecker::at` and `JsonChecker::array` for dealing with arrays
+ - Add `geode::utils::web::fetchBytes` for fetching a byte array synchronously
+ - Add `geode::utils::web::AsyncWebRequest` for creating thread-safe asynchronous web requests
+ - Add `Loader::updateModResourcePaths` for adding a mods' resources to search paths. Not recommended to be called manually
+ - Add an overload to `geode::createQuickPopup` for specifying popup width
+ - `ModInfo::createFromFile` now checks for `about.md` and other special files in the same directory
+ - Remove automatic mod updating for now, however automatic update checking for mods is still there
+
+## v0.4.4
+ - New `listenForSettingChanges` API for more ergonomically listening for setting changes
+ - Fixed bug where GD was unopenable through Steam
+ - Various other internal fixes
+
+## v0.4.3
+ - Simplified the minimum and maximum loader versions, loader will now load any mod whose target version major and minor match. In practice, this means that for example mods whose target version is v0.4.8 can be loaded by loader of version v0.4.6.
+ - Add `Geode/ui/GeodeUI.hpp` header for exposing some access to internal Geode UI like opening a mod's settings popup
+ - Fix crash with settings that could have a slider control
+
+## v0.4.2
+ - Moved SDK version to its own file so CLI can query it
+ - md4c is now linked statically on MacOS
+ - Fix log filenames
+
+## v0.4.1
+ - Initial dev release of Geode.
+
+---
+
+Note that from here on, changes to the framework were not tracked by versions as the framework was still considered to be in heavy development and not released. Instead, major changes are listed by dates.
+
+## 2022/10/10
+ - Geode released for developers
+
+## 2022/10/08
+ - `ui` branch merged to `main`
+
+## 2022/10/03
+ - New CLI finished
+ - `ui` branch finished
+
+## 2022/08/01
+ - CLI redesign started
+
+## 2022/07/30
+ - `sdk`, `loader` and `api` repos all merged into one `geode` repo
+
+## 2022/05/24
+ - Geode announced to be merging with Hyperdash, later on it turned out we were all pathological liars
+
+## 2022/05/02
+ - Installer on Windows
+
+## 2022/04/30
+ - Installing mods in-game works
+
+## 2022/01/23
+ - CLI started
+
+## 2022/01/19
+ - Lilac and Cacao merged and renamed to Geode
+
+## 2021/07/30
+ - Lilac started by Mat, HJfod and Pie
+
+## 2021/01/25
+ - CacaoSDK started by Camila, based on CappuccinoSDK
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-hd.png
new file mode 100644
index 0000000..904ed30
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-uhd.png
new file mode 100644
index 0000000..2bc0388
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder.png b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder.png
new file mode 100644
index 0000000..d52fef2
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/inverseborder.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.fnt
new file mode 100644
index 0000000..91dc745
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Regular.ttf" size=40 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=45.96 base=8 scaleW=251 scaleH=352 pages=1 packed=0
+page id=0 file="mdFont.png"
+chars count=96
+char id=100 x=116 y=224 width=19 height=33 xoffset=2 yoffset=8 xadvance=23 page=0 chnl=0
+char id=101 x=79 y=226 width=19 height=23 xoffset=2 yoffset=18 xadvance=22 page=0 chnl=0
+char id=102 x=180 y=215 width=13 height=32 xoffset=3 yoffset=8 xadvance=15 page=0 chnl=0
+char id=103 x=195 y=226 width=18 height=30 xoffset=2 yoffset=18 xadvance=23 page=0 chnl=0
+char id=104 x=137 y=233 width=17 height=32 xoffset=3 yoffset=8 xadvance=22 page=0 chnl=0
+char id=105 x=106 y=207 width=6 height=30 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0
+char id=106 x=20 y=235 width=11 height=38 xoffset=-3 yoffset=10 xadvance=10 page=0 chnl=0
+char id=107 x=156 y=240 width=18 height=32 xoffset=3 yoffset=8 xadvance=20 page=0 chnl=0
+char id=108 x=215 y=238 width=7 height=33 xoffset=3 yoffset=8 xadvance=10 page=0 chnl=0
+char id=109 x=33 y=251 width=29 height=22 xoffset=3 yoffset=18 xadvance=34 page=0 chnl=0
+char id=110 x=176 y=249 width=17 height=22 xoffset=3 yoffset=18 xadvance=22 page=0 chnl=0
+char id=111 x=64 y=251 width=20 height=23 xoffset=2 yoffset=18 xadvance=23 page=0 chnl=0
+char id=112 x=86 y=251 width=19 height=30 xoffset=3 yoffset=18 xadvance=23 page=0 chnl=0
+char id=113 x=114 y=259 width=19 height=30 xoffset=2 yoffset=18 xadvance=23 page=0 chnl=0
+char id=114 x=195 y=258 width=13 height=22 xoffset=3 yoffset=18 xadvance=15 page=0 chnl=0
+char id=115 x=135 y=267 width=16 height=23 xoffset=1 yoffset=18 xadvance=17 page=0 chnl=0
+char id=116 x=210 y=273 width=14 height=29 xoffset=2 yoffset=12 xadvance=16 page=0 chnl=0
+char id=117 x=153 y=274 width=18 height=22 xoffset=2 yoffset=19 xadvance=22 page=0 chnl=0
+char id=118 x=173 y=274 width=20 height=21 xoffset=0 yoffset=19 xadvance=20 page=0 chnl=0
+char id=119 x=20 y=275 width=31 height=21 xoffset=0 yoffset=19 xadvance=31 page=0 chnl=0
+char id=120 x=53 y=276 width=20 height=21 xoffset=0 yoffset=19 xadvance=20 page=0 chnl=0
+char id=121 x=75 y=283 width=20 height=29 xoffset=0 yoffset=19 xadvance=19 page=0 chnl=0
+char id=122 x=107 y=291 width=17 height=21 xoffset=1 yoffset=19 xadvance=18 page=0 chnl=0
+char id=123 x=195 y=282 width=12 height=40 xoffset=1 yoffset=8 xadvance=13 page=0 chnl=0
+char id=124 x=226 y=238 width=5 height=40 xoffset=3 yoffset=8 xadvance=11 page=0 chnl=0
+char id=125 x=126 y=292 width=12 height=40 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0
+char id=126 x=173 y=297 width=20 height=8 xoffset=1 yoffset=24 xadvance=22 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=9.24 page=0 chln=0
+char id=33 x=20 y=20 width=7 height=29 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0
+char id=34 x=29 y=20 width=12 height=11 xoffset=2 yoffset=9 xadvance=16 page=0 chnl=0
+char id=35 x=43 y=20 width=24 height=28 xoffset=1 yoffset=12 xadvance=26 page=0 chnl=0
+char id=36 x=69 y=20 width=18 height=37 xoffset=2 yoffset=8 xadvance=22 page=0 chnl=0
+char id=37 x=89 y=20 width=31 height=30 xoffset=2 yoffset=11 xadvance=34 page=0 chnl=0
+char id=38 x=122 y=20 width=26 height=30 xoffset=1 yoffset=11 xadvance=26 page=0 chnl=0
+char id=39 x=150 y=20 width=5 height=11 xoffset=2 yoffset=9 xadvance=9 page=0 chnl=0
+char id=40 x=157 y=20 width=10 height=40 xoffset=3 yoffset=8 xadvance=12 page=0 chnl=0
+char id=41 x=169 y=20 width=10 height=40 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
+char id=42 x=181 y=20 width=17 height=16 xoffset=1 yoffset=12 xadvance=19 page=0 chnl=0
+char id=43 x=200 y=20 width=19 height=20 xoffset=2 yoffset=18 xadvance=22 page=0 chnl=0
+char id=44 x=221 y=20 width=7 height=12 xoffset=1 yoffset=35 xadvance=9 page=0 chnl=0
+char id=45 x=29 y=33 width=10 height=4 xoffset=1 yoffset=26 xadvance=11 page=0 chnl=0
+char id=46 x=221 y=34 width=6 height=6 xoffset=2 yoffset=35 xadvance=9 page=0 chnl=0
+char id=47 x=181 y=42 width=18 height=40 xoffset=-1 yoffset=8 xadvance=15 page=0 chnl=0
+char id=48 x=201 y=42 width=19 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=49 x=29 y=39 width=12 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=50 x=43 y=50 width=18 height=29 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=51 x=89 y=52 width=18 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=52 x=109 y=52 width=20 height=28 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=53 x=131 y=52 width=18 height=29 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=54 x=63 y=59 width=19 height=29 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=55 x=151 y=62 width=19 height=28 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=56 x=20 y=69 width=19 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=57 x=201 y=74 width=19 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=58 x=222 y=42 width=6 height=22 xoffset=2 yoffset=19 xadvance=9 page=0 chnl=0
+char id=59 x=172 y=62 width=7 height=28 xoffset=1 yoffset=19 xadvance=9 page=0 chnl=0
+char id=60 x=41 y=81 width=19 height=18 xoffset=2 yoffset=19 xadvance=22 page=0 chnl=0
+char id=61 x=109 y=82 width=19 height=12 xoffset=2 yoffset=22 xadvance=22 page=0 chnl=0
+char id=62 x=130 y=83 width=19 height=18 xoffset=2 yoffset=19 xadvance=22 page=0 chnl=0
+char id=63 x=84 y=84 width=16 height=30 xoffset=0 yoffset=11 xadvance=16 page=0 chnl=0
+char id=64 x=151 y=92 width=34 height=36 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=65 x=20 y=101 width=27 height=28 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0
+char id=66 x=102 y=96 width=21 height=29 xoffset=3 yoffset=12 xadvance=25 page=0 chnl=0
+char id=67 x=49 y=101 width=22 height=30 xoffset=2 yoffset=11 xadvance=24 page=0 chnl=0
+char id=68 x=125 y=103 width=24 height=29 xoffset=3 yoffset=12 xadvance=28 page=0 chnl=0
+char id=69 x=187 y=106 width=19 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=70 x=208 y=106 width=18 height=28 xoffset=3 yoffset=12 xadvance=21 page=0 chnl=0
+char id=71 x=73 y=116 width=23 height=30 xoffset=2 yoffset=11 xadvance=26 page=0 chnl=0
+char id=72 x=98 y=127 width=22 height=28 xoffset=3 yoffset=12 xadvance=28 page=0 chnl=0
+char id=73 x=151 y=130 width=5 height=28 xoffset=3 yoffset=12 xadvance=10 page=0 chnl=0
+char id=74 x=158 y=130 width=17 height=29 xoffset=0 yoffset=12 xadvance=20 page=0 chnl=0
+char id=75 x=20 y=131 width=22 height=28 xoffset=3 yoffset=12 xadvance=25 page=0 chnl=0
+char id=76 x=44 y=133 width=18 height=28 xoffset=3 yoffset=12 xadvance=20 page=0 chnl=0
+char id=77 x=177 y=136 width=31 height=28 xoffset=2 yoffset=12 xadvance=34 page=0 chnl=0
+char id=78 x=122 y=134 width=23 height=28 xoffset=3 yoffset=12 xadvance=29 page=0 chnl=0
+char id=79 x=64 y=148 width=27 height=30 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=0
+char id=80 x=210 y=136 width=20 height=28 xoffset=3 yoffset=12 xadvance=24 page=0 chnl=0
+char id=81 x=93 y=157 width=27 height=37 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=0
+char id=82 x=147 y=161 width=22 height=28 xoffset=3 yoffset=12 xadvance=25 page=0 chnl=0
+char id=8226 x=140 y=292 width=11 height=11 xoffset=2 yoffset=20 xadvance=14 page=0 chnl=0
+char id=83 x=20 y=161 width=20 height=30 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=0
+char id=84 x=122 y=164 width=22 height=28 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=0
+char id=85 x=171 y=166 width=22 height=29 xoffset=3 yoffset=12 xadvance=27 page=0 chnl=0
+char id=86 x=195 y=166 width=26 height=28 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0
+char id=87 x=42 y=180 width=36 height=28 xoffset=1 yoffset=12 xadvance=37 page=0 chnl=0
+char id=88 x=122 y=194 width=25 height=28 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0
+char id=89 x=80 y=196 width=24 height=28 xoffset=0 yoffset=12 xadvance=23 page=0 chnl=0
+char id=90 x=195 y=196 width=21 height=28 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=91 x=149 y=191 width=10 height=40 xoffset=3 yoffset=8 xadvance=13 page=0 chnl=0
+char id=92 x=20 y=193 width=18 height=40 xoffset=-1 yoffset=8 xadvance=15 page=0 chnl=0
+char id=93 x=218 y=196 width=10 height=40 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0
+char id=94 x=161 y=197 width=20 height=16 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=95 x=40 y=210 width=21 height=4 xoffset=-1 yoffset=44 xadvance=19 page=0 chnl=0
+char id=96 x=106 y=196 width=8 height=9 xoffset=2 yoffset=8 xadvance=15 page=0 chnl=0
+char id=97 x=161 y=215 width=17 height=23 xoffset=1 yoffset=18 xadvance=20 page=0 chnl=0
+char id=98 x=40 y=216 width=19 height=33 xoffset=3 yoffset=8 xadvance=23 page=0 chnl=0
+char id=99 x=61 y=216 width=16 height=23 xoffset=2 yoffset=18 xadvance=18 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.png
new file mode 100644
index 0000000..283c129
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.fnt
new file mode 100644
index 0000000..9b5403d
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Regular.ttf" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=91.92 base=17 scaleW=457 scaleH=617 pages=1 packed=0
+page id=0 file="mdFont.png"
+chars count=96
+char id=100 x=180 y=395 width=37 height=64 xoffset=4 yoffset=17 xadvance=47 page=0 chnl=0
+char id=101 x=219 y=398 width=37 height=44 xoffset=4 yoffset=37 xadvance=44 page=0 chnl=0
+char id=102 x=313 y=371 width=26 height=63 xoffset=6 yoffset=17 xadvance=30 page=0 chnl=0
+char id=103 x=20 y=411 width=36 height=59 xoffset=4 yoffset=37 xadvance=46 page=0 chnl=0
+char id=104 x=341 y=412 width=34 height=63 xoffset=6 yoffset=17 xadvance=45 page=0 chnl=0
+char id=105 x=425 y=280 width=10 height=59 xoffset=5 yoffset=21 xadvance=20 page=0 chnl=0
+char id=106 x=258 y=417 width=21 height=74 xoffset=-6 yoffset=21 xadvance=20 page=0 chnl=0
+char id=107 x=58 y=433 width=35 height=63 xoffset=6 yoffset=17 xadvance=41 page=0 chnl=0
+char id=108 x=128 y=374 width=14 height=64 xoffset=6 yoffset=17 xadvance=21 page=0 chnl=0
+char id=109 x=281 y=436 width=57 height=43 xoffset=6 yoffset=37 xadvance=68 page=0 chnl=0
+char id=110 x=95 y=440 width=34 height=43 xoffset=6 yoffset=37 xadvance=45 page=0 chnl=0
+char id=111 x=131 y=441 width=40 height=45 xoffset=4 yoffset=37 xadvance=47 page=0 chnl=0
+char id=112 x=377 y=459 width=38 height=58 xoffset=6 yoffset=37 xadvance=47 page=0 chnl=0
+char id=113 x=219 y=444 width=37 height=58 xoffset=4 yoffset=37 xadvance=47 page=0 chnl=0
+char id=114 x=173 y=461 width=25 height=43 xoffset=6 yoffset=37 xadvance=30 page=0 chnl=0
+char id=115 x=20 y=472 width=30 height=44 xoffset=3 yoffset=37 xadvance=35 page=0 chnl=0
+char id=116 x=340 y=477 width=26 height=56 xoffset=5 yoffset=25 xadvance=32 page=0 chnl=0
+char id=117 x=281 y=481 width=35 height=43 xoffset=5 yoffset=38 xadvance=45 page=0 chnl=0
+char id=118 x=95 y=488 width=38 height=42 xoffset=1 yoffset=38 xadvance=40 page=0 chnl=0
+char id=119 x=200 y=504 width=60 height=42 xoffset=1 yoffset=38 xadvance=62 page=0 chnl=0
+char id=120 x=52 y=498 width=39 height=42 xoffset=1 yoffset=38 xadvance=40 page=0 chnl=0
+char id=121 x=135 y=506 width=39 height=58 xoffset=0 yoffset=38 xadvance=39 page=0 chnl=0
+char id=122 x=368 y=519 width=33 height=42 xoffset=2 yoffset=38 xadvance=37 page=0 chnl=0
+char id=123 x=20 y=518 width=23 height=78 xoffset=3 yoffset=17 xadvance=26 page=0 chnl=0
+char id=124 x=425 y=341 width=8 height=78 xoffset=7 yoffset=17 xadvance=22 page=0 chnl=0
+char id=125 x=403 y=519 width=24 height=78 xoffset=0 yoffset=17 xadvance=26 page=0 chnl=0
+char id=126 x=262 y=526 width=39 height=14 xoffset=3 yoffset=49 xadvance=45 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=18.48 page=0 chln=0
+char id=33 x=20 y=20 width=12 height=58 xoffset=5 yoffset=24 xadvance=22 page=0 chnl=0
+char id=34 x=34 y=20 width=23 height=21 xoffset=5 yoffset=19 xadvance=33 page=0 chnl=0
+char id=35 x=59 y=20 width=47 height=56 xoffset=3 yoffset=24 xadvance=53 page=0 chnl=0
+char id=36 x=108 y=20 width=36 height=72 xoffset=4 yoffset=17 xadvance=45 page=0 chnl=0
+char id=37 x=146 y=20 width=61 height=59 xoffset=4 yoffset=23 xadvance=68 page=0 chnl=0
+char id=38 x=209 y=20 width=50 height=58 xoffset=3 yoffset=23 xadvance=53 page=0 chnl=0
+char id=39 x=261 y=20 width=9 height=21 xoffset=5 yoffset=19 xadvance=19 page=0 chnl=0
+char id=40 x=272 y=20 width=20 height=78 xoffset=6 yoffset=17 xadvance=25 page=0 chnl=0
+char id=41 x=294 y=20 width=20 height=78 xoffset=0 yoffset=17 xadvance=25 page=0 chnl=0
+char id=42 x=316 y=20 width=34 height=32 xoffset=2 yoffset=24 xadvance=38 page=0 chnl=0
+char id=43 x=352 y=20 width=37 height=40 xoffset=4 yoffset=36 xadvance=45 page=0 chnl=0
+char id=44 x=391 y=20 width=12 height=23 xoffset=3 yoffset=70 xadvance=19 page=0 chnl=0
+char id=45 x=405 y=20 width=20 height=8 xoffset=2 yoffset=52 xadvance=23 page=0 chnl=0
+char id=46 x=405 y=30 width=12 height=12 xoffset=4 yoffset=70 xadvance=19 page=0 chnl=0
+char id=47 x=391 y=45 width=35 height=78 xoffset=-2 yoffset=17 xadvance=30 page=0 chnl=0
+char id=48 x=316 y=62 width=38 height=59 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=49 x=34 y=43 width=23 height=56 xoffset=7 yoffset=24 xadvance=45 page=0 chnl=0
+char id=50 x=59 y=78 width=36 height=57 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=51 x=209 y=80 width=36 height=59 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=52 x=146 y=81 width=39 height=56 xoffset=3 yoffset=24 xadvance=45 page=0 chnl=0
+char id=53 x=97 y=94 width=35 height=58 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=54 x=261 y=100 width=37 height=58 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=55 x=20 y=101 width=37 height=56 xoffset=4 yoffset=24 xadvance=45 page=0 chnl=0
+char id=56 x=300 y=123 width=37 height=59 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=57 x=339 y=123 width=37 height=58 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=58 x=247 y=80 width=12 height=44 xoffset=4 yoffset=38 xadvance=19 page=0 chnl=0
+char id=59 x=187 y=81 width=13 height=55 xoffset=3 yoffset=38 xadvance=19 page=0 chnl=0
+char id=60 x=378 y=125 width=37 height=36 xoffset=4 yoffset=38 xadvance=45 page=0 chnl=0
+char id=61 x=134 y=139 width=37 height=24 xoffset=4 yoffset=44 xadvance=45 page=0 chnl=0
+char id=62 x=202 y=141 width=37 height=36 xoffset=4 yoffset=38 xadvance=45 page=0 chnl=0
+char id=63 x=59 y=137 width=30 height=59 xoffset=1 yoffset=23 xadvance=32 page=0 chnl=0
+char id=64 x=91 y=165 width=66 height=70 xoffset=5 yoffset=23 xadvance=76 page=0 chnl=0
+char id=65 x=241 y=160 width=53 height=56 xoffset=0 yoffset=24 xadvance=53 page=0 chnl=0
+char id=66 x=378 y=163 width=42 height=57 xoffset=6 yoffset=24 xadvance=51 page=0 chnl=0
+char id=67 x=159 y=179 width=44 height=59 xoffset=4 yoffset=23 xadvance=49 page=0 chnl=0
+char id=68 x=296 y=184 width=47 height=57 xoffset=6 yoffset=24 xadvance=57 page=0 chnl=0
+char id=69 x=20 y=159 width=37 height=56 xoffset=6 yoffset=24 xadvance=45 page=0 chnl=0
+char id=70 x=20 y=217 width=35 height=56 xoffset=6 yoffset=24 xadvance=42 page=0 chnl=0
+char id=71 x=205 y=218 width=45 height=59 xoffset=4 yoffset=23 xadvance=53 page=0 chnl=0
+char id=72 x=345 y=222 width=44 height=56 xoffset=6 yoffset=24 xadvance=56 page=0 chnl=0
+char id=73 x=428 y=20 width=9 height=56 xoffset=6 yoffset=24 xadvance=21 page=0 chnl=0
+char id=74 x=252 y=218 width=34 height=58 xoffset=0 yoffset=24 xadvance=40 page=0 chnl=0
+char id=75 x=391 y=222 width=44 height=56 xoffset=6 yoffset=24 xadvance=50 page=0 chnl=0
+char id=76 x=57 y=237 width=35 height=56 xoffset=6 yoffset=24 xadvance=41 page=0 chnl=0
+char id=77 x=94 y=237 width=60 height=56 xoffset=5 yoffset=24 xadvance=69 page=0 chnl=0
+char id=78 x=156 y=240 width=46 height=56 xoffset=6 yoffset=24 xadvance=58 page=0 chnl=0
+char id=79 x=288 y=243 width=54 height=59 xoffset=4 yoffset=23 xadvance=62 page=0 chnl=0
+char id=80 x=204 y=279 width=40 height=56 xoffset=6 yoffset=24 xadvance=48 page=0 chnl=0
+char id=81 x=344 y=280 width=54 height=72 xoffset=4 yoffset=23 xadvance=62 page=0 chnl=0
+char id=82 x=20 y=295 width=43 height=56 xoffset=6 yoffset=24 xadvance=50 page=0 chnl=0
+char id=8226 x=176 y=506 width=21 height=21 xoffset=4 yoffset=41 xadvance=28 page=0 chnl=0
+char id=83 x=246 y=279 width=39 height=59 xoffset=2 yoffset=23 xadvance=42 page=0 chnl=0
+char id=84 x=65 y=295 width=43 height=56 xoffset=1 yoffset=24 xadvance=45 page=0 chnl=0
+char id=85 x=110 y=295 width=43 height=58 xoffset=6 yoffset=24 xadvance=55 page=0 chnl=0
+char id=86 x=287 y=304 width=52 height=56 xoffset=0 yoffset=24 xadvance=52 page=0 chnl=0
+char id=87 x=155 y=337 width=71 height=56 xoffset=2 yoffset=24 xadvance=74 page=0 chnl=0
+char id=88 x=228 y=340 width=48 height=56 xoffset=1 yoffset=24 xadvance=50 page=0 chnl=0
+char id=89 x=20 y=353 width=48 height=56 xoffset=0 yoffset=24 xadvance=47 page=0 chnl=0
+char id=90 x=341 y=354 width=41 height=56 xoffset=2 yoffset=24 xadvance=45 page=0 chnl=0
+char id=91 x=400 y=280 width=19 height=78 xoffset=7 yoffset=17 xadvance=26 page=0 chnl=0
+char id=92 x=70 y=353 width=35 height=78 xoffset=-2 yoffset=17 xadvance=30 page=0 chnl=0
+char id=93 x=107 y=355 width=19 height=78 xoffset=0 yoffset=17 xadvance=26 page=0 chnl=0
+char id=94 x=384 y=360 width=39 height=31 xoffset=3 yoffset=24 xadvance=45 page=0 chnl=0
+char id=95 x=278 y=362 width=41 height=7 xoffset=-1 yoffset=88 xadvance=39 page=0 chnl=0
+char id=96 x=128 y=355 width=16 height=17 xoffset=4 yoffset=17 xadvance=30 page=0 chnl=0
+char id=97 x=278 y=371 width=33 height=44 xoffset=3 yoffset=37 xadvance=41 page=0 chnl=0
+char id=98 x=384 y=393 width=38 height=64 xoffset=6 yoffset=17 xadvance=47 page=0 chnl=0
+char id=99 x=146 y=395 width=32 height=44 xoffset=4 yoffset=37 xadvance=37 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.png
new file mode 100644
index 0000000..e38c9d7
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.fnt
new file mode 100644
index 0000000..4632d90
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Regular.ttf" size=20 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=22.98 base=4 scaleW=149 scaleH=231 pages=1 packed=0
+page id=0 file="mdFont.png"
+chars count=96
+char id=100 x=30 y=146 width=10 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=101 x=54 y=150 width=10 height=12 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=102 x=101 y=152 width=7 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=103 x=110 y=152 width=9 height=15 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=104 x=83 y=155 width=9 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=105 x=66 y=150 width=3 height=15 xoffset=1 yoffset=5 xadvance=5 page=0 chnl=0
+char id=106 x=121 y=158 width=6 height=19 xoffset=-2 yoffset=5 xadvance=5 page=0 chnl=0
+char id=107 x=42 y=158 width=10 height=16 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=0
+char id=108 x=94 y=155 width=4 height=17 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=0
+char id=109 x=20 y=165 width=15 height=11 xoffset=1 yoffset=9 xadvance=17 page=0 chnl=0
+char id=110 x=71 y=160 width=9 height=11 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=111 x=54 y=164 width=10 height=12 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=112 x=100 y=170 width=10 height=15 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=113 x=82 y=173 width=10 height=15 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=114 x=112 y=169 width=7 height=11 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=0
+char id=115 x=66 y=173 width=9 height=12 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=0
+char id=116 x=37 y=176 width=7 height=15 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=117 x=46 y=178 width=9 height=12 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=118 x=20 y=178 width=10 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=119 x=112 y=182 width=16 height=11 xoffset=0 yoffset=9 xadvance=15 page=0 chnl=0
+char id=120 x=94 y=187 width=10 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=121 x=57 y=187 width=10 height=15 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0
+char id=122 x=69 y=187 width=9 height=11 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0
+char id=123 x=80 y=190 width=7 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=124 x=32 y=178 width=3 height=20 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=0
+char id=125 x=20 y=191 width=6 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=126 x=37 y=193 width=11 height=4 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=4.62 page=0 chln=0
+char id=33 x=20 y=20 width=4 height=15 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=34 x=26 y=20 width=6 height=6 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=0
+char id=35 x=34 y=20 width=13 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=36 x=49 y=20 width=9 height=19 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=37 x=60 y=20 width=16 height=16 xoffset=1 yoffset=5 xadvance=17 page=0 chnl=0
+char id=38 x=78 y=20 width=14 height=16 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=0
+char id=39 x=94 y=20 width=3 height=6 xoffset=1 yoffset=4 xadvance=4 page=0 chnl=0
+char id=40 x=99 y=20 width=6 height=20 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=41 x=107 y=20 width=5 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=42 x=114 y=20 width=9 height=8 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
+char id=43 x=114 y=30 width=10 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=44 x=26 y=28 width=4 height=7 xoffset=0 yoffset=17 xadvance=4 page=0 chnl=0
+char id=45 x=32 y=36 width=6 height=2 xoffset=0 yoffset=13 xadvance=5 page=0 chnl=0
+char id=46 x=126 y=20 width=3 height=4 xoffset=1 yoffset=17 xadvance=4 page=0 chnl=0
+char id=47 x=20 y=37 width=10 height=20 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=48 x=60 y=38 width=10 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=49 x=40 y=36 width=7 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=50 x=72 y=38 width=9 height=15 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=51 x=83 y=38 width=9 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=52 x=94 y=42 width=11 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=53 x=49 y=41 width=9 height=15 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=54 x=107 y=42 width=10 height=15 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=55 x=119 y=42 width=10 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=56 x=32 y=52 width=10 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=57 x=72 y=56 width=10 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=58 x=44 y=52 width=3 height=12 xoffset=1 yoffset=9 xadvance=4 page=0 chnl=0
+char id=59 x=84 y=56 width=4 height=15 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=0
+char id=60 x=60 y=56 width=10 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=61 x=90 y=58 width=10 height=6 xoffset=1 yoffset=11 xadvance=11 page=0 chnl=0
+char id=62 x=119 y=58 width=10 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=63 x=49 y=58 width=8 height=16 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
+char id=64 x=90 y=66 width=17 height=19 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=65 x=109 y=70 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=66 x=59 y=68 width=11 height=15 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=67 x=20 y=70 width=11 height=16 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=68 x=33 y=70 width=13 height=15 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=69 x=72 y=74 width=10 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=70 x=48 y=85 width=10 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=71 x=109 y=86 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=72 x=84 y=87 width=12 height=14 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=73 x=125 y=70 width=3 height=14 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=74 x=60 y=85 width=9 height=15 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
+char id=75 x=33 y=87 width=12 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=76 x=20 y=88 width=10 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=77 x=47 y=102 width=16 height=14 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=78 x=65 y=102 width=12 height=14 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=79 x=79 y=103 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=0
+char id=80 x=32 y=103 width=11 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=81 x=95 y=104 width=14 height=19 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=0
+char id=82 x=111 y=104 width=12 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=8226 x=106 y=195 width=6 height=6 xoffset=1 yoffset=10 xadvance=7 page=0 chnl=0
+char id=83 x=45 y=118 width=11 height=16 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
+char id=84 x=58 y=118 width=11 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=85 x=20 y=119 width=12 height=15 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=86 x=111 y=120 width=13 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=87 x=71 y=121 width=19 height=14 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0
+char id=88 x=92 y=125 width=13 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=89 x=107 y=136 width=12 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=90 x=58 y=134 width=11 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=91 x=34 y=119 width=6 height=20 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=92 x=42 y=136 width=10 height=20 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=93 x=121 y=136 width=5 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=94 x=20 y=136 width=11 height=8 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=95 x=71 y=137 width=11 height=2 xoffset=-1 yoffset=22 xadvance=9 page=0 chnl=0
+char id=96 x=84 y=137 width=4 height=5 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=97 x=90 y=141 width=9 height=12 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=98 x=71 y=141 width=10 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=99 x=20 y=146 width=8 height=12 xoffset=1 yoffset=9 xadvance=9 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.png
new file mode 100644
index 0000000..8f3f7f3
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFont.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.fnt
new file mode 100644
index 0000000..638edd2
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Bold.ttf" size=40 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=45.96 base=8 scaleW=263 scaleH=367 pages=1 packed=0
+page id=0 file="mdFontB.png"
+chars count=96
+char id=100 x=102 y=236 width=21 height=33 xoffset=1 yoffset=8 xadvance=24 page=0 chnl=0
+char id=101 x=175 y=236 width=21 height=23 xoffset=1 yoffset=18 xadvance=23 page=0 chnl=0
+char id=102 x=77 y=236 width=16 height=32 xoffset=2 yoffset=8 xadvance=16 page=0 chnl=0
+char id=103 x=125 y=236 width=20 height=30 xoffset=1 yoffset=18 xadvance=23 page=0 chnl=0
+char id=104 x=198 y=248 width=19 height=32 xoffset=2 yoffset=8 xadvance=23 page=0 chnl=0
+char id=105 x=219 y=248 width=8 height=31 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=106 x=229 y=248 width=13 height=39 xoffset=-3 yoffset=9 xadvance=11 page=0 chnl=0
+char id=107 x=147 y=253 width=21 height=32 xoffset=2 yoffset=8 xadvance=23 page=0 chnl=0
+char id=108 x=20 y=249 width=11 height=33 xoffset=2 yoffset=8 xadvance=12 page=0 chnl=0
+char id=109 x=33 y=270 width=30 height=22 xoffset=2 yoffset=18 xadvance=34 page=0 chnl=0
+char id=110 x=170 y=261 width=19 height=22 xoffset=2 yoffset=18 xadvance=23 page=0 chnl=0
+char id=111 x=65 y=270 width=22 height=23 xoffset=1 yoffset=18 xadvance=24 page=0 chnl=0
+char id=112 x=89 y=271 width=21 height=30 xoffset=2 yoffset=18 xadvance=24 page=0 chnl=0
+char id=113 x=112 y=271 width=21 height=30 xoffset=1 yoffset=18 xadvance=24 page=0 chnl=0
+char id=114 x=191 y=282 width=15 height=22 xoffset=2 yoffset=18 xadvance=16 page=0 chnl=0
+char id=115 x=208 y=282 width=17 height=23 xoffset=1 yoffset=18 xadvance=19 page=0 chnl=0
+char id=116 x=170 y=285 width=15 height=29 xoffset=2 yoffset=12 xadvance=17 page=0 chnl=0
+char id=117 x=135 y=287 width=19 height=23 xoffset=2 yoffset=18 xadvance=23 page=0 chnl=0
+char id=118 x=20 y=294 width=22 height=22 xoffset=0 yoffset=18 xadvance=22 page=0 chnl=0
+char id=119 x=44 y=295 width=31 height=22 xoffset=0 yoffset=18 xadvance=31 page=0 chnl=0
+char id=120 x=77 y=303 width=22 height=22 xoffset=0 yoffset=18 xadvance=22 page=0 chnl=0
+char id=121 x=101 y=303 width=22 height=30 xoffset=0 yoffset=18 xadvance=21 page=0 chnl=0
+char id=122 x=187 y=306 width=18 height=22 xoffset=1 yoffset=18 xadvance=20 page=0 chnl=0
+char id=123 x=227 y=289 width=14 height=40 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=0
+char id=124 x=156 y=287 width=7 height=40 xoffset=3 yoffset=8 xadvance=12 page=0 chnl=0
+char id=125 x=207 y=307 width=14 height=40 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0
+char id=126 x=125 y=312 width=22 height=10 xoffset=0 yoffset=23 xadvance=22 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=9.599999 page=0 chln=0
+char id=33 x=20 y=20 width=8 height=29 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0
+char id=34 x=30 y=20 width=15 height=13 xoffset=2 yoffset=9 xadvance=18 page=0 chnl=0
+char id=35 x=47 y=20 width=24 height=28 xoffset=2 yoffset=12 xadvance=27 page=0 chnl=0
+char id=36 x=73 y=20 width=20 height=37 xoffset=1 yoffset=8 xadvance=22 page=0 chnl=0
+char id=37 x=95 y=20 width=35 height=30 xoffset=1 yoffset=11 xadvance=36 page=0 chnl=0
+char id=38 x=132 y=20 width=27 height=30 xoffset=1 yoffset=11 xadvance=28 page=0 chnl=0
+char id=39 x=161 y=20 width=6 height=13 xoffset=2 yoffset=9 xadvance=9 page=0 chnl=0
+char id=40 x=169 y=20 width=13 height=40 xoffset=2 yoffset=8 xadvance=14 page=0 chnl=0
+char id=41 x=184 y=20 width=12 height=40 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0
+char id=42 x=198 y=20 width=18 height=17 xoffset=1 yoffset=12 xadvance=20 page=0 chnl=0
+char id=43 x=218 y=20 width=20 height=20 xoffset=1 yoffset=18 xadvance=22 page=0 chnl=0
+char id=44 x=30 y=35 width=9 height=14 xoffset=0 yoffset=33 xadvance=9 page=0 chnl=0
+char id=45 x=198 y=39 width=12 height=6 xoffset=1 yoffset=25 xadvance=13 page=0 chnl=0
+char id=46 x=212 y=42 width=8 height=8 xoffset=1 yoffset=33 xadvance=9 page=0 chnl=0
+char id=47 x=222 y=42 width=20 height=40 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0
+char id=48 x=41 y=50 width=21 height=30 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=49 x=20 y=51 width=15 height=28 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=50 x=198 y=52 width=20 height=29 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=51 x=95 y=52 width=20 height=30 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=52 x=117 y=52 width=22 height=28 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=0
+char id=53 x=141 y=52 width=20 height=29 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=54 x=64 y=59 width=21 height=29 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=55 x=163 y=62 width=21 height=28 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=56 x=37 y=82 width=21 height=30 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=57 x=117 y=82 width=20 height=30 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=58 x=186 y=62 width=8 height=23 xoffset=1 yoffset=18 xadvance=9 page=0 chnl=0
+char id=59 x=20 y=81 width=9 height=29 xoffset=0 yoffset=18 xadvance=9 page=0 chnl=0
+char id=60 x=139 y=83 width=19 height=20 xoffset=2 yoffset=18 xadvance=22 page=0 chnl=0
+char id=61 x=196 y=83 width=20 height=14 xoffset=1 yoffset=21 xadvance=22 page=0 chnl=0
+char id=62 x=218 y=84 width=20 height=20 xoffset=1 yoffset=18 xadvance=22 page=0 chnl=0
+char id=63 x=87 y=84 width=18 height=30 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=0
+char id=64 x=160 y=99 width=35 height=36 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=65 x=197 y=106 width=29 height=28 xoffset=0 yoffset=12 xadvance=28 page=0 chnl=0
+char id=66 x=60 y=90 width=23 height=30 xoffset=3 yoffset=11 xadvance=26 page=0 chnl=0
+char id=67 x=31 y=114 width=24 height=30 xoffset=2 yoffset=11 xadvance=25 page=0 chnl=0
+char id=68 x=107 y=114 width=25 height=30 xoffset=3 yoffset=11 xadvance=29 page=0 chnl=0
+char id=69 x=134 y=114 width=20 height=28 xoffset=3 yoffset=12 xadvance=24 page=0 chnl=0
+char id=70 x=85 y=116 width=19 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=71 x=57 y=122 width=24 height=30 xoffset=2 yoffset=11 xadvance=28 page=0 chnl=0
+char id=72 x=197 y=136 width=24 height=28 xoffset=3 yoffset=12 xadvance=29 page=0 chnl=0
+char id=73 x=228 y=106 width=7 height=28 xoffset=3 yoffset=12 xadvance=12 page=0 chnl=0
+char id=74 x=223 y=136 width=19 height=29 xoffset=0 yoffset=12 xadvance=21 page=0 chnl=0
+char id=75 x=156 y=137 width=24 height=28 xoffset=3 yoffset=12 xadvance=27 page=0 chnl=0
+char id=76 x=134 y=144 width=19 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=77 x=83 y=146 width=32 height=28 xoffset=2 yoffset=12 xadvance=35 page=0 chnl=0
+char id=78 x=20 y=146 width=25 height=28 xoffset=3 yoffset=12 xadvance=30 page=0 chnl=0
+char id=79 x=47 y=154 width=28 height=30 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=0
+char id=80 x=182 y=166 width=22 height=29 xoffset=3 yoffset=11 xadvance=25 page=0 chnl=0
+char id=81 x=206 y=167 width=28 height=37 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=0
+char id=82 x=155 y=167 width=23 height=29 xoffset=3 yoffset=11 xadvance=26 page=0 chnl=0
+char id=8226 x=165 y=316 width=13 height=12 xoffset=1 yoffset=20 xadvance=14 page=0 chnl=0
+char id=83 x=117 y=174 width=21 height=30 xoffset=1 yoffset=11 xadvance=23 page=0 chnl=0
+char id=84 x=77 y=176 width=24 height=28 xoffset=0 yoffset=12 xadvance=24 page=0 chnl=0
+char id=85 x=20 y=176 width=24 height=29 xoffset=2 yoffset=12 xadvance=28 page=0 chnl=0
+char id=86 x=46 y=186 width=29 height=28 xoffset=0 yoffset=12 xadvance=28 page=0 chnl=0
+char id=87 x=140 y=198 width=38 height=28 xoffset=0 yoffset=12 xadvance=37 page=0 chnl=0
+char id=88 x=180 y=206 width=27 height=28 xoffset=0 yoffset=12 xadvance=27 page=0 chnl=0
+char id=89 x=103 y=206 width=27 height=28 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0
+char id=90 x=77 y=206 width=23 height=28 xoffset=1 yoffset=12 xadvance=24 page=0 chnl=0
+char id=91 x=209 y=206 width=12 height=40 xoffset=3 yoffset=8 xadvance=14 page=0 chnl=0
+char id=92 x=223 y=206 width=20 height=40 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0
+char id=93 x=20 y=207 width=12 height=40 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0
+char id=94 x=34 y=216 width=22 height=17 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=0
+char id=95 x=132 y=228 width=20 height=6 xoffset=0 yoffset=42 xadvance=20 page=0 chnl=0
+char id=96 x=58 y=216 width=11 height=9 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
+char id=97 x=154 y=228 width=19 height=23 xoffset=1 yoffset=18 xadvance=22 page=0 chnl=0
+char id=98 x=34 y=235 width=21 height=33 xoffset=2 yoffset=8 xadvance=24 page=0 chnl=0
+char id=99 x=57 y=235 width=18 height=23 xoffset=1 yoffset=18 xadvance=20 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.png
new file mode 100644
index 0000000..f4e8f01
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.fnt
new file mode 100644
index 0000000..186db00
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Bold.ttf" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=91.92 base=17 scaleW=480 scaleH=643 pages=1 packed=0
+page id=0 file="mdFontB.png"
+chars count=96
+char id=100 x=57 y=431 width=40 height=65 xoffset=3 yoffset=17 xadvance=48 page=0 chnl=0
+char id=101 x=228 y=433 width=41 height=46 xoffset=3 yoffset=36 xadvance=46 page=0 chnl=0
+char id=102 x=315 y=427 width=30 height=63 xoffset=5 yoffset=17 xadvance=33 page=0 chnl=0
+char id=103 x=347 y=435 width=39 height=60 xoffset=3 yoffset=36 xadvance=47 page=0 chnl=0
+char id=104 x=99 y=453 width=37 height=63 xoffset=5 yoffset=17 xadvance=47 page=0 chnl=0
+char id=105 x=388 y=442 width=15 height=62 xoffset=4 yoffset=18 xadvance=23 page=0 chnl=0
+char id=106 x=138 y=456 width=25 height=77 xoffset=-6 yoffset=18 xadvance=23 page=0 chnl=0
+char id=107 x=165 y=456 width=41 height=63 xoffset=5 yoffset=17 xadvance=46 page=0 chnl=0
+char id=108 x=405 y=469 width=20 height=64 xoffset=5 yoffset=17 xadvance=25 page=0 chnl=0
+char id=109 x=208 y=481 width=59 height=44 xoffset=5 yoffset=36 xadvance=68 page=0 chnl=0
+char id=110 x=269 y=494 width=37 height=44 xoffset=5 yoffset=36 xadvance=47 page=0 chnl=0
+char id=111 x=308 y=497 width=42 height=46 xoffset=3 yoffset=36 xadvance=48 page=0 chnl=0
+char id=112 x=20 y=498 width=40 height=59 xoffset=5 yoffset=36 xadvance=48 page=0 chnl=0
+char id=113 x=352 y=506 width=40 height=59 xoffset=3 yoffset=36 xadvance=48 page=0 chnl=0
+char id=114 x=427 y=469 width=28 height=43 xoffset=5 yoffset=37 xadvance=33 page=0 chnl=0
+char id=115 x=62 y=498 width=33 height=46 xoffset=3 yoffset=36 xadvance=38 page=0 chnl=0
+char id=116 x=427 y=514 width=29 height=56 xoffset=5 yoffset=25 xadvance=35 page=0 chnl=0
+char id=117 x=97 y=518 width=37 height=44 xoffset=5 yoffset=37 xadvance=47 page=0 chnl=0
+char id=118 x=165 y=527 width=44 height=43 xoffset=0 yoffset=37 xadvance=44 page=0 chnl=0
+char id=119 x=211 y=540 width=62 height=43 xoffset=0 yoffset=37 xadvance=62 page=0 chnl=0
+char id=120 x=275 y=545 width=44 height=43 xoffset=0 yoffset=37 xadvance=44 page=0 chnl=0
+char id=121 x=20 y=559 width=43 height=58 xoffset=0 yoffset=37 xadvance=43 page=0 chnl=0
+char id=122 x=65 y=564 width=36 height=43 xoffset=2 yoffset=37 xadvance=40 page=0 chnl=0
+char id=123 x=136 y=535 width=27 height=78 xoffset=2 yoffset=17 xadvance=29 page=0 chnl=0
+char id=124 x=394 y=535 width=12 height=78 xoffset=7 yoffset=17 xadvance=25 page=0 chnl=0
+char id=125 x=321 y=545 width=27 height=78 xoffset=0 yoffset=17 xadvance=29 page=0 chnl=0
+char id=126 x=408 y=572 width=43 height=18 xoffset=1 yoffset=47 xadvance=45 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=19.199999 page=0 chln=0
+char id=33 x=20 y=20 width=15 height=58 xoffset=4 yoffset=24 xadvance=22 page=0 chnl=0
+char id=34 x=37 y=20 width=30 height=24 xoffset=4 yoffset=19 xadvance=37 page=0 chnl=0
+char id=35 x=69 y=20 width=48 height=56 xoffset=4 yoffset=24 xadvance=55 page=0 chnl=0
+char id=36 x=119 y=20 width=40 height=72 xoffset=2 yoffset=17 xadvance=45 page=0 chnl=0
+char id=37 x=161 y=20 width=69 height=59 xoffset=2 yoffset=23 xadvance=73 page=0 chnl=0
+char id=38 x=232 y=20 width=54 height=58 xoffset=2 yoffset=23 xadvance=56 page=0 chnl=0
+char id=39 x=288 y=20 width=12 height=24 xoffset=4 yoffset=19 xadvance=19 page=0 chnl=0
+char id=40 x=302 y=20 width=24 height=78 xoffset=5 yoffset=17 xadvance=28 page=0 chnl=0
+char id=41 x=328 y=20 width=23 height=78 xoffset=0 yoffset=17 xadvance=28 page=0 chnl=0
+char id=42 x=353 y=20 width=34 height=33 xoffset=3 yoffset=24 xadvance=40 page=0 chnl=0
+char id=43 x=389 y=20 width=39 height=40 xoffset=3 yoffset=36 xadvance=45 page=0 chnl=0
+char id=44 x=430 y=20 width=17 height=27 xoffset=1 yoffset=67 xadvance=19 page=0 chnl=0
+char id=45 x=37 y=46 width=24 height=12 xoffset=2 yoffset=50 xadvance=27 page=0 chnl=0
+char id=46 x=430 y=49 width=16 height=16 xoffset=2 yoffset=66 xadvance=19 page=0 chnl=0
+char id=47 x=353 y=62 width=39 height=78 xoffset=-2 yoffset=17 xadvance=34 page=0 chnl=0
+char id=48 x=394 y=67 width=41 height=59 xoffset=2 yoffset=23 xadvance=45 page=0 chnl=0
+char id=49 x=37 y=60 width=28 height=56 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=50 x=67 y=78 width=40 height=57 xoffset=2 yoffset=23 xadvance=45 page=0 chnl=0
+char id=51 x=232 y=80 width=39 height=59 xoffset=2 yoffset=23 xadvance=45 page=0 chnl=0
+char id=52 x=161 y=81 width=43 height=56 xoffset=1 yoffset=24 xadvance=45 page=0 chnl=0
+char id=53 x=109 y=94 width=38 height=58 xoffset=3 yoffset=24 xadvance=45 page=0 chnl=0
+char id=54 x=288 y=100 width=41 height=58 xoffset=2 yoffset=24 xadvance=45 page=0 chnl=0
+char id=55 x=20 y=118 width=40 height=56 xoffset=3 yoffset=24 xadvance=45 page=0 chnl=0
+char id=56 x=394 y=128 width=40 height=59 xoffset=3 yoffset=23 xadvance=45 page=0 chnl=0
+char id=57 x=62 y=137 width=40 height=58 xoffset=2 yoffset=23 xadvance=45 page=0 chnl=0
+char id=58 x=437 y=67 width=16 height=45 xoffset=2 yoffset=37 xadvance=19 page=0 chnl=0
+char id=59 x=206 y=81 width=17 height=57 xoffset=1 yoffset=37 xadvance=19 page=0 chnl=0
+char id=60 x=149 y=139 width=38 height=40 xoffset=4 yoffset=36 xadvance=45 page=0 chnl=0
+char id=61 x=189 y=140 width=39 height=28 xoffset=3 yoffset=42 xadvance=45 page=0 chnl=0
+char id=62 x=230 y=141 width=39 height=40 xoffset=3 yoffset=36 xadvance=45 page=0 chnl=0
+char id=63 x=331 y=142 width=34 height=59 xoffset=1 yoffset=23 xadvance=36 page=0 chnl=0
+char id=64 x=104 y=181 width=70 height=72 xoffset=4 yoffset=22 xadvance=77 page=0 chnl=0
+char id=65 x=271 y=160 width=57 height=56 xoffset=0 yoffset=24 xadvance=57 page=0 chnl=0
+char id=66 x=176 y=181 width=45 height=58 xoffset=6 yoffset=23 xadvance=53 page=0 chnl=0
+char id=67 x=367 y=189 width=47 height=59 xoffset=4 yoffset=23 xadvance=51 page=0 chnl=0
+char id=68 x=20 y=197 width=49 height=58 xoffset=6 yoffset=23 xadvance=58 page=0 chnl=0
+char id=69 x=223 y=183 width=40 height=56 xoffset=6 yoffset=24 xadvance=48 page=0 chnl=0
+char id=70 x=416 y=189 width=38 height=56 xoffset=6 yoffset=24 xadvance=45 page=0 chnl=0
+char id=71 x=265 y=218 width=47 height=59 xoffset=4 yoffset=23 xadvance=56 page=0 chnl=0
+char id=72 x=314 y=218 width=47 height=56 xoffset=6 yoffset=24 xadvance=58 page=0 chnl=0
+char id=73 x=71 y=197 width=13 height=56 xoffset=6 yoffset=24 xadvance=25 page=0 chnl=0
+char id=74 x=176 y=241 width=37 height=58 xoffset=0 yoffset=24 xadvance=42 page=0 chnl=0
+char id=75 x=215 y=241 width=48 height=56 xoffset=6 yoffset=24 xadvance=54 page=0 chnl=0
+char id=76 x=416 y=247 width=38 height=56 xoffset=6 yoffset=24 xadvance=45 page=0 chnl=0
+char id=77 x=71 y=255 width=63 height=56 xoffset=4 yoffset=24 xadvance=71 page=0 chnl=0
+char id=78 x=363 y=250 width=49 height=56 xoffset=6 yoffset=24 xadvance=60 page=0 chnl=0
+char id=79 x=265 y=279 width=56 height=59 xoffset=4 yoffset=23 xadvance=63 page=0 chnl=0
+char id=80 x=20 y=257 width=43 height=57 xoffset=6 yoffset=23 xadvance=51 page=0 chnl=0
+char id=81 x=176 y=301 width=56 height=73 xoffset=4 yoffset=23 xadvance=63 page=0 chnl=0
+char id=82 x=414 y=305 width=46 height=57 xoffset=6 yoffset=23 xadvance=53 page=0 chnl=0
+char id=8226 x=103 y=564 width=24 height=24 xoffset=3 yoffset=40 xadvance=29 page=0 chnl=0
+char id=83 x=323 y=308 width=42 height=59 xoffset=2 yoffset=23 xadvance=46 page=0 chnl=0
+char id=84 x=65 y=313 width=47 height=56 xoffset=1 yoffset=24 xadvance=49 page=0 chnl=0
+char id=85 x=114 y=313 width=46 height=58 xoffset=5 yoffset=24 xadvance=56 page=0 chnl=0
+char id=86 x=234 y=340 width=57 height=56 xoffset=0 yoffset=24 xadvance=57 page=0 chnl=0
+char id=87 x=367 y=364 width=74 height=56 xoffset=1 yoffset=24 xadvance=75 page=0 chnl=0
+char id=88 x=293 y=369 width=54 height=56 xoffset=0 yoffset=24 xadvance=54 page=0 chnl=0
+char id=89 x=20 y=371 width=53 height=56 xoffset=0 yoffset=24 xadvance=52 page=0 chnl=0
+char id=90 x=75 y=373 width=45 height=56 xoffset=2 yoffset=24 xadvance=48 page=0 chnl=0
+char id=91 x=122 y=373 width=22 height=78 xoffset=7 yoffset=17 xadvance=29 page=0 chnl=0
+char id=92 x=162 y=376 width=39 height=78 xoffset=-2 yoffset=17 xadvance=34 page=0 chnl=0
+char id=93 x=203 y=376 width=23 height=78 xoffset=0 yoffset=17 xadvance=29 page=0 chnl=0
+char id=94 x=228 y=398 width=43 height=33 xoffset=1 yoffset=24 xadvance=45 page=0 chnl=0
+char id=95 x=349 y=422 width=40 height=11 xoffset=0 yoffset=84 xadvance=40 page=0 chnl=0
+char id=96 x=391 y=422 width=20 height=18 xoffset=1 yoffset=16 xadvance=22 page=0 chnl=0
+char id=97 x=413 y=422 width=38 height=45 xoffset=2 yoffset=36 xadvance=44 page=0 chnl=0
+char id=98 x=273 y=427 width=40 height=65 xoffset=5 yoffset=17 xadvance=48 page=0 chnl=0
+char id=99 x=20 y=429 width=35 height=46 xoffset=3 yoffset=36 xadvance=40 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.png
new file mode 100644
index 0000000..ab233a8
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.fnt
new file mode 100644
index 0000000..692d2c6
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Bold.ttf" size=20 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=22.98 base=4 scaleW=155 scaleH=232 pages=1 packed=0
+page id=0 file="mdFontB.png"
+chars count=96
+char id=100 x=59 y=146 width=11 height=17 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=0
+char id=101 x=72 y=149 width=11 height=12 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=102 x=105 y=148 width=8 height=16 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=0
+char id=103 x=33 y=153 width=11 height=15 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=104 x=115 y=157 width=10 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=105 x=129 y=121 width=4 height=16 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=0
+char id=106 x=127 y=157 width=7 height=20 xoffset=-2 yoffset=4 xadvance=5 page=0 chnl=0
+char id=107 x=85 y=159 width=11 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=108 x=46 y=160 width=6 height=17 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=109 x=54 y=165 width=15 height=11 xoffset=1 yoffset=9 xadvance=17 page=0 chnl=0
+char id=110 x=20 y=163 width=10 height=11 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=111 x=71 y=165 width=12 height=12 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=0
+char id=112 x=98 y=166 width=11 height=15 xoffset=1 yoffset=9 xadvance=12 page=0 chnl=0
+char id=113 x=32 y=170 width=11 height=15 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=0
+char id=114 x=111 y=175 width=8 height=11 xoffset=1 yoffset=9 xadvance=8 page=0 chnl=0
+char id=115 x=20 y=176 width=9 height=12 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0
+char id=116 x=85 y=177 width=8 height=15 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=117 x=54 y=178 width=10 height=12 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=118 x=66 y=179 width=11 height=11 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=119 x=31 y=187 width=16 height=11 xoffset=0 yoffset=9 xadvance=15 page=0 chnl=0
+char id=120 x=121 y=179 width=11 height=11 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=121 x=95 y=183 width=11 height=15 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=122 x=108 y=188 width=10 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=123 x=20 y=190 width=8 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
+char id=124 x=79 y=179 width=4 height=20 xoffset=1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=125 x=120 y=192 width=7 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
+char id=126 x=49 y=192 width=11 height=6 xoffset=0 yoffset=11 xadvance=11 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=4.7999997 page=0 chln=0
+char id=33 x=20 y=20 width=4 height=15 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=34 x=26 y=20 width=8 height=7 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=0
+char id=35 x=36 y=20 width=12 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=36 x=50 y=20 width=11 height=19 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
+char id=37 x=63 y=20 width=18 height=16 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=0
+char id=38 x=83 y=20 width=14 height=16 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=0
+char id=39 x=99 y=20 width=3 height=7 xoffset=1 yoffset=4 xadvance=4 page=0 chnl=0
+char id=40 x=104 y=20 width=7 height=20 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=41 x=113 y=20 width=6 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
+char id=42 x=121 y=20 width=10 height=9 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
+char id=43 x=121 y=31 width=11 height=10 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=44 x=26 y=29 width=5 height=8 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
+char id=45 x=33 y=36 width=7 height=4 xoffset=0 yoffset=12 xadvance=6 page=0 chnl=0
+char id=46 x=42 y=36 width=5 height=5 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
+char id=47 x=63 y=38 width=11 height=20 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
+char id=48 x=76 y=38 width=11 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=49 x=89 y=38 width=8 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=50 x=20 y=39 width=11 height=15 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=51 x=49 y=41 width=11 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=52 x=99 y=42 width=11 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=53 x=33 y=43 width=11 height=15 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=54 x=112 y=43 width=11 height=15 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=55 x=20 y=56 width=11 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=56 x=76 y=56 width=11 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=57 x=89 y=58 width=11 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=58 x=125 y=43 width=5 height=12 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=0
+char id=59 x=125 y=57 width=5 height=15 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=0
+char id=60 x=46 y=59 width=10 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=61 x=62 y=60 width=11 height=8 xoffset=0 yoffset=10 xadvance=11 page=0 chnl=0
+char id=62 x=102 y=60 width=11 height=10 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=63 x=33 y=60 width=9 height=16 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
+char id=64 x=44 y=71 width=18 height=19 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=65 x=102 y=72 width=15 height=14 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0
+char id=66 x=75 y=74 width=12 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=67 x=119 y=74 width=12 height=16 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=68 x=20 y=78 width=13 height=16 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0
+char id=69 x=89 y=76 width=11 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=70 x=102 y=88 width=10 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=71 x=114 y=92 width=12 height=16 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0
+char id=72 x=35 y=92 width=13 height=14 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=73 x=64 y=70 width=4 height=14 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=0
+char id=74 x=70 y=92 width=10 height=15 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
+char id=75 x=50 y=92 width=13 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=76 x=82 y=92 width=10 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=77 x=94 y=104 width=16 height=14 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=78 x=20 y=96 width=13 height=14 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=0
+char id=79 x=35 y=108 width=14 height=16 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=0
+char id=80 x=51 y=108 width=12 height=15 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=81 x=65 y=109 width=14 height=19 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=0
+char id=82 x=112 y=110 width=12 height=15 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=8226 x=62 y=192 width=7 height=6 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=0
+char id=83 x=81 y=109 width=11 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=84 x=20 y=112 width=12 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=85 x=94 y=120 width=12 height=15 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=86 x=34 y=126 width=15 height=14 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0
+char id=87 x=108 y=127 width=19 height=14 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0
+char id=88 x=51 y=130 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=89 x=67 y=130 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=90 x=20 y=128 width=12 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=91 x=83 y=127 width=7 height=20 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=92 x=92 y=137 width=11 height=20 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
+char id=93 x=129 y=92 width=6 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
+char id=94 x=34 y=142 width=11 height=9 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=95 x=105 y=143 width=10 height=3 xoffset=0 yoffset=21 xadvance=10 page=0 chnl=0
+char id=96 x=129 y=114 width=6 height=5 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0
+char id=97 x=117 y=143 width=10 height=12 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=98 x=20 y=144 width=11 height=17 xoffset=1 yoffset=4 xadvance=12 page=0 chnl=0
+char id=99 x=47 y=146 width=10 height=12 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.png
new file mode 100644
index 0000000..b1f29aa
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontB.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.fnt
new file mode 100644
index 0000000..1deded7
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-BoldItalic.ttf" size=40 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=45.96 base=8 scaleW=279 scaleH=390 pages=1 packed=0
+page id=0 file="mdFontBI.png"
+chars count=96
+char id=100 x=125 y=248 width=24 height=33 xoffset=4 yoffset=8 xadvance=23 page=0 chnl=0
+char id=101 x=176 y=245 width=20 height=23 xoffset=4 yoffset=18 xadvance=21 page=0 chnl=0
+char id=102 x=57 y=249 width=27 height=40 xoffset=-2 yoffset=8 xadvance=17 page=0 chnl=0
+char id=103 x=86 y=262 width=25 height=30 xoffset=1 yoffset=18 xadvance=22 page=0 chnl=0
+char id=104 x=151 y=248 width=22 height=32 xoffset=2 yoffset=8 xadvance=22 page=0 chnl=0
+char id=105 x=243 y=236 width=14 height=31 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=106 x=198 y=267 width=21 height=39 xoffset=-4 yoffset=9 xadvance=11 page=0 chnl=0
+char id=107 x=221 y=269 width=25 height=32 xoffset=2 yoffset=8 xadvance=22 page=0 chnl=0
+char id=108 x=175 y=270 width=12 height=33 xoffset=4 yoffset=8 xadvance=12 page=0 chnl=0
+char id=109 x=20 y=277 width=33 height=22 xoffset=2 yoffset=18 xadvance=33 page=0 chnl=0
+char id=110 x=151 y=282 width=22 height=22 xoffset=2 yoffset=18 xadvance=22 page=0 chnl=0
+char id=111 x=113 y=283 width=21 height=23 xoffset=4 yoffset=18 xadvance=22 page=0 chnl=0
+char id=112 x=55 y=291 width=24 height=30 xoffset=1 yoffset=18 xadvance=23 page=0 chnl=0
+char id=113 x=81 y=294 width=22 height=30 xoffset=4 yoffset=18 xadvance=22 page=0 chnl=0
+char id=114 x=20 y=301 width=19 height=22 xoffset=2 yoffset=18 xadvance=17 page=0 chnl=0
+char id=115 x=221 y=303 width=20 height=23 xoffset=2 yoffset=18 xadvance=19 page=0 chnl=0
+char id=116 x=243 y=303 width=16 height=29 xoffset=4 yoffset=12 xadvance=16 page=0 chnl=0
+char id=117 x=175 y=305 width=21 height=23 xoffset=4 yoffset=18 xadvance=23 page=0 chnl=0
+char id=118 x=136 y=306 width=21 height=22 xoffset=5 yoffset=18 xadvance=21 page=0 chnl=0
+char id=119 x=41 y=323 width=32 height=22 xoffset=5 yoffset=18 xadvance=32 page=0 chnl=0
+char id=120 x=105 y=308 width=26 height=22 xoffset=0 yoffset=18 xadvance=21 page=0 chnl=0
+char id=121 x=75 y=326 width=27 height=30 xoffset=-1 yoffset=18 xadvance=21 page=0 chnl=0
+char id=122 x=198 y=328 width=23 height=22 xoffset=2 yoffset=18 xadvance=21 page=0 chnl=0
+char id=123 x=133 y=330 width=20 height=40 xoffset=3 yoffset=8 xadvance=14 page=0 chnl=0
+char id=124 x=20 y=325 width=16 height=40 xoffset=1 yoffset=8 xadvance=12 page=0 chnl=0
+char id=125 x=155 y=330 width=21 height=40 xoffset=-3 yoffset=8 xadvance=14 page=0 chnl=0
+char id=126 x=104 y=332 width=22 height=10 xoffset=3 yoffset=23 xadvance=22 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=9.599999 page=0 chln=0
+char id=33 x=20 y=20 width=13 height=29 xoffset=3 yoffset=12 xadvance=11 page=0 chnl=0
+char id=34 x=35 y=20 width=17 height=13 xoffset=7 yoffset=9 xadvance=19 page=0 chnl=0
+char id=35 x=54 y=20 width=28 height=28 xoffset=2 yoffset=12 xadvance=26 page=0 chnl=0
+char id=36 x=84 y=20 width=23 height=37 xoffset=2 yoffset=8 xadvance=22 page=0 chnl=0
+char id=37 x=109 y=20 width=32 height=30 xoffset=4 yoffset=11 xadvance=34 page=0 chnl=0
+char id=38 x=143 y=20 width=26 height=30 xoffset=3 yoffset=11 xadvance=26 page=0 chnl=0
+char id=39 x=171 y=20 width=8 height=13 xoffset=7 yoffset=9 xadvance=10 page=0 chnl=0
+char id=40 x=181 y=20 width=18 height=40 xoffset=3 yoffset=8 xadvance=14 page=0 chnl=0
+char id=41 x=201 y=20 width=17 height=40 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0
+char id=42 x=220 y=20 width=18 height=17 xoffset=5 yoffset=12 xadvance=20 page=0 chnl=0
+char id=43 x=220 y=39 width=21 height=20 xoffset=3 yoffset=18 xadvance=22 page=0 chnl=0
+char id=44 x=243 y=20 width=11 height=14 xoffset=-1 yoffset=33 xadvance=10 page=0 chnl=0
+char id=45 x=35 y=35 width=14 height=6 xoffset=2 yoffset=25 xadvance=13 page=0 chnl=0
+char id=46 x=171 y=35 width=8 height=8 xoffset=2 yoffset=33 xadvance=10 page=0 chnl=0
+char id=47 x=51 y=50 width=29 height=40 xoffset=-4 yoffset=8 xadvance=17 page=0 chnl=0
+char id=48 x=20 y=51 width=22 height=30 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=0
+char id=49 x=243 y=36 width=15 height=28 xoffset=8 yoffset=12 xadvance=22 page=0 chnl=0
+char id=50 x=109 y=52 width=23 height=29 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=51 x=134 y=52 width=23 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=52 x=82 y=59 width=24 height=28 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=53 x=171 y=62 width=25 height=29 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=54 x=198 y=62 width=22 height=29 xoffset=4 yoffset=12 xadvance=22 page=0 chnl=0
+char id=55 x=222 y=66 width=23 height=28 xoffset=5 yoffset=12 xadvance=22 page=0 chnl=0
+char id=56 x=108 y=83 width=23 height=30 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=0
+char id=57 x=20 y=83 width=22 height=30 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=0
+char id=58 x=247 y=66 width=11 height=23 xoffset=2 yoffset=18 xadvance=10 page=0 chnl=0
+char id=59 x=133 y=84 width=14 height=29 xoffset=-1 yoffset=18 xadvance=10 page=0 chnl=0
+char id=60 x=82 y=89 width=22 height=20 xoffset=3 yoffset=18 xadvance=22 page=0 chnl=0
+char id=61 x=44 y=92 width=24 height=14 xoffset=2 yoffset=21 xadvance=22 page=0 chnl=0
+char id=62 x=149 y=93 width=22 height=20 xoffset=2 yoffset=18 xadvance=22 page=0 chnl=0
+char id=63 x=173 y=93 width=18 height=30 xoffset=4 yoffset=11 xadvance=17 page=0 chnl=0
+char id=64 x=222 y=96 width=36 height=36 xoffset=4 yoffset=11 xadvance=37 page=0 chnl=0
+char id=65 x=44 y=108 width=28 height=28 xoffset=0 yoffset=12 xadvance=28 page=0 chnl=0
+char id=66 x=193 y=93 width=25 height=30 xoffset=3 yoffset=11 xadvance=26 page=0 chnl=0
+char id=67 x=74 y=111 width=26 height=30 xoffset=4 yoffset=11 xadvance=25 page=0 chnl=0
+char id=68 x=106 y=115 width=28 height=30 xoffset=3 yoffset=11 xadvance=28 page=0 chnl=0
+char id=69 x=136 y=115 width=25 height=28 xoffset=3 yoffset=12 xadvance=23 page=0 chnl=0
+char id=70 x=163 y=125 width=25 height=28 xoffset=3 yoffset=12 xadvance=23 page=0 chnl=0
+char id=71 x=190 y=125 width=26 height=30 xoffset=4 yoffset=11 xadvance=27 page=0 chnl=0
+char id=72 x=218 y=134 width=29 height=28 xoffset=3 yoffset=12 xadvance=28 page=0 chnl=0
+char id=73 x=20 y=115 width=13 height=28 xoffset=3 yoffset=12 xadvance=12 page=0 chnl=0
+char id=74 x=35 y=138 width=25 height=29 xoffset=0 yoffset=12 xadvance=20 page=0 chnl=0
+char id=75 x=62 y=143 width=29 height=28 xoffset=3 yoffset=12 xadvance=26 page=0 chnl=0
+char id=76 x=136 y=145 width=20 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=77 x=93 y=147 width=35 height=28 xoffset=2 yoffset=12 xadvance=35 page=0 chnl=0
+char id=78 x=158 y=157 width=31 height=28 xoffset=3 yoffset=12 xadvance=29 page=0 chnl=0
+char id=79 x=191 y=164 width=28 height=30 xoffset=4 yoffset=11 xadvance=30 page=0 chnl=0
+char id=80 x=221 y=164 width=26 height=29 xoffset=3 yoffset=11 xadvance=25 page=0 chnl=0
+char id=81 x=20 y=169 width=28 height=37 xoffset=4 yoffset=11 xadvance=30 page=0 chnl=0
+char id=82 x=50 y=173 width=26 height=29 xoffset=3 yoffset=11 xadvance=26 page=0 chnl=0
+char id=8226 x=223 y=328 width=13 height=12 xoffset=4 yoffset=20 xadvance=15 page=0 chnl=0
+char id=83 x=130 y=175 width=25 height=30 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
+char id=84 x=78 y=177 width=25 height=28 xoffset=5 yoffset=12 xadvance=23 page=0 chnl=0
+char id=85 x=157 y=187 width=27 height=29 xoffset=4 yoffset=12 xadvance=27 page=0 chnl=0
+char id=86 x=221 y=195 width=27 height=28 xoffset=6 yoffset=12 xadvance=27 page=0 chnl=0
+char id=87 x=105 y=207 width=38 height=28 xoffset=6 yoffset=12 xadvance=37 page=0 chnl=0
+char id=88 x=186 y=196 width=32 height=28 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0
+char id=89 x=50 y=204 width=26 height=28 xoffset=6 yoffset=12 xadvance=26 page=0 chnl=0
+char id=90 x=145 y=218 width=29 height=28 xoffset=1 yoffset=12 xadvance=25 page=0 chnl=0
+char id=91 x=78 y=207 width=21 height=40 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=0
+char id=92 x=20 y=208 width=10 height=40 xoffset=6 yoffset=8 xadvance=16 page=0 chnl=0
+char id=93 x=220 y=225 width=21 height=40 xoffset=-2 yoffset=8 xadvance=14 page=0 chnl=0
+char id=94 x=176 y=226 width=21 height=17 xoffset=4 yoffset=12 xadvance=22 page=0 chnl=0
+char id=95 x=32 y=234 width=22 height=6 xoffset=-2 yoffset=42 xadvance=20 page=0 chnl=0
+char id=96 x=243 y=225 width=10 height=9 xoffset=6 yoffset=8 xadvance=9 page=0 chnl=0
+char id=97 x=101 y=237 width=22 height=23 xoffset=4 yoffset=18 xadvance=23 page=0 chnl=0
+char id=98 x=32 y=242 width=23 height=33 xoffset=2 yoffset=8 xadvance=23 page=0 chnl=0
+char id=99 x=199 y=226 width=19 height=23 xoffset=4 yoffset=18 xadvance=19 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.png
new file mode 100644
index 0000000..0c8500a
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.fnt
new file mode 100644
index 0000000..2a6ed5b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-BoldItalic.ttf" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=91.92 base=17 scaleW=511 scaleH=703 pages=1 packed=0
+page id=0 file="mdFontBI.png"
+chars count=96
+char id=100 x=302 y=437 width=48 height=65 xoffset=8 yoffset=17 xadvance=47 page=0 chnl=0
+char id=101 x=237 y=446 width=39 height=46 xoffset=8 yoffset=36 xadvance=42 page=0 chnl=0
+char id=102 x=108 y=449 width=52 height=79 xoffset=-3 yoffset=17 xadvance=35 page=0 chnl=0
+char id=103 x=20 y=481 width=49 height=60 xoffset=2 yoffset=36 xadvance=45 page=0 chnl=0
+char id=104 x=433 y=484 width=43 height=63 xoffset=5 yoffset=17 xadvance=45 page=0 chnl=0
+char id=105 x=162 y=449 width=27 height=62 xoffset=5 yoffset=18 xadvance=22 page=0 chnl=0
+char id=106 x=191 y=490 width=41 height=77 xoffset=-8 yoffset=18 xadvance=23 page=0 chnl=0
+char id=107 x=234 y=494 width=49 height=63 xoffset=5 yoffset=17 xadvance=44 page=0 chnl=0
+char id=108 x=352 y=459 width=24 height=64 xoffset=8 yoffset=17 xadvance=25 page=0 chnl=0
+char id=109 x=285 y=504 width=65 height=44 xoffset=5 yoffset=36 xadvance=67 page=0 chnl=0
+char id=110 x=378 y=503 width=43 height=44 xoffset=5 yoffset=36 xadvance=45 page=0 chnl=0
+char id=111 x=71 y=530 width=41 height=46 xoffset=8 yoffset=36 xadvance=45 page=0 chnl=0
+char id=112 x=114 y=530 width=47 height=59 xoffset=2 yoffset=36 xadvance=46 page=0 chnl=0
+char id=113 x=20 y=543 width=43 height=59 xoffset=8 yoffset=36 xadvance=45 page=0 chnl=0
+char id=114 x=423 y=549 width=37 height=43 xoffset=5 yoffset=37 xadvance=34 page=0 chnl=0
+char id=115 x=352 y=549 width=39 height=46 xoffset=4 yoffset=36 xadvance=38 page=0 chnl=0
+char id=116 x=285 y=550 width=32 height=56 xoffset=8 yoffset=25 xadvance=33 page=0 chnl=0
+char id=117 x=234 y=559 width=42 height=44 xoffset=8 yoffset=37 xadvance=46 page=0 chnl=0
+char id=118 x=163 y=569 width=42 height=43 xoffset=10 yoffset=37 xadvance=43 page=0 chnl=0
+char id=119 x=65 y=591 width=64 height=43 xoffset=10 yoffset=37 xadvance=65 page=0 chnl=0
+char id=120 x=393 y=594 width=50 height=43 xoffset=1 yoffset=37 xadvance=43 page=0 chnl=0
+char id=121 x=319 y=597 width=53 height=58 xoffset=-2 yoffset=37 xadvance=42 page=0 chnl=0
+char id=122 x=445 y=594 width=45 height=43 xoffset=4 yoffset=37 xadvance=42 page=0 chnl=0
+char id=123 x=20 y=604 width=39 height=78 xoffset=6 yoffset=17 xadvance=29 page=0 chnl=0
+char id=124 x=207 y=605 width=31 height=78 xoffset=2 yoffset=17 xadvance=24 page=0 chnl=0
+char id=125 x=240 y=605 width=40 height=78 xoffset=-5 yoffset=17 xadvance=29 page=0 chnl=0
+char id=126 x=131 y=614 width=44 height=18 xoffset=6 yoffset=47 xadvance=45 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=19.199999 page=0 chln=0
+char id=33 x=20 y=20 width=26 height=58 xoffset=6 yoffset=24 xadvance=23 page=0 chnl=0
+char id=34 x=48 y=20 width=34 height=24 xoffset=14 yoffset=19 xadvance=39 page=0 chnl=0
+char id=35 x=84 y=20 width=54 height=56 xoffset=5 yoffset=24 xadvance=52 page=0 chnl=0
+char id=36 x=140 y=20 width=45 height=72 xoffset=5 yoffset=17 xadvance=45 page=0 chnl=0
+char id=37 x=187 y=20 width=63 height=59 xoffset=9 yoffset=23 xadvance=69 page=0 chnl=0
+char id=38 x=252 y=20 width=51 height=58 xoffset=6 yoffset=23 xadvance=53 page=0 chnl=0
+char id=39 x=305 y=20 width=16 height=24 xoffset=14 yoffset=19 xadvance=21 page=0 chnl=0
+char id=40 x=323 y=20 width=34 height=78 xoffset=7 yoffset=17 xadvance=28 page=0 chnl=0
+char id=41 x=359 y=20 width=33 height=78 xoffset=-2 yoffset=17 xadvance=28 page=0 chnl=0
+char id=42 x=394 y=20 width=35 height=33 xoffset=10 yoffset=24 xadvance=40 page=0 chnl=0
+char id=43 x=431 y=20 width=41 height=40 xoffset=7 yoffset=36 xadvance=45 page=0 chnl=0
+char id=44 x=48 y=46 width=21 height=27 xoffset=-1 yoffset=67 xadvance=20 page=0 chnl=0
+char id=45 x=394 y=55 width=27 height=12 xoffset=5 yoffset=50 xadvance=27 page=0 chnl=0
+char id=46 x=474 y=20 width=16 height=16 xoffset=4 yoffset=66 xadvance=20 page=0 chnl=0
+char id=47 x=423 y=62 width=58 height=78 xoffset=-8 yoffset=17 xadvance=34 page=0 chnl=0
+char id=48 x=71 y=78 width=43 height=59 xoffset=7 yoffset=23 xadvance=45 page=0 chnl=0
+char id=49 x=20 y=80 width=30 height=56 xoffset=16 yoffset=24 xadvance=45 page=0 chnl=0
+char id=50 x=252 y=80 width=46 height=57 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=51 x=187 y=81 width=45 height=59 xoffset=4 yoffset=23 xadvance=45 page=0 chnl=0
+char id=52 x=116 y=94 width=47 height=56 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=53 x=300 y=100 width=48 height=58 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=54 x=350 y=100 width=44 height=58 xoffset=8 yoffset=24 xadvance=45 page=0 chnl=0
+char id=55 x=20 y=138 width=45 height=56 xoffset=10 yoffset=24 xadvance=45 page=0 chnl=0
+char id=56 x=67 y=139 width=44 height=59 xoffset=7 yoffset=23 xadvance=45 page=0 chnl=0
+char id=57 x=234 y=139 width=44 height=58 xoffset=6 yoffset=23 xadvance=45 page=0 chnl=0
+char id=58 x=396 y=69 width=22 height=45 xoffset=4 yoffset=37 xadvance=20 page=0 chnl=0
+char id=59 x=420 y=142 width=27 height=57 xoffset=-1 yoffset=37 xadvance=20 page=0 chnl=0
+char id=60 x=165 y=142 width=42 height=40 xoffset=7 yoffset=36 xadvance=45 page=0 chnl=0
+char id=61 x=113 y=152 width=46 height=28 xoffset=5 yoffset=42 xadvance=45 page=0 chnl=0
+char id=62 x=449 y=142 width=42 height=40 xoffset=5 yoffset=36 xadvance=45 page=0 chnl=0
+char id=63 x=280 y=160 width=35 height=59 xoffset=9 yoffset=23 xadvance=34 page=0 chnl=0
+char id=64 x=317 y=160 width=71 height=72 xoffset=8 yoffset=22 xadvance=75 page=0 chnl=0
+char id=65 x=161 y=184 width=55 height=56 xoffset=1 yoffset=24 xadvance=57 page=0 chnl=0
+char id=66 x=218 y=199 width=50 height=58 xoffset=6 yoffset=23 xadvance=52 page=0 chnl=0
+char id=67 x=67 y=200 width=50 height=59 xoffset=9 yoffset=23 xadvance=51 page=0 chnl=0
+char id=68 x=390 y=201 width=55 height=58 xoffset=6 yoffset=23 xadvance=57 page=0 chnl=0
+char id=69 x=270 y=234 width=50 height=56 xoffset=6 yoffset=24 xadvance=47 page=0 chnl=0
+char id=70 x=322 y=234 width=50 height=56 xoffset=6 yoffset=24 xadvance=46 page=0 chnl=0
+char id=71 x=119 y=242 width=51 height=59 xoffset=9 yoffset=23 xadvance=55 page=0 chnl=0
+char id=72 x=172 y=259 width=58 height=56 xoffset=6 yoffset=24 xadvance=57 page=0 chnl=0
+char id=73 x=449 y=184 width=26 height=56 xoffset=6 yoffset=24 xadvance=24 page=0 chnl=0
+char id=74 x=374 y=261 width=48 height=58 xoffset=1 yoffset=24 xadvance=41 page=0 chnl=0
+char id=75 x=424 y=261 width=58 height=56 xoffset=6 yoffset=24 xadvance=52 page=0 chnl=0
+char id=76 x=20 y=196 width=40 height=56 xoffset=6 yoffset=24 xadvance=45 page=0 chnl=0
+char id=77 x=20 y=261 width=70 height=56 xoffset=4 yoffset=24 xadvance=70 page=0 chnl=0
+char id=78 x=232 y=292 width=61 height=56 xoffset=6 yoffset=24 xadvance=59 page=0 chnl=0
+char id=79 x=295 y=292 width=55 height=59 xoffset=9 yoffset=23 xadvance=60 page=0 chnl=0
+char id=80 x=92 y=303 width=51 height=57 xoffset=6 yoffset=23 xadvance=51 page=0 chnl=0
+char id=81 x=145 y=317 width=55 height=72 xoffset=9 yoffset=23 xadvance=60 page=0 chnl=0
+char id=82 x=424 y=319 width=51 height=57 xoffset=6 yoffset=23 xadvance=52 page=0 chnl=0
+char id=8226 x=282 y=608 width=24 height=24 xoffset=9 yoffset=40 xadvance=31 page=0 chnl=0
+char id=83 x=20 y=319 width=48 height=59 xoffset=3 yoffset=23 xadvance=44 page=0 chnl=0
+char id=84 x=352 y=321 width=49 height=56 xoffset=11 yoffset=24 xadvance=47 page=0 chnl=0
+char id=85 x=202 y=350 width=53 height=58 xoffset=9 yoffset=24 xadvance=54 page=0 chnl=0
+char id=86 x=257 y=353 width=53 height=56 xoffset=13 yoffset=24 xadvance=55 page=0 chnl=0
+char id=87 x=403 y=378 width=75 height=56 xoffset=12 yoffset=24 xadvance=74 page=0 chnl=0
+char id=88 x=70 y=362 width=62 height=56 xoffset=1 yoffset=24 xadvance=53 page=0 chnl=0
+char id=89 x=312 y=379 width=51 height=56 xoffset=13 yoffset=24 xadvance=52 page=0 chnl=0
+char id=90 x=134 y=391 width=57 height=56 xoffset=3 yoffset=24 xadvance=51 page=0 chnl=0
+char id=91 x=20 y=380 width=41 height=78 xoffset=2 yoffset=17 xadvance=29 page=0 chnl=0
+char id=92 x=365 y=379 width=20 height=78 xoffset=12 yoffset=17 xadvance=32 page=0 chnl=0
+char id=93 x=193 y=410 width=42 height=78 xoffset=-4 yoffset=17 xadvance=29 page=0 chnl=0
+char id=94 x=237 y=411 width=42 height=33 xoffset=8 yoffset=24 xadvance=45 page=0 chnl=0
+char id=95 x=63 y=420 width=43 height=11 xoffset=-3 yoffset=84 xadvance=40 page=0 chnl=0
+char id=96 x=281 y=411 width=19 height=18 xoffset=12 yoffset=16 xadvance=19 page=0 chnl=0
+char id=97 x=63 y=433 width=43 height=46 xoffset=8 yoffset=36 xadvance=47 page=0 chnl=0
+char id=98 x=387 y=436 width=44 height=65 xoffset=5 yoffset=17 xadvance=46 page=0 chnl=0
+char id=99 x=433 y=436 width=37 height=46 xoffset=8 yoffset=36 xadvance=38 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.png
new file mode 100644
index 0000000..fd7d387
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.fnt
new file mode 100644
index 0000000..908c348
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-BoldItalic.ttf" size=20 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=22.98 base=4 scaleW=162 scaleH=240 pages=1 packed=0
+page id=0 file="mdFontBI.png"
+chars count=96
+char id=100 x=107 y=151 width=12 height=17 xoffset=2 yoffset=4 xadvance=11 page=0 chnl=0
+char id=101 x=82 y=151 width=10 height=12 xoffset=2 yoffset=9 xadvance=10 page=0 chnl=0
+char id=102 x=121 y=157 width=14 height=20 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
+char id=103 x=67 y=156 width=13 height=15 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=104 x=47 y=160 width=11 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=105 x=94 y=165 width=7 height=16 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=0
+char id=106 x=20 y=165 width=11 height=20 xoffset=-2 yoffset=4 xadvance=5 page=0 chnl=0
+char id=107 x=103 y=170 width=13 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=108 x=82 y=165 width=6 height=17 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=0
+char id=109 x=60 y=173 width=17 height=11 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=0
+char id=110 x=33 y=168 width=11 height=11 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=111 x=46 y=178 width=11 height=12 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=112 x=118 y=179 width=13 height=15 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=113 x=33 y=181 width=11 height=15 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=114 x=90 y=183 width=10 height=11 xoffset=1 yoffset=9 xadvance=8 page=0 chnl=0
+char id=115 x=59 y=186 width=10 height=12 xoffset=1 yoffset=9 xadvance=9 page=0 chnl=0
+char id=116 x=133 y=179 width=8 height=15 xoffset=2 yoffset=6 xadvance=8 page=0 chnl=0
+char id=117 x=71 y=186 width=11 height=12 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=118 x=20 y=187 width=11 height=11 xoffset=2 yoffset=9 xadvance=10 page=0 chnl=0
+char id=119 x=102 y=196 width=17 height=11 xoffset=2 yoffset=9 xadvance=16 page=0 chnl=0
+char id=120 x=84 y=196 width=13 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=121 x=121 y=196 width=14 height=15 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
+char id=122 x=33 y=198 width=12 height=11 xoffset=1 yoffset=9 xadvance=10 page=0 chnl=0
+char id=123 x=47 y=200 width=11 height=20 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=124 x=20 y=200 width=9 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=125 x=60 y=200 width=11 height=20 xoffset=-2 yoffset=4 xadvance=7 page=0 chnl=0
+char id=126 x=99 y=209 width=12 height=6 xoffset=1 yoffset=11 xadvance=11 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=4.7999997 page=0 chln=0
+char id=33 x=20 y=20 width=7 height=15 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=34 x=29 y=20 width=9 height=7 xoffset=3 yoffset=4 xadvance=9 page=0 chnl=0
+char id=35 x=40 y=20 width=14 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=36 x=56 y=20 width=12 height=19 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=37 x=70 y=20 width=16 height=16 xoffset=2 yoffset=5 xadvance=17 page=0 chnl=0
+char id=38 x=88 y=20 width=14 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=39 x=104 y=20 width=5 height=7 xoffset=3 yoffset=4 xadvance=5 page=0 chnl=0
+char id=40 x=111 y=20 width=10 height=20 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=41 x=123 y=20 width=9 height=20 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=42 x=29 y=36 width=10 height=9 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
+char id=43 x=41 y=36 width=11 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=44 x=134 y=20 width=6 height=8 xoffset=-1 yoffset=16 xadvance=5 page=0 chnl=0
+char id=45 x=134 y=30 width=7 height=4 xoffset=1 yoffset=12 xadvance=6 page=0 chnl=0
+char id=46 x=104 y=29 width=4 height=5 xoffset=1 yoffset=16 xadvance=5 page=0 chnl=0
+char id=47 x=70 y=38 width=15 height=20 xoffset=-2 yoffset=4 xadvance=8 page=0 chnl=0
+char id=48 x=87 y=38 width=12 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=49 x=134 y=36 width=8 height=14 xoffset=4 yoffset=6 xadvance=11 page=0 chnl=0
+char id=50 x=54 y=41 width=12 height=15 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=51 x=110 y=42 width=12 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=52 x=20 y=47 width=12 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=53 x=34 y=48 width=13 height=15 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=54 x=124 y=52 width=11 height=15 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=55 x=87 y=56 width=12 height=14 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=56 x=49 y=58 width=12 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=57 x=68 y=60 width=12 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=58 x=101 y=38 width=6 height=12 xoffset=1 yoffset=9 xadvance=5 page=0 chnl=0
+char id=59 x=109 y=60 width=8 height=15 xoffset=-1 yoffset=9 xadvance=5 page=0 chnl=0
+char id=60 x=20 y=63 width=12 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=61 x=34 y=65 width=12 height=8 xoffset=1 yoffset=10 xadvance=11 page=0 chnl=0
+char id=62 x=119 y=69 width=11 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=63 x=132 y=69 width=9 height=16 xoffset=2 yoffset=5 xadvance=8 page=0 chnl=0
+char id=64 x=82 y=72 width=18 height=19 xoffset=2 yoffset=5 xadvance=18 page=0 chnl=0
+char id=65 x=20 y=75 width=14 height=14 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0
+char id=66 x=48 y=76 width=13 height=16 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=67 x=102 y=77 width=13 height=16 xoffset=2 yoffset=5 xadvance=12 page=0 chnl=0
+char id=68 x=63 y=78 width=15 height=16 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0
+char id=69 x=117 y=81 width=13 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=70 x=20 y=91 width=13 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=71 x=80 y=93 width=13 height=16 xoffset=2 yoffset=5 xadvance=13 page=0 chnl=0
+char id=72 x=35 y=94 width=15 height=14 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=73 x=132 y=87 width=7 height=14 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=0
+char id=74 x=95 y=95 width=13 height=15 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
+char id=75 x=52 y=96 width=15 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=76 x=110 y=97 width=11 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=77 x=123 y=103 width=18 height=14 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=78 x=20 y=110 width=16 height=14 xoffset=1 yoffset=6 xadvance=14 page=0 chnl=0
+char id=79 x=69 y=111 width=14 height=16 xoffset=2 yoffset=5 xadvance=15 page=0 chnl=0
+char id=80 x=85 y=112 width=14 height=15 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=81 x=38 y=112 width=14 height=19 xoffset=2 yoffset=5 xadvance=15 page=0 chnl=0
+char id=82 x=101 y=113 width=14 height=15 xoffset=1 yoffset=5 xadvance=13 page=0 chnl=0
+char id=8226 x=73 y=200 width=7 height=6 xoffset=2 yoffset=10 xadvance=7 page=0 chnl=0
+char id=83 x=54 y=112 width=13 height=16 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
+char id=84 x=117 y=119 width=13 height=14 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=85 x=20 y=126 width=14 height=15 xoffset=2 yoffset=6 xadvance=13 page=0 chnl=0
+char id=86 x=69 y=129 width=14 height=14 xoffset=3 yoffset=6 xadvance=13 page=0 chnl=0
+char id=87 x=85 y=130 width=19 height=14 xoffset=3 yoffset=6 xadvance=18 page=0 chnl=0
+char id=88 x=36 y=133 width=16 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=0
+char id=89 x=54 y=130 width=13 height=14 xoffset=3 yoffset=6 xadvance=13 page=0 chnl=0
+char id=90 x=106 y=135 width=15 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=91 x=123 y=135 width=11 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
+char id=92 x=136 y=119 width=5 height=20 xoffset=3 yoffset=4 xadvance=8 page=0 chnl=0
+char id=93 x=20 y=143 width=11 height=20 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=94 x=69 y=145 width=11 height=9 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=95 x=82 y=146 width=11 height=3 xoffset=-1 yoffset=21 xadvance=10 page=0 chnl=0
+char id=96 x=136 y=141 width=5 height=5 xoffset=3 yoffset=4 xadvance=4 page=0 chnl=0
+char id=97 x=54 y=146 width=11 height=12 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=98 x=33 y=149 width=12 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=99 x=95 y=151 width=10 height=12 xoffset=2 yoffset=9 xadvance=9 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.png
new file mode 100644
index 0000000..57200ba
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontBI.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.fnt
new file mode 100644
index 0000000..8659232
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Italic.ttf" size=40 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=45.96 base=8 scaleW=268 scaleH=379 pages=1 packed=0
+page id=0 file="mdFontI.png"
+chars count=96
+char id=100 x=42 y=244 width=24 height=33 xoffset=3 yoffset=8 xadvance=21 page=0 chnl=0
+char id=101 x=176 y=238 width=19 height=23 xoffset=4 yoffset=18 xadvance=20 page=0 chnl=0
+char id=102 x=221 y=245 width=24 height=40 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0
+char id=103 x=68 y=245 width=23 height=30 xoffset=1 yoffset=18 xadvance=22 page=0 chnl=0
+char id=104 x=20 y=250 width=20 height=32 xoffset=3 yoffset=8 xadvance=22 page=0 chnl=0
+char id=105 x=93 y=245 width=11 height=30 xoffset=3 yoffset=10 xadvance=9 page=0 chnl=0
+char id=106 x=197 y=251 width=19 height=38 xoffset=-5 yoffset=10 xadvance=9 page=0 chnl=0
+char id=107 x=106 y=258 width=21 height=32 xoffset=3 yoffset=8 xadvance=20 page=0 chnl=0
+char id=108 x=143 y=258 width=10 height=33 xoffset=4 yoffset=8 xadvance=11 page=0 chnl=0
+char id=109 x=155 y=263 width=31 height=22 xoffset=3 yoffset=18 xadvance=33 page=0 chnl=0
+char id=110 x=68 y=277 width=20 height=22 xoffset=3 yoffset=18 xadvance=22 page=0 chnl=0
+char id=111 x=42 y=279 width=19 height=23 xoffset=4 yoffset=18 xadvance=22 page=0 chnl=0
+char id=112 x=218 y=287 width=22 height=30 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0
+char id=113 x=155 y=287 width=21 height=30 xoffset=3 yoffset=18 xadvance=22 page=0 chnl=0
+char id=114 x=20 y=284 width=16 height=22 xoffset=3 yoffset=18 xadvance=14 page=0 chnl=0
+char id=115 x=188 y=291 width=19 height=23 xoffset=1 yoffset=18 xadvance=16 page=0 chnl=0
+char id=116 x=90 y=292 width=15 height=29 xoffset=4 yoffset=12 xadvance=15 page=0 chnl=0
+char id=117 x=107 y=292 width=20 height=22 xoffset=4 yoffset=19 xadvance=22 page=0 chnl=0
+char id=118 x=129 y=293 width=18 height=21 xoffset=5 yoffset=19 xadvance=19 page=0 chnl=0
+char id=119 x=38 y=304 width=31 height=21 xoffset=5 yoffset=19 xadvance=31 page=0 chnl=0
+char id=120 x=178 y=316 width=23 height=21 xoffset=0 yoffset=19 xadvance=18 page=0 chnl=0
+char id=121 x=107 y=316 width=26 height=29 xoffset=-3 yoffset=19 xadvance=19 page=0 chnl=0
+char id=122 x=149 y=319 width=21 height=21 xoffset=1 yoffset=19 xadvance=18 page=0 chnl=0
+char id=123 x=71 y=301 width=17 height=40 xoffset=4 yoffset=8 xadvance=13 page=0 chnl=0
+char id=124 x=20 y=308 width=14 height=40 xoffset=1 yoffset=8 xadvance=11 page=0 chnl=0
+char id=125 x=203 y=319 width=17 height=40 xoffset=-2 yoffset=8 xadvance=13 page=0 chnl=0
+char id=126 x=222 y=319 width=21 height=8 xoffset=4 yoffset=24 xadvance=22 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=9.24 page=0 chln=0
+char id=33 x=20 y=20 width=12 height=29 xoffset=2 yoffset=12 xadvance=10 page=0 chnl=0
+char id=34 x=34 y=20 width=13 height=11 xoffset=8 yoffset=9 xadvance=16 page=0 chnl=0
+char id=35 x=49 y=20 width=27 height=28 xoffset=3 yoffset=12 xadvance=26 page=0 chnl=0
+char id=36 x=78 y=20 width=22 height=37 xoffset=3 yoffset=8 xadvance=22 page=0 chnl=0
+char id=37 x=102 y=20 width=28 height=30 xoffset=6 yoffset=11 xadvance=33 page=0 chnl=0
+char id=38 x=132 y=20 width=24 height=30 xoffset=3 yoffset=11 xadvance=25 page=0 chnl=0
+char id=39 x=158 y=20 width=6 height=11 xoffset=8 yoffset=9 xadvance=9 page=0 chnl=0
+char id=40 x=166 y=20 width=15 height=40 xoffset=5 yoffset=8 xadvance=12 page=0 chnl=0
+char id=41 x=183 y=20 width=15 height=40 xoffset=-2 yoffset=8 xadvance=12 page=0 chnl=0
+char id=42 x=200 y=20 width=18 height=16 xoffset=5 yoffset=12 xadvance=18 page=0 chnl=0
+char id=43 x=220 y=20 width=20 height=20 xoffset=4 yoffset=18 xadvance=22 page=0 chnl=0
+char id=44 x=34 y=33 width=8 height=12 xoffset=0 yoffset=35 xadvance=9 page=0 chnl=0
+char id=45 x=200 y=38 width=11 height=4 xoffset=3 yoffset=26 xadvance=11 page=0 chnl=0
+char id=46 x=242 y=20 width=6 height=6 xoffset=2 yoffset=35 xadvance=9 page=0 chnl=0
+char id=47 x=213 y=42 width=27 height=40 xoffset=-3 yoffset=8 xadvance=15 page=0 chnl=0
+char id=48 x=44 y=50 width=21 height=30 xoffset=4 yoffset=11 xadvance=22 page=0 chnl=0
+char id=49 x=20 y=51 width=13 height=28 xoffset=9 yoffset=12 xadvance=22 page=0 chnl=0
+char id=50 x=102 y=52 width=21 height=29 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=0
+char id=51 x=125 y=52 width=22 height=30 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=0
+char id=52 x=67 y=59 width=22 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=53 x=158 y=62 width=24 height=29 xoffset=2 yoffset=12 xadvance=22 page=0 chnl=0
+char id=54 x=184 y=62 width=22 height=29 xoffset=4 yoffset=12 xadvance=22 page=0 chnl=0
+char id=55 x=20 y=81 width=21 height=28 xoffset=6 yoffset=12 xadvance=22 page=0 chnl=0
+char id=56 x=43 y=82 width=21 height=30 xoffset=4 yoffset=11 xadvance=22 page=0 chnl=0
+char id=57 x=91 y=83 width=22 height=30 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=0
+char id=58 x=208 y=84 width=10 height=22 xoffset=2 yoffset=19 xadvance=9 page=0 chnl=0
+char id=59 x=115 y=84 width=12 height=28 xoffset=0 yoffset=19 xadvance=9 page=0 chnl=0
+char id=60 x=129 y=84 width=21 height=19 xoffset=4 yoffset=19 xadvance=22 page=0 chnl=0
+char id=61 x=220 y=84 width=22 height=12 xoffset=3 yoffset=22 xadvance=22 page=0 chnl=0
+char id=62 x=66 y=89 width=21 height=19 xoffset=3 yoffset=19 xadvance=22 page=0 chnl=0
+char id=63 x=152 y=93 width=16 height=30 xoffset=4 yoffset=11 xadvance=15 page=0 chnl=0
+char id=64 x=170 y=93 width=35 height=36 xoffset=4 yoffset=11 xadvance=37 page=0 chnl=0
+char id=65 x=220 y=98 width=26 height=28 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0
+char id=66 x=115 y=114 width=24 height=29 xoffset=3 yoffset=12 xadvance=24 page=0 chnl=0
+char id=67 x=20 y=114 width=25 height=30 xoffset=4 yoffset=11 xadvance=24 page=0 chnl=0
+char id=68 x=47 y=114 width=27 height=29 xoffset=3 yoffset=12 xadvance=27 page=0 chnl=0
+char id=69 x=89 y=115 width=24 height=28 xoffset=3 yoffset=12 xadvance=22 page=0 chnl=0
+char id=70 x=141 y=125 width=24 height=28 xoffset=3 yoffset=12 xadvance=20 page=0 chnl=0
+char id=71 x=207 y=128 width=26 height=30 xoffset=4 yoffset=11 xadvance=26 page=0 chnl=0
+char id=72 x=167 y=131 width=28 height=28 xoffset=3 yoffset=12 xadvance=27 page=0 chnl=0
+char id=73 x=76 y=110 width=11 height=28 xoffset=3 yoffset=12 xadvance=10 page=0 chnl=0
+char id=74 x=76 y=145 width=23 height=29 xoffset=0 yoffset=12 xadvance=19 page=0 chnl=0
+char id=75 x=47 y=145 width=27 height=28 xoffset=3 yoffset=12 xadvance=24 page=0 chnl=0
+char id=76 x=101 y=145 width=18 height=28 xoffset=3 yoffset=12 xadvance=20 page=0 chnl=0
+char id=77 x=121 y=155 width=34 height=28 xoffset=2 yoffset=12 xadvance=33 page=0 chnl=0
+char id=78 x=197 y=160 width=29 height=28 xoffset=3 yoffset=12 xadvance=27 page=0 chnl=0
+char id=79 x=157 y=161 width=28 height=30 xoffset=4 yoffset=11 xadvance=29 page=0 chnl=0
+char id=80 x=20 y=146 width=24 height=28 xoffset=3 yoffset=12 xadvance=23 page=0 chnl=0
+char id=81 x=46 y=175 width=28 height=37 xoffset=4 yoffset=11 xadvance=29 page=0 chnl=0
+char id=82 x=76 y=176 width=24 height=28 xoffset=3 yoffset=12 xadvance=24 page=0 chnl=0
+char id=8226 x=135 y=316 width=11 height=11 xoffset=5 yoffset=20 xadvance=14 page=0 chnl=0
+char id=83 x=20 y=176 width=23 height=30 xoffset=1 yoffset=11 xadvance=20 page=0 chnl=0
+char id=84 x=102 y=185 width=22 height=28 xoffset=6 yoffset=12 xadvance=22 page=0 chnl=0
+char id=85 x=126 y=185 width=26 height=29 xoffset=5 yoffset=12 xadvance=26 page=0 chnl=0
+char id=86 x=187 y=190 width=25 height=28 xoffset=6 yoffset=12 xadvance=24 page=0 chnl=0
+char id=87 x=45 y=214 width=35 height=28 xoffset=7 yoffset=12 xadvance=36 page=0 chnl=0
+char id=88 x=214 y=190 width=29 height=28 xoffset=0 yoffset=12 xadvance=24 page=0 chnl=0
+char id=89 x=154 y=193 width=24 height=28 xoffset=6 yoffset=12 xadvance=22 page=0 chnl=0
+char id=90 x=82 y=215 width=27 height=28 xoffset=1 yoffset=12 xadvance=22 page=0 chnl=0
+char id=91 x=20 y=208 width=20 height=40 xoffset=1 yoffset=8 xadvance=12 page=0 chnl=0
+char id=92 x=111 y=215 width=9 height=40 xoffset=6 yoffset=8 xadvance=15 page=0 chnl=0
+char id=93 x=122 y=216 width=19 height=40 xoffset=-2 yoffset=8 xadvance=12 page=0 chnl=0
+char id=94 x=180 y=220 width=19 height=16 xoffset=5 yoffset=12 xadvance=22 page=0 chnl=0
+char id=95 x=201 y=220 width=21 height=4 xoffset=-2 yoffset=44 xadvance=19 page=0 chnl=0
+char id=96 x=143 y=216 width=8 height=9 xoffset=9 yoffset=8 xadvance=15 page=0 chnl=0
+char id=97 x=224 y=220 width=21 height=23 xoffset=3 yoffset=18 xadvance=21 page=0 chnl=0
+char id=98 x=153 y=223 width=21 height=33 xoffset=3 yoffset=8 xadvance=22 page=0 chnl=0
+char id=99 x=201 y=226 width=18 height=23 xoffset=4 yoffset=18 xadvance=18 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.png
new file mode 100644
index 0000000..a93ef00
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.fnt
new file mode 100644
index 0000000..938e100
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Italic.ttf" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=91.92 base=17 scaleW=485 scaleH=695 pages=1 packed=0
+page id=0 file="mdFontI.png"
+chars count=96
+char id=100 x=368 y=435 width=46 height=65 xoffset=7 yoffset=17 xadvance=43 page=0 chnl=0
+char id=101 x=416 y=435 width=37 height=45 xoffset=8 yoffset=37 xadvance=41 page=0 chnl=0
+char id=102 x=132 y=456 width=48 height=79 xoffset=-2 yoffset=17 xadvance=29 page=0 chnl=0
+char id=103 x=182 y=456 width=46 height=59 xoffset=2 yoffset=37 xadvance=44 page=0 chnl=0
+char id=104 x=20 y=475 width=39 height=63 xoffset=6 yoffset=17 xadvance=44 page=0 chnl=0
+char id=105 x=62 y=428 width=22 height=59 xoffset=6 yoffset=21 xadvance=19 page=0 chnl=0
+char id=106 x=416 y=482 width=37 height=75 xoffset=-9 yoffset=21 xadvance=19 page=0 chnl=0
+char id=107 x=61 y=492 width=42 height=63 xoffset=6 yoffset=17 xadvance=41 page=0 chnl=0
+char id=108 x=331 y=482 width=20 height=64 xoffset=8 yoffset=17 xadvance=22 page=0 chnl=0
+char id=109 x=230 y=500 width=61 height=43 xoffset=6 yoffset=37 xadvance=66 page=0 chnl=0
+char id=110 x=353 y=502 width=39 height=43 xoffset=6 yoffset=37 xadvance=44 page=0 chnl=0
+char id=111 x=182 y=517 width=38 height=45 xoffset=8 yoffset=37 xadvance=44 page=0 chnl=0
+char id=112 x=105 y=537 width=44 height=58 xoffset=2 yoffset=37 xadvance=43 page=0 chnl=0
+char id=113 x=222 y=545 width=41 height=58 xoffset=7 yoffset=37 xadvance=44 page=0 chnl=0
+char id=114 x=293 y=500 width=32 height=43 xoffset=6 yoffset=37 xadvance=29 page=0 chnl=0
+char id=115 x=20 y=540 width=36 height=45 xoffset=3 yoffset=37 xadvance=32 page=0 chnl=0
+char id=116 x=265 y=545 width=30 height=57 xoffset=8 yoffset=25 xadvance=31 page=0 chnl=0
+char id=117 x=353 y=547 width=40 height=44 xoffset=8 yoffset=38 xadvance=44 page=0 chnl=0
+char id=118 x=297 y=548 width=36 height=42 xoffset=10 yoffset=38 xadvance=38 page=0 chnl=0
+char id=119 x=395 y=559 width=61 height=42 xoffset=10 yoffset=38 xadvance=62 page=0 chnl=0
+char id=120 x=58 y=557 width=45 height=42 xoffset=0 yoffset=38 xadvance=37 page=0 chnl=0
+char id=121 x=151 y=564 width=51 height=58 xoffset=-5 yoffset=38 xadvance=38 page=0 chnl=0
+char id=122 x=297 y=592 width=42 height=42 xoffset=2 yoffset=38 xadvance=36 page=0 chnl=0
+char id=123 x=20 y=587 width=33 height=78 xoffset=8 yoffset=17 xadvance=26 page=0 chnl=0
+char id=124 x=341 y=593 width=27 height=78 xoffset=3 yoffset=17 xadvance=22 page=0 chnl=0
+char id=125 x=105 y=597 width=34 height=78 xoffset=-4 yoffset=17 xadvance=26 page=0 chnl=0
+char id=126 x=55 y=601 width=41 height=14 xoffset=8 yoffset=49 xadvance=45 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=18.48 page=0 chln=0
+char id=33 x=20 y=20 width=23 height=58 xoffset=5 yoffset=24 xadvance=20 page=0 chnl=0
+char id=34 x=45 y=20 width=26 height=21 xoffset=16 yoffset=19 xadvance=32 page=0 chnl=0
+char id=35 x=73 y=20 width=52 height=56 xoffset=7 yoffset=24 xadvance=52 page=0 chnl=0
+char id=36 x=127 y=20 width=43 height=72 xoffset=6 yoffset=17 xadvance=45 page=0 chnl=0
+char id=37 x=172 y=20 width=55 height=59 xoffset=12 yoffset=23 xadvance=66 page=0 chnl=0
+char id=38 x=229 y=20 width=48 height=58 xoffset=6 yoffset=23 xadvance=51 page=0 chnl=0
+char id=39 x=279 y=20 width=12 height=21 xoffset=16 yoffset=19 xadvance=18 page=0 chnl=0
+char id=40 x=293 y=20 width=30 height=78 xoffset=10 yoffset=17 xadvance=25 page=0 chnl=0
+char id=41 x=325 y=20 width=30 height=78 xoffset=-4 yoffset=17 xadvance=25 page=0 chnl=0
+char id=42 x=357 y=20 width=34 height=32 xoffset=11 yoffset=24 xadvance=37 page=0 chnl=0
+char id=43 x=393 y=20 width=38 height=40 xoffset=9 yoffset=36 xadvance=45 page=0 chnl=0
+char id=44 x=433 y=20 width=16 height=23 xoffset=0 yoffset=70 xadvance=19 page=0 chnl=0
+char id=45 x=45 y=43 width=22 height=8 xoffset=6 yoffset=52 xadvance=23 page=0 chnl=0
+char id=46 x=451 y=20 width=11 height=12 xoffset=5 yoffset=70 xadvance=19 page=0 chnl=0
+char id=47 x=357 y=62 width=53 height=78 xoffset=-6 yoffset=17 xadvance=30 page=0 chnl=0
+char id=48 x=412 y=62 width=40 height=59 xoffset=9 yoffset=23 xadvance=45 page=0 chnl=0
+char id=49 x=45 y=53 width=25 height=56 xoffset=18 yoffset=24 xadvance=45 page=0 chnl=0
+char id=50 x=72 y=78 width=42 height=57 xoffset=6 yoffset=23 xadvance=45 page=0 chnl=0
+char id=51 x=229 y=80 width=42 height=59 xoffset=5 yoffset=23 xadvance=45 page=0 chnl=0
+char id=52 x=172 y=81 width=43 height=56 xoffset=6 yoffset=24 xadvance=45 page=0 chnl=0
+char id=53 x=116 y=94 width=46 height=58 xoffset=5 yoffset=24 xadvance=45 page=0 chnl=0
+char id=54 x=273 y=100 width=42 height=58 xoffset=9 yoffset=24 xadvance=45 page=0 chnl=0
+char id=55 x=20 y=111 width=42 height=56 xoffset=12 yoffset=24 xadvance=45 page=0 chnl=0
+char id=56 x=412 y=123 width=42 height=59 xoffset=8 yoffset=23 xadvance=45 page=0 chnl=0
+char id=57 x=64 y=137 width=43 height=58 xoffset=6 yoffset=23 xadvance=45 page=0 chnl=0
+char id=58 x=317 y=100 width=19 height=44 xoffset=5 yoffset=38 xadvance=19 page=0 chnl=0
+char id=59 x=164 y=139 width=24 height=55 xoffset=0 yoffset=38 xadvance=19 page=0 chnl=0
+char id=60 x=217 y=141 width=40 height=37 xoffset=9 yoffset=38 xadvance=45 page=0 chnl=0
+char id=61 x=338 y=142 width=43 height=24 xoffset=7 yoffset=44 xadvance=45 page=0 chnl=0
+char id=62 x=109 y=154 width=40 height=37 xoffset=7 yoffset=38 xadvance=45 page=0 chnl=0
+char id=63 x=259 y=160 width=31 height=59 xoffset=9 yoffset=23 xadvance=30 page=0 chnl=0
+char id=64 x=317 y=168 width=69 height=70 xoffset=8 yoffset=23 xadvance=74 page=0 chnl=0
+char id=65 x=190 y=180 width=51 height=56 xoffset=0 yoffset=24 xadvance=50 page=0 chnl=0
+char id=66 x=388 y=184 width=48 height=57 xoffset=6 yoffset=24 xadvance=49 page=0 chnl=0
+char id=67 x=109 y=193 width=49 height=59 xoffset=9 yoffset=23 xadvance=48 page=0 chnl=0
+char id=68 x=20 y=197 width=53 height=57 xoffset=6 yoffset=24 xadvance=55 page=0 chnl=0
+char id=69 x=243 y=221 width=47 height=56 xoffset=6 yoffset=24 xadvance=44 page=0 chnl=0
+char id=70 x=160 y=238 width=47 height=56 xoffset=6 yoffset=24 xadvance=41 page=0 chnl=0
+char id=71 x=292 y=240 width=50 height=59 xoffset=9 yoffset=23 xadvance=52 page=0 chnl=0
+char id=72 x=344 y=243 width=55 height=56 xoffset=6 yoffset=24 xadvance=54 page=0 chnl=0
+char id=73 x=438 y=184 width=22 height=56 xoffset=6 yoffset=24 xadvance=21 page=0 chnl=0
+char id=74 x=401 y=243 width=45 height=58 xoffset=1 yoffset=24 xadvance=38 page=0 chnl=0
+char id=75 x=75 y=254 width=54 height=56 xoffset=6 yoffset=24 xadvance=49 page=0 chnl=0
+char id=76 x=20 y=256 width=35 height=56 xoffset=6 yoffset=24 xadvance=40 page=0 chnl=0
+char id=77 x=209 y=279 width=67 height=56 xoffset=5 yoffset=24 xadvance=67 page=0 chnl=0
+char id=78 x=131 y=296 width=57 height=56 xoffset=6 yoffset=24 xadvance=55 page=0 chnl=0
+char id=79 x=278 y=301 width=54 height=59 xoffset=9 yoffset=23 xadvance=59 page=0 chnl=0
+char id=80 x=334 y=301 width=48 height=56 xoffset=6 yoffset=24 xadvance=47 page=0 chnl=0
+char id=81 x=384 y=303 width=54 height=72 xoffset=9 yoffset=23 xadvance=59 page=0 chnl=0
+char id=82 x=57 y=312 width=48 height=56 xoffset=6 yoffset=24 xadvance=48 page=0 chnl=0
+char id=8226 x=370 y=593 width=22 height=21 xoffset=10 yoffset=41 xadvance=28 page=0 chnl=0
+char id=83 x=190 y=337 width=46 height=59 xoffset=2 yoffset=23 xadvance=41 page=0 chnl=0
+char id=84 x=107 y=354 width=43 height=56 xoffset=13 yoffset=24 xadvance=44 page=0 chnl=0
+char id=85 x=238 y=362 width=51 height=58 xoffset=10 yoffset=24 xadvance=53 page=0 chnl=0
+char id=86 x=291 y=362 width=49 height=56 xoffset=13 yoffset=24 xadvance=49 page=0 chnl=0
+char id=87 x=20 y=370 width=70 height=56 xoffset=14 yoffset=24 xadvance=73 page=0 chnl=0
+char id=88 x=342 y=377 width=57 height=56 xoffset=1 yoffset=24 xadvance=48 page=0 chnl=0
+char id=89 x=401 y=377 width=46 height=56 xoffset=13 yoffset=24 xadvance=45 page=0 chnl=0
+char id=90 x=152 y=398 width=53 height=56 xoffset=2 yoffset=24 xadvance=44 page=0 chnl=0
+char id=91 x=92 y=412 width=38 height=78 xoffset=3 yoffset=17 xadvance=25 page=0 chnl=0
+char id=92 x=449 y=242 width=16 height=78 xoffset=13 yoffset=17 xadvance=30 page=0 chnl=0
+char id=93 x=291 y=420 width=38 height=78 xoffset=-4 yoffset=17 xadvance=25 page=0 chnl=0
+char id=94 x=207 y=422 width=37 height=31 xoffset=10 yoffset=24 xadvance=45 page=0 chnl=0
+char id=95 x=246 y=422 width=42 height=7 xoffset=-4 yoffset=88 xadvance=39 page=0 chnl=0
+char id=96 x=449 y=322 width=16 height=17 xoffset=18 yoffset=17 xadvance=30 page=0 chnl=0
+char id=97 x=20 y=428 width=40 height=45 xoffset=7 yoffset=37 xadvance=43 page=0 chnl=0
+char id=98 x=246 y=431 width=41 height=64 xoffset=6 yoffset=17 xadvance=44 page=0 chnl=0
+char id=99 x=331 y=435 width=35 height=45 xoffset=8 yoffset=37 xadvance=36 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.png
new file mode 100644
index 0000000..4504e97
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.fnt
new file mode 100644
index 0000000..d25752e
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.fnt
@@ -0,0 +1,102 @@
+info face="Ubuntu-Italic.ttf" size=20 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=22.98 base=4 scaleW=157 scaleH=234 pages=1 packed=0
+page id=0 file="mdFontI.png"
+chars count=96
+char id=100 x=118 y=145 width=13 height=17 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=0
+char id=101 x=20 y=146 width=10 height=12 xoffset=2 yoffset=9 xadvance=10 page=0 chnl=0
+char id=102 x=32 y=155 width=13 height=20 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
+char id=103 x=47 y=158 width=12 height=15 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
+char id=104 x=61 y=159 width=11 height=16 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=105 x=93 y=148 width=6 height=15 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=0
+char id=106 x=74 y=159 width=10 height=19 xoffset=-3 yoffset=5 xadvance=4 page=0 chnl=0
+char id=107 x=101 y=161 width=11 height=16 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=0
+char id=108 x=86 y=159 width=5 height=17 xoffset=2 yoffset=4 xadvance=5 page=0 chnl=0
+char id=109 x=114 y=164 width=16 height=11 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=0
+char id=110 x=47 y=175 width=11 height=11 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=111 x=20 y=160 width=10 height=12 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=112 x=60 y=177 width=12 height=15 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
+char id=113 x=20 y=177 width=11 height=15 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=114 x=33 y=177 width=9 height=11 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=0
+char id=115 x=114 y=177 width=10 height=12 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=0
+char id=116 x=126 y=177 width=8 height=15 xoffset=2 yoffset=6 xadvance=7 page=0 chnl=0
+char id=117 x=86 y=178 width=10 height=12 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=118 x=98 y=179 width=10 height=11 xoffset=2 yoffset=9 xadvance=9 page=0 chnl=0
+char id=119 x=33 y=190 width=16 height=11 xoffset=2 yoffset=9 xadvance=15 page=0 chnl=0
+char id=120 x=110 y=191 width=12 height=11 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0
+char id=121 x=74 y=192 width=14 height=15 xoffset=-2 yoffset=9 xadvance=9 page=0 chnl=0
+char id=122 x=90 y=192 width=11 height=11 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0
+char id=123 x=124 y=194 width=9 height=20 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=0
+char id=124 x=51 y=194 width=8 height=20 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0
+char id=125 x=20 y=194 width=9 height=20 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=126 x=61 y=194 width=11 height=4 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=4.62 page=0 chln=0
+char id=33 x=20 y=20 width=6 height=15 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=34 x=28 y=20 width=7 height=6 xoffset=4 yoffset=4 xadvance=8 page=0 chnl=0
+char id=35 x=37 y=20 width=14 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=36 x=53 y=20 width=12 height=19 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=37 x=67 y=20 width=14 height=16 xoffset=3 yoffset=5 xadvance=16 page=0 chnl=0
+char id=38 x=83 y=20 width=13 height=16 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=39 x=98 y=20 width=3 height=6 xoffset=4 yoffset=4 xadvance=4 page=0 chnl=0
+char id=40 x=103 y=20 width=8 height=20 xoffset=2 yoffset=4 xadvance=6 page=0 chnl=0
+char id=41 x=113 y=20 width=8 height=20 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=42 x=123 y=20 width=10 height=8 xoffset=2 yoffset=6 xadvance=9 page=0 chnl=0
+char id=43 x=123 y=30 width=10 height=10 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=44 x=28 y=28 width=4 height=7 xoffset=0 yoffset=17 xadvance=4 page=0 chnl=0
+char id=45 x=34 y=36 width=6 height=2 xoffset=1 yoffset=13 xadvance=5 page=0 chnl=0
+char id=46 x=98 y=28 width=3 height=4 xoffset=1 yoffset=17 xadvance=4 page=0 chnl=0
+char id=47 x=67 y=38 width=14 height=20 xoffset=-2 yoffset=4 xadvance=7 page=0 chnl=0
+char id=48 x=20 y=37 width=11 height=16 xoffset=2 yoffset=5 xadvance=11 page=0 chnl=0
+char id=49 x=42 y=36 width=7 height=14 xoffset=4 yoffset=6 xadvance=11 page=0 chnl=0
+char id=50 x=83 y=38 width=11 height=15 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=51 x=51 y=41 width=11 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=52 x=96 y=42 width=12 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=53 x=110 y=42 width=12 height=15 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=54 x=124 y=42 width=11 height=15 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=55 x=33 y=52 width=11 height=14 xoffset=3 yoffset=6 xadvance=11 page=0 chnl=0
+char id=56 x=20 y=55 width=11 height=16 xoffset=2 yoffset=5 xadvance=11 page=0 chnl=0
+char id=57 x=83 y=58 width=12 height=16 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0
+char id=58 x=97 y=58 width=5 height=12 xoffset=1 yoffset=9 xadvance=4 page=0 chnl=0
+char id=59 x=46 y=59 width=6 height=15 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=0
+char id=60 x=104 y=59 width=11 height=10 xoffset=2 yoffset=9 xadvance=11 page=0 chnl=0
+char id=61 x=117 y=59 width=12 height=6 xoffset=1 yoffset=11 xadvance=11 page=0 chnl=0
+char id=62 x=54 y=59 width=11 height=10 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=0
+char id=63 x=67 y=60 width=8 height=16 xoffset=2 yoffset=5 xadvance=7 page=0 chnl=0
+char id=64 x=117 y=67 width=18 height=19 xoffset=2 yoffset=5 xadvance=18 page=0 chnl=0
+char id=65 x=97 y=72 width=13 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=66 x=20 y=73 width=13 height=15 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=67 x=77 y=76 width=13 height=16 xoffset=2 yoffset=5 xadvance=12 page=0 chnl=0
+char id=68 x=46 y=76 width=14 height=15 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=69 x=62 y=78 width=13 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=70 x=92 y=88 width=13 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=71 x=107 y=88 width=13 height=16 xoffset=2 yoffset=5 xadvance=13 page=0 chnl=0
+char id=72 x=122 y=88 width=15 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=73 x=35 y=68 width=6 height=14 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=74 x=20 y=90 width=12 height=15 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
+char id=75 x=34 y=93 width=14 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=76 x=50 y=93 width=10 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=77 x=62 y=94 width=17 height=14 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=0
+char id=78 x=81 y=104 width=15 height=14 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=79 x=122 y=104 width=14 height=16 xoffset=2 yoffset=5 xadvance=14 page=0 chnl=0
+char id=80 x=98 y=106 width=13 height=14 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0
+char id=81 x=20 y=109 width=14 height=19 xoffset=2 yoffset=5 xadvance=14 page=0 chnl=0
+char id=82 x=36 y=109 width=13 height=14 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=8226 x=61 y=200 width=6 height=6 xoffset=2 yoffset=10 xadvance=7 page=0 chnl=0
+char id=83 x=51 y=110 width=12 height=16 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
+char id=84 x=65 y=110 width=11 height=14 xoffset=3 yoffset=6 xadvance=11 page=0 chnl=0
+char id=85 x=78 y=120 width=14 height=15 xoffset=2 yoffset=6 xadvance=13 page=0 chnl=0
+char id=86 x=94 y=122 width=13 height=14 xoffset=3 yoffset=6 xadvance=12 page=0 chnl=0
+char id=87 x=109 y=122 width=18 height=14 xoffset=3 yoffset=6 xadvance=18 page=0 chnl=0
+char id=88 x=51 y=128 width=15 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
+char id=89 x=36 y=125 width=12 height=14 xoffset=3 yoffset=6 xadvance=11 page=0 chnl=0
+char id=90 x=20 y=130 width=14 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=91 x=68 y=137 width=11 height=20 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
+char id=92 x=129 y=122 width=5 height=20 xoffset=3 yoffset=4 xadvance=7 page=0 chnl=0
+char id=93 x=81 y=137 width=10 height=20 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
+char id=94 x=93 y=138 width=10 height=8 xoffset=2 yoffset=6 xadvance=11 page=0 chnl=0
+char id=95 x=105 y=138 width=11 height=2 xoffset=-1 yoffset=22 xadvance=9 page=0 chnl=0
+char id=96 x=118 y=138 width=5 height=5 xoffset=4 yoffset=4 xadvance=7 page=0 chnl=0
+char id=97 x=36 y=141 width=11 height=12 xoffset=1 yoffset=9 xadvance=10 page=0 chnl=0
+char id=98 x=105 y=142 width=11 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=0
+char id=99 x=49 y=144 width=9 height=12 xoffset=2 yoffset=9 xadvance=9 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.png
new file mode 100644
index 0000000..7960742
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontI.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.fnt
new file mode 100644
index 0000000..b13a9a1
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.fnt
@@ -0,0 +1,102 @@
+info face="UbuntuMono-Regular.ttf" size=40 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=40 base=6 scaleW=227 scaleH=317 pages=1 packed=0
+page id=0 file="mdFontMono.png"
+chars count=96
+char id=100 x=113 y=194 width=17 height=29 xoffset=1 yoffset=12 xadvance=20 page=0 chnl=0
+char id=101 x=132 y=194 width=18 height=20 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=102 x=51 y=195 width=18 height=28 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=103 x=71 y=195 width=17 height=26 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=104 x=33 y=202 width=16 height=28 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=105 x=173 y=208 width=16 height=28 xoffset=2 yoffset=13 xadvance=20 page=0 chnl=0
+char id=106 x=193 y=186 width=14 height=34 xoffset=2 yoffset=13 xadvance=20 page=0 chnl=0
+char id=107 x=90 y=210 width=18 height=28 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=108 x=152 y=213 width=16 height=29 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=109 x=132 y=216 width=18 height=19 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=110 x=191 y=222 width=16 height=19 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=111 x=110 y=225 width=18 height=20 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=112 x=71 y=223 width=17 height=26 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=113 x=51 y=225 width=17 height=26 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=114 x=20 y=232 width=14 height=19 xoffset=4 yoffset=21 xadvance=20 page=0 chnl=0
+char id=115 x=130 y=237 width=16 height=20 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=116 x=170 y=238 width=16 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=117 x=90 y=240 width=16 height=20 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=118 x=188 y=243 width=18 height=19 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=119 x=148 y=244 width=20 height=19 xoffset=0 yoffset=21 xadvance=20 page=0 chnl=0
+char id=120 x=108 y=247 width=18 height=19 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=121 x=70 y=251 width=18 height=26 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=122 x=36 y=253 width=16 height=19 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=123 x=128 y=259 width=15 height=35 xoffset=3 yoffset=12 xadvance=20 page=0 chnl=0
+char id=124 x=20 y=253 width=4 height=35 xoffset=8 yoffset=12 xadvance=20 page=0 chnl=0
+char id=125 x=90 y=262 width=15 height=35 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=126 x=188 y=264 width=18 height=7 xoffset=1 yoffset=26 xadvance=20 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=20 page=0 chln=0
+char id=33 x=20 y=20 width=6 height=26 xoffset=7 yoffset=15 xadvance=20 page=0 chnl=0
+char id=34 x=28 y=20 width=10 height=11 xoffset=5 yoffset=12 xadvance=20 page=0 chnl=0
+char id=35 x=40 y=20 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=36 x=60 y=20 width=16 height=32 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=37 x=78 y=20 width=20 height=27 xoffset=0 yoffset=14 xadvance=20 page=0 chnl=0
+char id=38 x=100 y=20 width=18 height=27 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=39 x=120 y=20 width=4 height=12 xoffset=8 yoffset=12 xadvance=20 page=0 chnl=0
+char id=40 x=126 y=20 width=12 height=36 xoffset=4 yoffset=11 xadvance=20 page=0 chnl=0
+char id=41 x=140 y=20 width=12 height=36 xoffset=4 yoffset=11 xadvance=20 page=0 chnl=0
+char id=42 x=154 y=20 width=16 height=15 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=43 x=172 y=20 width=18 height=19 xoffset=1 yoffset=20 xadvance=20 page=0 chnl=0
+char id=44 x=192 y=20 width=10 height=12 xoffset=5 yoffset=34 xadvance=20 page=0 chnl=0
+char id=45 x=28 y=33 width=10 height=4 xoffset=5 yoffset=28 xadvance=20 page=0 chnl=0
+char id=46 x=192 y=34 width=6 height=7 xoffset=7 yoffset=34 xadvance=20 page=0 chnl=0
+char id=47 x=154 y=37 width=16 height=35 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=48 x=172 y=41 width=18 height=27 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=49 x=192 y=43 width=15 height=25 xoffset=3 yoffset=15 xadvance=20 page=0 chnl=0
+char id=50 x=28 y=47 width=16 height=26 xoffset=2 yoffset=14 xadvance=20 page=0 chnl=0
+char id=51 x=78 y=49 width=16 height=27 xoffset=2 yoffset=14 xadvance=20 page=0 chnl=0
+char id=52 x=96 y=49 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=53 x=46 y=54 width=16 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=54 x=116 y=58 width=16 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=55 x=134 y=58 width=17 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=56 x=172 y=70 width=16 height=27 xoffset=2 yoffset=14 xadvance=20 page=0 chnl=0
+char id=57 x=190 y=70 width=16 height=27 xoffset=2 yoffset=14 xadvance=20 page=0 chnl=0
+char id=58 x=20 y=48 width=6 height=20 xoffset=7 yoffset=21 xadvance=20 page=0 chnl=0
+char id=59 x=64 y=54 width=9 height=25 xoffset=5 yoffset=21 xadvance=20 page=0 chnl=0
+char id=60 x=20 y=75 width=18 height=17 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=61 x=96 y=76 width=18 height=11 xoffset=1 yoffset=24 xadvance=20 page=0 chnl=0
+char id=62 x=75 y=78 width=18 height=17 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+char id=63 x=153 y=74 width=14 height=27 xoffset=3 yoffset=14 xadvance=20 page=0 chnl=0
+char id=64 x=40 y=82 width=18 height=32 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=65 x=116 y=86 width=20 height=25 xoffset=0 yoffset=15 xadvance=20 page=0 chnl=0
+char id=66 x=95 y=89 width=17 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=67 x=20 y=94 width=18 height=27 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=68 x=60 y=97 width=17 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=69 x=169 y=99 width=16 height=25 xoffset=3 yoffset=15 xadvance=20 page=0 chnl=0
+char id=70 x=187 y=99 width=15 height=25 xoffset=3 yoffset=15 xadvance=20 page=0 chnl=0
+char id=71 x=138 y=103 width=18 height=27 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=72 x=114 y=113 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=73 x=79 y=97 width=14 height=25 xoffset=3 yoffset=15 xadvance=20 page=0 chnl=0
+char id=74 x=40 y=116 width=15 height=26 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=75 x=20 y=123 width=18 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=76 x=95 y=117 width=16 height=25 xoffset=3 yoffset=15 xadvance=20 page=0 chnl=0
+char id=77 x=57 y=125 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=78 x=77 y=125 width=16 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=79 x=158 y=126 width=18 height=27 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=80 x=178 y=126 width=17 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=81 x=134 y=132 width=18 height=33 xoffset=1 yoffset=14 xadvance=20 page=0 chnl=0
+char id=82 x=113 y=140 width=17 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=8226 x=54 y=253 width=12 height=13 xoffset=4 yoffset=21 xadvance=20 page=0 chnl=0
+char id=83 x=95 y=144 width=16 height=27 xoffset=2 yoffset=14 xadvance=20 page=0 chnl=0
+char id=84 x=20 y=150 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=85 x=40 y=152 width=18 height=26 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=86 x=60 y=152 width=20 height=25 xoffset=0 yoffset=15 xadvance=20 page=0 chnl=0
+char id=87 x=178 y=153 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=88 x=154 y=155 width=18 height=25 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=89 x=132 y=167 width=20 height=25 xoffset=0 yoffset=15 xadvance=20 page=0 chnl=0
+char id=90 x=113 y=167 width=17 height=25 xoffset=2 yoffset=15 xadvance=20 page=0 chnl=0
+char id=91 x=82 y=152 width=11 height=35 xoffset=5 yoffset=12 xadvance=20 page=0 chnl=0
+char id=92 x=95 y=173 width=16 height=35 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=93 x=20 y=177 width=11 height=35 xoffset=4 yoffset=12 xadvance=20 page=0 chnl=0
+char id=94 x=60 y=179 width=18 height=14 xoffset=1 yoffset=15 xadvance=20 page=0 chnl=0
+char id=95 x=174 y=180 width=20 height=4 xoffset=0 yoffset=43 xadvance=20 page=0 chnl=0
+char id=96 x=198 y=126 width=8 height=8 xoffset=6 yoffset=12 xadvance=20 page=0 chnl=0
+char id=97 x=33 y=180 width=16 height=20 xoffset=2 yoffset=21 xadvance=20 page=0 chnl=0
+char id=98 x=154 y=182 width=17 height=29 xoffset=2 yoffset=12 xadvance=20 page=0 chnl=0
+char id=99 x=173 y=186 width=18 height=20 xoffset=1 yoffset=21 xadvance=20 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.png
new file mode 100644
index 0000000..dcbc1f0
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.fnt
new file mode 100644
index 0000000..2552679
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.fnt
@@ -0,0 +1,102 @@
+info face="UbuntuMono-Regular.ttf" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=80 base=13 scaleW=406 scaleH=568 pages=1 packed=0
+page id=0 file="mdFontMono.png"
+chars count=96
+char id=100 x=118 y=338 width=32 height=57 xoffset=3 yoffset=24 xadvance=40 page=0 chnl=0
+char id=101 x=152 y=348 width=34 height=39 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+char id=102 x=20 y=360 width=34 height=56 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=103 x=56 y=364 width=32 height=52 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+char id=104 x=232 y=367 width=30 height=56 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=105 x=264 y=367 width=32 height=55 xoffset=4 yoffset=26 xadvance=40 page=0 chnl=0
+char id=106 x=334 y=368 width=26 height=68 xoffset=5 yoffset=26 xadvance=40 page=0 chnl=0
+char id=107 x=188 y=386 width=34 height=56 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=108 x=298 y=388 width=32 height=57 xoffset=4 yoffset=24 xadvance=40 page=0 chnl=0
+char id=109 x=90 y=397 width=35 height=38 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+char id=110 x=152 y=389 width=30 height=38 xoffset=5 yoffset=42 xadvance=40 page=0 chnl=0
+char id=111 x=20 y=418 width=34 height=39 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+char id=112 x=56 y=418 width=32 height=52 xoffset=5 yoffset=42 xadvance=40 page=0 chnl=0
+char id=113 x=264 y=424 width=32 height=52 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+char id=114 x=224 y=425 width=28 height=38 xoffset=8 yoffset=42 xadvance=40 page=0 chnl=0
+char id=115 x=127 y=429 width=30 height=39 xoffset=5 yoffset=42 xadvance=40 page=0 chnl=0
+char id=116 x=90 y=437 width=31 height=50 xoffset=5 yoffset=31 xadvance=40 page=0 chnl=0
+char id=117 x=332 y=438 width=30 height=39 xoffset=5 yoffset=42 xadvance=40 page=0 chnl=0
+char id=118 x=184 y=444 width=36 height=38 xoffset=2 yoffset=42 xadvance=40 page=0 chnl=0
+char id=119 x=222 y=465 width=38 height=38 xoffset=1 yoffset=42 xadvance=40 page=0 chnl=0
+char id=120 x=123 y=470 width=36 height=38 xoffset=2 yoffset=42 xadvance=40 page=0 chnl=0
+char id=121 x=20 y=472 width=35 height=52 xoffset=2 yoffset=42 xadvance=40 page=0 chnl=0
+char id=122 x=298 y=447 width=30 height=38 xoffset=5 yoffset=42 xadvance=40 page=0 chnl=0
+char id=123 x=57 y=472 width=29 height=70 xoffset=6 yoffset=24 xadvance=40 page=0 chnl=0
+char id=124 x=376 y=318 width=8 height=70 xoffset=16 yoffset=24 xadvance=40 page=0 chnl=0
+char id=125 x=262 y=478 width=29 height=70 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=126 x=330 y=479 width=36 height=12 xoffset=2 yoffset=53 xadvance=40 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=40 page=0 chln=0
+char id=33 x=20 y=20 width=12 height=51 xoffset=14 yoffset=30 xadvance=40 page=0 chnl=0
+char id=34 x=34 y=20 width=20 height=21 xoffset=10 yoffset=25 xadvance=40 page=0 chnl=0
+char id=35 x=56 y=20 width=36 height=50 xoffset=2 yoffset=30 xadvance=40 page=0 chnl=0
+char id=36 x=94 y=20 width=32 height=64 xoffset=4 yoffset=24 xadvance=40 page=0 chnl=0
+char id=37 x=128 y=20 width=38 height=53 xoffset=1 yoffset=29 xadvance=40 page=0 chnl=0
+char id=38 x=168 y=20 width=36 height=52 xoffset=2 yoffset=29 xadvance=40 page=0 chnl=0
+char id=39 x=206 y=20 width=8 height=23 xoffset=16 yoffset=25 xadvance=40 page=0 chnl=0
+char id=40 x=216 y=20 width=22 height=71 xoffset=9 yoffset=23 xadvance=40 page=0 chnl=0
+char id=41 x=240 y=20 width=22 height=71 xoffset=9 yoffset=23 xadvance=40 page=0 chnl=0
+char id=42 x=264 y=20 width=32 height=30 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=43 x=298 y=20 width=34 height=36 xoffset=3 yoffset=41 xadvance=40 page=0 chnl=0
+char id=44 x=334 y=20 width=18 height=24 xoffset=11 yoffset=68 xadvance=40 page=0 chnl=0
+char id=45 x=354 y=20 width=18 height=7 xoffset=11 yoffset=56 xadvance=40 page=0 chnl=0
+char id=46 x=374 y=20 width=12 height=13 xoffset=14 yoffset=68 xadvance=40 page=0 chnl=0
+char id=47 x=354 y=35 width=30 height=70 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=48 x=264 y=58 width=34 height=53 xoffset=3 yoffset=29 xadvance=40 page=0 chnl=0
+char id=49 x=300 y=58 width=30 height=50 xoffset=6 yoffset=30 xadvance=40 page=0 chnl=0
+char id=50 x=34 y=72 width=32 height=51 xoffset=4 yoffset=29 xadvance=40 page=0 chnl=0
+char id=51 x=168 y=74 width=32 height=53 xoffset=4 yoffset=29 xadvance=40 page=0 chnl=0
+char id=52 x=128 y=75 width=36 height=50 xoffset=2 yoffset=30 xadvance=40 page=0 chnl=0
+char id=53 x=68 y=86 width=31 height=52 xoffset=5 yoffset=30 xadvance=40 page=0 chnl=0
+char id=54 x=202 y=93 width=32 height=52 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=55 x=332 y=107 width=32 height=50 xoffset=5 yoffset=30 xadvance=40 page=0 chnl=0
+char id=56 x=236 y=113 width=32 height=53 xoffset=4 yoffset=29 xadvance=40 page=0 chnl=0
+char id=57 x=270 y=113 width=32 height=52 xoffset=4 yoffset=29 xadvance=40 page=0 chnl=0
+char id=58 x=20 y=73 width=12 height=39 xoffset=14 yoffset=42 xadvance=40 page=0 chnl=0
+char id=59 x=101 y=86 width=17 height=50 xoffset=10 yoffset=42 xadvance=40 page=0 chnl=0
+char id=60 x=20 y=125 width=34 height=33 xoffset=3 yoffset=43 xadvance=40 page=0 chnl=0
+char id=61 x=120 y=127 width=34 height=22 xoffset=3 yoffset=48 xadvance=40 page=0 chnl=0
+char id=62 x=166 y=129 width=34 height=33 xoffset=3 yoffset=43 xadvance=40 page=0 chnl=0
+char id=63 x=304 y=110 width=26 height=52 xoffset=7 yoffset=29 xadvance=40 page=0 chnl=0
+char id=64 x=56 y=140 width=35 height=62 xoffset=3 yoffset=29 xadvance=40 page=0 chnl=0
+char id=65 x=93 y=151 width=40 height=50 xoffset=0 yoffset=30 xadvance=40 page=0 chnl=0
+char id=66 x=332 y=159 width=33 height=51 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=67 x=20 y=160 width=34 height=53 xoffset=3 yoffset=29 xadvance=40 page=0 chnl=0
+char id=68 x=156 y=164 width=33 height=51 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=69 x=202 y=147 width=30 height=50 xoffset=7 yoffset=30 xadvance=40 page=0 chnl=0
+char id=70 x=270 y=167 width=29 height=50 xoffset=7 yoffset=30 xadvance=40 page=0 chnl=0
+char id=71 x=234 y=168 width=34 height=53 xoffset=3 yoffset=29 xadvance=40 page=0 chnl=0
+char id=72 x=191 y=199 width=34 height=50 xoffset=3 yoffset=30 xadvance=40 page=0 chnl=0
+char id=73 x=304 y=164 width=26 height=50 xoffset=7 yoffset=30 xadvance=40 page=0 chnl=0
+char id=74 x=93 y=203 width=30 height=52 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=75 x=56 y=204 width=35 height=50 xoffset=5 yoffset=30 xadvance=40 page=0 chnl=0
+char id=76 x=332 y=212 width=30 height=50 xoffset=7 yoffset=30 xadvance=40 page=0 chnl=0
+char id=77 x=125 y=217 width=36 height=50 xoffset=2 yoffset=30 xadvance=40 page=0 chnl=0
+char id=78 x=20 y=215 width=32 height=50 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=79 x=270 y=219 width=36 height=53 xoffset=2 yoffset=29 xadvance=40 page=0 chnl=0
+char id=80 x=227 y=223 width=32 height=50 xoffset=5 yoffset=30 xadvance=40 page=0 chnl=0
+char id=81 x=163 y=251 width=36 height=65 xoffset=2 yoffset=29 xadvance=40 page=0 chnl=0
+char id=82 x=54 y=256 width=34 height=50 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=8226 x=161 y=484 width=22 height=24 xoffset=9 yoffset=43 xadvance=40 page=0 chnl=0
+char id=83 x=90 y=257 width=32 height=53 xoffset=4 yoffset=29 xadvance=40 page=0 chnl=0
+char id=84 x=308 y=264 width=34 height=50 xoffset=3 yoffset=30 xadvance=40 page=0 chnl=0
+char id=85 x=344 y=264 width=34 height=52 xoffset=3 yoffset=30 xadvance=40 page=0 chnl=0
+char id=86 x=261 y=274 width=39 height=50 xoffset=1 yoffset=30 xadvance=40 page=0 chnl=0
+char id=87 x=124 y=269 width=36 height=50 xoffset=2 yoffset=30 xadvance=40 page=0 chnl=0
+char id=88 x=201 y=275 width=36 height=50 xoffset=2 yoffset=30 xadvance=40 page=0 chnl=0
+char id=89 x=20 y=308 width=39 height=50 xoffset=1 yoffset=30 xadvance=40 page=0 chnl=0
+char id=90 x=61 y=312 width=33 height=50 xoffset=4 yoffset=30 xadvance=40 page=0 chnl=0
+char id=91 x=239 y=275 width=20 height=70 xoffset=11 yoffset=24 xadvance=40 page=0 chnl=0
+char id=92 x=302 y=316 width=30 height=70 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=93 x=96 y=312 width=20 height=70 xoffset=9 yoffset=24 xadvance=40 page=0 chnl=0
+char id=94 x=162 y=318 width=34 height=28 xoffset=3 yoffset=30 xadvance=40 page=0 chnl=0
+char id=95 x=334 y=318 width=40 height=7 xoffset=0 yoffset=87 xadvance=40 page=0 chnl=0
+char id=96 x=118 y=321 width=14 height=15 xoffset=13 yoffset=24 xadvance=40 page=0 chnl=0
+char id=97 x=261 y=326 width=31 height=39 xoffset=4 yoffset=42 xadvance=40 page=0 chnl=0
+char id=98 x=198 y=327 width=32 height=57 xoffset=5 yoffset=24 xadvance=40 page=0 chnl=0
+char id=99 x=334 y=327 width=34 height=39 xoffset=3 yoffset=42 xadvance=40 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.png
new file mode 100644
index 0000000..f706c3c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.fnt b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.fnt
new file mode 100644
index 0000000..c612b5e
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.fnt
@@ -0,0 +1,102 @@
+info face="UbuntuMono-Regular.ttf" size=20 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=20 base=3 scaleW=137 scaleH=212 pages=1 packed=0
+page id=0 file="mdFontMono.png"
+chars count=96
+char id=100 x=108 y=130 width=9 height=15 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
+char id=101 x=64 y=132 width=10 height=11 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=102 x=30 y=133 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=103 x=76 y=134 width=9 height=14 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=104 x=20 y=135 width=8 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=105 x=87 y=139 width=8 height=15 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=106 x=41 y=141 width=7 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=107 x=50 y=145 width=9 height=14 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=108 x=61 y=145 width=8 height=15 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=109 x=97 y=147 width=10 height=10 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=110 x=109 y=147 width=8 height=10 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=111 x=71 y=150 width=10 height=11 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=112 x=30 y=149 width=9 height=14 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=113 x=83 y=156 width=9 height=14 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=114 x=20 y=151 width=7 height=10 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0
+char id=115 x=94 y=159 width=8 height=11 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=116 x=104 y=159 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=117 x=41 y=161 width=8 height=11 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=118 x=51 y=162 width=10 height=10 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=119 x=63 y=163 width=10 height=10 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=120 x=29 y=165 width=10 height=10 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=121 x=75 y=172 width=10 height=14 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=122 x=87 y=172 width=8 height=10 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=123 x=41 y=174 width=8 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=124 x=114 y=159 width=2 height=18 xoffset=4 yoffset=6 xadvance=10 page=0 chnl=0
+char id=125 x=51 y=174 width=8 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=126 x=61 y=175 width=10 height=4 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=0
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=10 page=0 chln=0
+char id=33 x=20 y=20 width=4 height=14 xoffset=3 yoffset=7 xadvance=10 page=0 chnl=0
+char id=34 x=26 y=20 width=6 height=6 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
+char id=35 x=34 y=20 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=36 x=46 y=20 width=8 height=16 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=37 x=56 y=20 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=38 x=68 y=20 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=39 x=80 y=20 width=2 height=6 xoffset=4 yoffset=6 xadvance=10 page=0 chnl=0
+char id=40 x=84 y=20 width=6 height=19 xoffset=2 yoffset=5 xadvance=10 page=0 chnl=0
+char id=41 x=92 y=20 width=6 height=19 xoffset=2 yoffset=5 xadvance=10 page=0 chnl=0
+char id=42 x=100 y=20 width=8 height=8 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=43 x=100 y=30 width=10 height=10 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=44 x=26 y=28 width=6 height=6 xoffset=2 yoffset=17 xadvance=10 page=0 chnl=0
+char id=45 x=34 y=35 width=6 height=2 xoffset=2 yoffset=14 xadvance=10 page=0 chnl=0
+char id=46 x=112 y=20 width=4 height=4 xoffset=3 yoffset=17 xadvance=10 page=0 chnl=0
+char id=47 x=20 y=36 width=8 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=48 x=56 y=36 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=49 x=68 y=36 width=8 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=50 x=42 y=38 width=8 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=51 x=30 y=39 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=52 x=78 y=41 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=53 x=90 y=41 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=54 x=100 y=42 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=55 x=52 y=52 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=56 x=68 y=51 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=57 x=40 y=53 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=58 x=112 y=26 width=4 height=11 xoffset=3 yoffset=10 xadvance=10 page=0 chnl=0
+char id=59 x=112 y=39 width=5 height=13 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0
+char id=60 x=20 y=56 width=10 height=9 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=61 x=78 y=56 width=10 height=6 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0
+char id=62 x=90 y=58 width=10 height=9 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+char id=63 x=102 y=58 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=64 x=78 y=64 width=10 height=16 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=65 x=50 y=67 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=66 x=62 y=67 width=9 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=67 x=20 y=67 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=68 x=32 y=69 width=9 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=69 x=90 y=69 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=70 x=101 y=74 width=8 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=71 x=73 y=82 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=72 x=43 y=82 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=73 x=55 y=83 width=8 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=74 x=20 y=83 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=75 x=85 y=84 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=76 x=30 y=85 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=77 x=96 y=89 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=78 x=108 y=89 width=8 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=79 x=41 y=97 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=80 x=53 y=98 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=81 x=64 y=98 width=10 height=17 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=82 x=76 y=99 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=8226 x=20 y=163 width=6 height=7 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0
+char id=83 x=20 y=99 width=8 height=14 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=84 x=87 y=104 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=85 x=99 y=104 width=10 height=14 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=86 x=30 y=113 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=87 x=42 y=113 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=88 x=54 y=117 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=89 x=66 y=117 width=10 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=90 x=78 y=119 width=9 height=13 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
+char id=91 x=111 y=104 width=6 height=18 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
+char id=92 x=20 y=115 width=8 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=93 x=89 y=119 width=6 height=18 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
+char id=94 x=97 y=120 width=10 height=8 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
+char id=95 x=30 y=128 width=10 height=3 xoffset=0 yoffset=21 xadvance=10 page=0 chnl=0
+char id=96 x=109 y=124 width=4 height=4 xoffset=3 yoffset=6 xadvance=10 page=0 chnl=0
+char id=97 x=42 y=128 width=8 height=11 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
+char id=98 x=97 y=130 width=9 height=15 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0
+char id=99 x=52 y=132 width=10 height=11 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=0
+kernings count=0
+
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.png b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.png
new file mode 100644
index 0000000..19a4dec
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/mdFontMono.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/mod.json b/src-tauri/gd/2.2/geode/resources/geode.loader/mod.json
new file mode 100644
index 0000000..94f96fe
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/mod.json
@@ -0,0 +1,123 @@
+{
+ "geode": "4.1.2",
+ "gd": {
+ "win": "*",
+ "mac": "*",
+ "android": "*"
+ },
+ "id": "geode.loader",
+ "version": "4.1.2",
+ "name": "Geode",
+ "developer": "Geode Team",
+ "description": "The Geode mod loader",
+ "links": {
+ "community": "https://discord.com/invite/9e43WMKzhp",
+ "homepage": "https://geode-sdk.org",
+ "source": "https://github.com/geode-sdk/geode"
+ },
+ "repository": "https://github.com/geode-sdk/geode",
+ "resources": {
+ "fonts": {
+ "mdFont": {
+ "path": "fonts/Ubuntu-Regular.ttf",
+ "size": 80
+ },
+ "mdFontB": {
+ "path": "fonts/Ubuntu-Bold.ttf",
+ "size": 80
+ },
+ "mdFontI": {
+ "path": "fonts/Ubuntu-Italic.ttf",
+ "size": 80
+ },
+ "mdFontBI": {
+ "path": "fonts/Ubuntu-BoldItalic.ttf",
+ "size": 80
+ },
+ "mdFontMono": {
+ "path": "fonts/UbuntuMono-Regular.ttf",
+ "size": 80
+ }
+ },
+ "sprites": [
+ "images/*.png",
+ "swelve/*.png"
+ ],
+ "files": [
+ "sounds/*.ogg",
+ "about.md",
+ "changelog.md",
+ "support.md",
+ "mod.json",
+ "version"
+ ],
+ "spritesheets": {
+ "LogoSheet": [
+ "logos/*.png"
+ ],
+ "APISheet": [
+ "*.png"
+ ],
+ "BlankSheet": [
+ "blanks/*.png"
+ ],
+ "EventSheet": [
+ "modtober/*.png"
+ ]
+ }
+ },
+ "settings": {
+ "auto-check-updates": {
+ "type": "bool",
+ "default": true,
+ "name": "Check For Updates",
+ "description": "Automatically check for Geode updates on startup"
+ },
+ "disable-last-crashed-popup": {
+ "type": "bool",
+ "default": false,
+ "name": "Disable Crash Popup",
+ "description": "Disables the popup at startup asking if you'd like to send a bug report; intended for developers"
+ },
+ "enable-geode-theme": {
+ "type": "bool",
+ "default": true,
+ "name": "Enable Geode-Themed Colors",
+ "description": "When enabled, the Geode menu has a Geode-themed color scheme. This does not affect any other menus!"
+ },
+ "infinite-local-mods-list": {
+ "type": "bool",
+ "default": false,
+ "name": "Expand Installed Mods List",
+ "description": "Make the installed mods list a single infinite scrollable list instead of having pages"
+ },
+ "copy-mods": {
+ "type": "custom:copy-mods",
+ "name": ""
+ },
+ "developer-title": {
+ "type": "title",
+ "name": "Developer Settings"
+ },
+ "show-platform-console": {
+ "type": "bool",
+ "default": false,
+ "name": "Show Platform Console",
+ "description": "Show the native console (if one exists). This setting is meant for developers",
+ "platforms": ["win", "mac"],
+ "requires-restart": true
+ },
+ "server-cache-size-limit": {
+ "type": "int",
+ "default": 20,
+ "min": 1,
+ "max": 100,
+ "name": "Server Cache Size Limit",
+ "description": "Limits the size of the cache used for loading mods. Higher values result in higher memory usage."
+ }
+ },
+ "issues": {
+ "info": "Post your issues on the Geode Github Repository. Please follow the standard issue format.",
+ "url": "https://github.com/geode-sdk/geode/issues/new"
+ }
+}
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif00.ogg b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif00.ogg
new file mode 100644
index 0000000..af2613b
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif00.ogg differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif01.ogg b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif01.ogg
new file mode 100644
index 0000000..02f667c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif01.ogg differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif02.ogg b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif02.ogg
new file mode 100644
index 0000000..9fe0de2
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif02.ogg differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif03.ogg b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif03.ogg
new file mode 100644
index 0000000..a69143e
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/newNotif03.ogg differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-hd.png
new file mode 100644
index 0000000..59b95d8
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-uhd.png
new file mode 100644
index 0000000..9932b36
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar.png b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar.png
new file mode 100644
index 0000000..937ea90
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/scrollbar.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/support.md b/src-tauri/gd/2.2/geode/resources/geode.loader/support.md
new file mode 100644
index 0000000..5b606ef
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/support.md
@@ -0,0 +1 @@
+Thank you for using **Geode**!
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-hd.png
new file mode 100644
index 0000000..ec153ea
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-uhd.png
new file mode 100644
index 0000000..ab45dba
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0.png
new file mode 100644
index 0000000..8a69ecd
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer0.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-hd.png
new file mode 100644
index 0000000..31716ff
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-uhd.png
new file mode 100644
index 0000000..8582913
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1.png
new file mode 100644
index 0000000..7ed2352
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer1.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-hd.png
new file mode 100644
index 0000000..4ec3d7f
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-uhd.png
new file mode 100644
index 0000000..4acf731
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2.png
new file mode 100644
index 0000000..591a529
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer2.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-hd.png
new file mode 100644
index 0000000..c84aa60
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-uhd.png
new file mode 100644
index 0000000..c47e4be
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3.png b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3.png
new file mode 100644
index 0000000..19ba19d
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/swelve-layer3.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-hd.png
new file mode 100644
index 0000000..3844fc9
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-hd.png
new file mode 100644
index 0000000..73f5479
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-uhd.png
new file mode 100644
index 0000000..0526bbc
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask.png
new file mode 100644
index 0000000..5ea4b9b
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-mask.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-uhd.png
new file mode 100644
index 0000000..8c10343
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient.png b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient.png
new file mode 100644
index 0000000..2633fd5
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/tab-gradient.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/version b/src-tauri/gd/2.2/geode/resources/geode.loader/version
new file mode 100644
index 0000000..4d0dcda
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/resources/geode.loader/version
@@ -0,0 +1 @@
+4.1.2
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-hd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-hd.png
new file mode 100644
index 0000000..3427e6e
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-hd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-uhd.png b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-uhd.png
new file mode 100644
index 0000000..48850df
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square-uhd.png differ
diff --git a/src-tauri/gd/2.2/geode/resources/geode.loader/white-square.png b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square.png
new file mode 100644
index 0000000..e07e655
Binary files /dev/null and b/src-tauri/gd/2.2/geode/resources/geode.loader/white-square.png differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/.geode_cache b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/.geode_cache
new file mode 100644
index 0000000..d4ddb1b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/.geode_cache
@@ -0,0 +1 @@
+{"spritesheets":{},"fonts":{}}
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/about.md b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/about.md
new file mode 100644
index 0000000..3c21c94
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/about.md
@@ -0,0 +1,2 @@
+# Startpos Switcher
+Pretty self explanatory, allows you to switch between startpos's using customizable keybinds or the arrow buttons if you are on mobile
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android32.so b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android32.so
new file mode 100644
index 0000000..507bc6b
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android32.so differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android64.so b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android64.so
new file mode 100644
index 0000000..578f331
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.android64.so differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.dll b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.dll
new file mode 100644
index 0000000..eda1d7a
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/capeling.startpos_switcher.dll differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/changelog.md b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/changelog.md
new file mode 100644
index 0000000..584551b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/changelog.md
@@ -0,0 +1,17 @@
+# Startpos Switcher Changelog
+## v1.0.6
+- Updated for 2.207
+## v1.0.5
+- Fixes crash on MacOS
+## v1.0.4
+- Fixed incorrect current Startpos calculation
+- Added custom keybinds (windows only)
+## v1.0.3
+- Added don't fade on start
+- Added hide buttons
+## v1.0.2
+- Fixed android crash caused by ignore disabled start positions
+## v1.0.1
+- Added ignore disabled start positions
+## v1.0.0
+- Initial release
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/logo.png b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/logo.png
new file mode 100644
index 0000000..fbc7d05
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/logo.png differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/mod.json b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/mod.json
new file mode 100644
index 0000000..cb98472
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/mod.json
@@ -0,0 +1,70 @@
+{
+ "geode": "4.0.0-beta.2",
+ "gd": {
+ "win": "2.2074",
+ "android": "2.2074",
+ "ios": "2.2074"
+ },
+ "id": "capeling.startpos_switcher",
+ "name": "Startpos Switcher",
+ "version": "v1.0.6",
+ "developer": "Capeling",
+ "description": "Literally just a startpos switcher",
+ "settings": {
+ "opacity":{
+ "name": "Opacity",
+ "default": 50,
+ "max": 100,
+ "min": 0,
+ "control": {
+ "slider": true,
+ "slider-step": 1
+ },
+ "type": "float"
+ },
+ "hide":{
+ "name": "Don't fade on start",
+ "description": "Does not make the menu fade from max opacity when you first open a level",
+ "default": false,
+ "type": "bool"
+ },
+ "hideBtns":{
+ "name": "Hide buttons",
+ "description": "Hides the arrow buttons",
+ "default": false,
+ "type": "bool"
+ },
+ "ignoreDisabled": {
+ "name": "Ignore Disabled",
+ "description": "Ignores start positions that have been disabled",
+ "default": false,
+ "type": "bool",
+ "platforms": [
+ "win"
+ ]
+ }
+ },
+ "links": {
+ "source": "https://github.com/Capeling/Startpos-Switcher"
+ },
+ "issues": {
+ "info": "If you have an issue with the mod please report it here!",
+ "url": "https://github.com/Capeling/Startpos-Switcher/issues"
+ },
+ "tags": [
+ "enhancement",
+ "gameplay",
+ "interface",
+ "utility"
+ ],
+ "dependencies": [
+ {
+ "id": "geode.custom-keybinds",
+ "version": "v1.7.1",
+ "importance": "required",
+ "platforms": [
+ "win"
+ ]
+ }
+ ]
+}
diff --git a/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/modified-at b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/modified-at
new file mode 100644
index 0000000..2703f9b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/capeling.startpos_switcher/modified-at
@@ -0,0 +1 @@
+13380582545454
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/.geode_cache b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/.geode_cache
new file mode 100644
index 0000000..d4ddb1b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/.geode_cache
@@ -0,0 +1 @@
+{"spritesheets":{},"fonts":{}}
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/about.md b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/about.md
new file mode 100644
index 0000000..2a1ea40
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/about.md
@@ -0,0 +1,43 @@
+# Menu Shaders
+Replaces the background of the main menu with a customizable shader.
+
+This is a port of mat's [Menu Shaders](https://github.com/matcool/small-gd-mods/blob/3e1783c7e281cbbccd53f9c4ceb697d5a6f839dd/src/menu-shaders.cpp) mod.
+
+## Usage
+To change the shader, create a texture pack with a file called menu-shader.fsh.
+
+For a few already made shaders, check out this ~~Twitter~~ X [thread](https://twitter.com/mateus44_/status/1412108556921344006?s=20).
+
+This mod also supports some Shadertoy shaders, to use them:
+1. Find a shader you want to use on [Shadertoy](https://shadertoy.com)
+2. Copy/paste the code on the right into your menu-shader.fsh
+3. If you see the default GD background and errors from Menu Shaders in the console, that likely means that the shader you want to use is incompatible.
+
+## Advanced Usage
+
+### New shader locations
+You can also replace shaders in `cgytrus.menu-shaders/any-frag.glsl` and `any-vert.glsl`
+for the fragment and vertex shaders respectively,
+where `any` can be replaced with either `main`, `level-select`, `creator`, `level-browser`,
+`edit-level`, `play-level`, `search`, `garage`, `leaderboards`,
+`gauntlets`, `gauntlet` or `treasure-room` to override the shader only for the respective menu.
+
+Shadertoy compatibility is disabled in these shaders.
+
+### Sprites
+You can use sprites from resources (including custom ones) by adding a comment starting with `//@`
+followed by sprite names separated by commas.
+
+Each sprite in the list will add a `sampler2d` uniform called `sprite0`,
+where `0` is the index of the sprite in the list.
+
+### Nodes
+You can get information about nodes in the scene by adding a comment starting with `//#`
+followed by node IDs separated by commas.
+
+Each node in the list will add a few uniforms, where `0` is the index of the sprite in the list:
+- `vec2 node0Pos` - node position in cocos points in world space
+- `float node0Rot` - node rotation in degrees in world space
+- `vec2 node0Scale` - node scale in world space
+- `vec2 node0Size` - node content size in cocos points in world space
+- `bool node0Visible` - node visibility (whether it's drawn or not)
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android32.so b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android32.so
new file mode 100644
index 0000000..074a223
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android32.so differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android64.so b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android64.so
new file mode 100644
index 0000000..0ad0143
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.android64.so differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dll b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dll
new file mode 100644
index 0000000..f02dd6c
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dll differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dylib b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dylib
new file mode 100644
index 0000000..12f6c4d
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/cgytrus.menu-shaders.dylib differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/changelog.md b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/changelog.md
new file mode 100644
index 0000000..858f82b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/changelog.md
@@ -0,0 +1,36 @@
+## v1.4.2
+- updated to 2.2074
+
+## v1.4.1
+- fixed crash in menus without a background that normally have one
+- potentially improved compatibility with other mods changing the main menu background
+
+## v1.4.0
+- made hiding corners, input backgrounds, etc. configurable
+ - tho it Will Not look good unless you use happy textures or smth to change the colors i guess
+- added menu shaders to more layers
+ - only ones that had node ids tho, sorry
+- updated mod description slightly
+
+## v1.3.0
+- improved logging
+- added built-in shadertoy compatibility
+- built-in fix for issue #5
+- now recommends texture loader
+- updated documentation (hoping to see shader devs make use of these features !!)
+
+## v1.2.1
+- updated to 2.206
+
+## v1.2.0
+- updated to 2.2 (rooot did a huge part in this thanks !!!)
+- added android support
+- probably some other fixes i forgot about
+
+## v1.1.0
+- fixed mac crash
+- added ability to add menu shaders to other menus
+- fixed compatibility issues with some shaders on amd gpus
+
+## v1.0.0
+- initial release
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/logo.png b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/logo.png
new file mode 100644
index 0000000..46556ae
Binary files /dev/null and b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/logo.png differ
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/mod.json b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/mod.json
new file mode 100644
index 0000000..2935a54
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/mod.json
@@ -0,0 +1,204 @@
+{
+ "geode": "4.1.0",
+ "version": "v1.4.2",
+ "gd": {
+ "win": "2.2074",
+ "mac": "2.2074",
+ "android": "2.2074"
+ },
+ "id": "cgytrus.menu-shaders",
+ "name": "Menu Shaders",
+ "developers": [ "mat", "ConfiG", "rooot" ],
+ "description": "Replaces the background of the main menu with a customizable shader.",
+ "repository": "https://github.com/cgytrus/MenuShaders",
+ "issues": {
+ "info": "Report any issues you have on GitHub issues.",
+ "url": "https://github.com/cgytrus/MenuShaders/issues"
+ },
+ "tags": [ "offline", "interface", "customization" ],
+ "resources": {
+ "files": [
+ "resources/shaders/*.glsl"
+ ]
+ },
+ "dependencies": [
+ {
+ "id": "geode.node-ids",
+ "version": ">=v1.18.0",
+ "importance": "required"
+ },
+ {
+ "id": "geode.texture-loader",
+ "version": "*",
+ "importance": "recommended"
+ }
+ ],
+ "settings": {
+ "show-main": {
+ "name": "Show in main menu",
+ "description": "MenuLayer",
+ "type": "bool",
+ "default": true
+ },
+ "show-level-select": {
+ "name": "Show in level select menu",
+ "description": "LevelSelectLayer",
+ "type": "bool",
+ "default": false
+ },
+ "level-select-hide-corners": {
+ "name": "Hide corners in level select menu",
+ "description": "Also hides the bar at the top",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-level-select"
+ },
+ "level-select-hide-ground": {
+ "name": "Hide ground in level select menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-level-select"
+ },
+ "show-creator": {
+ "name": "Show in creator menu",
+ "description": "CreatorLayer",
+ "type": "bool",
+ "default": false
+ },
+ "creator-hide-corners": {
+ "name": "Hide corners in creator menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-creator"
+ },
+ "show-level-browser": {
+ "name": "Show in level lists",
+ "description": "Hall of Fame, Featured, Saved, etc. (LevelBrowserLayer)",
+ "type": "bool",
+ "default": false
+ },
+ "level-browser-hide-corners": {
+ "name": "Hide corners in level lists",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-level-browser"
+ },
+ "show-edit-level": {
+ "name": "Show in edit level menu",
+ "description": "EditLevelLayer",
+ "type": "bool",
+ "default": false
+ },
+ "edit-level-hide-corners": {
+ "name": "Hide corners in edit level menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-edit-level"
+ },
+ "edit-level-hide-backgrounds": {
+ "name": "Hide backgrounds in edit level menu",
+ "description": "Hides the backgrounds under level name and description inputs",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-edit-level"
+ },
+ "show-play-level": {
+ "name": "Show in play level menu",
+ "description": "LevelInfoLayer",
+ "type": "bool",
+ "default": false
+ },
+ "play-level-hide-corners": {
+ "name": "Hide corners in play level menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-play-level"
+ },
+ "show-search": {
+ "name": "Show in search menu",
+ "description": "LevelSearchLayer",
+ "type": "bool",
+ "default": false
+ },
+ "search-hide-corners": {
+ "name": "Hide corners in search menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-search"
+ },
+ "search-hide-backgrounds": {
+ "name": "Hide backgrounds in search menu",
+ "description": "Hides the backgrounds under query input, difficulty selector, etc.",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-search"
+ },
+ "show-garage": {
+ "name": "Show in garage (icon select) menu",
+ "description": "GJGarageLayer",
+ "type": "bool",
+ "default": false
+ },
+ "garage-hide-corners": {
+ "name": "Hide corners in garage menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-garage"
+ },
+ "garage-hide-backgrounds": {
+ "name": "Hide backgrounds in garage menu",
+ "description": "Hides the black background under the icon selector",
+ "type": "bool",
+ "default": false,
+ "enable-if": "show-garage"
+ },
+ "show-leaderboards": {
+ "name": "Show in leaderboards menu",
+ "description": "LeaderboardsLayer",
+ "type": "bool",
+ "default": false
+ },
+ "leaderboards-hide-corners": {
+ "name": "Hide corners in leaderboards menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-leaderboards"
+ },
+ "show-gauntlets": {
+ "name": "Show in gauntlet selection menu",
+ "description": "GauntletSelectLayer",
+ "type": "bool",
+ "default": false
+ },
+ "gauntlets-hide-corners": {
+ "name": "Hide corners in gauntlet selection menu",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-gauntlets"
+ },
+ "show-gauntlet": {
+ "name": "Show in gauntlet menus",
+ "description": "GauntletLayer",
+ "type": "bool",
+ "default": false
+ },
+ "show-treasure-room": {
+ "name": "Show in The Treasure Room",
+ "description": "SecretRewardsLayer",
+ "type": "bool",
+ "default": false
+ },
+ "treasure-room-hide-corners": {
+ "name": "Hide corners in The Treasure Room",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-treasure-room"
+ },
+ "treasure-room-hide-floor": {
+ "name": "Hide floor in The Treasure Room",
+ "type": "bool",
+ "default": true,
+ "enable-if": "show-treasure-room"
+ }
+ }
+}
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/modified-at b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/modified-at
new file mode 100644
index 0000000..a875c32
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/modified-at
@@ -0,0 +1 @@
+13380582550427
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-frag.glsl b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-frag.glsl
new file mode 100644
index 0000000..0f7475b
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-frag.glsl
@@ -0,0 +1,64 @@
+/*
+Here's an extremely simple shader that just shows the uv,
+while also showing all available uniforms
+
+uniform vec2 resolution;
+uniform float time;
+uniform vec2 mouse;
+uniform float pulse1; // i recommend this one
+uniform float pulse2;
+uniform float pulse3;
+uniform float fft[744];
+
+void main() {
+ vec2 uv = gl_FragCoord.xy / resolution;
+ uv.x *= resolution.x / resolution.y; // optional: fix aspect ratio
+ gl_FragColor = vec4(uv, 0.0, 1.0);
+}
+*/
+
+// default shader is a blue swirly pattern
+// which i made some time ago in shadertoy
+// https://www.shadertoy.com/view/wdG3Wh
+
+uniform vec2 resolution;
+uniform float time;
+uniform vec2 mouse; // not used here
+
+vec2 hash(vec2 p) {
+ vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
+ p3 += dot(p3, p3.yzx+33.33);
+ return fract((p3.xx+p3.yz)*p3.zy) * 2.0 - vec2(1.0);
+}
+
+float noise(in vec2 p) {
+ const float K1 = 0.366025404; // (sqrt(3) - 1) / 2;
+ const float K2 = 0.211324865; // (3 - sqrt(3)) / 6;
+
+ vec2 i = floor(p + (p.x + p.y) * K1);
+ vec2 a = p - i + (i.x + i.y) * K2;
+ float m = step(a.y, a.x);
+ vec2 o = vec2(m, 1.0 - m);
+ vec2 b = a - o + K2;
+ vec2 c = a - 1.0 + 2.0 * K2;
+ vec3 h = max(0.5 - vec3(dot(a, a), dot(b, b), dot(c, c)), 0.0);
+ vec3 n = h * h * h * h * vec3(dot(a, hash(i + 0.0)), dot(b, hash(i + o)), dot(c, hash(i + 1.0)));
+ return dot(n, vec3(70.0));
+}
+
+void main() {
+ vec2 uv = (gl_FragCoord.xy - 0.5 * resolution.xy) / resolution.y;
+
+ uv = vec2(noise(uv + time * 0.1), noise(uv + 10.0));
+ float d = uv.x - uv.y;
+ d *= 20.0;
+ d = sin(d);
+ d = d * 0.5 + 0.5;
+ d = 1.0 - d;
+
+ d = smoothstep(0.1, 0.1, d);
+
+ vec3 col = vec3(mix(vec3(0.1), vec3(0.2, 0.2, 0.6), d));
+
+ gl_FragColor = vec4(col, 1.0);
+}
diff --git a/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-vert.glsl b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-vert.glsl
new file mode 100644
index 0000000..f076e3c
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cgytrus.menu-shaders/resources/cgytrus.menu-shaders/any-vert.glsl
@@ -0,0 +1,5 @@
+attribute vec4 aPosition;
+
+void main() {
+ gl_Position = aPosition;
+}
diff --git a/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/.geode_cache b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/.geode_cache
new file mode 100644
index 0000000..6ca022d
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/.geode_cache
@@ -0,0 +1 @@
+{"spritesheets":{"51f3ea04ba180b0bbb5b646f69124fdff455454190fedd14cfd3c76e575d221a":"resources\\cvolton.betterinfo\\SearchButtons-410.png"},"fonts":{}}
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/about.md b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/about.md
new file mode 100644
index 0000000..dac77d6
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/about.md
@@ -0,0 +1,24 @@
+# BetterInfo
+
+The best epic modification ever made for Geometry Dash is here! BetterInfo, now available for Geode!
+
+## Features
+- Profiles for unregistered users
+- Extended level info
+- Way more search options
+- Better progress tracking
+
+- Fix green user usernames
+- Jump to page for comments
+- Uncapped jump to page for levels
+- View level comments for deleted levels
+- IDs visible at first glance
+
+- Daily chest history
+- Daily/weekly level history
+
+## Special thanks
+- KontrollFreek for the logo
+- acaruso, RandomB, TheSillyDoggo for minor code contributions
+- All [GDHistory](https://history.geometrydash.eu/) contributors (especially the Restoration Union)
+- Geode people and GDP people
\ No newline at end of file
diff --git a/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/changelog.md b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/changelog.md
new file mode 100644
index 0000000..be6230d
--- /dev/null
+++ b/src-tauri/gd/2.2/geode/unzipped/cvolton.betterinfo/changelog.md
@@ -0,0 +1,502 @@
+# Changelog
+## v4.3.3 (2024-12-28)
+* Fixed a few bugs related to Saved Level Filtering
+
+## v4.3.2 (2024-12-21)
+* Added Bonus Levels to BI menu
+* Removed derated counter from Demons Info on profiles (temporarily)
+ * This is until I can figure out why event levels sometimes _but not always_ count towards derated
+* Other bugfixes & improvements
+
+## v4.3.1 (2024-12-11)
+* Fixed compatibility with AlertLayerTweaks
+
+## v4.3.0 (2024-12-09)
+* Added Featured Lite (Weekly Levels) to BI menu
+* Added integration with Eclipse Menu and QOLmod
+* Added estimated game version to Extended Level Info
+* Added more info for sent friend requests and messages
+* Disabled auto submit to leaderboards for classic levels on mobile devices
+ * This is because Rob's anti-cheat marks all level completions from mobile as cheated, which means you can't appear in top 100 if you submit a score like this
+* Made player icons in chest history clickable
+* Made Extended Level Info and User Profile Info details copyable
+* Improved GDPS support
+* Improved the reliability of rated list reward notifications
+* Updated for Geode 4.0.0 and GD 2.207
+* Other bugfixes & improvements
+
+## v4.2.13 (2024-11-09)
+* Fixed an oversight that made the BI button open Event Levels instead
+This is the actual last release for GD 2.206
+
+## v4.2.12 (2024-11-09)
+* Added proper support for Event Levels
+This is the last release for GD 2.206
+
+## v4.2.11 (2024-10-18)
+* Fixed incorrect popup ordering in Filtered Search
+* Removed filter button from Favorite Lists \
+(it didn't work anyway)
+
+## v4.2.10 (2024-09-28)
+* Added Hall of Fame Label to Hall of Fame
+* Fixed a rare crash that could happen on startup
+* Fixed claimable lists possibly showing unrated lists
+* Fixed claimable lists sometimes showing an empty list of lists
+* Removed unnecessary buttons from claimable lists
+
+## v4.2.9 (2024-09-17)
+* Hidden Rate Limit Notifications while Playing or Editing levels
+* Fixed a crash when exiting View Leaderboard As too early
+* Updated for changes in Node IDs 1.14.0
+
+## v4.2.8 (2024-08-19)
+* Fixed a crash caused by the user recklessly deleting resources
+* Fixed a visual glitch where unfavorited lists appear in favorited lists tab
+
+## v4.2.7 (2024-08-08)
+* Fixed a crash when Last Page Search reaches infinite pages
+* Fixed a rare startup crash caused by Level Lists
+* Changed Creator Point Breakdown so it doesn't consider Legendary levels Epic
+ * This is consistent with how the search filters behave
+* Other bugfixes & improvements
+
+## v4.2.6 (2024-08-04)
+* Fixed the following issues on macOS
+ * Fixed a crash when opening level filters
+ * Fixed the game creating 10 empty created lists on every startup
+
+## v4.2.5 (2024-07-24)
+* Fixed a crash when opening Extended Level Info on M1 macOS
+
+## v4.2.4 (2024-07-14)
+* Fixed incorrect orb counts in Daily History
+* Enabled macOS support
+ * Experimental, may not get all future updates
+
+## v4.2.3 (2024-07-11)
+* Added Unverified Coins filter to Filtered Search
+* Fixed No Coins filter in Filtered Search
+* Fixed Followed List granting Friends Achievements
+* Fixed Icon Glow in Followed List
+* Other bugfixes & improvements
+
+## v4.2.1 / v4.2.2 (2024-07-08)
+* Adjusted internal rate-limits for BetterInfo caching
+* Other bugfixes & improvements
+
+## v4.2.0 (2024-07-07)
+* Added list folders
+* Added derated counter to Demons Info on profiles
+* Added notification when you can claim a rated list reward
+* Added followed user list to friends menu
+* Added more Level Progress information to Editor levels
+ * "Editor Level IDs API" mod is now required by BI to allow this
+* Added Coin Count and Folder filters to Filtered Search
+* Added Show Level IDs option to the Mod Settings
+* Fixed issues caused by No Transition in mod menus
+* Fixed various stability issues
+* Other bugfixes & improvements
+
+From previous alpha/beta releases:
+* Updated for Geode 3.0.0 and GD 2.206
+ * Mac support is temporarily disabled
+
+Also the changelogs of pre-Geode versions of BetterInfo have been added for your reading pleasure.
+
+[See v4.2.0 Beta changelogs here](https://github.com/Cvolton/betterinfo-geode/blob/v4.2.0-beta.3/changelog.md)
+
+[See v4.2.0 Alpha changelogs here](https://github.com/Cvolton/betterinfo-geode/blob/0b4fc2c76d6f81faaf1c939b8964515bffa15258/changelog.md)
+
+## v4.1.13 (2024-05-25)
+* Fixed the fix of the fix
+
+## v4.1.12 (2024-05-25)
+* Fixed the fix i dont even care anymore
+
+## v4.1.11 (2024-05-25)
+* Fixed another crash only 2 people ever got
+
+## v4.1.10 (2024-04-30)
+* Fixed a crash only 2 people ever got
+* Fixed random button sometimes jumping to an empty page
+
+## v4.1.9 (2024-04-21)
+* Fixed random crashes caused by conflicts with other mods
+* Added more skibidi rizz (requested by Kynex7510)
+
+## v4.1.8 (2024-04-15)
+* Jump to Last Page button is now pink if it opens Last Page Search
+* Made the Filters popup in Filtered Search open immediately
+* Made the Last Page Search start immediately
+* Fixed Filtered Search button missing from user level search
+* Fixed completion times being shown in UTC
+* Exported function symbols (experimental, for developers)
+* Other bugfixes & improvements
+
+## v4.1.7 (2024-03-28)
+* Fixed a few other obscure crashes
+* Made the mod early-load to make cache load faster
+* Other bugfixes & improvements
+
+## v4.1.6 (2024-03-23)
+* Fixed a few obscure crashes
+* Other bugfixes & improvements
+
+## v4.1.5 (2024-03-16)
+* Fixed some filters not working properly in Filtered Search
+
+## v4.1.4 (2024-03-16)
+* Fixed potential startup crash and lag issues
+* Optimized Filtered Search
+* Other bugfixes & improvements
+
+## v4.1.3 (2024-03-08)
+* Added "Hide Platformer Time" Settings Option
+* Fixed several Android-only crashes
+* Fixed Completed with Coins only working for Saved Levels
+* Improved the accuracy of Exact Level Length
+* Other bugfixes & improvements
+
+## v4.1.2 (2024-03-01)
+* Added better descriptions for