diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm
index f1b35b6b350..b450f344d79 100644
--- a/code/game/turfs/simulated/water.dm
+++ b/code/game/turfs/simulated/water.dm
@@ -16,6 +16,8 @@
var/depth = 1 // Higher numbers indicates deeper water.
+ var/reagent_type = "water"
+
/turf/simulated/floor/water/Initialize()
. = ..()
update_icon()
@@ -33,6 +35,21 @@
/turf/simulated/floor/water/get_edge_icon_state()
return "water_shallow"
+/turf/simulated/floor/water/attackby(obj/item/O as obj, mob/user as mob)
+ var/obj/item/weapon/reagent_containers/RG = O
+ if (istype(RG) && RG.is_open_container())
+ RG.reagents.add_reagent(reagent_type, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
+ user.visible_message("[user] fills \the [RG] using \the [src].","You fill \the [RG] using \the [src].")
+ return 1
+
+ else if(istype(O, /obj/item/weapon/mop))
+ O.reagents.add_reagent(reagent_type, 5)
+ to_chat(user, "You wet \the [O] in \the [src].")
+ playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
+ return 1
+
+ else return ..()
+
/turf/simulated/floor/water/return_air_for_internal_lifeform(var/mob/living/L)
if(L && L.lying)
if(L.can_breathe_water()) // For squid.