My attempt at a status effect system. How can I make this more efficient and readable?

StatusEffectService

-- Authorized Use By Site 19 and Galicate

-- Programmer : Galicate

--// SERVICES //--
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local PlayerService = game:GetService("Players")

--// FILES //--
local Knit = require(ReplicatedStorage.Packages.Knit)
local Signal = require(Knit.Util.Signal)
local StatusEffectService = Knit.CreateService{Name = "StatusEffectService", Client = {
	StatusEffectAdded = Knit.CreateSignal(),
	StatusEffectRemoved = Knit.CreateSignal(),
	StatusEffectTick = Knit.CreateSignal(),
}}

--// CONSTANTS //--
local MODULES = ReplicatedStorage:WaitForChild("Modules")
local EFFECT_MODULES = MODULES:WaitForChild("StatusEffectModules")

--// VARIABLES //--
local lastTick = tick()
local effects = {}
local affecteds = {}

--// FUNCTIONS //--
function StatusEffectService:ApplyEffect(character, effectName, length, amplitude)
	if not affecteds[character] then
		affecteds[character] = {}
	end
	affecteds[character][effectName] = {
		length = length or 1, 
		amplitude = amplitude or 1, 
		timeApplied = tick(),
		humanoid = character.Humanoid
	}
	local player = PlayerService:GetPlayerFromCharacter(character)
	if player then
		StatusEffectService.Client.StatusEffectAdded:Fire(player, effectName)
	end
	
	character.Destroying:Connect(function()
		StatusEffectService:RemoveEffect(character)
	end)
end

function StatusEffectService:RemoveEffect(character, effectName)
	if not effectName then affecteds[character] = nil return end
	if not affecteds[character] then return end
	affecteds[character][effectName] = nil
	local player = PlayerService:GetPlayerFromCharacter(character)
	if player then
		StatusEffectService.Client.StatusEffectRemoved:Fire(player, effectName)
	end
end

function StatusEffectService:KnitStart()
	
	
	-- Load Effect Modules
	for i, v in pairs(EFFECT_MODULES:GetChildren()) do
		effects[v.Name] = require(v.Server)
	end
	
	-- Tick Effects
	RunService.Heartbeat:Connect(function()
		if tick() - lastTick < 1 then return end
		lastTick = tick()
		
		for character, characterTable in pairs(affecteds) do
			for effectName, effect in pairs(characterTable) do
				effects[effectName]:Tick(effect)
				local player = PlayerService:GetPlayerFromCharacter(character)
				if player then
					StatusEffectService.Client.StatusEffectTick:Fire(player, effectName)
				end
				
				if tick() - effect.timeApplied >= effect.length then
					StatusEffectService.Client.StatusEffectRemoved:Fire(player, effectName)
					StatusEffectService:RemoveEffect(character, effectName)
				end
			end
		end
	end)
	
	task.wait(5)
	StatusEffectService:ApplyEffect(workspace.Galicate, "Blindness", 5)
end

--// HOOKS //--

--// EXECUTION //--
return StatusEffectService

StatusEffectController

-- Authorized Use By Site 19 and Galicate

-- Programmer : Galicate

--// SERVICES //--
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PlayerService = game:GetService("Players")

--// FILES //--
local Knit = require(ReplicatedStorage.Packages.Knit)
local StatusEffectController = Knit.CreateController{Name = "StatusEffectController"}

--// CONSTANTS //--
local MODULES = ReplicatedStorage:WaitForChild("Modules")
local EFFECT_MODULES = MODULES:WaitForChild("StatusEffectModules")

--// VARIABLES //--
local effects = {}

--// FUNCTIONS //--
function StatusEffectController:KnitStart()
	local StatusEffectService = Knit.GetService("StatusEffectService")
	
	-- Load Effect Modules
	for i, v in pairs(EFFECT_MODULES:GetChildren()) do
		effects[v.Name] = require(v.Client)
	end
	
	StatusEffectService.StatusEffectAdded:Connect(function(effectName)
		effects[effectName]:Applied()
		print("Added Client!")
	end)
	
	StatusEffectService.StatusEffectTick:Connect(function(effectName)
		effects[effectName]:Tick()
		print("Tick Client!")
	end)
	
	StatusEffectService.StatusEffectRemoved:Connect(function(effectName)
		effects[effectName]:Removed()
		print("Removed Client!")
	end)
end

--// HOOKS //--

--// EXECUTION //--
return StatusEffectController

Regeneration.Server

-- Authorized Use By Site 19 and Galicate

-- Programmer : Galicate

--// SERVICES //--

--// FILES //--
local Server = {}

--// CONSTANTS //--

--// VARIABLES //--

--// FUNCTIONS //--
function Server:Tick(effect)
	effect.humanoid:TakeDamage(-2 * effect.amplitude)
end

--// HOOKS //--

--// EXECUTION //--
return Server

Screenshot 2023-02-04 at 1.00.24 PM