diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index 4e7ad477e2..377020e33a 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -45,13 +45,14 @@ Contents:
var/s_delay = 40//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability.
var/a_transfer = 20//How much radium is used per adrenaline boost.
var/a_maxamount = 7//Maximum number of adrenaline boosts.
+ var/s_maxamount = 20//Maximum number of smoke bombs.
//Support function variables.
var/s_active = 0//Stealth off.
var/s_busy = FALSE//Is the suit busy with a process? Like AI hacking. Used for safety functions.
//Ability function variables.
- var/s_bombs = 10//Number of starting ninja smoke bombs.
+ var/s_bombs = 10//Number of smoke bombs.
var/a_boost = 3//Number of adrenaline boosters.
diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm
index d185d596a3..0496a2f1c3 100644
--- a/code/modules/ninja/suit/suit_attackby.dm
+++ b/code/modules/ninja/suit/suit_attackby.dm
@@ -10,6 +10,12 @@
a_boost++;
to_chat(U, "There are now [a_boost] adrenaline boosts remaining.")
return
+ if(I.reagents.has_reagent("smoke_powder", a_transfer) && s_bombs < s_maxamount)
+ I.reagents.remove_reagent("smoke_powder", a_transfer)
+ s_bombs++;
+ to_chat(U, "There are now [s_bombs] smoke bombs remaining.")
+ return
+
else if(istype(I, /obj/item/stock_parts/cell))
var/obj/item/stock_parts/cell/CELL = I