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

How do i fix "attempt to index string with text"?

How do i fix "attempt to index string with text"

this is the code that is being marked

-- Changing Display
	itemNameT.Text = toSelectIB.Name
	itemDescT.Text = toolData.Items[1].ToolTip

this is the full code if you need it

-- Player Stuff
local player = game.Players.LocalPlayer
local backpack = player.Backpack
local char = player.Character or player.CharacterAdded:Wait()

--Services
local ts = game:GetService("TweenService")
local sg = game:GetService("StarterGui")
local debris = game:GetService("Debris")

-- Disabling Backpack Gui
sg:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)


--Gui
local gui = script.Parent
local hotbarF = gui.Hotbar; hotbarF.Visible = true
local inventoryF = gui.Invetory; inventoryF.Visible = false; 

local itemDescriptionF = inventoryF.ItemDescription
local itemNameT = itemDescriptionF.Name
local itemDescT = itemDescriptionF.Description

local s1 = hotbarF.Slot1
local s2 = hotbarF.Slot2
local s3 = hotbarF.Slot3
local s4 = hotbarF.Slot4
local s5 = hotbarF.Slot5
local s6 = hotbarF.Slot6
local s7 = hotbarF.Slot7
local s8 = hotbarF.Slot8
local s9 = hotbarF.Slot9
local s0 = hotbarF.Slot0

local itemsSF = inventoryF.Items.ScrollingFrame
local closeB = inventoryF.CloseGui

local openB = gui.TextButton

local invSampleItem = itemsSF.Sample

-- Referencing Variables
local selectedItem = nil
local unselectColor = Color3.fromRGB(131, 131, 131)
local selectedColor = Color3.fromRGB(80, 80, 80)

-- Positions
local openP = UDim.new(0.5,0,0.5,0)
local closeP = UDim.new(0.5,0,1.5,0)



-- Scanning for Items
local function scanitems()
	
	--items list
	local items = {}
	
	--Scanning backpack	
	for i, tool in pairs(backpack:GetChildren()) do
		if tool.ClassName == "Tool" then
			table.insert(items, tool)
		end
	end
	
	
	--Scanning Character
	for i, tool in pairs(char:GetChildren()) do
		if tool.ClassName == "Tool" then
			table.insert(items, tool)
		end
	end
	
	-- Creating a new List
	local invItems = {}
	
	for i, tool in pairs(items) do
		if invItems[tool.Name] then
			invItems[tool.Name].Count += 1
			table.insert(invItems[tool.Name].Items, tool)
			
			else
			invItems[tool.Name] = {
				Count =1;
				Items = {tool};
			}
		end
	end
	return invItems
end

-- Updating Selected Items
local function updatedselected(toSelectIB, toolData)
	print(toolData.Items[1].Name .. " selected")
	-- Unselecting All
	local buttons = {}
	for i, itemButton in pairs(itemsSF:GetChildren()) do
		if itemButton.ClassName == "ImageButton" and not itemButton.Name == "Sample" then
			itemButton.BackgroundColor3 = unselectColor
		end
	end

	-- Selecting New
	toSelectIB.BackgroundColor3 = selectedColor
	selectedItem = toolData

	-- Changing Display
	itemNameT.Text = toSelectIB.Name
	itemDescT.Text = toolData.Items[1].ToolTip

end

--Removing Current Invetory Items
local function removeitems()
	for i, itemButton in pairs(itemsSF:GetChildren()) do
		if itemButton.ClassName == "ImageButton"and itemButton.Name ~= "Sample" then
			itemButton:Destroy()
		end
	end
end

-- Updating display
local function updateDisplay ()
	
	-- Clearing Out Current Invetory
	removeitems()
	
	
	--Getting Invetory Tools
	local invItems = scanitems()
	
	
	for toolName, toolData in pairs(invItems) do
		
		-- Cloning Sample
		local itemButton = invSampleItem:Clone()
		itemButton.Parent = itemsSF
		itemButton.Name = "Item"
		
		--Setting Display
		itemButton.CountDisplay.Text = toolData.Count .. "x" 
		itemButton.Image = toolData.Items[1].TextureId
		itemButton.Visible = true
		
		--Reselecting
		if selectedItem ~= nil and itemButton.Name ~= selectedItem.Items[1].Name then
			updatedselected(itemButton, toolData)
		end
		
		-- Connecting Buttons
		itemButton.MouseButton1Click:Connect(function()
			updatedselected(itemButton, toolData)

		end)
		
	end
	
end

--loop
while true do
	task.wait(5)
	updateDisplay()
end

1 answer

ItemNameT and ItemDescT already are strings as you can see here

local itemNameT = itemDescriptionF.Name
local itemDescT = itemDescriptionF.Description

so try this instead

-- Changing Display
    itemNameT = toSelectIB.Name
    itemDescT = toolData.Items[1].ToolTip

Hope this helps!

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