diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua
index f4c6e063b..4ad960bc2 100644
--- a/mods/ENTITIES/mcl_mobs/api.lua
+++ b/mods/ENTITIES/mcl_mobs/api.lua
@@ -2160,7 +2160,9 @@ local follow_flop = function(self)
self.object:set_acceleration({x = 0, y = DEFAULT_FALL_SPEED, z = 0})
local sdef = minetest.registered_nodes[self.standing_on]
+ -- Flop on ground
if sdef and sdef.walkable then
+ mob_sound(self, "flop")
self.object:set_velocity({
x = math.random(-FLOP_HOR_SPEED, FLOP_HOR_SPEED),
y = FLOP_HEIGHT,
diff --git a/mods/ENTITIES/mcl_mobs/api.txt b/mods/ENTITIES/mcl_mobs/api.txt
index 6e790f2d5..fa3510ca8 100644
--- a/mods/ENTITIES/mcl_mobs/api.txt
+++ b/mods/ENTITIES/mcl_mobs/api.txt
@@ -151,6 +151,7 @@ functions needed for the mob to work properly which contains the following:
'damage' sound heard when mob is hurt.
'death' played when mob is killed.
'jump' played when mob jumps. There's a built-in cooloff timer to avoid sound spam
+ 'flop' played when mob flops (like a stranded fish)
'fuse' sound played when mob explode timer starts.
'explode' sound played when mob explodes.
diff --git a/mods/ENTITIES/mobs_mc/LICENSE-media.md b/mods/ENTITIES/mobs_mc/LICENSE-media.md
index 2c8fcb180..6e3355421 100644
--- a/mods/ENTITIES/mobs_mc/LICENSE-media.md
+++ b/mods/ENTITIES/mobs_mc/LICENSE-media.md
@@ -136,6 +136,10 @@ Origin of those models:
* `mobs_mc_blaze_breath.ogg`
* `mobs_mc_blaze_died.ogg`
* `mobs_mc_squid_hurt.ogg`
+* [kyles](https://freesound.org/people/kyles/)
+ * `mobs_mc_squid_flop.*.ogg` (CC0)
+ * Source:
+ * `mobs_mc_squid_flop.*.ogg` (CC0)
* [thefilmbakery](https://freesound.org/people/thefilmbakery/) (CC0)
* `mobs_mc_blaze_hurt.ogg`
* Source:
diff --git a/mods/ENTITIES/mobs_mc/guardian.lua b/mods/ENTITIES/mobs_mc/guardian.lua
index 4a7152acd..896dd4b30 100644
--- a/mods/ENTITIES/mobs_mc/guardian.lua
+++ b/mods/ENTITIES/mobs_mc/guardian.lua
@@ -30,6 +30,7 @@ mobs:register_mob("mobs_mc:guardian", {
war_cry = "mobs_mc_guardian_random",
damage = {name="mobs_mc_guardian_hurt", gain=0.3},
death = "mobs_mc_guardian_death",
+ flop = "mobs_mc_squid_flop",
distance = 16,
},
animation = {
diff --git a/mods/ENTITIES/mobs_mc/guardian_elder.lua b/mods/ENTITIES/mobs_mc/guardian_elder.lua
index 2eab57417..e290af52a 100644
--- a/mods/ENTITIES/mobs_mc/guardian_elder.lua
+++ b/mods/ENTITIES/mobs_mc/guardian_elder.lua
@@ -32,6 +32,7 @@ mobs:register_mob("mobs_mc:guardian_elder", {
war_cry = "mobs_mc_guardian_random",
damage = {name="mobs_mc_guardian_hurt", gain=0.3},
death = "mobs_mc_guardian_death",
+ flop = "mobs_mc_squid_flop",
base_pitch = 0.6,
distance = 16,
},
diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.1.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.1.ogg
new file mode 100644
index 000000000..0fde5dc80
Binary files /dev/null and b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.1.ogg differ
diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.2.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.2.ogg
new file mode 100644
index 000000000..0a2efd469
Binary files /dev/null and b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.2.ogg differ
diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.3.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.3.ogg
new file mode 100644
index 000000000..d371fc7ae
Binary files /dev/null and b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.3.ogg differ
diff --git a/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.4.ogg b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.4.ogg
new file mode 100644
index 000000000..956db6ac4
Binary files /dev/null and b/mods/ENTITIES/mobs_mc/sounds/mobs_mc_squid_flop.4.ogg differ
diff --git a/mods/ENTITIES/mobs_mc/squid.lua b/mods/ENTITIES/mobs_mc/squid.lua
index 12e4a8f59..bb72d4601 100644
--- a/mods/ENTITIES/mobs_mc/squid.lua
+++ b/mods/ENTITIES/mobs_mc/squid.lua
@@ -24,6 +24,7 @@ mobs:register_mob("mobs_mc:squid", {
sounds = {
damage = "mobs_mc_squid_hurt",
death = "mobs_mc_squid_hurt",
+ flop = "mobs_mc_squid_flop",
-- TODO: sounds: random, damage, death
distance = 16,
},