diff --git a/src/Persistence/Initialization/VersionSeasonSix/Events/HeykelSavasiInitializer.cs b/src/Persistence/Initialization/VersionSeasonSix/Events/HeykelSavasiInitializer.cs
new file mode 100644
index 0000000..5a5374a
--- /dev/null
+++ b/src/Persistence/Initialization/VersionSeasonSix/Events/HeykelSavasiInitializer.cs
@@ -0,0 +1,51 @@
+//
+// Licensed under the MIT License. See LICENSE file in the project root for full license information.
+//
+
+namespace MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix.Events;
+
+using MUnique.OpenMU.DataModel.Configuration;
+using MUnique.OpenMU.Persistence.Initialization.VersionSeasonSix.Maps;
+
+///
+/// The initializer for the Heykel Savasi event.
+///
+internal class HeykelSavasiInitializer : InitializerBase
+{
+ ///
+ /// The Zen reward given to each member of the winning team (applied directly by the event context, not via ).
+ ///
+ public const int WinnerZenReward = 10_000_000;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The context.
+ /// The game configuration.
+ public HeykelSavasiInitializer(IContext context, GameConfiguration gameConfiguration)
+ : base(context, gameConfiguration)
+ {
+ }
+
+ ///
+ public override void Initialize()
+ {
+ var heykelSavasi = this.Context.CreateNew();
+ heykelSavasi.SetGuid((short)MiniGameType.HeykelSavasi, 0);
+ this.GameConfiguration.MiniGameDefinitions.Add(heykelSavasi);
+ heykelSavasi.Name = "Heykel Savasi";
+ heykelSavasi.Description = "Takim vs takim heykel kirma savasi.";
+ heykelSavasi.Type = MiniGameType.HeykelSavasi;
+ heykelSavasi.GameLevel = 0;
+ heykelSavasi.MapCreationPolicy = MiniGameMapCreationPolicy.Shared;
+ heykelSavasi.EnterDuration = TimeSpan.FromMinutes(5);
+ heykelSavasi.GameDuration = TimeSpan.FromMinutes(5);
+ heykelSavasi.ExitDuration = TimeSpan.FromSeconds(15);
+ heykelSavasi.MaximumPlayerCount = 20;
+ heykelSavasi.AllowParty = false;
+ heykelSavasi.SaveRankingStatistics = false;
+ heykelSavasi.Entrance = this.GameConfiguration.Maps
+ .First(m => m.Number == HeykelSavasiMap.Number)
+ .ExitGates.First(g => g.IsSpawnGate); // Fallback entrance; the real per-team base gate is chosen by the join action.
+ }
+}
diff --git a/src/Persistence/Initialization/VersionSeasonSix/GameConfigurationInitializer.cs b/src/Persistence/Initialization/VersionSeasonSix/GameConfigurationInitializer.cs
index fc67f51..8433836 100644
--- a/src/Persistence/Initialization/VersionSeasonSix/GameConfigurationInitializer.cs
+++ b/src/Persistence/Initialization/VersionSeasonSix/GameConfigurationInitializer.cs
@@ -88,6 +88,7 @@ public class GameConfigurationInitializer : GameConfigurationInitializerBase
new DevilSquareInitializer(this.Context, this.GameConfiguration).Initialize();
new BloodCastleInitializer(this.Context, this.GameConfiguration).Initialize();
new ChaosCastleInitializer(this.Context, this.GameConfiguration).Initialize();
+ new HeykelSavasiInitializer(this.Context, this.GameConfiguration).Initialize();
}
private void CreateJewelMixes()