diff --git a/soh/assets/custom/objects/object_nutbag/BagString b/soh/assets/custom/objects/object_nutbag/BagString
new file mode 100644
index 0000000000..268bfd24ce
Binary files /dev/null and b/soh/assets/custom/objects/object_nutbag/BagString differ
diff --git a/soh/assets/custom/objects/object_nutbag/DekuNut b/soh/assets/custom/objects/object_nutbag/DekuNut
new file mode 100644
index 0000000000..05f3a8afc3
Binary files /dev/null and b/soh/assets/custom/objects/object_nutbag/DekuNut differ
diff --git a/soh/assets/custom/objects/object_nutbag/Gradient b/soh/assets/custom/objects/object_nutbag/Gradient
new file mode 100644
index 0000000000..82a5b9f05e
Binary files /dev/null and b/soh/assets/custom/objects/object_nutbag/Gradient differ
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL
new file mode 100644
index 0000000000..0aa166dae8
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0
new file mode 100644
index 0000000000..e45d8bfefc
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_0
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1
new file mode 100644
index 0000000000..2f7afe4533
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_1
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2
new file mode 100644
index 0000000000..565820b82e
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_2
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3
new file mode 100644
index 0000000000..e9b1a0e893
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_3
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4
new file mode 100644
index 0000000000..5490a11439
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_4
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5
new file mode 100644
index 0000000000..182d778f3d
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_5
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6
new file mode 100644
index 0000000000..a213d8f3ef
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_tri_6
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0
new file mode 100644
index 0000000000..9f4156821a
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_0
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1
new file mode 100644
index 0000000000..10c9ac156e
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_1
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2
new file mode 100644
index 0000000000..e5f2a0a4ba
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_2
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3
new file mode 100644
index 0000000000..ef7510f90f
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_3
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4
new file mode 100644
index 0000000000..36f4bfec85
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_4
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5
new file mode 100644
index 0000000000..11bc189b53
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_5
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6 b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6
new file mode 100644
index 0000000000..fe32ddd972
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/gGiNutBagDL_vtx_6
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque
new file mode 100644
index 0000000000..75a806ac37
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Inside_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque
new file mode 100644
index 0000000000..d74e985807
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_NutTx_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque
new file mode 100644
index 0000000000..63d0611ea2
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Nuts_layerOpaque
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque
new file mode 100644
index 0000000000..30812d81c3
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_Pouch_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque
new file mode 100644
index 0000000000..ad9a88fc1b
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_String_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque
new file mode 100644
index 0000000000..2a2464b863
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_UpgradeColor_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque
new file mode 100644
index 0000000000..b40cfdef13
--- /dev/null
+++ b/soh/assets/custom/objects/object_nutbag/mat_gGiNutBagDL_nutgold_layerOpaque
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/DekuStick b/soh/assets/custom/objects/object_stickbag/DekuStick
new file mode 100644
index 0000000000..f2738a9bfb
Binary files /dev/null and b/soh/assets/custom/objects/object_stickbag/DekuStick differ
diff --git a/soh/assets/custom/objects/object_stickbag/Gradient b/soh/assets/custom/objects/object_stickbag/Gradient
new file mode 100644
index 0000000000..82a5b9f05e
Binary files /dev/null and b/soh/assets/custom/objects/object_stickbag/Gradient differ
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL
new file mode 100644
index 0000000000..f63323866b
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0
new file mode 100644
index 0000000000..8d2e0cc424
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_0
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1
new file mode 100644
index 0000000000..3ff075362d
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_1
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2
new file mode 100644
index 0000000000..1d4edceb29
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_2
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3
new file mode 100644
index 0000000000..df6150612f
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_3
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4
new file mode 100644
index 0000000000..fdbedbdebd
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_4
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5
new file mode 100644
index 0000000000..07cf4d7abd
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_tri_5
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0
new file mode 100644
index 0000000000..483a83fc6c
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_0
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1
new file mode 100644
index 0000000000..804c829564
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_1
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2
new file mode 100644
index 0000000000..065d753da5
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_2
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3
new file mode 100644
index 0000000000..53363b4d07
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_3
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4
new file mode 100644
index 0000000000..81d80bea33
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_4
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5 b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5
new file mode 100644
index 0000000000..ef546688a1
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/gGiStickBagDL_vtx_5
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque
new file mode 100644
index 0000000000..75a806ac37
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Inside_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque
new file mode 100644
index 0000000000..c07c78d316
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Leaf_layerOpaque
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque
new file mode 100644
index 0000000000..f01801307c
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_StickTX_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque
new file mode 100644
index 0000000000..375ce23b87
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Stick_layerOpaque
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque
new file mode 100644
index 0000000000..2a2464b863
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_UpgradeColor_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque
new file mode 100644
index 0000000000..c58f069070
--- /dev/null
+++ b/soh/assets/custom/objects/object_stickbag/mat_gGiStickBagDL_Wrap_layerOpaque
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h
index a384f19537..8a27617fe7 100644
--- a/soh/assets/soh_assets.h
+++ b/soh/assets/soh_assets.h
@@ -215,6 +215,12 @@ static const ALIGN_ASSET(2) char gBombchuBagBodyDL[] = dgBombchuBagBodyDL;
#define dgBombchuBagMaskDL "__OTR__objects/object_bombchubag/gBombchuBagMaskDL"
static const ALIGN_ASSET(2) char gBombchuBagMaskDL[] = dgBombchuBagMaskDL;
+#define dgGiNutBagDL "__OTR__objects/object_nutbag/gGiNutBagDL"
+static const ALIGN_ASSET(2) char gGiNutBagDL[] = dgGiNutBagDL;
+
+#define dgGiStickBagDL "__OTR__objects/object_stickbag/gGiStickBagDL"
+static const ALIGN_ASSET(2) char gGiStickBagDL[] = dgGiStickBagDL;
+
#define dgLargeMajorCrateDL "__OTR__objects/object_kibako2/gLargeMajorCrateDL"
static const ALIGN_ASSET(2) char gLargeMajorCrateDL[] = dgLargeMajorCrateDL;
diff --git a/soh/soh/Enhancements/randomizer/draw.cpp b/soh/soh/Enhancements/randomizer/draw.cpp
index e9ce2b5614..50678184c4 100644
--- a/soh/soh/Enhancements/randomizer/draw.cpp
+++ b/soh/soh/Enhancements/randomizer/draw.cpp
@@ -1299,3 +1299,31 @@ extern "C" void Randomizer_DrawOverworldKey(PlayState* play, GetItemEntry* getIt
CLOSE_DISPS(play->state.gfxCtx);
}
+
+extern "C" void Randomizer_DrawNutBag(PlayState* play, GetItemEntry* getItemEntry) {
+ OPEN_DISPS(play->state.gfxCtx);
+
+ Gfx_SetupDL_26Opa(play->state.gfxCtx);
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
+ G_MTX_MODELVIEW | G_MTX_LOAD);
+ gSPSegment(POLY_OPA_DISP++, 0x08,
+ (uintptr_t)Gfx_TwoTexScrollEx(play->state.gfxCtx, 0, 1 * (play->state.frames * 6),
+ 1 * (play->state.frames * 6), 32, 32, 1, 1 * (play->state.frames * 6),
+ 1 * (play->state.frames * 6), 32, 32, 6, 6, 6, 6));
+
+ gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiNutBagDL);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
+
+extern "C" void Randomizer_DrawStickBag(PlayState* play, GetItemEntry* getItemEntry) {
+ OPEN_DISPS(play->state.gfxCtx);
+
+ Gfx_SetupDL_26Opa(play->state.gfxCtx);
+ gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
+ G_MTX_MODELVIEW | G_MTX_LOAD);
+
+ gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiStickBagDL);
+
+ CLOSE_DISPS(play->state.gfxCtx);
+}
\ No newline at end of file
diff --git a/soh/soh/Enhancements/randomizer/draw.h b/soh/soh/Enhancements/randomizer/draw.h
index dcb3080515..8c27526e8a 100644
--- a/soh/soh/Enhancements/randomizer/draw.h
+++ b/soh/soh/Enhancements/randomizer/draw.h
@@ -33,6 +33,8 @@ void Randomizer_DrawMysteryItem(PlayState* play, GetItemEntry* getItemEntry);
void Randomizer_DrawBombchuBag(PlayState* play, GetItemEntry* getItemEntry);
void Randomizer_DrawOverworldKey(PlayState* play, GetItemEntry* getItemEntry);
void Randomizer_DrawRocsFeather(PlayState* play, GetItemEntry* getItemEntry);
+void Randomizer_DrawNutBag(PlayState* play, GetItemEntry* getItemEntry);
+void Randomizer_DrawStickBag(PlayState* play, GetItemEntry* getItemEntry);
#define GET_ITEM_MYSTERY \
{ \
diff --git a/soh/soh/Enhancements/randomizer/item_list.cpp b/soh/soh/Enhancements/randomizer/item_list.cpp
index 3208c77cbe..3f8ab70871 100644
--- a/soh/soh/Enhancements/randomizer/item_list.cpp
+++ b/soh/soh/Enhancements/randomizer/item_list.cpp
@@ -408,7 +408,9 @@ void Rando::StaticData::InitItemTable() {
itemTable[RG_BOMB_BAG_INF] = Item(RG_BOMB_BAG_INF, Text{ "Infinite Bomb Bag", "Sac de Bombes Infini", "Unendliche Bombentasche" }, ITEMTYPE_ITEM, RG_BOMB_BAG_INF, true, LOGIC_PROGRESSIVE_BOMB_BAG, RHT_BOMB_BAG_INF, RG_BOMB_BAG_INF, OBJECT_GI_BOMBPOUCH, GID_BOMB_BAG_40, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "le ", "die "}).CustomIcon(gItemIconBombBag40Tex);
itemTable[RG_BULLET_BAG_INF] = Item(RG_BULLET_BAG_INF, Text{ "Infinite Bullet Bag", "Sac de Graines Infinis", "Unendliche Samentasche" }, ITEMTYPE_ITEM, RG_BULLET_BAG_INF, true, LOGIC_PROGRESSIVE_BULLET_BAG, RHT_BULLET_BAG_INF, RG_BULLET_BAG_INF, OBJECT_GI_DEKUPOUCH, GID_BULLET_BAG, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "le ", "die "}).CustomIcon(gItemIconBulletBag50Tex);
itemTable[RG_STICK_UPGRADE_INF] = Item(RG_STICK_UPGRADE_INF, Text{ "Infinite Stick Capacity", "Bâtons Mojo Infinis", "Unendliche Stab-Kapazität" }, ITEMTYPE_ITEM, RG_STICK_UPGRADE_INF, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_STICK_UPGRADE_INF, RG_STICK_UPGRADE_INF, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "die "}).CustomIcon(gItemIconDekuStickTex);
+ itemTable[RG_STICK_UPGRADE_INF].SetCustomDrawFunc(Randomizer_DrawStickBag);
itemTable[RG_NUT_UPGRADE_INF] = Item(RG_NUT_UPGRADE_INF, Text{ "Infinite Nut Capacity", "Noix Mojo Infinies", "Unendliche Nuß-Kapazität" }, ITEMTYPE_ITEM, RG_NUT_UPGRADE_INF, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NUT_UPGRADE_INF, RG_NUT_UPGRADE_INF, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "die "}).CustomIcon(gItemIconDekuNutTex);
+ itemTable[RG_NUT_UPGRADE_INF].SetCustomDrawFunc(Randomizer_DrawNutBag);
itemTable[RG_MAGIC_INF] = Item(RG_MAGIC_INF, Text{ "Infinite Magic Meter", "Magie Infinie", "Unendliches Magisches Maß" }, ITEMTYPE_ITEM, RG_MAGIC_INF, true, LOGIC_PROGRESSIVE_MAGIC, RHT_MAGIC_INF, RG_MAGIC_INF, OBJECT_GI_MAGICPOT, GID_MAGIC_LARGE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "la ", "die "}).CustomIcon(gQuestIconMagicJarBigTex, ICON_SIZE_24);
itemTable[RG_BOMBCHU_INF] = Item(RG_BOMBCHU_INF, Text{ "Infinite Bombchus", "Missiles Teigneux Infinis", "Unendliche Krabbelminen" }, ITEMTYPE_ITEM, RG_BOMBCHU_INF, true, LOGIC_BOMBCHUS, RHT_BOMBCHU_INF, RG_BOMBCHU_INF, OBJECT_GI_BOMB_2, GID_BOMBCHU, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_LESSER, MOD_RANDOMIZER, {"the ", "les ", "den "}).CustomIcon(gItemIconBombchuTex);
itemTable[RG_BOMBCHU_INF].SetCustomDrawFunc(Randomizer_DrawBombchuBag);
@@ -418,8 +420,9 @@ void Rando::StaticData::InitItemTable() {
itemTable[RG_SKELETON_KEY].SetCustomDrawFunc(Randomizer_DrawSkeletonKey);
itemTable[RG_DEKU_STICK_BAG] = Item(RG_DEKU_STICK_BAG, Text{ "Deku Stick Bag", "Sac de Bâton Mojo", "Deku-Stab-Tasche" }, ITEMTYPE_ITEM, GI_STICK_UPGRADE_30, true, LOGIC_PROGRESSIVE_STICK_BAG, RHT_NONE, RG_DEKU_STICK_BAG, OBJECT_GI_STICK, GID_STICK, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"a ", "un ", "eine "}).CustomIcon(gItemIconDekuStickTex);
-
+ itemTable[RG_DEKU_STICK_BAG].SetCustomDrawFunc(Randomizer_DrawStickBag);
itemTable[RG_DEKU_NUT_BAG] = Item(RG_DEKU_NUT_BAG, Text{ "Deku Nut Bag", "Sac de Noix Mojo", "Deku-Nuß-Tasche" }, ITEMTYPE_ITEM, GI_NUT_UPGRADE_30, true, LOGIC_PROGRESSIVE_NUT_BAG, RHT_NONE, RG_DEKU_NUT_BAG, OBJECT_GI_NUTS, GID_NUTS, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"a ", "un ", "eine "}).CustomIcon(gItemIconDekuNutTex);
+ itemTable[RG_DEKU_NUT_BAG].SetCustomDrawFunc(Randomizer_DrawNutBag);
itemTable[RG_TRIFORCE] = Item(RG_TRIFORCE, Text{ "Triforce", "Triforce", "Triforce" }, ITEMTYPE_ITEM, RG_TRIFORCE, true, LOGIC_NONE, RHT_NONE, RG_TRIFORCE, OBJECT_GI_BOMB_2, GID_TRIFORCE_PIECE, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_RANDOMIZER, {"the ", "la ", "die "}).CustomIcon(gTriforcePieceTex);;
itemTable[RG_HINT] = Item(RG_HINT, Text{ "Hint", "Indice", "Hinweis" }, ITEMTYPE_EVENT, RG_HINT, false, LOGIC_NONE, RHT_NONE, ITEM_CATEGORY_LESSER);