diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 100cea7b9d..4a6affc5aa 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -911,6 +911,16 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
var/homerun_ready = 0
var/homerun_able = 0
total_mass = 2.7 //a regular wooden major league baseball bat weighs somewhere between 2 to 3.4 pounds, according to google
+ var/on_sound
+ var/on = TRUE // Are we on or off
+ var/on_icon_state // What is our sprite when turned on
+ var/off_icon_state // What is our sprite when turned off
+ var/on_item_state // What is our in-hand sprite when turned on
+ var/force_on // Damage when on
+ var/force_off // Damage when off
+ var/throwforce_on // Damage when on
+ var/throwforce_off // Damage when off
+ var/weight_class_on // What is the new size class when turned on
/obj/item/melee/baseball_bat/Initialize()
. = ..()
@@ -992,6 +1002,59 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
force = 18 //Spear damage...
throwforce = 30
+/obj/item/melee/baseball_bat/proc/get_on_description()
+ . = list()
+ .["local_on"] = "You extend the bat."
+ .["local_off"] = "You collapse the bat."
+ return .
+
+/obj/item/melee/baseball_bat/telescopic
+ name = "telescopic baseball bat"
+ desc = "A stealthy telescopic bat that can fit in a pocket when collapsed."
+ icon = 'icons/obj/items_and_weapons.dmi'
+ icon_state = "baseball_bat_telescopic_0"
+ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
+ item_state = null
+ w_class = WEIGHT_CLASS_SMALL
+ item_flags = NONE
+ force = 5
+ throwforce = 10
+ on = FALSE
+ on_sound = 'sound/weapons/batonextend.ogg'
+ on_icon_state = "baseball_bat_telescopic_1"
+ off_icon_state = "baseball_bat_telescopic_0"
+ on_item_state = "baseball_bat_telescopic"
+ force_on = 15
+ force_off = 5
+ throwforce_on = 20
+ throwforce_off = 10
+ weight_class_on = WEIGHT_CLASS_HUGE
+ total_mass = TOTAL_MASS_NORMAL_ITEM
+
+/obj/item/melee/baseball_bat/telescopic/attack_self(mob/user)
+ on = !on
+ var/list/desc = get_on_description()
+ if(on)
+ to_chat(user, desc["local_on"])
+ icon_state = on_icon_state
+ item_state = on_item_state
+ w_class = weight_class_on
+ force = force_on
+ throwforce = throwforce_on
+ attack_verb = list("beat", "smacked")
+ else
+ to_chat(user, desc["local_off"])
+ icon_state = off_icon_state
+ item_state = null //no sprite for concealment even when in hand
+ slot_flags = ITEM_SLOT_BELT
+ w_class = WEIGHT_CLASS_SMALL
+ force = force_off
+ throwforce = throwforce_off
+ attack_verb = list("drubbed", "beaned")
+ playsound(src.loc, on_sound, 50, 1)
+ add_fingerprint(user)
+
/obj/item/melee/flyswatter
name = "flyswatter"
desc = "Useful for killing pests of all sizes."