diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm
index d2598a4036f..62f60a91bc4 100644
--- a/code/game/objects/items/weapons/power_cells.dm
+++ b/code/game/objects/items/weapons/power_cells.dm
@@ -16,10 +16,18 @@
materials = list(MAT_METAL=700, MAT_GLASS=50)
var/rigged = 0 // true if rigged to explode
var/minor_fault = 0 //If not 100% reliable, it will build up faults.
+ var/chargerate = 1000 //how much power is given every tick in a recharger
+ var/self_recharge = 0 //does it self recharge, over time, or not?
- suicide_act(mob/user)
- to_chat(viewers(user), "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.")
- return (FIRELOSS)
+/obj/item/weapon/stock_parts/cell/suicide_act(mob/user)
+ to_chat(viewers(user), "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.")
+ return (FIRELOSS)
+
+/obj/item/weapon/stock_parts/cell/process()
+ if(self_recharge)
+ give(chargerate * 0.25)
+ else
+ return PROCESS_KILL
/obj/item/weapon/stock_parts/cell/crap
name = "\improper Nanotrasen brand rechargable AA battery"
@@ -51,6 +59,7 @@
maxcharge = 15000
rating = 3
materials = list(MAT_GLASS=60)
+ chargerate = 1500
/obj/item/weapon/stock_parts/cell/high/empty/New()
..()
@@ -63,6 +72,7 @@
maxcharge = 20000
materials = list(MAT_GLASS=70)
rating = 4
+ chargerate = 2000
/obj/item/weapon/stock_parts/cell/super/empty/New()
..()
@@ -75,6 +85,7 @@
maxcharge = 30000
rating = 5
materials = list(MAT_GLASS=80)
+ chargerate = 3000
/obj/item/weapon/stock_parts/cell/hyper/empty/New()
..()
@@ -87,6 +98,7 @@
maxcharge = 40000
materials = list(MAT_GLASS=80)
rating = 6
+ chargerate = 4000
/obj/item/weapon/stock_parts/cell/bluespace/empty/New()
..()
@@ -99,8 +111,10 @@
maxcharge = 30000
rating = 6
materials = list(MAT_GLASS=80)
- use()
- return 1
+ chargerate = 30000
+
+/obj/item/weapon/stock_parts/cell/infinite/use()
+ return 1
/obj/item/weapon/stock_parts/cell/potato
name = "potato battery"
@@ -122,6 +136,7 @@
icon = 'icons/mob/slimes.dmi'
icon_state = "yellow slime extract"
materials = list()
+ self_recharge = 1 // Infused slime cores self-recharge, over time
/obj/item/weapon/stock_parts/cell/pulse/carbine
name = "pulse carbine power cell"
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 7dda66629d7..6e61be2a257 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -5,11 +5,16 @@
/obj/item/weapon/stock_parts/cell/New()
..()
+ processing_objects.Add(src)
charge = maxcharge
spawn(5)
updateicon()
+/obj/item/weapon/stock_parts/cell/Destroy()
+ processing_objects.Remove(src)
+ return ..()
+
/obj/item/weapon/stock_parts/cell/proc/updateicon()
if(isnull(src.overlay_image))
src.overlay_image = image('icons/obj/power.dmi')
diff --git a/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_slime.dm b/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_slime.dm
index 3a08a28a741..e9dd50dcf67 100644
--- a/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_slime.dm
+++ b/code/modules/reagents/oldchem/chemical_reaction/chemical_reaction_slime.dm
@@ -661,4 +661,4 @@
var/mob/living/carbon/slime/S = new /mob/living/carbon/slime
S.colour = pick("grey","orange", "metal", "blue", "purple", "dark purple", "dark blue", "green", "silver", "yellow", "gold", "yellow", "red", "silver", "pink", "cerulean", "sepia", "bluespace", "pyrite", "light pink", "oil", "adamantine", "black")
S.forceMove(get_turf(holder.my_atom))
- S.visible_message("Infused with plasma, the core begins to quiver and grow, and soon a new baby slime emerges from it!")
+ S.visible_message("Infused with plasma, the core begins to quiver and grow, and soon a new baby slime emerges from it!")
\ No newline at end of file
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 45ed8f0a08b..f34b727c354 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -223,7 +223,6 @@
being_used = 0
..()
-
/obj/item/slimepotion/steroid
name = "slime steroid"
desc = "A potent chemical mix that will cause a baby slime to generate more extract."