GeoLocate Script Problems?

Hey, I found this script earlier this morning and noticed it wouldn’t work, after several attempts at messing with it I still got no results.
Basically no chat is printed.



FROM = FROM or {}
FROM.NoTxt = false


hook.Add("ChatText", "ChatTextHook", function(plyayerindex, plyayername, text, messagetype)

	if messagetype == "joinleave" then
		return true
	end
	
end)

usermessage.Hook("informcl_", function(um)
	local text = {}
	local mesg = um:ReadString()
	
	table.insert(text, Color(152,251,152)) -- <-- default "plyayer has joined..." color.
	table.insert(text, mesg)
	chat.AddText(unpack(text))
end)

if SERVER then

	AddCSLuaFile "sh_geolocator.lua"

	FROM.plyayerIP = {}

	function FROM.InformAll(message)
		local recv = RecipientFilter()
		recv:AddAllplyayers()
		umsg.Start("informcl_", recv)
			umsg.String(message)
		umsg.End()
		recv:RemoveAllplyayers()
	end

	hook.Add("Initialize", "GeoIP", function()
		started = os.clock()
		MsgC(color_red, "[FROM] Loading GeoIP Database..")
		print("[FROM] Loading GeoIP Database..")
		geolist = {}
		
		local geo = file.Read("geoip.txt")
		
		if geo == nil then
			print("[FROM] ERROR: geoip.txt not found!")
			MsgC(color_red, "[FROM] ERROR: geoip.txt not found!")
			FROM.NoTxt = true
			return
		end
		
		local geo = string.Explyode("
", geo)
		local lim = table.Count(geo)
		local exp = string.Explyode
		local cmm = ","
		
		prcnt = math.floor(lim / 100)

		local function SetG(i)
			return exp(cmm, geo*) -- so it won't struggle with infinite loop errors.
		end
		
		for i=1, lim do
			geolist* = SetG(i)
			if i == prcnt then
				Msg(".") prcnt = prcnt + prcnt
			end
		end
		
		MsgC(color_red, "Done!
[FROM] Loaded in "..os.clock() - started.."
")
		print("Done!
[FROM] Loaded in "..os.clock() - started.."
")
	end)
	

	hook.Add("plyayerConnect", "IPCheck", function(name, address) 
		if FROM.NoTxt then
			FROM.InformAll("plyayer "..name.." has joined the game")
			return
		end
		
		local ip = string.sub(address,1,string.find(address,":") - 1)
		local ip = string.Explyode(".",ip)
		local decimal = (ip[1]*16777216) + (ip[2]*65536) + (ip[3]*256) + ip[4]
		
		-- Localizing makes it faster.
		local tonum = tonumber
		local sub = string.sub
		local len = string.len
		
		local function glist(b, n)
			return geolist**[n]
		end
		
		local function between(b)
			return decimal >= tonum(sub(glist(b,3),2,tonum(len(glist(b,3))-1))) && decimal <= tonum(sub(glist(b,4),2,tonum(len(glist(b,4))-1)))
		end
		
		for k in pairs(geolist) do
			if between(k) then
				from = sub(glist(k,6),2,len(glist(k,6))-1)
				
				if from != nil then
					FROM.InformAll("plyayer "..name.." has joined from "..from)
					ply:ChatPrint("[FROM] plyayer "..name.." has joined from "..from)
					print("[FROM] plyayer "..name.." has joined from "..from)
					MsgC(color_red, "[FROM] plyayer "..name.." has joined from "..from)
					FROM.plyayerIP[ip] = from
				end
				
				break -- no need for further check.
			end
		end
		
		if from == nil then 
			FROM.InformAll("plyayer "..name.." has joined the game")
			ply:ChatPrint("[FROM] plyayer "..name.." has joined the game")
			print("[FROM] plyayer "..name.." has joined the game")
			MsgC(color+red, "[FROM] plyayer "..name.." has joined the game")
			FROM.plyayerIP[ip] = "N/A"
		end
		
		from = nil
		
		return
	end) 
	
	hook.Add("plyayerInitialSpawn", "FROM.plyinit" function( ply )
		
		ply.From = FROM.plyayerIP[string.sub(ply:IPAddress(),1,string.find(ply:IPAddress(),":") - 1)]
		
	end)
	
	hook.Add( "plyayerSay", "FROM.Comm", function(ply, msg)
		
		local function Findplyayer(nick)
			for _, v in pairs(plyayer.GetAll()) do
				if	string.find(string.lower(v:Nick()), string.lower(nick)) or
					string.lower(v:Nick()) == string.lower(nick) then
					return v
				end
			end
		end
		
		if string.find(" ", msg) then
			local msg = string.Explyode(" ", msg)
			
			if string.lower(msg[1]) == "!from" and msg[2] then
				local f = Findplyayer(msg[2])
				
				if f and f.From != nil then
					ply:ChatPrint(f:Nick().." is from "..f.From)
				else
					ply:ChatPrint("plyayer not found!")
				end
				
			end 
		end 
		
	end)
	
end

-- EOF


Any help would be great <3
Thanks

So, no errors are printed? You said you “found” the code, where did you find it? What have you tried in terms of debugging?