I think what you're looking for is a continuous list
addEventHandler( "onClientKey", root, function(b, state)
if b == "arrow_u" and state then
table.insert(skinTable, 1, table.remove(skinTable))
playSoundFrontEnd(1)
elseif b == "arrow_d" and state then
table.insert(skinTable, table.remove(skinTable, 1))
playSoundFrontEnd(1)
end
end)
local x,y = 0, 0
local sx, sy = guiGetScreenSize()
local maxShownItems = 7
local selectedItem = 4 --use middle item as the current selected item
addEventHandler("onClientRender", root, function()
for i=1, maxShownItems do
local xy = (i)*55
-- draw rectangle behind text
dxDrawRectangle(x, y+xy, 200, 50, tocolor(0, 0, 0, 125))
if i == 4 then
-- selected item
dxDrawRectangle(x, y+xy, 200, 50, tocolor(255, 0, 0, 125))
dxDrawText(" "..skinTable[i].name.." "..skinTable[i].price.."$", x, y+xy, x+200, y+xy+50, tocolor(255, 255, 255, 255), 1.5, 'default', 'center', 'center', false, false, true, true)
else
-- the other items
dxDrawText(" "..skinTable[i].name.." "..skinTable[i].price.."$", x, y+xy, x+200, y+xy+50, tocolor(255, 255, 255, 255), 1, 'default', 'center', 'center', false, false, true, true)
end
end
end)
This is pretty standard for these types of lists (ignore the styling)