error: 53 Attempt To Index Nill with "Rarity"
I make a case in the game, add different skins for weapons there, a couple of common skins, a couple more uncommon and 1 legendary and another godly. And here is such a mistake when I try to open a case in the store... please help me!!
script
-- goro7 -- Basic settings local FADED_COLOR = Color3.fromRGB(60, 60, 60) local plr = game.Players.LocalPlayer local commonColor = plr:WaitForChild("PlayerScripts"):WaitForChild("Functions"):WaitForChild("GetRarityColor"):Invoke("Common") local uncommonColor = plr:WaitForChild("PlayerScripts"):WaitForChild("Functions"):WaitForChild("GetRarityColor"):Invoke("Uncommon") local rareColor = plr:WaitForChild("PlayerScripts"):WaitForChild("Functions"):WaitForChild("GetRarityColor"):Invoke("Rare") local legendaryColor = plr:WaitForChild("PlayerScripts"):WaitForChild("Functions"):WaitForChild("GetRarityColor"):Invoke("Legendary") local godlyColor = plr:WaitForChild("PlayerScripts"):WaitForChild("Functions"):WaitForChild("GetRarityColor"):Invoke("Godly") function sortByName(x, y) -- Convert to lowercase local xString = string.lower(x.Value.Name) local yString = string.lower(y.Value.Name) -- Convert to byte values local xBytes = {} for i=1, string.len(xString) do table.insert(xBytes, string.byte(xString, i, i)) end local yBytes = {} for i=1, string.len(yString) do table.insert(yBytes, string.byte(yString, i, i)) end -- See if Y ever less than up X local xIsLess = false for i=1, #yBytes do if table.getn(xBytes) < i then xIsLess = true break end if xBytes[i] < yBytes[i] then xIsLess = true break elseif xBytes[i] > yBytes[i] then break end end -- Return result return xIsLess end function sortByRarityAndName(x, y) -- Assign numbers for rarity local rarityX = plr.PlayerScripts.Functions.GetRarityValue:Invoke(x["Value"].Rarity.Value) local rarityY = plr.PlayerScripts.Functions.GetRarityValue:Invoke(y["Value"].Rarity.Value) -- Sort by name if same if rarityX == rarityY then return sortByName(x, y) end -- Return comparison return (rarityX > rarityY) end script.Parent.ShowCase.Event:connect(function(case) -- Delete all currently listed items for _, i in pairs(script.Parent:GetChildren()) do if i.Name == "Item" then i:destroy() end end -- Create an item for each local entries = case.Contents:GetChildren() table.sort(entries, sortByRarityAndName) for n, i in pairs(entries) do local item = i.Value local itemGui = script.Parent.ItemTemplate:clone() itemGui.Name = "Item" itemGui.Item.Value = item itemGui.ItemIcon.Image = item.IconAsset.Value itemGui.ItemName.Text = item.Name itemGui.ItemRarity.Text = item.Rarity.Value itemGui.ItemName.TextColor3 = plr.PlayerScripts.Functions.GetRarityColor:Invoke(item.Rarity.Value) itemGui.Position = UDim2.new(0, ((n - 1) % 4) * 100 + 10, 0, math.floor((n - 1) / 4) * 100 + 10) itemGui.Parent = script.Parent itemGui.Visible = true itemGui.InteractionHandler.Disabled = false end -- Size the scrolling frame script.Parent.CanvasSize = UDim2.new(0, 0, 0, math.ceil(#entries / 4) * 100 + 20) -- Disable preview plr.PlayerGui.MainGui.Shop.Preview.PixelVerticalOffset.Value = -5 plr.PlayerGui.MainGui.Shop.Preview.Scale.Value = 24 plr.PlayerGui.MainGui.Shop.Preview.Item.Value = entries[1].Value -- Set up main case sidebar items local caseSidebar = script.Parent.Parent.Parent.CaseSidebar caseSidebar.Visible = true caseSidebar.BuyButton.Case.Value = case caseSidebar.Price.Text = case.Price.Value .. " " caseSidebar.Price.CoinImage.Position = UDim2.new(0.5, caseSidebar.Price.TextBounds.X / 2 - 13, 0, 4) -- Set percentages local total = case.CommonChance.Value + case.UncommonChance.Value + case.RareChance.Value + case.LegendaryChance.Value caseSidebar.CommonChance.Text = tostring((case.CommonChance.Value / total) * 100) .. "%" caseSidebar.UncommonChance.Text = tostring((case.UncommonChance.Value / total) * 100) .. "%" caseSidebar.RareChance.Text = tostring((case.RareChance.Value / total) * 100) .. "%" caseSidebar.LegendaryChance.Text = tostring((case.LegendaryChance.Value / total) * 100) .. "%" if case.GodlyChance.Value > 0 then caseSidebar.GodlyChance.Text = "???%" else caseSidebar.GodlyChance.Text = "0%" end -- Fade percentages if 0 if caseSidebar.CommonChance.Text == "0%" then caseSidebar.CommonChance.TextColor3 = FADED_COLOR caseSidebar.CommonChance.Label.TextColor3 = FADED_COLOR else caseSidebar.CommonChance.TextColor3 = commonColor caseSidebar.CommonChance.Label.TextColor3 = commonColor end if caseSidebar.UncommonChance.Text == "0%" then caseSidebar.UncommonChance.TextColor3 = FADED_COLOR caseSidebar.UncommonChance.Label.TextColor3 = FADED_COLOR else caseSidebar.UncommonChance.TextColor3 = uncommonColor caseSidebar.UncommonChance.Label.TextColor3 = uncommonColor end if caseSidebar.RareChance.Text == "0%" then caseSidebar.RareChance.TextColor3 = FADED_COLOR caseSidebar.RareChance.Label.TextColor3 = FADED_COLOR else caseSidebar.RareChance.TextColor3 = rareColor caseSidebar.RareChance.Label.TextColor3 = rareColor end if caseSidebar.LegendaryChance.Text == "0%" then caseSidebar.LegendaryChance.TextColor3 = FADED_COLOR caseSidebar.LegendaryChance.Label.TextColor3 = FADED_COLOR else caseSidebar.LegendaryChance.TextColor3 = legendaryColor caseSidebar.LegendaryChance.Label.TextColor3 = legendaryColor end if caseSidebar.GodlyChance.Text == "0%" then caseSidebar.GodlyChance.TextColor3 = FADED_COLOR caseSidebar.GodlyChance.Label.TextColor3 = FADED_COLOR else caseSidebar.GodlyChance.TextColor3 = godlyColor caseSidebar.GodlyChance.Label.TextColor3 = godlyColor end -- Set visiblities script.Parent.Parent.Visible = true script.Parent.Parent.Parent.Display.Visible = false script.Parent.Parent.Parent.Sidebar.Visible = false end) script.Parent.ReturnToPreviousView.Event:connect(function() -- Show previous preview plr.PlayerGui.MainGui.Shop.Preview.PixelVerticalOffset.Value = -2 plr.PlayerGui.MainGui.Shop.Preview.Scale.Value = 18 plr.PlayerGui.MainGui.Shop.Preview.Item.Value = nil -- Set visiblities script.Parent.Parent.Visible = false script.Parent.Parent.Parent.CaseSidebar.Visible = false script.Parent.Parent.Parent.Display.Visible = true script.Parent.Parent.Parent.Sidebar.Visible = true end)