DermaPanel doesn't show up at all

Solved. Was trying to run it by using a wrong command. Thanks for the assistance though.

You’re better off creating a command to run the derma menu, it’s way easier and you practice how to make commands at the same time.

This is some snippet of code I got, can’t remember if it works.





-------- SERVER SIDE FILE

hook.Add( "PlayerSay", "Killurself", function( ply, text, public )
	text = string.lower( text ) -- Make the chat message entirely lowercase
	if ( text == "!testmenu" ) then
		print("negro")
    umsg.Start( "DrawTheMenu", ply ) -- starts the creation of the usermessage, names the usermessage "DrawTheMenu" and sets the player to send it to as the player who used the entity.
        umsg.Short( "1" ) -- adds a pointless interger to the usermessage, simply because the last time I tried it wouldn't work with an empty one. ignore this.
    umsg.End() -- finishes the creation of the usermessage and sends it to the client
	end
end )

---- CLIENT SIDE FILE

surface.CreateFont( "title", { // XP Bar font
	 font = "Trebuchet24",
	 size = 18,
	 weight = 500,
	 blursize = 0,
	 scanlines = 0,
} )

local PlayerLevel = LocalPlayer():getDarkRPVar('level')
local rpname = LocalPlayer():getDarkRPVar('rpname')


local function DrawTheMenu() -- the function to call when the usermessage is received
    -- your derma stuff goes in this function..
	local Frame = vgui.Create( "DFrame" )
	Frame:SetSize( 800, 500 )
	Frame:SetPos( ScrW() / 2 - 250, ScrH() / 2 - 250 )
	Frame:SetTitle( "Testing Derma" )
	Frame:MakePopup()

	
	
		local Panel = vgui.Create( "DPanel", Frame )
		Panel:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 322.5 )
		Panel:SetSize( 200, 455 )
		
		local Name = vgui.Create( "DPanel", Frame ) -- Name
		Name:SetPos( ScrW() / 2 - 630, ScrH() / 2 - 322.5 )
		Name:SetSize( 575, 40 )
		
		local Level = vgui.Create( "DPanel", Frame ) -- Level
		Level:SetPos( ScrW() / 2 - 630, ScrH() / 2 - 280 )
		Level:SetSize( 575, 40 )
		
		local leveltext = vgui.Create( "DLabel", Level )
		leveltext:SetPos( 10, 10 )
		leveltext:SetSize( 35, 50 )
		leveltext:SetColor(Color(255,255,255,255)) // Color
		leveltext:SetFont("title")
		leveltext:SetText("Level: " ..PlayerLevel ) // Text
		leveltext:SizeToContents() // make the control the same size as the text.

		local nametext = vgui.Create( "DLabel", Name )
		nametext:SetPos( 10, 10 )
		nametext:SetSize( 35, 50 )
		nametext:SetColor(Color(255,255,255,255)) // Color
		nametext:SetFont("title")
		nametext:SetText("Name: " ..rpname ) // Text
		nametext:SizeToContents() // make the control the same size as the text.
	
		local icon = vgui.Create( "DModelPanel", Frame )
		icon:SetSize( 500, 500 )
		icon:SetPos( ScrW() / 2 - 195, ScrH() / 2 - 350 )
		icon:SetModel( LocalPlayer():GetModel() ) -- you can only change colors on playermodels
	

	
	function Frame:Paint( w, h )
			draw.RoundedBox( 2, 0, 0, w, h, Color( 236, 240, 241 ) ) -- Main box
			draw.RoundedBox( 2, 0, 0, w, 28, Color( 67, 144, 196 ) ) --  shadow below header
			draw.RoundedBox( 2, 0, 0, w, 25, Color( 52, 152, 219 ) ) -- Header bar
	end
	
	function Panel:Paint( w, h )
			draw.RoundedBox( 2, 0, 0, w, h, Color( 209, 209, 209 ) ) -- Main box
	end

		function Name:Paint( w, h )
			draw.RoundedBox( 2, 0, 0, w, h, Color( 209, 209, 209 ) ) -- Main box
		end
		
	
		function Level:Paint( w, h )
			draw.RoundedBox( 2, 0, 0, w, h, Color( 209, 209, 209 ) ) -- Main box
		end

end

usermessage.Hook( "DrawTheMenu", DrawTheMenu ) -- hooks the usermessage so when the "DrawTheMenu" usermessage is received by the client, it runs the function DrawTheMenu, which will open your menu.





If you have your code in autorun/client/ then theres no reason to have if SERVER then return end / if CLIENT then end

just do



local DermaPanel = vgui.Create( "DFrame" )
DermaPanel:SetPos( 100,50 )
DermaPanel:SetSize( 800, 600 )
DermaPanel:SetTitle( "MyDermaPanel" )
DermaPanel:SetDraggable( true )
DermaPanel:ShowCloseButton( true )
DermaPanel:MakePopup()


Also theres no reason to set the DFrame to visible because it’s always going to be visible unless you change something