diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
index 118509b..534a9bb 100644
--- a/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
+++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerDamage.java
@@ -1,7 +1,9 @@
 package pw.kaboom.extras.modules.player;
 
+import io.papermc.paper.event.world.WorldGameRuleChangeEvent;
 import net.kyori.adventure.text.Component;
 import org.bukkit.Bukkit;
+import org.bukkit.GameRule;
 import org.bukkit.World;
 import org.bukkit.attribute.Attribute;
 import org.bukkit.attribute.AttributeInstance;
@@ -10,6 +12,7 @@ import org.bukkit.entity.ExperienceOrb;
 import org.bukkit.entity.HumanEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
 import org.bukkit.event.Listener;
 import org.bukkit.event.entity.EntityDamageEvent;
 import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@@ -20,7 +23,13 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.potion.PotionEffect;
 import pw.kaboom.extras.util.Utility;
 
+import java.util.IdentityHashMap;
+import java.util.Map;
+import java.util.Objects;
+
 public final class PlayerDamage implements Listener {
+    private final Map<World, Boolean> deathMessageToggles = new IdentityHashMap<>();
+
     @EventHandler
     void onEntityDamage(final EntityDamageEvent event) {
         if (EntityType.PLAYER.equals(event.getEntityType())) {
@@ -49,12 +58,27 @@ public final class PlayerDamage implements Listener {
         }
     }
 
+    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+    void onGameRuleChange(final WorldGameRuleChangeEvent event) {
+        if (event.getGameRule() != GameRule.SHOW_DEATH_MESSAGES) {
+            return;
+        }
+
+        this.deathMessageToggles.put(event.getWorld(), Boolean.parseBoolean(event.getValue()));
+    }
+
     @EventHandler
     void onPlayerDeath(final PlayerDeathEvent event) {
         final Player player = event.getEntity();
         final Component deathMessage = event.deathMessage();
 
-        if (deathMessage != null) {
+        if (deathMessage != null && this.deathMessageToggles.computeIfAbsent(
+                player.getWorld(),
+                (key) -> Objects.requireNonNullElse(
+                        key.getGameRuleValue(GameRule.SHOW_DEATH_MESSAGES),
+                        key.getGameRuleDefault(GameRule.SHOW_DEATH_MESSAGES)
+                )
+        )) {
             Bukkit.broadcast(deathMessage);
         }