Unhandled usermessage - Building Achievement Addon

I’m building an achievement addon for my deathrun gamemode, but every time I try to use a usermessage, it plainly doesn’t work.

Here’s the order of operation:
Nubcake.lua runs the function ‘EarnedAch’ on round end (no conditional statements for bug testing) - This works
EarnedAch updates the players coins, and sends a usermessage - This works

However, the clientside file (client_usermessage.lua) isn’t picking up the usermessage, and Unhandled usermessage is returned.

Below is the entire code (Yes, it’s not much, but It’s just been started).

Autorun.lua
[LUA]
if SERVER then
AddCSLuaFile(“client_usermessage.lua”)
include(“ach/functions/earned.lua”)

for _, v in pairs( file.FindInLua( "ach/*.lua")) do
	include("ach/"..v)
end

end
[/LUA]

ach/functions/earned.lua - Proven to work (to a degree?), Updates coins, sends usermessage.
[LUA]
function EarnedAch(ply, ach, coins)
local coinsG = ply:GetNWInt(“COINS”)
sql.Query(“UPDATE player_info SET COINS = “…coinsG + tonumber(coins)…” WHERE unique_id = '”…ply:SteamID()…"’")
umsg.Start(“earn_ach”)
umsg.Entity(ply)
umsg.String(ach)
umsg.String(coins)
umsg.End()
end
[/LUA]

ach/Nubcake.lua - Proven to work, sets Pdata, updates coins, and sends usermessage.
[LUA]
include(“functions/earned.lua”)

Nubcake = {}

Nubcake.NAME = “Nubcake”
Nubcake.COINGAIN = “5”
Nubcake.DESC = “Win one Round.”
Nubcake.TYPE = “Round Result”
Nubcake.NEEDVALUE = true

function GetNubCake()
for k, ply in pairs(player.GetAll()) do
EarnedAch(ply, “Nubcake”, “5”)
ply:SetPData(“Nubcake”, “1”)
end
end

hook.Add(“RoundEnded”, “ach_nubcake”, GetNubCake)
[/LUA]

client_usermessage.lua
[LUA]
local ColourTable = {}
ColourTable[“ach”] = Color(255, 201, 0)
ColourTable[3] = Color(40, 40, 200)
ColourTable[2] = Color(200, 40, 40)
ColourTable[1] = Color(40, 200, 40)
ColourTable[0] = Color(255,255,255)

usermessage.Hook(“earn_ach”, function(um)
local PlayerEnt = um:ReadEntity()
local achievement = um:ReadString()
local coins = um:ReadString()

chat.AddText(ColourTable[1], PlayerEnt:Name(), Color(255,255,255), " has earnt the achievement ", ColourTable["ach"], achievement)

end)
[/LUA]

TL;DR
Usermessages in my addon aren’t working, tell me how to setup all the files, or where I spelt something wrong so it will.

You need to include it clientside.

Added to autorun.lua :

If CLIENT then
include(“client_usermessage.lua”)
end

Still nothing

on the server you need to put
[lua]
AddCSLuaFile(“client_usermessage.lua”)
[/lua]

But I already have that in Autorun.lua

Isn’t that already correct?

if CLIENT then
include(“client_usermessage.lua”)
end