Entity wont draw model but will cast shadow and draw hitbox.

Hey everyone

I’m trying to create a simple custom entity. Testing it in Sandbox works fine, but when I spawn it through glua, it doesn’t draw it’s model. It does, however, cast the correct shadow, and also boasts a hitbox.

This is my initialization (server):
[lua]
function ENT:Initialize()

self:SetModel("models/props_lab/workspace004.mdl")
self:PhysicsInit(SOLID_VPHYSICS)
self:SetMoveType(MOVETYPE_VPHYSICS)
self:SetSolid(SOLID_VPHYSICS)
self:SetUseType(SIMPLE_USE)

local phys = self:GetPhysicsObject()

if phys:IsValid() then

	phys:Wake()

end

end
[/lua]

And yes, I am drawing it clientside:
[lua]
function ENT:Draw()

self:DrawModel()

end

[/lua]

This is the (serverside) code that spawns the ent:
[lua]
local MapFork = ents.Create(“grills_wac_spawner”)

	MapFork:SetPos(Vector(11310, -11085, -6208))
	MapFork:SetModel("models/props_lab/workspace004.mdl")
	MapFork:SetAngles(Angle(0,115,0))
	MapFork:Spawn()

	local l = MapFork:GetPhysicsObject()
	l:EnableMotion(false)
end

[/lua]

This is the result:

Show your entire entity file. Everything there looks alright.

Clientside:

[lua]
include(“shared.lua”)

surface.CreateFont( “grills_wac_spawner_Font”, {
font = “Arial”, – Use the font-name which is shown to you by your operating system Font Viewer, not the file name
extended = false,
size = 14,
weight = 500,
blursize = 0,
scanlines = 0,
antialias = true,
underline = false,
italic = false,
strikeout = false,
symbol = false,
rotary = false,
shadow = false,
additive = false,
outline = false,
} )

-- Propper indentation:

/*
function something()

	if this and that then

		for kv in paris() do

			if dfkafd
			end

		end

	end

	ply:Kills()

end
*/


function ENT:Draw()

self:DrawModel()

end

net.Receive("wac_spawn_panel", function()

local frame = vgui.Create("DFrame")
frame:SetSize(280,160)
frame:Center()
frame:SetTitle("Wac Spawner")
frame:SetVisible(true)
frame:SetDraggable(false)
frame:ShowCloseButton(true)
frame:MakePopup()
frame.Paint = function(self , w , h)
	draw.RoundedBox(4,0,0,w,h,Color(70,70,70))
	draw.RoundedBox(4,2,2,w-4,h-4,Color(100,100,110))
	draw.RoundedBox(0,2,2,w-4,21,Color(70,70,70))
end

		frame.OnKeyCodePressed = function( panel, key )

		if key == KEY_E then

			panel:Close()
		end
end


local AirCraft_Select = vgui.Create("DComboBox", frame)
AirCraft_Select:SetPos( 5, 30 )
AirCraft_Select:SetSize( 150, 20 )
AirCraft_Select:SetValue("Select AirCraft")
AirCraft_Select:AddChoice( "Jet Plane" )
AirCraft_Select:AddChoice( "Indiana Jones Plane (Broken)" )
AirCraft_Select:AddChoice( "LittleBird Chopper" )

		local label = vgui.Create("DLabel", frame)
		label:SetPos(5,55)
		label:SetText(
			[[Select an Aircraft to spawn
			Then press the "Spawn!" Button.


			Obs! - Any Aircraft within
			500 units of the spawning
			point will get removed!]] )
			label:SizeToContents()


			submitBtnColor = Color( 100, 190, 100 )

			local submitBtn = vgui.Create("DButton",frame)
			submitBtn:SetSize(100,60)
			submitBtn:SetPos(160,30)
			submitBtn:SetText("Spawn!")
			submitBtn:SetTextColor(Color(0,0,0,255))
			submitBtn.Paint = function(self , w ,h)
				draw.RoundedBox(4,0,0,w,h,Color(70,70,70))
				draw.RoundedBox(4,2,2,w-4,h-4,submitBtnColor)
			end

			AirCraft_Select.OnSelect = function()
			submitBtnColor = Color( 100, 190, 100 )
			submitBtn:SetText("Spawn!")
			end

			local removelabel = vgui.Create("DLabel",frame)
			removelabel:SetPos(162.5, 141)
			removelabel:SetText("Removes Wac Entity")
			removelabel:SizeToContents()
			removelabel:SetFont("grills_wac_spawner_Font")

				local removeBtn = vgui.Create("DButton", frame)
				removeBtn:SetSize(90,50)
				removeBtn:SetPos(165, 92)
				removeBtn:SetText("Remove!")
				removeBtn:SetTextColor(Color(0,0,0,255))
				removeBtn.Paint = function(self , w ,h)
					draw.RoundedBox(4,0,0,w,h,Color(70,70,70))
					draw.RoundedBox(4,2,2,w-4,h-4, Color(190,100,100,255))
				end

		removeBtn.DoClick = function()

	net.Start("wac_remove")
	net.SendToServer()
	surface.PlaySound("ui/buttonclick.wav")
end


submitBtn.DoClick = function ()


local AIRCRAFT_TYPE = "Default"
local AIRCRAFT_SPAWN = "Default"

if AirCraft_Select:GetSelected() == "Jet Plane" then

	AIRCRAFT_SPAWN = "wac_pl_f16"
	AIRCRAFT_TYPE = "Jet Plane"

elseif AirCraft_Select:GetSelected() == "Indiana Jones Plane (Broken)" then

	AIRCRAFT_SPAWN = "wac_pl_c172"
	AIRCRAFT_TYPE = "Indiana Jones Plane (Broken)"

elseif AirCraft_Select:GetSelected() == "LittleBird Chopper" then

	AIRCRAFT_SPAWN = "wac_hc_littlebird_ah6"
	AIRCRAFT_TYPE = "LittleBird Chopper"

else

	AIRCRAFT_SPAWN = "ERROR"
	AIRCRAFT_TYPE = "ERROR"

end

print("Grills Wac_Spawner Spawned A " .. AIRCRAFT_TYPE .. " (" .. AIRCRAFT_SPAWN .. ")")

if AirCraft_Select:GetSelected() then

	net.Start("wac_spawn")
	net.WriteString(AIRCRAFT_SPAWN)
	net.SendToServer()
	frame:Close()
	surface.PlaySound("ui/buttonclickrelease.wav")
else
	print("Grills Wac_Spawner Selection Error")
	submitBtn:SetText("Select AirCraft!")
	submitBtnColor = Color(255,100,100)
	surface.PlaySound("buttons/button10.wav")
end

end

end)

// Planes
–“wac_pl_f16” - jet
–“wac_pl_c172” - Indana plane

// Helicopters
– “wac_hc_littlebird_ah6”

[/lua]

Serverside:

[lua]
AddCSLuaFile(“cl_init.lua”)
AddCSLuaFile(“shared.lua”)

include(“shared.lua”)

util.AddNetworkString(“wac_spawn_panel”)
util.AddNetworkString(“wac_spawn”)
util.AddNetworkString(“wac_remove”)

local Wac_spawn_Pos_Vector = Vector(11320,-10400,-6000)

function ENT:Initialize()

self:SetModel("models/props_lab/workspace004.mdl")
self:PhysicsInit(SOLID_VPHYSICS)
self:SetMoveType(MOVETYPE_VPHYSICS)
self:SetSolid(SOLID_VPHYSICS)
self:SetUseType(SIMPLE_USE)

local phys = self:GetPhysicsObject()

if phys:IsValid() then

	phys:Wake()

end

end

function ENT:Use(_ , caller)

net.Start("wac_spawn_panel")
net.Send(caller)

end

function removeWac()

for _,ent in pairs(ents.FindInSphere(Wac_spawn_Pos_Vector,500)) do

	if string.sub( ent:GetClass(), 1, 4 ) == "wac_" then

		ent:Remove()

	end
end

end

hook.Add( “PlayerSay”, “Spawn_Wac_Spawner”, function( ply, text, public )

text = string.lower( text )

if ( text == "!wac_spawner" ) then

	for k , v in pairs(ents.GetAll()) do
		if v:GetClass() == "grills_wac_spawner" then
			v:Remove()
		end
	end

	local MapFork = ents.Create("grills_wac_spawner")

	MapFork:SetPos(Vector(11310, -11085, -6208))
	MapFork:SetModel("models/props_lab/workspace004.mdl")
	MapFork:SetAngles(Angle(0,115,0))
	MapFork:Spawn()

	local l = MapFork:GetPhysicsObject()
	l:EnableMotion(false)
end

end)

net.Receive(“wac_remove”,function()
removeWac()

end)

net.Receive(“wac_spawn”, function()
local AIRCRAFT_SPAWN = net.ReadString()
removeWac()

local WacJet = ents.Create(AIRCRAFT_SPAWN)
WacJet:SetPos(Wac_spawn_Pos_Vector)
WacJet:SetAngles(Angle(0,-150,0))
WacJet:DropToFloor()
WacJet:Spawn()

PrintTable(WacJet:GetChildren())

for k, v in pairs(WacJet:GetChildren()) do

	if string.sub( v:GetClass(), 1, 7 ) == "wac_pod" then
		v:SetAngles(Angle(0,-150,0))
	end

end

end)

[/lua]

Shared:

[lua]
ENT.Type = “anim”
ENT.Base = “base_entity”

ENT.PrintName = “Wac Spawner”

ENT.Spawnable = true

function ENT:SetupDataTables(type, slot, name)

	self:NetworkVar("Int",1,"TestInt")

end

[/lua]

Try removing function() something in your client file as it’s using this and that (nil values) and an incorrect usage of a for loop

Edit: just noticed it was commented…ignore me