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 materialsAddon 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)