Custom SpawnMenu
How do I make my own SpawnMenu?
This requires, at a minimum, accessing all added tabs. You can do this like this:
for k, v in SortedPairsByMemberValue( spawnmenu.GetCreationTabs(), "Order" ) do
PrintTable( v )
print( k ) -- The tab name
end
Example
local menu = vgui.Create( "DFrame" )
menu:SetSize( 1000, 550 )
menu:Center()
menu:MakePopup()
local sheet = vgui.Create( "DPropertySheet", menu )
sheet:Dock( FILL )
for k, v in SortedPairsByMemberValue( spawnmenu.GetCreationTabs(), "Order" ) do
local panel = v.Function()
panel:SetParent( sheet )
sheet:AddSheet( k, panel, v.Icon )
end
Output: 

Next you need to access the Tool part:
for _, tool in ipairs( spawnmenu.GetTools() ) do
for _, category in ipairs( tool.Items ) do
print( category.Text ) -- Category name
for _, item in ipairs( category ) do
print( item.Text ) -- Name of the tool itself
end
end
end
The most difficult thing has already been done, it remains only to substitute the VGUI part to these schemes and enjoy your SpawnMenu.
Example of custom work: FreSpawnmenu