diff --git a/code/WorkInProgress/Sayu/belt.dm b/code/WorkInProgress/Sayu/belt.dm
new file mode 100644
index 00000000000..1405640b2bb
--- /dev/null
+++ b/code/WorkInProgress/Sayu/belt.dm
@@ -0,0 +1,164 @@
+// -------------------------------------
+// Bluespace Belt
+// -------------------------------------
+
+
+/obj/item/weapon/storage/belt/bluespace
+ name = "Belt of Holding"
+ desc = "The greatest in pants-supporting technology."
+ icon_state = "medicalbelt"
+ item_state = "medical"
+ storage_slots = 14
+ w_class = 4
+ max_w_class = 2
+ max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate
+ origin_tech = "bluespace=4"
+ can_hold = list()
+ New()
+ if(prob(5))
+ //Sometimes people choose justice.
+ //Sometimes justice chooses you.
+ visible_message("That doesn't look like a normal Toolbelt of Holding...")
+ new /obj/item/weapon/storage/belt/bluespace/owlman(loc)
+ spawn(1)
+ del src
+ return
+ ..()
+
+ proc/failcheck(mob/user as mob)
+ if (prob(src.reliability)) return 1 //No failure
+ if (prob(src.reliability))
+ user << "\red The Bluespace portal resists your attempt to add another item." //light failure
+ else
+ user << "\red The Bluespace generator malfunctions!"
+ for (var/obj/O in src.contents) //it broke, delete what was in it
+ del(O)
+ crit_fail = 1
+ return 0
+
+/obj/item/weapon/storage/belt/bluespace/owlman
+ name = "Owlman's utility belt"
+ desc = "Sometimes people choose justice. Sometimes, justice chooses you..."
+ icon_state = "securitybelt"
+ item_state = "security"
+ storage_slots = 14
+ max_w_class = 3
+ max_combined_w_class = 28 // = 14 * 2
+ origin_tech = "bluespace=4;syndicate=2"
+ allow_quick_empty = 1
+ can_hold = list()
+ New()
+ ..()
+ new /obj/item/clothing/mask/gas/owl_mask(src)
+ new /obj/item/clothing/under/owl(src)
+ new /obj/item/weapon/grenade/smokebomb(src)
+ new /obj/item/weapon/grenade/smokebomb(src)
+ new /obj/item/device/detective_scanner(src)
+
+
+
+ // As a last resort, the belt can be used as a plastic explosive with a fixed timer (15 seconds). Naturally, you'll lose all your gear...
+ // Of course, it could be worse. It could spawn a singularity!
+/obj/item/weapon/storage/belt/bluespace/owlman/afterattack(atom/target as obj|turf, mob/user as mob, flag)
+ if (!flag)
+ return
+ if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage) || istype(target, /obj/structure/table) || istype(target, /obj/structure/closet))
+ return
+ user << "Planting explosives..."
+ user.visible_message("[user.name] is fiddling with their toolbelt.")
+ if(ismob(target))
+ user.attack_log += "\[[time_stamp()]\] [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])"
+ log_attack(" [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])")
+ user.visible_message("\red [user.name] is trying to strap a belt to [target.name]!")
+
+
+ if(do_after(user, 50) && in_range(user, target))
+ user.drop_item()
+ target = target
+ loc = null
+ var/location
+ if (isturf(target)) location = target
+ if (ismob(target))
+ target:attack_log += "\[[time_stamp()]\] Had the [name] planted on them by [user.real_name] ([user.ckey])"
+ user.visible_message("\red [user.name] finished planting an explosive on [target.name]!")
+ target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2")
+ user << "You sacrifice your belt for the sake of justice. Timer counting down from 15."
+ spawn(150)
+ if(target)
+ if(ismob(target) || isobj(target))
+ location = target.loc // These things can move
+ explosion(location, -1, -1, 2, 3)
+ if (istype(target, /turf/simulated/wall)) target:dismantle_wall(1)
+ else target.ex_act(1)
+ if (isobj(target))
+ if (target)
+ del(target)
+ if (src)
+ del(src)
+/obj/item/weapon/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
+ return
+
+/obj/item/weapon/storage/belt/bluespace/admin
+ name = "Admin's Tool-belt"
+ desc = "Holds everything for those that run everything."
+ icon_state = "soulstonebelt"
+ item_state = "soulstonebelt"
+ w_class = 10 // permit holding other storage items
+ storage_slots = 28
+ max_w_class = 10
+ max_combined_w_class = 280
+ can_hold = list()
+
+ New()
+ ..()
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/weldingtool/hugetank(src)
+ new /obj/item/weapon/wirecutters(src)
+ new /obj/item/weapon/wrench(src)
+ new /obj/item/device/multitool(src)
+ new /obj/item/weapon/cable_coil(src)
+
+ new /obj/item/weapon/handcuffs(src)
+ new /obj/item/weapon/dnainjector/xraymut(src)
+ new /obj/item/weapon/dnainjector/firemut(src)
+ new /obj/item/weapon/dnainjector/telemut(src)
+ new /obj/item/weapon/dnainjector/hulkmut(src)
+// new /obj/item/weapon/spellbook(src) // for smoke effects, door openings, etc
+// new /obj/item/weapon/magic/spellbook(src)
+
+// new/obj/item/weapon/reagent_containers/hypospray/admin(src)
+
+/obj/item/weapon/storage/belt/bluespace/sandbox
+ name = "Sandbox Mode Toolbelt"
+ desc = "Holds whatever, you can spawn your own damn stuff."
+ w_class = 10 // permit holding other storage items
+ storage_slots = 28
+ max_w_class = 10
+ max_combined_w_class = 280
+ can_hold = list()
+
+ New()
+ ..()
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/weapon/screwdriver(src)
+ new /obj/item/weapon/weldingtool/hugetank(src)
+ new /obj/item/weapon/wirecutters(src)
+ new /obj/item/weapon/wrench(src)
+ new /obj/item/device/multitool(src)
+ new /obj/item/weapon/cable_coil(src)
+
+ new /obj/item/device/analyzer(src)
+ new /obj/item/device/healthanalyzer(src)
+
+
+//Research for the Bluespace Belt
+datum/design/bluespace_belt
+ name = "Experimental Bluespace Belt"
+ desc = "An astonishingly complex belt popularized by a rich blue-space technology magnate."
+ id = "bluespace_belt"
+ req_tech = list("bluespace" = 4, "materials" = 6)
+ build_type = PROTOLATHE
+ materials = list("$gold" = 1500, "$diamond" = 3000, "$uranium" = 1000)
+ reliability_base = 80
+ build_path = "/obj/item/weapon/storage/belt/bluespace"
\ No newline at end of file