diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
index c410bc58927..60f9226bc4e 100644
--- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
@@ -33,6 +33,32 @@
desc = "Your standard drinking glass."
center_of_mass = list("x"=16, "y"=10)
+/obj/item/reagent_containers/food/drinks/drinkingglass/afterattack(var/atom/target, var/mob/user, var/proximity, var/params)
+ if(ishuman(target) && user.a_intent == I_HELP && (user.zone_sel.selecting == BP_L_HAND || user.zone_sel.selecting == BP_R_HAND))
+ if(!user.Adjacent(target))
+ return
+ var/mob/living/carbon/human/H = target
+ var/obj/item/reagent_containers/food/drinks/drinkingglass/glass = H.get_type_in_hands(/obj/item/reagent_containers/food/drinks/drinkingglass)
+ if(!use_check(H))
+ to_chat(user, SPAN_WARNING("[H] is in no condition to perform a toast!"))
+ return
+ else if(!glass)
+ to_chat(user, SPAN_WARNING("[H] needs to be holding a glass to perform a toast."))
+ return
+ else
+ user.visible_message("[user] holds \the [src] out for a toast with [H].")
+ if(alert(H,"[user] wants to do a toast with you. Will you accept it?",,"Yes","No") == "No")
+ H.visible_message("[H] pushes [user]'s hand away.")
+ return
+ if(!user.Adjacent(H))
+ to_chat(user, SPAN_WARNING("You need to remain next to [H]!"))
+ to_chat(H, SPAN_WARNING("You need to remain next to [user]!"))
+ return
+ user.visible_message("[user] clinks \the [src] with [H]'s [glass.name].")
+ playsound(user.loc, pick('sound/items/glass_clink_1.ogg', 'sound/items/glass_clink_2.ogg', 'sound/items/glass_clink_3.ogg'), 50, 0, vary = FALSE)
+ return
+ ..()
+
// for /obj/machinery/vending/sovietsoda
/obj/item/reagent_containers/food/drinks/drinkingglass/soda
reagents_to_add = list(/decl/reagent/drink/sodawater = 50)
diff --git a/html/changelogs/Toasting.yml b/html/changelogs/Toasting.yml
new file mode 100644
index 00000000000..87c253559c4
--- /dev/null
+++ b/html/changelogs/Toasting.yml
@@ -0,0 +1,6 @@
+author: TheGreyWolf
+
+delete-after: True
+
+changes:
+ - rscadd: "You can now do toasts! Hold a glass (including normal drinking ones, most special bar glasses and coffee cups), target the hands and click on another person also hoding a glass while on help intent."
diff --git a/sound/items/glass_clink_1.ogg b/sound/items/glass_clink_1.ogg
new file mode 100644
index 00000000000..7f74b382740
Binary files /dev/null and b/sound/items/glass_clink_1.ogg differ
diff --git a/sound/items/glass_clink_2.ogg b/sound/items/glass_clink_2.ogg
new file mode 100644
index 00000000000..fa8a6730ab1
Binary files /dev/null and b/sound/items/glass_clink_2.ogg differ
diff --git a/sound/items/glass_clink_3.ogg b/sound/items/glass_clink_3.ogg
new file mode 100644
index 00000000000..45124219ad9
Binary files /dev/null and b/sound/items/glass_clink_3.ogg differ