diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 838019ef1e9..5108ba6efdf 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -382,7 +382,7 @@
return UI_CLOSE
if(!user.can_read(src))
return UI_CLOSE
- if(in_contents_of(/obj/machinery/door/airlock) || in_contents_of(/obj/item/clipboard) || in_contents_of(/obj/item/folder))
+ if(in_contents_of(/obj/machinery/door/airlock) || in_contents_of(/obj/item/clipboard) || in_contents_of(/obj/item/folder) || in_contents_of(/obj/item/toy/plush/tian_plush)) //BUBBER EDIT - /obj/item/toy/plush/tian_plush
return UI_INTERACTIVE
return ..()
diff --git a/modular_zubbers/code/game/objects/items/plushes.dm b/modular_zubbers/code/game/objects/items/plushes.dm
index 8bb325a7682..6886a8054a5 100644
--- a/modular_zubbers/code/game/objects/items/plushes.dm
+++ b/modular_zubbers/code/game/objects/items/plushes.dm
@@ -320,16 +320,6 @@
icon_state = "lazy_synth"
squeak_override = list('modular_zubbers/sound/misc/squeakle.ogg' = 1)
-
-/obj/item/toy/plush/tian_plush
- name = "bureaucratic goat plush"
- desc = "A big, soft plush of a goat-carp creature, that clearly hasn't slept in a lot. It has a faint smell of ink and weed."
- attack_verb_continuous = list("chomps", "nibbles", "gnashes", "bites")
- attack_verb_simple = list("gnashes")
- icon = 'modular_zubbers/icons/obj/toys/plushes.dmi'
- icon_state = "tian_plush"
- squeak_override = list('modular_skyrat/modules/emotes/sound/voice/baa.ogg' = 1)
-
/obj/item/toy/plush/goatplushie
name = "strange goat plushie"
icon = 'modular_zubbers/icons/obj/toys/plushes.dmi'
@@ -494,3 +484,125 @@
icon_state = "myrthel-plush"
update_light()
return ..()
+
+// Plushie coded and sprited by Mathilde.
+// Props to Seijan-Etroix for helping with the design!
+/obj/item/toy/plush/tian_plush
+ name = "bureaucratic goat plush"
+ desc = "A giant, weighted plushie of a goat-carp bureaucrat, who seems to be very hungry for paper(work). It's nearly impossible to get your arms all the way around her.
A tag on the back reads 'Comfort provided under official licence.'"
+ attack_verb_continuous = list("stomps", "smothers", "buries", "squishes", "nibbles", "gnashes", "flattens", "pummels", "chomps")
+ attack_verb_simple = list("stomp", "smother", "bury", "squish", "nibble", "gnash", "flatten", "pummel", "chomp")
+ icon = 'modular_zubbers/icons/obj/toys/plushes.dmi'
+ icon_state = "tianplush"
+ gender = FEMALE
+ squeak_override = list('modular_zubbers/sound/misc/meatybaa.ogg'=1)
+ var/shirt = TRUE
+
+ var/bg_color = "#9b2e8c"
+ var/static/list/folder_insertables = typecacheof(list(
+ /obj/item/paper,
+ /obj/item/photo,
+ /obj/item/documents,
+ /obj/item/paperwork,
+ ))
+
+/obj/item/toy/plush/tian_plush/interact(mob/user)
+ return
+
+/obj/item/toy/plush/tian_plush/attack_self_secondary(mob/user, modifiers)
+ . = ..()
+ if(.)
+ return
+ add_fingerprint(user)
+ ui_interact(user)
+ return TRUE
+
+/obj/item/toy/plush/tian_plush/attack_hand_secondary(mob/user, list/modifiers)
+ . = ..()
+ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
+ return
+ add_fingerprint(user)
+ ui_interact(user)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
+//Plot armour
+/obj/item/toy/plush/tian_plush/attackby(obj/item/I, mob/living/user, list/modifiers, list/attack_modifiers)
+ if(I.get_sharpness())
+ to_chat(user, span_notice("[I] just bounces off!"))
+ return
+ return ..()
+
+//The plushie works exactly like a folder
+/obj/item/toy/plush/tian_plush/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
+ if(is_type_in_typecache(tool, folder_insertables))
+ if(!user.transferItemToLoc(tool, src, silent = FALSE))
+ return ITEM_INTERACT_BLOCKING
+ balloon_alert(user, "nom!")
+ return ITEM_INTERACT_SUCCESS
+ return NONE
+
+/obj/item/toy/plush/tian_plush/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
+ if(!is_type_in_typecache(interacting_with, folder_insertables))
+ return NONE
+ var/obj/item/item_to_insert = interacting_with
+ if(item_to_insert.loc == user)
+ if(!user.transferItemToLoc(item_to_insert, src, silent = TRUE))
+ return ITEM_INTERACT_BLOCKING
+ else
+ item_to_insert.do_pickup_animation(src)
+ item_to_insert.forceMove(src)
+ playsound(src, item_to_insert.pickup_sound, PICKUP_SOUND_VOLUME, item_to_insert.sound_vary, ignore_walls = FALSE)
+ balloon_alert(user, "nom!")
+ return ITEM_INTERACT_SUCCESS
+
+/obj/item/toy/plush/tian_plush/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "Folder")
+ ui.open()
+
+/obj/item/toy/plush/tian_plush/ui_data(mob/user)
+ var/list/data = list()
+ data["bg_color"] = "[bg_color]"
+ data["folder_name"] = "[name]"
+
+ data["contents"] = list()
+ data["contents_ref"] = list()
+ for(var/Content in src)
+ data["contents"] += "[Content]"
+ data["contents_ref"] += "[REF(Content)]"
+
+ return data
+
+/obj/item/toy/plush/tian_plush/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
+ . = ..()
+ if(.)
+ return
+
+ if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED))
+ return
+
+ switch(action)
+ if("remove")
+ var/obj/item/Item = locate(params["ref"]) in src
+ if(istype(Item))
+ Item.forceMove(usr.loc)
+ usr.put_in_hands(Item)
+ to_chat(usr, span_notice("You remove [Item] from [src]."))
+ . = TRUE
+ if("examine")
+ var/obj/item/Item = locate(params["ref"]) in src
+ if(istype(Item))
+ usr.examinate(Item)
+ . = TRUE
+//Belly
+/obj/item/toy/plush/tian_plush/click_alt(mob/user)
+ shirt = !shirt
+ if(!shirt)
+ balloon_alert(user, "tummy shown...")
+ icon_state = "tianplush-alt"
+
+ else
+ balloon_alert(user, "tummy tucked away...")
+ icon_state = "tianplush"
+ return ..()
diff --git a/modular_zubbers/icons/obj/toys/plushes.dmi b/modular_zubbers/icons/obj/toys/plushes.dmi
index af20624458f..13c4c9c64a1 100644
Binary files a/modular_zubbers/icons/obj/toys/plushes.dmi and b/modular_zubbers/icons/obj/toys/plushes.dmi differ
diff --git a/modular_zubbers/sound/misc/meatybaa.ogg b/modular_zubbers/sound/misc/meatybaa.ogg
new file mode 100644
index 00000000000..0ee21a3a517
Binary files /dev/null and b/modular_zubbers/sound/misc/meatybaa.ogg differ