DEBUG = true function Debug(text) if DEBUG == true then print(text) end end require( "SQlite" ) function Save( ply )       local id = ply:SteamID();     id = sql.SQLStr( id );       sql.Query( "UPDATE saves SET job = " .. sql.SQLStr( ply:GetNWString( "job" ) ) .. ", money = " .. sql.SQLStr( ply:GetNWInt( "money" ) ) .. ", WHERE id = " .. id .. " AND name = " .. sql.SQLStr( ply:Nick() ) );     Debug("Saved") end AddChatCommand( "/save", Save, true ) hook.Add("PlayerDisconnect", "Save player on disconnect", Save )  function CreateNewSave( ply )       local id = ply:SteamID();     id = sql.SQLStr( id );       sql.Query( "INSERT INTO saves ( id, name, job, money ) VALUES ( " .. id .. ", " .. sql.SQLStr( ply:Nick() ) .. ", " .. sql.SQLStr( ply:GetNWString( "job" ) ) .. ", " .. sql.SQLStr( ply:GetNWInt( "money" ) ) .. " )" );     Debug("Created new save") end function Load( ply ) if not (sql.Query( "SELECT * FROM saves WHERE id = " .. id .. " AND name = " .. sql.SQLStr( ply:Nick() ) )) then Debug("New player profile for " .. ply:Nick() ) CreateNewSave( ply ) end       local id = ply:SteamID();     id = sql.SQLStr( id );         local data = sql.Query( "SELECT * FROM saves WHERE id = " .. id .. " AND name = " .. sql.SQLStr( ply:Nick() ) );       ply:SetNWString( "job", data[1]["job"] )     ply:SetNWInt( "money", data[1]["money"] ) Debug("Loaded profile for " .. ply:Nick() ) end hook.Add("PlayerInitialSpawn", "Load player profile", Load ) Debug("data.lua loaded")