diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index a5c7ddc0f94..d1825dc3583 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -75,3 +75,38 @@
/obj/item/weapon/gun/magic/shoot_with_empty_chamber(mob/living/user)
to_chat(user, "The [name] whizzles quietly.")
return
+
+/obj/item/weapon/gun/magic/wand
+ name = "wand of nothing"
+ desc = "This wand is boring to watch because... it cant do anything."
+ icon = 'icons/obj/wizard.dmi'
+ icon_state = "wand_null"
+ item_state = "wand_null"
+ fire_sound = 'sound/weapons/guns/gunpulse_emitter.ogg'
+ flags = CONDUCT
+ slot_flags = SLOT_FLAGS_BACK
+ w_class = SIZE_NORMAL
+ max_charges = 1 /*Weaker that staff, but cheaper*/
+ charges = 0
+ recharge_rate = 1 /* Recharge spells = origin spell cooldown*/
+ charge_tick = 0
+ can_charge = 1
+ ammo_type = /obj/item/ammo_casing/magic
+ global_access = TRUE /*Yes, it is intentional - Ro2tCrab*/
+ origin_tech = null
+ item_action_types = null
+ clumsy_check = 0
+ can_suicide_with = FALSE
+ can_be_holstered = FALSE
+
+ lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands
+ righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+
+/obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user)
+ user.visible_message(" [user] zaps self with [src].")
+ playsound(user, fire_sound, VOL_EFFECTS_MASTER, TRUE)
+
+/obj/item/weapon/gun/magic/wand/attack(mob/living/M, mob/living/user, def_zone)
+ if(M == user)
+ zap_self()
+ ..()
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
new file mode 100644
index 00000000000..5a81b3be60b
--- /dev/null
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -0,0 +1,59 @@
+/obj/item/weapon/gun/magic/wand/healing
+ name = "wand of healing"
+ desc = "An artefact that uses healing magics to heal the living and revive the dead. Rarely utilized on others, for some reason"
+ ammo_type = /obj/item/ammo_casing/magic/change
+ icon_state = "staffofchange"
+ item_state = "staffofchange"
+ fire_delay = 120
+ max_charges = 1
+ var/heal_power = 20
+/obj/item/weapon/gun/magic/wand/healing/zap_self(mob/living/user)
+ ..()
+ if(isliving(user))
+ user.apply_damages(heal_power, heal_power, heal_power, heal_power, heal_power, heal_power)
+ user.apply_effects(heal_power, heal_power, heal_power, heal_power, heal_power, heal_power, heal_power, heal_power)
+ to_chat(user, " Ты чувствуешь себя лучше! )")
+
+/obj/item/weapon/gun/magic/wand/blink
+ name = "staff of blink"
+ desc = "An artefact that makes no qualms about depositing teleportees in space, fires, or the center of a black hole."
+ ammo_type = /obj/item/ammo_casing/magic/animate
+ icon_state = "staffofanimation"
+ item_state = "staffofanimation"
+
+/obj/item/weapon/gun/magic/wand/fireball
+ name = "wand of fireball"
+ desc = "A useful artefact for burning those you don't like and everyone else too. Point away from face."
+ ammo_type = /obj/item/ammo_casing/magic/heal
+ icon_state = "staffofhealing"
+ item_state = "staffofhealing"
+ ammo_type = /obj/item/ammo_casing/magic/fireball
+
+/obj/item/weapon/gun/magic/wand/forcewall
+ name = "staff of walls"
+ desc = "An artefact that spits bolts of transformative magic that can create walls."
+ ammo_type = /obj/item/projectile/atom_create/magic
+ icon_state = "staffofdoor"
+ item_state = "staffofdoor"
+ fire_sound = 'sound/magic/Staff_Door.ogg'
+
+/obj/item/weapon/gun/magic/wand/magic_mirror
+ name = "wand of mirrors"
+ icon_state = "lavastaff"
+ item_state = "lavastaff"
+ desc = "An artefact that contains powers of magic mirror."
+ ammo_type = /obj/item/ammo_casing/magic/fireball
+
+/obj/item/weapon/gun/magic/wand/mob_alchemy/magic_carp
+ name = "wand of corpse melting"
+ icon_state = "lavastaff"
+ item_state = "lavastaff"
+ desc = "An artefact that turns corpses into aggresive blood cloths"
+ ammo_type = /obj/item/ammo_casing/magic/fireball
+
+/obj/item/weapon/gun/magic/wand/stone
+ name = "wand of corpse melting"
+ icon_state = "lavastaff"
+ item_state = "lavastaff"
+ desc = "An artefact that turns corpses into aggresive blood cloths"
+ ammo_type = /obj/item/ammo_casing/magic/fireball
diff --git a/code/modules/projectiles/projectile/atom_create b/code/modules/projectiles/projectile/atom_create
new file mode 100644
index 00000000000..9ea93ffcac1
--- /dev/null
+++ b/code/modules/projectiles/projectile/atom_create
@@ -0,0 +1,9 @@
+// For those cases when we need to create an ATOM at the point of impact
+
+/obj/item/projectile/atom_create
+var/atom/effect = null //effect we want to spawn
+
+/obj/item/projectile/atom_create/Bump(atom/A, forced)
+ . = ..()
+ if(A == original)
+ bumped = TRUE
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index 9ab7d84d23c..9aad290ddca 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -266,3 +266,13 @@
var/throwdir = get_dir(firer,target)
T.throw_at(get_edge_target_turf(target, throwdir),10,10)
return 1
+
+/obj/item/projectile/magic/wand/
+ name = "bolt of nothing"
+ icon_state = "ice_1"
+ light_color = "#00bfff"
+
+/obj/item/projectile/atom_create/magic
+ name = "bolt of nothing creation"
+ icon_state = "ice_1"
+ light_color = "#00bfff"