diff --git a/PKHeX.Core/Saves/Substructures/Gen7/BelugaBlockIndex.cs b/PKHeX.Core/Saves/Substructures/Gen7/BelugaBlockIndex.cs
new file mode 100644
index 000000000..af88036c9
--- /dev/null
+++ b/PKHeX.Core/Saves/Substructures/Gen7/BelugaBlockIndex.cs
@@ -0,0 +1,29 @@
+namespace PKHeX.Core
+{
+ public enum BelugaBlockIndex
+ {
+ /* 00 @ 0x00000, len = 0x00D90 */ MyItem,
+ /* 01 @ 0x00E00, len = 0x00200 */ _01,
+ /* 02 @ 0x01000, len = 0x00168 */ MyStatus,
+ /* 03 @ 0x01200, len = 0x01800 */ EventWork,
+ /* 04 @ 0x02A00, len = 0x020E8 */ Zukan,
+ /* 05 @ 0x04C00, len = 0x00930 */ Misc, // rival stuff
+ /* 06 @ 0x05600, len = 0x00004 */ ConfigSave,
+ /* 07 @ 0x05800, len = 0x00130 */ PlayerGeoLocation,
+ /* 08 @ 0x05A00, len = 0x00012 */ PokeListHeader,
+ /* 09 @ 0x05C00, len = 0x3F7A0 */ PokeListPokemon,
+ /* 10 @ 0x45400, len = 0x00008 */ PlayTime,
+ /* 11 @ 0x45600, len = 0x00E90 */ _11,
+ /* 12 @ 0x46600, len = 0x010A4 */ _12,
+ /* 13 @ 0x47800, len = 0x000F0 */ _13,
+ /* 14 @ 0x47A00, len = 0x06010 */ _14,
+ /* 15 @ 0x4DC00, len = 0x00200 */ _15, // stuff containing data about recent captures?
+ /* 16 @ 0x4DE00, len = 0x00098 */ _16,
+ /* 17 @ 0x4E000, len = 0x00068 */ _17,
+ /* 18 @ 0x4E200, len = 0x69780 */ GoGoPark,
+ /* 19 @ 0xB7A00, len = 0x000B0 */ GoGoParkNames,
+ /* 20 @ 0xB7C00, len = 0x00940 */ _20, // Go Park Names
+
+ Record,
+ }
+}
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/EventVarType.cs b/PKHeX.Core/Saves/Substructures/Gen7/EventVarType.cs
new file mode 100644
index 000000000..3d03f3748
--- /dev/null
+++ b/PKHeX.Core/Saves/Substructures/Gen7/EventVarType.cs
@@ -0,0 +1,34 @@
+namespace PKHeX.Core
+{
+ public enum EventVarType
+ {
+ ///
+ /// Toggles data in the map.
+ ///
+ Zone,
+
+ ///
+ /// Toggles certain game features on and off.
+ ///
+ System,
+
+ ///
+ /// Hides overworld entities if flag is set.
+ ///
+ /// Flag only
+ Vanish,
+
+ ///
+ /// Tweaks overworld entities depending on the work value.
+ ///
+ /// Work Value only
+ ///
+ ///
+ Scene = Vanish,
+
+ ///
+ /// Tracks game progress.
+ ///
+ Event,
+ }
+}
\ No newline at end of file
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/IEventWork.cs b/PKHeX.Core/Saves/Substructures/Gen7/IEventWork.cs
new file mode 100644
index 000000000..fbb4aae6f
--- /dev/null
+++ b/PKHeX.Core/Saves/Substructures/Gen7/IEventWork.cs
@@ -0,0 +1,23 @@
+namespace PKHeX.Core
+{
+ public interface IEventWork
+ {
+ int MaxFlag { get; }
+ int MaxWork { get; }
+
+ T GetWork(int index);
+ void SetWork(int index, T value);
+ T GetWork(EventVarType type, int index);
+ void SetWork(EventVarType type, int index, T value);
+
+ bool GetFlag(int index);
+ void SetFlag(int index, bool value = true);
+ bool GetFlag(EventVarType type, int index);
+ void SetFlag(EventVarType type, int index, bool value = true);
+
+ EventVarType GetFlagType(int index, out int subIndex);
+ EventVarType GetWorkType(int index, out int subIndex);
+ int GetFlagRawIndex(EventVarType type, int index);
+ int GetWorkRawIndex(EventVarType type, int index);
+ }
+}
\ No newline at end of file
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/MyItem.cs b/PKHeX.Core/Saves/Substructures/Gen7/MyItem.cs
new file mode 100644
index 000000000..0f0df519d
--- /dev/null
+++ b/PKHeX.Core/Saves/Substructures/Gen7/MyItem.cs
@@ -0,0 +1,8 @@
+namespace PKHeX.Core
+{
+ public abstract class MyItem : SaveBlock
+ {
+ public abstract InventoryPouch[] Inventory { get; set; }
+ protected MyItem(SaveFile SAV) : base(SAV) { }
+ }
+}
\ No newline at end of file
diff --git a/PKHeX.Core/Saves/Substructures/Gen7/PouchSize7b.cs b/PKHeX.Core/Saves/Substructures/Gen7/PouchSize7b.cs
new file mode 100644
index 000000000..fb4ebcf81
--- /dev/null
+++ b/PKHeX.Core/Saves/Substructures/Gen7/PouchSize7b.cs
@@ -0,0 +1,40 @@
+namespace PKHeX.Core
+{
+ public static class PouchSize7b
+ {
+ ///
+ /// Pouch0 Item Max Capacity
+ ///
+ public const int Medicine = 60;
+
+ ///
+ /// Pouch1 Item Max Capacity
+ ///
+ public const int TM = 108;
+
+ ///
+ /// Pouch2 Item Max Capacity
+ ///
+ public const int Candy = 200;
+
+ ///
+ /// Pouch3 Item Max Capacity
+ ///
+ public const int PowerUp = 150;
+
+ ///
+ /// Pouch4 Item Max Capacity
+ ///
+ public const int Catching = 50;
+
+ ///
+ /// Pouch5 Item Max Capacity
+ ///
+ public const int Battle = 150;
+
+ ///
+ /// Pouch6 Item Max Capacity
+ ///
+ public const int Items = 150;
+ }
+}
\ No newline at end of file