My login script is broken, any ideas?

I’m making a login script for my server that ties to the website but I have a problem. This is my code:

cl.lua

RegisterNetEvent("unfreeze")
AddEventHandler("unfreeze", function()
	FreezeEntityPosition(GetPlayerPed(-1), false)
	
end)

AddEventHandler("playerSpawned", function(spawn)
	FreezeEntityPosition(GetPlayerPed(-1), true)
	TriggerEvent('chat:addMessage', {
		color = { 255, 255, 255},
		multiline = true,
		args = {"FROZEN", "Please use /loginuser <username> and /loginpass <password>"}
	})
end)	

usr = ""
pass = ""

RegisterCommand("loginuser", function(source, args, raw)
	username = table.concat(args, " ")
	usr = username
end, false)

RegisterCommand("loginpass", function(source, args, raw)
	password = table.concat(args, " ")
	pass = password
	TriggerServerEvent("check", usr, pass)
end, false)

sv.lua

RegisterServerEvent("check")
AddEventHandler("check", function(user, pass)
	MySQL.ready(function ()
		local usrs = MySQL.Sync.fetchAll("SELECT * FROM usracc WHERE username='" .. user .. "'")
			if usrs[1].username == user then
				if usrs[1].password == pass then
					if usrs[1].packages == "unconfirmed" or usrs[1].packages == "locked" then
						DropPlayer(source, "Your account is locked.")
					else
						TriggerClientEvent("unfreeze", source)
						TriggerEvent('chat:addMessage', {
							color = { 255, 255, 255},
							multiline = true,
							args = {"WELCOME", "You are now logged into " .. usrs[1].username .. "!"}
						})
					end
				else
					DropPlayer(source, "Incorrect Password")
				end
			else
				DropPlayer(source, "Incorrect Username")
			end
		end)
end)

It throws this error:

Error resuming coroutine: @pass/sv.lua:5: attempt to index a nil value (field '?
')
stack traceback:
        @pass/sv.lua:5: in local 'callback'
        @mysql-async/lib/MySQL.lua:211: in field 'ready'
        @pass/sv.lua:3: in upvalue 'handler'
        citizen:/scripting/lua/scheduler.lua:219: in function <citizen:/scriptin
g/lua/scheduler.lua:218>`

Make sure you check if usrs[1] is not nil

Ok, what would I do if it was though, I don’t get how it would be… I’ve tried making it usrs[0] and that didn’t do anything either.

If your query doesn’t return any rows then usrs[1] would be nil. Arrays do start at index 1 for Lua, so that’s correct.

Fixed that issue, now there’s something wrong with the freeze section. Any ideas where I went wrong with it?

InvokeNative: execution failed: Argument at index 1 was null.
Error resuming coroutine: Execution of native 000000002f7a49e6 in script host fa
iled.
stack traceback:
        [C]: in upvalue '_in'
        citizen:/scripting/lua/natives_server.lua:450: in function 'TriggerClien
tEventInternal'
        (...tail calls...)
        @pass/sv.lua:10: in local 'callback'
        @mysql-async/lib/MySQL.lua:211: in field 'ready'
        @pass/sv.lua:3: in upvalue 'handler'
        citizen:/scripting/lua/scheduler.lua:219: in function <citizen:/scriptin
g/lua/scheduler.lua:218>
RegisterNetEvent("unfreeze")
AddEventHandler("unfreeze", function()
	FreezeEntityPosition(GetPlayerPed(-1), false)
end)