Help editting a money printer by adding a variable

What I’m trying to do is combine the money printer extra code for a money collector to making the printer itself collect the money without spawning the money itself. Whatever I try it just doesn’t seem to work.
It’s fairly choppy at the moment, I plan on cleaning it up later, but I need it working first.
Problem I am having is the display works, money still spawns and drops on the printer.
Please no complete rewrites, just a good nudge in the right direction, I wanna learn how to do this for future reference.

Here’s my code: (and by “my”, I mean a lot of copy pasted code, credit to their respected authors.)

init.lua


 
-- RRPX Money Printer reworked for DarkRP by philxyz
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")

function ENT:Initialize()
	self:SetModel("models/props_c17/consolebox01a.mdl")
	self:PhysicsInit(SOLID_VPHYSICS)
	self:SetMoveType(MOVETYPE_VPHYSICS)
	self:SetSolid(SOLID_VPHYSICS)
	local phys = self:GetPhysicsObject()
	if phys:IsValid() then
		phys:Wake() 
		phys:SetMass(50)
	end
	self.sparking = false
	self.damage = 100
	self.IsMoneyPrinter = true
	self.money = 0
	timer.Simple(30, self.CreateMoneybag, self)
end

function ENT:OnTakeDamage(dmg)
	if self.burningup then return end

	self.damage = self.damage - dmg:GetDamage()
	if self.damage <= 0 then
		local rnd = math.random(1, 10)
		if rnd < 3 then
			self:BurstIntoFlames()
		else
			self:Destruct()
			self:RemoveThis()
		end
	end
end

function ENT:Destruct()
	local vPoint = self:GetPos()
	local effectdata = EffectData()
	effectdata:SetStart(vPoint)
	effectdata:SetOrigin(vPoint)
	effectdata:SetScale(1)
	util.Effect("Explosion", effectdata)
	Notify(self:GetNWEntity("owning_ent"), 1, 4, "Your money printer has exploded!")
end

function ENT:BurstIntoFlames()
	if self.Cooler and self.Cooler:GetNWInt("charges") > 0 then
		Notify(self:GetNWEntity("owning_ent"), 1, 4, "Your money printer's cooler has used up a charge.
Remaining charges: "..self.Cooler:GetNWInt("charges"))
		self.Cooler:SetNWInt("charges", self.Cooler:GetNWInt("charges") - 1)
	else
		Notify(self:GetNWEntity("owning_ent"), 1, 4, "Your money printer is overheating!")
		self.burningup = true
		local burntime = 20
		self:Ignite(burntime, 0)
		timer.Simple(burntime, self.Fireball, self)
	end
end

function ENT:Fireball()
	local dist = math.random(20, 280)
	self:Destruct()
	for k, v in pairs(ents.FindInSphere(self:GetPos(), dist)) do
		if not v:IsPlayer() and not v.IsMoneyPrinter then v:Ignite(math.random(5, 22), 0) end
	end
	self:RemoveThis()
end

local function PrintMore(ent)
	if ValidEntity(ent) then
		ent.sparking = true
		timer.Simple(3, ent.CreateMoneybag, ent)
	end
end

function ENT:CreateMoneybag()
	if not ValidEntity(self) then return end
	if self:IsOnFire() then return end

	self:BurstIntoFlames()

	local amount = 100
	self.money = (self.money + amount)
	self.sparking = false
	timer.Simple(math.random(100, 350), PrintMore, self)
end

function ENT:Think()
	if not self.sparking then return end
	local effectdata = EffectData()
	effectdata:SetOrigin(self:GetPos())
	effectdata:SetMagnitude(1)
	effectdata:SetScale(1)
	effectdata:SetRadius(2)
	util.Effect("Sparks", effectdata)
end

function ENT:Touch( hitEnt )
	if hitEnt.IsCooler and not self.Cooler then
		self.Cooler = hitEnt
		self.OldAngles = self.Entity:GetAngles()
		self.Entity:SetAngles(Vector(0, 0, 0))

		hitEnt:SetPos(self.Entity:GetPos() + Vector(1.9534912109375, 9.9049682617188, 6.304988861084))
		hitEnt:SetAngles(self.Entity:GetAngles() + Vector(0, 90, 0))
		constraint.Weld(hitEnt, self.Entity, 0, 0, 0, true)

		self.Entity:SetAngles(self.OldAngles)

		local phys = hitEnt:GetPhysicsObject()
		if (phys:IsValid()) then
			phys:Wake()
			phys:SetMass(1)
		end
	end
end 

--This function is to remove the printer and any extras attached, creates room for more extras planned to be added
function ENT:RemoveThis()
	self:Destruct()
	self:Remove()
	if self.Cooler then self.Cooler:Remove() end
end

--Allow collection of money by players
function ENT:Use( activator, caller )
	activator:AddMoney( self.money )
	self.money = 0
end 


cl_init.lua



include("shared.lua")

function ENT:Draw()
	self:DrawModel()
end 

function DrawInfoPrinter()
	local tr = LocalPlayer():GetEyeTrace()
	if ValidEntity(tr.Entity) and tr.Entity:GetPos():Distance(LocalPlayer():GetPos()) < 400 then
		if tr.Entity:GetClass() == "money_printer" then
			local ent = tr.Entity
			local pos = ent:GetPos()

			pos.z = pos.z + 8
			pos = pos:ToScreen()

			local owner = "N/A!"
			if ValidEntity(ent:GetNWEntity("owning_ent")) then
				owner = ent:GetNWEntity("owning_ent"):Nick()
			end
			local text = owner .. "'s
Money Printer Printer
Money stored: " .. ent:GetNWInt("money")
			
			draw.DrawText(text, "TargetID", pos.x + 1, pos.y + 1, Color(0, 0, 0, 200), 1)
			draw.DrawText(text, "TargetID", pos.x, pos.y, Color(255, 255, 255, 200), 1)
		end
	end
end
hook.Add( "HUDPaint", "DrawInfoPrinter", DrawInfoPrinter ) 


shared.lua



ENT.Type = "anim"
ENT.Base = "base_gmodentity"
ENT.PrintName = "Money Printer"
ENT.Author = ""
ENT.Spawnable = false
ENT.AdminSpawnable = false



Bump!

Can you show us the original code?