Revision Difference
Custom_SpawnMenu#526928
<cat>Dev.Lua</cat>
<title>Custom SpawnMenu</title>
# How do I make my own SpawnMenu?
## This requires, at a minimum, accessing all added tabs. You can do this like this:
```lua
for k, v in SortedPairsByMemberValue( spawnmenu.GetCreationTabs(), 'Order' ) do
PrintTable( v )
print( k ) -- The tab name
end
```
⤶
<example>⤶
<code>⤶
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⤶
</code>⤶
<output>⤶
<image src = 'https://i.imgur.com/CZU3dNh.png' alt = 'Autocomplete_showing_several_DarkRP_commands' />⤶
</output>⤶
</example>⤶
## Next you need to access the Tool part:
```lua
for k, v in pairs( spawnmenu.GetTools() ) do
for a, b in pairs( v ) do
if ( istable( b ) ) then
for l, p in pairs( b ) do
print( p.Text ) -- Category name
for g, h in pairs( p ) do
if ( istable( h ) ) then
print( h.Text ) -- Name of the tool itself
end
end
end
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 a ready-made SpawnMenu
## SpawnMenu by Freline user:
https://steamcommunity.com/sharedfiles/filedetails/?id=2032678386