Project Structure

Getting Started Updated: Dec 10, 2025

Project Structure

cLib File Structure

clib_1.3/
├── lua/
│   ├── autorun/
│   │   └── sh_clib_loader.lua      # Main loader
│   └── clib/
│       ├── sh_default_elements.lua  # Default colors/fonts
│       ├── cl/                       # Client-side files
│       │   ├── cl_animations.lua    # Animation system
│       │   ├── cl_fonts.lua         # Font creation
│       │   ├── cl_notifications.lua # Notification system
│       │   ├── cl_utils.lua         # Client utilities
│       │   └── vgui_elements/       # All VGUI components
│       │       ├── cl_dbutton.lua
│       │       ├── cl_dframe.lua
│       │       ├── cl_dtoggle.lua
│       │       └── ... (20+ components)
│       ├── sh/                       # Shared files
│       │   ├── sh_colors.lua        # Color system
│       │   ├── sh_debug.lua         # Debug/logging
│       │   ├── sh_lang.lua          # i18n system
│       │   ├── sh_materials.lua     # Material system
│       │   ├── sh_net.lua           # Networking
│       │   └── sh_utils.lua         # Shared utilities
│       └── sv/                       # Server-side files
│           ├── sv_mysql.lua         # MySQL integration
│           └── sv_utils.lua         # Server utilities
├── materials/
│   └── clib/                        # cLib materials
└── resource/
    └── fonts/                       # Custom fonts (Bebas Neue)

Your Addon Structure

Recommended structure for addons using cLib:

myaddon/
├── lua/
│   ├── autorun/
│   │   └── sh_myaddon_loader.lua   # Loads your addon
│   └── myaddon/
│       ├── sh_config.lua           # Configuration
│       ├── sv_database.lua         # Server database
│       ├── sv_network.lua          # Server networking
│       ├── cl_menu.lua             # Client UI
│       └── cl_network.lua          # Client networking
└── materials/
    └── myaddon/                    # Your materials

Addon Loader Example

-- autorun/sh_myaddon_loader.lua
MyAddon = MyAddon or {}

hook.Add("cLib.OnLoaded", "MyAddon.Load", function()
    -- Load all addon files
    cLib.includeDir("myaddon/")
    
    print("[MyAddon] Loaded successfully!")
end)