diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73eb4121..cc8c2b9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
## Upcoming changes
* Fixed SendTileRectHandler not sending tile rect updates like Pylons/Mannequins to other clients. (@Stealownz)
* Fix some typos that have been in the repository for over a lustrum. (@Killia0)
+* Added a new `DisablePrimeBombs` config option (`false` by default). Highly recommended to set this to `true` in order to prevent griefing on servers doing a `for the worthy` play-through, since the prime bombs on this seed can destroy most tiles and bypass region protection. (@moisterrific)
## TShock 4.5.5
* Changed the world autosave message so that it no longer warns of a "potential lag spike." (@hakusaro)
diff --git a/TShockAPI/Configuration/TShockConfig.cs b/TShockAPI/Configuration/TShockConfig.cs
index 801a4c5f..7fe74884 100644
--- a/TShockAPI/Configuration/TShockConfig.cs
+++ b/TShockAPI/Configuration/TShockConfig.cs
@@ -156,6 +156,12 @@ namespace TShockAPI.Configuration
/// Disables tombstone dropping during death for all players.
[Description("Disables tombstone dropping during death for all players.")]
public bool DisableTombstones = true;
+
+ ///
+ /// Disables Skeletron Prime Bombs from spawning, useful for preventing unwanted world destruction on for the worthy seed world.
+ ///
+ [Description("Disables Skeletron Prime Bombs from spawning, useful for preventing unwanted world destruction on for the worthy seed world.")]
+ public bool DisablePrimeBombs;
/// Forces the world time to be normal, day, or night.
[Description("Forces the world time to be normal, day, or night.")]
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 5a874e55..16fc1cb9 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -1618,15 +1618,18 @@ namespace TShockAPI
private void OnProjectileSetDefaults(SetDefaultsEventArgs e)
{
//tombstone fix.
- if (e.Info == 43 || (e.Info >= 201 && e.Info <= 205) || (e.Info >= 527 && e.Info <= 531))
+ if (e.Info == ProjectileID.Tombstone || (e.Info >= ProjectileID.GraveMarker && e.Info <= ProjectileID.Obelisk) || (e.Info >= ProjectileID.RichGravestone1 && e.Info <= ProjectileID.RichGravestone5))
if (Config.Settings.DisableTombstones)
e.Object.SetDefaults(0);
- if (e.Info == 75)
+ if (e.Info == ProjectileID.HappyBomb)
if (Config.Settings.DisableClownBombs)
e.Object.SetDefaults(0);
- if (e.Info == 109)
+ if (e.Info == ProjectileID.SnowBallHostile)
if (Config.Settings.DisableSnowBalls)
e.Object.SetDefaults(0);
+ if (e.Info == ProjectileID.BombSkeletronPrime)
+ if (Config.Settings.DisablePrimeBombs)
+ e.Object.SetDefaults(0);
}
/// NetHooks_SendData - Fired when the server sends data.