Okay, I'm new to Modules I've never really experimented with them before. So I'm trying to make a Gui that spawns a car and I went off of an example I found for items and pets. I wanted to check if the player has the car before it spawns but when I press the button it gives me "attempt to index nil with 'CheckInTable'"

here's the module:

local ItemSaveManager = {}

local DataStore = game:GetService("DataStoreService")
local playerData = DataStore:GetDataStore("ItemSaveSystem")

local Players = game:GetService("Players")

local AUTOSAVE_INTERVAL = 120

local DataTable = {}

function ItemSaveManager:UpdateValue(player, subTable, value)
    local playerUserId = "Player_" .. player.UserId	

    table.insert(DataTable[playerUserId][subTable], value)

end
	
function ItemSaveManager:RemoveValue(player, subTable, value)
    local playerUserId = "Player_" .. player.UserId	

    table.remove(DataTable[playerUserId][subTable], value)

end	
	
function ItemSaveManager:CheckInTable(player, subTable, value)
    local playerUserId = "Player_" .. player.UserId
    local sendBack = false
    for _, v in pairs(DataTable[playerUserId][subTable]) do
        if v == value then
	        sendBack = true
        end
    end
    return sendBack
end

Players.PlayerAdded:connect(function(player)
    local playerUserId = "Player_" .. player.UserId

    local success, data = pcall(function()
        return playerData:GetAsync(playerUserId)
    end)
    if success then
        if data then
            DataTable[playerUserId] = data
        
        else
            DataTable[playerUserId] = {}

            DataTable[playerUserId]["Cars"] = {} 
            							     

            playerData:SetAsync(playerUserId, DataTable)        
        end
    else
        warn("Cannot acces data store for player:" .. player.UserId)
    end
end)

local function savePlayerData(playerUserId)
    if DataTable[playerUserId] then
	    local success, err = pcall(function()
	        playerData:SetAsync(playerUserId, DataTable[playerUserId])
	    end)
	    if not success then
		    warn("Cannot save data for player!")
	    end
    end
end

local function saveOnExit(player)
    local playerUserId = "Player_" .. player.UserId
    savePlayerData(playerUserId)
    print(player.name .. "s data saved")
end

local function autoSave()
    while wait(AUTOSAVE_INTERVAL) do
	    for playerUserId, data in pairs(DataTable) do
		    savePlayerData(playerUserId)
	    end
	    print("Auto Saved")
    end
end

spawn(autoSave)

game.Players.PlayerRemoving:Connect(saveOnExit)

return ItemSaveManager

and here's the script that gives the error:

local carsave = require(game.Workspace.CarSaves)
db = false
function anti()
	if db == false then
		db = true
	if carsave.ItemSaveManager:CheckInTable(player, "Cars", "NYSPDC") then -- this is where it errors at
		if check.Value == false then
		print("AlreadyOwned")
		print("NotSpawned")
		print("SpawningCar")
		clone.Parent = game.Workspace
		clone.CFrame = player.Character.HumanoidRootPart.CF + Vector3.new(0,0,15)
		clone.Name = player.Name.."'s Car"
		check.Value = true
		else
			local car game.Workspace:FindFirstChild(player.Name.."'s car")
			car:Destroy()
			check.Value = false
			print("CarRemoved")
		end