It keeps getting an error attempt to index nil with 'PetId'
--[ Variables ]-- local Players = game:GetService("Players") local replicatedStorage = game:GetService("ReplicatedStorage") local HttpService = game:GetService("HttpService") local Remotes = replicatedStorage:WaitForChild("Remotes") local DataChanged = Remotes:WaitForChild("DataChanged") local DataStore2 = require(game:GetService("ServerScriptService"):WaitForChild("Modules"):WaitForChild("DataStore2")) local replicatedData = replicatedStorage:WaitForChild("replicatedData") local PetModule = require(game:GetService("ServerScriptService"):WaitForChild("Modules"):WaitForChild("PetModule")) local DataNum = replicatedStorage:WaitForChild("DataNum") DataStore2:Combine("MainData", "Coins", "NPC Kills", "Rebirths") DataStore2:Combine("Pets", "MaxPetStorage", "MaxPetEquipped") --[ Player Added ]-- game.Players.PlayerAdded:Connect(function(plr) local CoinData = DataStore2("Coins"..DataNum.Value, plr) local KillsData = DataStore2("NPC Kills"..DataNum.Value, plr) local RebirthsData = DataStore2("Rebirths"..DataNum.Value, plr) local CurrentShovelData = DataStore2("CurrentShovel"..DataNum.Value, plr) local PetData = DataStore2("Pets"..DataNum.Value, plr) local MaxPetStorageData = DataStore2("MaxPetStorage"..DataNum.Value, plr) local MaxPetEquippedData = DataStore2("MaxPetEquipped"..DataNum.Value, plr) local playerCoins = CoinData:Get(0) local playerKills = KillsData:Get(0) local playerRebirths = RebirthsData:Get(0) local playerCurrentShovel = CurrentShovelData:Get("Starter Shovel") local playerPets = PetData:Get({}) local playerMaxPetStorage = MaxPetStorageData:Get(100) local playerMaxPetEquippped = MaxPetEquippedData:Get(4) pcall(function() local playerDataFolder = Instance.new("Folder") playerDataFolder.Name = plr.UserId playerDataFolder.Parent = replicatedData local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = plr local Coins = Instance.new("IntValue") Coins.Name = "Coins" Coins.Parent = leaderstats Coins.Value = playerCoins local Kills = Instance.new("IntValue") Kills.Name = "NPC Kills" Kills.Parent = leaderstats Kills.Value = playerKills local Rebirths = Instance.new("IntValue") Rebirths.Name = "Rebirths" Rebirths.Parent = leaderstats Rebirths.Value = playerRebirths local CurrentShovel = Instance.new("StringValue") CurrentShovel.Name = "CurrentShovel" CurrentShovel.Parent = playerDataFolder CurrentShovel.Value = playerCurrentShovel local OwnedPets = Instance.new("Folder") OwnedPets.Name = "OwnedPets" OwnedPets.Parent = playerDataFolder local MaxPetStorage = Instance.new("NumberValue") MaxPetStorage.Name = "MaxPetStorage" MaxPetStorage.Parent = playerDataFolder MaxPetStorage.Value = playerMaxPetStorage local MaxPetEquipped = Instance.new("NumberValue") MaxPetEquipped.Name = "MaxPetEquipped" MaxPetEquipped.Parent = playerDataFolder MaxPetEquipped.Value = playerMaxPetEquippped for i,v in pairs(playerPets) do -- Already owned pets local Pet = Instance.new("Folder") Pet.Name = v Pet.Parent = OwnedPets local PetID = Instance.new("NumberValue") PetID.Name = "PetID" PetID.Parent = Pet PetID.Value = playerPets[v][PetID] local Equipped = Instance.new("BoolValue") Equipped.Name = "Equipped" Equipped.Parent = Pet Equipped.Value = playerPets[v][Equipped] local Type = Instance.new("StringValue") Type.Name = "Type" Type.Parent = Pet Type.Value = playerPets[v][Type] end CoinData:OnUpdate(function(currentAmount) Coins.Value = currentAmount DataChanged:FireClient(plr, "Coins", currentAmount) end) KillsData:OnUpdate(function(currentAmount) Kills.Value = currentAmount DataChanged:FireClient(plr, "Kills", currentAmount) end) RebirthsData:OnUpdate(function(currentAmount) Rebirths.Value = currentAmount DataChanged:FireClient(plr, "Rebirths", currentAmount) end) CurrentShovelData:OnUpdate(function(currentShovel) CurrentShovel.Value = currentShovel DataChanged:FireClient(plr, "CurrentShovel", currentShovel) end) PetData:OnUpdate(function(currentPetTable) -- When The Pets Update OwnedPets:ClearAllChildren() for i,v in pairs(currentPetTable) do local Pet = Instance.new("Folder") Pet.Name = playerPets[v] Pet.Parent = OwnedPets local PetID = Instance.new("NumberValue") PetID.Name = "PetID" PetID.Parent = Pet PetID.Value = playerPets[v].PetId local Equipped = Instance.new("BoolValue") Equipped.Name = "Equipped" Equipped.Parent = Pet Equipped.Value = playerPets[v].Equipped local Type = Instance.new("StringValue") Type.Name = "Type" Type.Parent = Pet Type.Value = playerPets[v].Type end end) MaxPetStorageData:OnUpdate(function(currentValue) MaxPetStorage.Value = currentValue DataChanged:FireClient(plr, "MaxPetStorage", currentValue) end) MaxPetEquippedData:OnUpdate(function(currentValue) MaxPetEquipped.Value = currentValue DataChanged:FireClient(plr, "MaxPetEquipped", currentValue) end) end) end) --[ Player Leaving ]-- game.Players.PlayerRemoving:Connect(function(plr) local playerData = replicatedData:WaitForChild(plr.UserId) local CoinData = DataStore2("Coins"..DataNum.Value, plr) local KillsData = DataStore2("NPC Kills"..DataNum.Value, plr) local RebirthsData = DataStore2("Rebirths"..DataNum.Value, plr) local CurrentShovelData = DataStore2("CurrentShovel"..DataNum.Value, plr) local PetData = DataStore2("Pets"..DataNum.Value, plr) local MaxPetStorageData = DataStore2("MaxPetStorage"..DataNum.Value, plr) local MaxPetEquippedData = DataStore2("MaxPetEquipped"..DataNum.Value, plr) pcall(function() CoinData:Save() KillsData:Save() RebirthsData:Save() CurrentShovelData:Save() PetData:Save() MaxPetStorageData:Save() MaxPetEquippedData:Save() end) if (playerData) then pcall(function() playerData:Destroy() end) end end) --[ Soft Shutdown ]-- local TeleportService = game:GetService("TeleportService") if (game.VIPServerId ~= "" and game.VIPServerOwnerId == 0) then -- this is a reserved server without a VIP server owner local m = Instance.new("Message") m.Text = "This is a temporary lobby. Teleporting back in a moment." m.Parent = workspace local waitTime = 5 Players.PlayerAdded:connect(function(player) wait(waitTime) waitTime = waitTime / 2 TeleportService:Teleport(game.PlaceId, player) end) for _,player in pairs(Players:GetPlayers()) do TeleportService:Teleport(game.PlaceId, player) wait(waitTime) waitTime = waitTime / 2 end else game:BindToClose(function() if (#Players:GetPlayers() == 0) then return end if (game:GetService("RunService"):IsStudio()) then return end local m = Instance.new("Message") m.Text = "Rebooting servers for update. Please wait" m.Parent = workspace wait(2) local reservedServerCode = TeleportService:ReserveServer(game.PlaceId) for _,player in pairs(Players:GetPlayers()) do TeleportService:TeleportToPrivateServer(game.PlaceId, reservedServerCode, { player }) end Players.PlayerAdded:connect(function(player) TeleportService:TeleportToPrivateServer(game.PlaceId, reservedServerCode, { player }) end) while (#Players:GetPlayers() > 0) do wait(1) end end) end