Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Players.coolmansunsh.PlayerGui.ShopGui.GuiHandler:34:index nil with 'CFrame?

what did i do wrong and what does it mean?

local btn = script.Parent:WaitForChild("ShopBtn")
local shopFrame = script.Parent:WaitForChild("ShopBG")
local itemScroller = shopFrame.ItemScroller
local itemPreview = shopFrame.ItemPreview

shopFrame.Visible = false
itemPreview.Visible = false

btn.MouseButton1Click:Connect(function()
	
	
	shopFrame.Visible = not shopFrame.Visible
end)

local itemsFolder = game.ReplicatedStorage:WaitForChild("Items")

for i, item in pairs(itemsFolder:GetChildren()) do
	
	
	local name = item.Name
	local price = item.ShopGuiInfo.Price.Value
	local description = item.ShopGuiInfo.Description.Value
	
	local itemSelection = script.ItemSelection:Clone()
	
	local cam = Instance.new("Camera")
	cam.Parent = itemSelection.ItemView
	itemSelection.ItemView.CurrentCamera = cam
	
	
	local displayPart = item.Handle:Clone()
	displayPart.Anchored = true
	displayPart.CFrame = CFrame.new()
	displayPart.Parent = itemSelection.ItemView
	
	cam.CFrame = CFrame.new(displayPart.Position + displayPart.CFrame.LookVector * 4, displayPart.Position)
	
	itemSelection.Parent = itemScroller
	
	itemSelection.MouseButton1Click:Connect(function()
		
		itemPreview.ItemName.Text = name
		itemPreview.BuyButton.Text = "Buy for " .. price
		itemPreview.ItemDescription.Text = desc
		
		if itemPreview.ItemImage:FindFirstChild("Handle") then itemPreview.ItemImage.Handle:Destroy() end
		if itemPreview.ItemImage:FindFirstChild("Camera") then itemPreview.ItemImage.Camera:Destroy() end
		
		local cam = cam:Clone()
		cam.Parent = itemPreview.ItemImage
		itemPreview.ItemImage.CurrentCamera = cam2
		
		displayPart:Clone().Parent = itemPreview.ItemImage
		
		itemPreview.Visible = true
	end)
end


itemPreview.BuyButton.MouseButton1Click:Connect(function()
	
	game.ReplicatedStorage.OnItemBought:FireServer(itemsFolder[itemPreview.ItemName.Text])
end)

1 answer

✓ Accepted answer

you tried to access the CFrame of "displayPart" before giving it a parent, which is why it's returning nil. try this between lines 31 and 34

local displayPart = item.Handle:Clone()
displayPart.Parent = itemSelection.ItemView
displayPart.Anchored = true
displayPart.CFrame = CFrame.new()

hope this helps :D

This discussion is preserved as it was. New answers, comments, and votes are closed.