diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index e5d376e3a3..f8be15d3e4 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -243,6 +243,20 @@
new /obj/item/ammo_casing/shotgun/stunshell(src)
new /obj/item/ammo_casing/shotgun/stunshell(src)
+/obj/item/weapon/storage/box/practiceshells
+ name = "box of practice shells"
+ desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
+
+ New()
+ ..()
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+ new /obj/item/ammo_casing/shotgun/practice(src)
+
/obj/item/weapon/storage/box/sniperammo
name = "box of 14.5mm shells"
desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death."
diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm
index e25d8f39f1..eb2e6f1c1d 100644
--- a/code/modules/projectiles/ammunition/boxes.dm
+++ b/code/modules/projectiles/ammunition/boxes.dm
@@ -40,6 +40,10 @@
name = "magazine (.45 rubber)"
ammo_type = /obj/item/ammo_casing/c45r
+/obj/item/ammo_magazine/c45m/practice
+ name = "magazine (.45 practice)"
+ ammo_type = /obj/item/ammo_casing/c45p
+
/obj/item/ammo_magazine/c45m/flash
name = "magazine (.45 flash)"
ammo_type = "/obj/item/ammo_casing/c45f"
@@ -90,6 +94,10 @@
name = "top mounted magazine (9mm rubber)"
ammo_type = /obj/item/ammo_casing/c9mmr
+/obj/item/ammo_magazine/mc9mmt/practice
+ name = "top mounted magazine (9mm practice)"
+ ammo_type = /obj/item/ammo_casing/c9mmp
+
/obj/item/ammo_magazine/c45
name = "ammunition Box (.45)"
icon_state = "9mm"
@@ -130,6 +138,10 @@
/obj/item/ammo_magazine/a556/empty
initial_ammo = 0
+/obj/item/ammo_magazine/a556/practice
+ name = "magazine (5.56mm practice)"
+ ammo_type = /obj/item/ammo_casing/a556p
+
/obj/item/ammo_magazine/a50
name = "magazine (.50)"
icon_state = "50ae"
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 931555381a..a07e5735c0 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -38,12 +38,22 @@
caliber = "9mm"
projectile_type = /obj/item/projectile/bullet/pistol/rubber
+/obj/item/ammo_casing/c9mmp
+ desc = "A 9mm practice bullet casing."
+ caliber = "9mm"
+ projectile_type = /obj/item/projectile/bullet/pistol/practice
+
/obj/item/ammo_casing/c45
desc = "A .45 bullet casing."
caliber = ".45"
projectile_type = /obj/item/projectile/bullet/pistol/medium
+/obj/item/ammo_casing/c45p
+ desc = "A .45 practice bullet casing."
+ caliber = ".45"
+ projectile_type = /obj/item/projectile/bullet/pistol/practice
+
/obj/item/ammo_casing/c45r
desc = "A .45 rubber bullet casing."
caliber = ".45"
@@ -82,6 +92,13 @@
projectile_type = /obj/item/projectile/bullet/blank
matter = list("metal" = 90)
+/obj/item/ammo_casing/shotgun/practice
+ name = "shotgun shell"
+ desc = "A practice shell."
+ icon_state = "pshell"
+ projectile_type = /obj/item/projectile/bullet/shotgun/practice
+ matter = list("metal" = 90)
+
/obj/item/ammo_casing/shotgun/beanbag
name = "beanbag shell"
desc = "A beanbag shell."
@@ -130,6 +147,11 @@
caliber = "a556"
projectile_type = /obj/item/projectile/bullet/rifle/a556
+/obj/item/ammo_casing/a556p
+ desc = "A 5.56mm practice bullet casing."
+ caliber = "a556"
+ projectile_type = /obj/item/projectile/bullet/rifle/a556/practice
+
/obj/item/ammo_casing/rocket
name = "rocket shell"
desc = "A high explosive designed to be fired from a launcher."
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 977c9e26f4..aea4b2a73a 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -8,7 +8,7 @@
embed = 1
sharp = 1
var/mob_passthrough_check = 0
-
+
muzzle_type = /obj/effect/projectile/bullet/muzzle
/obj/item/projectile/bullet/on_hit(var/atom/target, var/blocked = 0)
@@ -38,8 +38,8 @@
if(ismob(A))
if(!mob_passthrough_check)
return 0
- if(iscarbon(A))
- damage *= 0.7 //squishy mobs absorb KE
+ if(iscarbon(A))
+ damage *= 0.7 //squishy mobs absorb KE
return 1
var/chance = 0
@@ -184,3 +184,15 @@
/obj/item/projectile/bullet/chameleon
damage = 1 // stop trying to murderbone with a fake gun dumbass!!!
embed = 0 // nope
+
+/* Practice */
+
+/obj/item/projectile/bullet/pistol/practice
+ damage = 5
+
+/obj/item/projectile/bullet/rifle/a556/practice
+ damage = 5
+
+/obj/item/projectile/bullet/shotgun/practice
+ name = "practice"
+ damage = 5
\ No newline at end of file
diff --git a/html/changelogs/Yoshax-MoreFunPracticeShoot.YML b/html/changelogs/Yoshax-MoreFunPracticeShoot.YML
new file mode 100644
index 0000000000..0ee6e60259
--- /dev/null
+++ b/html/changelogs/Yoshax-MoreFunPracticeShoot.YML
@@ -0,0 +1,8 @@
+author: Yoshax
+delete-after: True
+
+changes:
+ - rscadd: "Adds practice rounds, both .45 for Sec and Detective's guns, also 9mm top mounted for the Saber, and for the Bulldog
+ - rscadd: "Adds the .45 and 9mm practice rounds to the armory."
+ - rscadd: "Adds all the practice rounds to the autolathe."
+ - tweak: "Adds r_walls to the back of the firing range, leaves the sides normal."
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index 5a2f06d319..779d34c7d1 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ