diff --git a/PKHeX.Core/Resources/text/script/flags_frlg_en.txt b/PKHeX.Core/Resources/text/script/flags_frlg_en.txt
index e69de29bb..8c18cec0c 100644
--- a/PKHeX.Core/Resources/text/script/flags_frlg_en.txt
+++ b/PKHeX.Core/Resources/text/script/flags_frlg_en.txt
@@ -0,0 +1,13 @@
+0082 Moltres Captured
+0093 Zapdos Captured
+0129 Mewtwo Captured
+0130 Articuno Captured
+0703 Zapdos Defeated
+0x820 BADGE01_GET
+0x821 BADGE02_GET
+0x822 BADGE03_GET
+0x823 BADGE04_GET
+0x824 BADGE05_GET
+0x825 BADGE06_GET
+0x826 BADGE07_GET
+0x827 BADGE08_GET
\ No newline at end of file
diff --git a/PKHeX.Core/Saves/SAV3.cs b/PKHeX.Core/Saves/SAV3.cs
index d83db06bf..cefed1ff0 100644
--- a/PKHeX.Core/Saves/SAV3.cs
+++ b/PKHeX.Core/Saves/SAV3.cs
@@ -262,7 +262,7 @@ protected override byte[] Write(bool DSV)
public override int NickLength => 10;
public override int MaxMoney => 999999;
protected override int EventFlagMax => 8 * (E ? 300 : 288); // 0x960 E, else 0x900
- protected override int EventConstMax => EventConst > 0 ? 0x100 : int.MinValue;
+ protected override int EventConstMax => 0x100;
public override bool HasParty => true;
@@ -383,7 +383,7 @@ public int PlayedFrames
public override bool GetEventFlag(int flagNumber)
{
- if (flagNumber > EventFlagMax)
+ if (flagNumber >= EventFlagMax)
throw new ArgumentException($"Event Flag to get ({flagNumber}) is greater than max ({EventFlagMax}).");
var start = EventFlag;
@@ -397,7 +397,7 @@ public override bool GetEventFlag(int flagNumber)
public override void SetEventFlag(int flagNumber, bool value)
{
- if (flagNumber > EventFlagMax)
+ if (flagNumber >= EventFlagMax)
throw new ArgumentException($"Event Flag to set ({flagNumber}) is greater than max ({EventFlagMax}).");
var start = EventFlag;
diff --git a/PKHeX.Core/Saves/SaveFile.cs b/PKHeX.Core/Saves/SaveFile.cs
index 570dbf5b5..494ac0e64 100644
--- a/PKHeX.Core/Saves/SaveFile.cs
+++ b/PKHeX.Core/Saves/SaveFile.cs
@@ -311,7 +311,7 @@ public ushort[] EventConsts
/// Flag is Set (true) or not Set (false)
public virtual bool GetEventFlag(int flagNumber)
{
- if (flagNumber > EventFlagMax)
+ if (flagNumber >= EventFlagMax)
throw new ArgumentException($"Event Flag to get ({flagNumber}) is greater than max ({EventFlagMax}).");
return GetFlag(EventFlag + (flagNumber >> 3), flagNumber & 7);
}
@@ -324,7 +324,7 @@ public virtual bool GetEventFlag(int flagNumber)
/// Flag is Set (true) or not Set (false)
public virtual void SetEventFlag(int flagNumber, bool value)
{
- if (flagNumber > EventFlagMax)
+ if (flagNumber >= EventFlagMax)
throw new ArgumentException($"Event Flag to set ({flagNumber}) is greater than max ({EventFlagMax}).");
SetFlag(EventFlag + (flagNumber >> 3), flagNumber & 7, value);
}