Wow - so much to unpack here. For awhile it was just me and Takoni - and neither of us are coders haha although he is much better than I am.
Thank you so much for helping with the music "shuffle". And thank you for the extra lava lamp colors - I always love extra options! 
Although it may be copious, I'm working on adding an option for a wheel, vertical wheel, list (the list Takoni has here) as well as a size option for these lists. For instance, it would be an option to select vert_wheel, and the the option to change the size from small, medium or large. This is because I like a small vertical wheel, but I'm using a 60" TV with my Pi - if I moved the Pi to a 32" TV, the small list is going to be tiny. This would also info some "if" statements - if the list size was set at medium or small, then the box art would be centered under the list in front of the NES. If the list was large (normal size) then the box art would cover part of the TV and part of a dinosaur to make room for the list. This would all involve adding an extra user config and even though "if" statements aren't completely foreign to me, I have almost no experience writing them myself. So I might be in over my head haha.
I keep hitting a snag - if I try to just copy over the wheels from OlRoom along with the user config line at the top, then the layout won't work. There must be a call back somewhere that I'm missing - thus making it a broken connection and thus voiding the layout. It's frustrating because I have all of the dimensions for the vertical wheel mapped out already. If anyone can help me out, that'd be great.
Thank you guys SO MUCH for all of the help and ideas!
Uncle Yaron2019 is here for the rescue!
I actually added a working wheel to lava and then removed it because I didn't want to barge into your project.
But now... YOU ASKED FOR IT!!!!!!!!! 
Where are you with this coding effort?
Woohoo! Haha - Thank you so much! And I'd like to take credit, but this project is all Takoni.

Right now, all I have is all the x, y, h, w coordinates for the vertical wheel (with a wheel total of 6, that is - I'd have to map out more if someone wanted more than 6 wheel entries). I was wanting to substitute the listbox for the list that Takoni created:
Small Vertical List in far left corner:
//This enables vertical art instead of default wheel
if ( my_config["enable_list_type"] == "vert_wheel" )
{
fe.load_module( "conveyor" );
local wheel_x = [ flx*0.85, flx*0.85, -flx*1.465, flx*0.85, -flx*0.31, flx*0.85, flx*0.05, -flx*1.475, flx*0.85, flx*0.85, -flx*1.48, flx*0.85, ];
local wheel_y = [ -fly*0.22, -fly*0.105, -fly*0.2, fly*0.105, fly*0.215, -fly*0.17, fly*0.16, -fly*0.65, fly*0.72, fly*0.05, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.14, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, ];
local wheel_a = [ 80, 80, 80, 80, 80, 80, 255, 80, 80, 80, 80, 80, ]; //This is opacity
local wheel_h = [ flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.084, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, ]; //This is height, depending on the amont of wheels you select, each entry represents one wheel.
local wheel_r = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
local num_arts = 6;
class WheelEntry extends ConveyorSlot
{
constructor()
{
base.constructor( ::fe.add_artwork( my_config["orbit_art"] ) );
}
function on_progress( progress, var )
{
local p = progress / 0.1;
local slot = p.tointeger();
p -= slot;
slot++;
if ( slot < 0 ) slot=0;
if ( slot >=10 ) slot=10;
m_obj.x = wheel_x[slot] + p * ( wheel_x[slot+1] - wheel_x[slot] );
m_obj.y = wheel_y[slot] + p * ( wheel_y[slot+1] - wheel_y[slot] );
m_obj.width = wheel_w[slot] + p * ( wheel_w[slot+1] - wheel_w[slot] );
m_obj.height = wheel_h[slot] + p * ( wheel_h[slot+1] - wheel_h[slot] );
m_obj.rotation = wheel_r[slot] + p * ( wheel_r[slot+1] - wheel_r[slot] );
m_obj.alpha = wheel_a[slot] + p * ( wheel_a[slot+1] - wheel_a[slot] );
}
};
local wheel_entries = [];
for ( local i=0; i<num_arts/2; i++ )
wheel_entries.push( WheelEntry() );
local remaining = num_arts - wheel_entries.len();
// we do it this way so that the last wheelentry created is the middle one showing the current
// selection (putting it at the top of the draw order)
for ( local i=0; i<remaining; i++ )
wheel_entries.insert( num_arts/2, WheelEntry() );
local conveyor = Conveyor();
conveyor.set_slots( wheel_entries );
conveyor.transition_ms = 0;
try { conveyor.transition_ms = my_config["transition_ms"].tointeger(); } catch ( e ) { }
}
***************************************************************************
//Small vertical list in top right corner
if ( my_config["enable_list_type"] == "vert_wheel" )
{
fe.load_module( "conveyor" );
local wheel_x = [ flx*0.85, flx*0.85, flx*0.85, flx*0.85, flx*0.85, flx*0.85, flx*0.83, flx*0.85, flx*0.85, flx*0.85, flx*0.85, flx*0.85, ];
local wheel_y = [ -fly*0.22, -fly*0.105, -fly*0.2, fly*0.105, fly*0.215, -fly*0.17, fly*0.16, -fly*0.65, fly*0.72, fly*0.05, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.14, flw*0.09, flw*0.09, flw*0.09, flw*0.09, flw*0.09, ];
local wheel_a = [ 80, 80, 80, 80, 80, 80, 255, 80, 80, 80, 80, 80, ]; //This is opacity
local wheel_h = [ flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.084, flh*0.05, flh*0.05, flh*0.05, flh*0.05, flh*0.05, ]; //This is height, depending on the amont of wheels you select, each entry represents one wheel.
local wheel_r = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
local num_arts = 6;
*****************************************************************************
Full Size Vertical List on the Left:
local wheel_x = [ flx*0.78, flx*0.05, flx*0.78, -flx*0.32, flx*0.78, -flx*1.4255, flx*0.03, -flx*1.4255, flx*0.78, -flx*0.325, flx*0.78, flx*0.78, ];
local wheel_y = [ -fly*0.22, -fly*0.105, fly*0.0, fly*0.105, fly*0.215, fly*0.325, fly*0.436, fly*0.61, fly*0.72 fly*0.83, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.22, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, ];
local wheel_a = [ 80, 80, 80, 80, 150, 150, 255, 150, 150, 80, 80, 80, ];
local wheel_h = [ flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.15, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, ];
local wheel_r = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
local num_arts = 6;
*****************************************************************************
Full Size Vertical List on the Right:
local wheel_x = [ flx*0.78, flx*0.78, flx*0.78, flx*0.78, flx*0.78, flx*0.78, flx*0.76, flx*0.78, flx*0.78, flx*0.78, flx*0.78, flx*0.78, ];
local wheel_y = [ -fly*0.22, -fly*0.105, fly*0.0, fly*0.105, fly*0.215, fly*0.325, fly*0.436, fly*0.61, fly*0.72 fly*0.83, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.22, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, ];
local wheel_a = [ 80, 80, 80, 80, 150, 150, 255, 150, 150, 80, 80, 80, ];
local wheel_h = [ flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.15, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, ];
local wheel_r = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
local num_arts = 8;
*******************************************************************************************************
*******************************************************************************************************
*******************************************************************************************************
This is based off the coding from the OlRoom themes by omegaman - so all credit to him. This doesn't include my x, y, h, w coordinates for the vertical wheel:
*******************************************************************************************************
*******************************************************************************************************
*******************************************************************************************************
</ label="Select listbox, wheel, vert_wheel", help="Select wheel art type", options="listbox, wheel, vert_wheel", order=4 /> enable_list_type="vert_wheel";
.
.
.
//listbox
if ( my_config["enable_list_type"] == "listbox" )
{
local sort_listbox = fe.add_listbox( 176, 96, 45, 202 );
sort_listbox.rows = 13;
sort_listbox.charsize = 10;
sort_listbox.set_rgb( 0, 0, 0 );
sort_listbox.format_string = "[SortValue]";
sort_listbox.bg_alpha=255;
sort_listbox.visible = false;
local listbox = fe.add_listbox(flx*0.56, fly*0.12, flw*0.41, flh*0.8 );
listbox.rows = 13;
listbox.charsize = 18;
listbox.set_rgb( 255, 255, 255 );
listbox.bg_alpha = 90;
listbox.align = Align.Left;
listbox.selbg_alpha = 90;
listbox.sel_red = 255;
listbox.sel_green = 255;
listbox.sel_blue = 0;
}
//This enables vertical art instead of default wheel
if ( my_config["enable_list_type"] == "vert_wheel" )
{
fe.load_module( "conveyor" );
local wheel_x = [ flx*0.76, flx*0.76, flx*0.76, flx*0.76, flx*0.76, flx*0.76, flx*0.71, flx*0.76, flx*0.76, flx*0.76, flx*0.76, flx*0.76, ];
local wheel_y = [ -fly*0.22, -fly*0.105, fly*0.0, fly*0.105, fly*0.215, fly*0.325, fly*0.436, fly*0.61, fly*0.72 fly*0.83, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.14, flw*0.14, flw*0.14, flw*0.14, flw*0.14, flw*0.14, flw*0.24, flw*0.14, flw*0.14, flw*0.14, flw*0.14, flw*0.14, ];
local wheel_a = [ 80, 80, 80, 80, 80, 80, 255, 80, 80, 80, 80, 80, ];
local wheel_h = [ flh*0.08, flh*0.08, flh*0.08, flh*0.08, flh*0.08, flh*0.08, flh*0.128, flh*0.08, flh*0.08, flh*0.08, flh*0.08, flh*0.08, ];
local wheel_r = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
local num_arts = 6;
class WheelEntry extends ConveyorSlot
{
constructor()
{
base.constructor( ::fe.add_artwork( my_config["orbit_art"] ) );
}
function on_progress( progress, var )
{
local p = progress / 0.1;
local slot = p.tointeger();
p -= slot;
slot++;
if ( slot < 0 ) slot=0;
if ( slot >=10 ) slot=10;
m_obj.x = wheel_x[slot] + p * ( wheel_x[slot+1] - wheel_x[slot] );
m_obj.y = wheel_y[slot] + p * ( wheel_y[slot+1] - wheel_y[slot] );
m_obj.width = wheel_w[slot] + p * ( wheel_w[slot+1] - wheel_w[slot] );
m_obj.height = wheel_h[slot] + p * ( wheel_h[slot+1] - wheel_h[slot] );
m_obj.rotation = wheel_r[slot] + p * ( wheel_r[slot+1] - wheel_r[slot] );
m_obj.alpha = wheel_a[slot] + p * ( wheel_a[slot+1] - wheel_a[slot] );
}
};
local wheel_entries = [];
for ( local i=0; i<num_arts/2; i++ )
wheel_entries.push( WheelEntry() );
local remaining = num_arts - wheel_entries.len();
// we do it this way so that the last wheelentry created is the middle one showing the current
// selection (putting it at the top of the draw order)
for ( local i=0; i<remaining; i++ )
wheel_entries.insert( num_arts/2, WheelEntry() );
local conveyor = Conveyor();
conveyor.set_slots( wheel_entries );
conveyor.transition_ms = 50;
try { conveyor.transition_ms = my_config["transition_ms"].tointeger(); } catch ( e ) { }
}
if ( my_config["enable_list_type"] == "wheel" )
{
fe.load_module( "conveyor" );
local wheel_x = [ flx*0.80, flx*0.795, flx*0.756, flx*0.725, flx*0.70, flx*0.68, flx*0.63, flx*0.68, flx*0.70, flx*0.725, flx*0.756, flx*0.76, ];
local wheel_y = [ -fly*0.22, -fly*0.105, fly*0.0, fly*0.105, fly*0.215, fly*0.325, fly*0.436, fly*0.61, fly*0.72 fly*0.83, fly*0.935, fly*0.99, ];
local wheel_w = [ flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.28, flw*0.18, flw*0.18, flw*0.18, flw*0.18, flw*0.18, ];
local wheel_a = [ 80, 80, 80, 80, 80, 80, 255, 80, 80, 80, 80, 80, ];
local wheel_h = [ flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.168, flh*0.11, flh*0.11, flh*0.11, flh*0.11, flh*0.11, ];
local wheel_r = [ 30, 25, 20, 15, 10, 5, 0, -10, -15, -20, -25, -30, ];
local num_arts = 10;
class WheelEntry extends ConveyorSlot
{
constructor()
{
base.constructor( ::fe.add_artwork( my_config["orbit_art"] ) );
}
function on_progress( progress, var )
{
local p = progress / 0.1;
local slot = p.tointeger();
p -= slot;
slot++;
if ( slot < 0 ) slot=0;
if ( slot >=10 ) slot=10;
m_obj.x = wheel_x[slot] + p * ( wheel_x[slot+1] - wheel_x[slot] );
m_obj.y = wheel_y[slot] + p * ( wheel_y[slot+1] - wheel_y[slot] );
m_obj.width = wheel_w[slot] + p * ( wheel_w[slot+1] - wheel_w[slot] );
m_obj.height = wheel_h[slot] + p * ( wheel_h[slot+1] - wheel_h[slot] );
m_obj.rotation = wheel_r[slot] + p * ( wheel_r[slot+1] - wheel_r[slot] );
m_obj.alpha = wheel_a[slot] + p * ( wheel_a[slot+1] - wheel_a[slot] );
}
};
local wheel_entries = [];
for ( local i=0; i<num_arts/2; i++ )
wheel_entries.push( WheelEntry() );
local remaining = num_arts - wheel_entries.len();
// we do it this way so that the last wheelentry created is the middle one showing the current
// selection (putting it at the top of the draw order)
for ( local i=0; i<remaining; i++ )
wheel_entries.insert( num_arts/2, WheelEntry() );
local conveyor = Conveyor();
conveyor.set_slots( wheel_entries );
conveyor.transition_ms = 50;
try { conveyor.transition_ms = my_config["transition_ms"].tointeger(); } catch ( e ) { }
}