Entity in Spawn Menu

**Didn’t have ENT.Spawnable in the shared.lua. I feel stupid now =/

Hey guys. I just started with Lua 2 days ago, read over the tutorials and such in the GMod wiki. I’m working on my second script right now, and I’m having some difficulty with it. What I’m trying to make is a “Magic Hula Doll”, a magic 8 ballesque SEnt that gives a random answer when you use it. I got everything working, I got it to spawn using the console, but I can’t get it to show up in the spawn menu. I’ve looked through the tutorials and searched the forums, and everything says to use “Ent.SpawnFunction”. I did this, and copied straight from the tutorial on the wiki, I tried using ones from other posters here, and I’ve tried copying it from other addons I have. If anyone could help me with it, I would really appreciate it. Here is my code:


readingsTable[1]= "Signs point to yes."
readingsTable[2]= "Yes."
readingsTable[3]= "Reply hazy, try again."
readingsTable[4]= "Without a doubt."
readingsTable[5]= "My sources say no."
readingsTable[6]= "As I see it, yes."
readingsTable[7]= "You may rely on it."
readingsTable[8]= "Concentrate and ask again."
readingsTable[9]= "Outlook not so good."
readingsTable[10]= "It is decidedly so."
readingsTable[11]= "Better not tell you now."
readingsTable[12]= "Very doubtful."
readingsTable[13]= "Yes - definitely."
readingsTable[14]= "It is certain."
readingsTable[15]= "Cannot predict now."
readingsTable[16]= "Most likely."
readingsTable[17]= "Ask again later."
readingsTable[18]= "My reply is no."
readingsTable[19]= "Outlook good."
readingsTable[20]= "Don't count on it."

AddCSLuaFile( "cl_init.lua" ) -- Make sure clientside
AddCSLuaFile( "shared.lua" )  -- and shared scripts are sent.

function MakeMagicHula(pl, Data)
    local ent = ents.Create("MagicHula")
    if not ent:IsValid() then return end
    duplicator.DoGeneric(ent, Data)
    duplicator.DoGenericPhysics(ent, pl, Data)

    return ent

duplicator.RegisterEntityClass("MagicHula", MakeMagicHula, "Data")

function ENT:SpawnFunction( ply, tr )
    if (not tr.Hit) then return end
    local SpawnPos = tr.HitPos+tr.HitNormal*16
    local ent = MakeMagicHula(ply, {Pos=SpawnPos})
    return ent

function ENT:Initialize()
     self.Entity:SetUseType( SIMPLE_USE )
    self.Entity:SetModel( "models/props_lab/huladoll.mdl" )
    self.Entity:PhysicsInit( SOLID_VPHYSICS )      -- Make us work with physics,
    self.Entity:SetMoveType( MOVETYPE_VPHYSICS )   -- after all, gmod is a physics
    self.Entity:SetSolid( SOLID_VPHYSICS )         -- Toolbox
        local phys = self.Entity:GetPhysicsObject()
    if (phys:IsValid()) then
function ENT:Use( activator, caller )

    local answer = math.random(1,20)
    activator:PrintMessage(HUD_PRINTTALK, readingsTable[answer])



 include('shared.lua')   --[[---------------------------------------------------------    Name: Draw    Purpose: Draw the model in-game.    Remember, the things you render first will be underneath! ---------------------------------------------------------]] function ENT:Draw()     -- self.BaseClass.Draw(self)  -- We want to override rendering, so don't call baseclass.                                   -- Use this when you need to add to the rendering.     self:DrawEntityOutline( 1.0 ) -- Draw an outline of 1 world unit.     self.Entity:DrawModel()       -- Draw the model.     AddWorldTip( self.Entity:EntIndex(), "Have your future read.", 0.5, self.Entity:GetPos(), self.Entity  ) end 


ENT.Type = "anim"
ENT.Base = "base_gmodentity"
ENT.PrintName        = "Magic Hula Dancer"
ENT.Author            = "Arodang"
ENT.Contact            = ""
ENT.Purpose            = "Random pyschic readings"
ENT.Instructions    = "Ask the Magic Hula Dancer a yes or no question, and gain some insight into the future."

I checked the console for errors, and I couldn’t find any. The actual entity works as I want it to, but I just can’t figure out why it isn’t on the spawn menu. Sorry if the answer is obvious, but as I said, I’m fairly new. Thanks in advance.


Bah I can’t read