A developer power-tool for Garry's Mod. Run Lua from the console with smart variables, visual debugging, and context-aware autocomplete.
- Features
- Smart Autocomplete
- Environment Variables
- Commands
- Debug Mode
- Permissions
- Installation
- Contributing
- License
Code run via el_run tries to return a value as an expression first, then falls back to a statement. Return values are printed with type-aware formatting:
| Type | Output |
|---|---|
| Function | Name and parameter list |
| Vector | In-world crosshair marker |
| Entity | Halo + label (works for serverside-only entities too) |
| Color | Inline color swatch βββ in the console |
| Table | Recursive key/value dump |
Typing el_run in the console opens a tab-complete dropdown that resolves identifier chains through _G and metatables β get completions for things like NikNaks. or me:.
- Dot access (
.) β shows all members - Colon access (
:) β shows functions only, rankingself-taking methods highest - Syntax errors β shown inline in the dropdown before you run the command
The following shorthands are available in all el_run commands:
Player & World
| Variable | Description |
|---|---|
me / self |
The player running the command |
wep |
Your active weapon |
ground |
Ground entity of what you're looking at, or your own if looking at nothing |
world |
Entity(0) β the world entity |
map |
The current map name |
Spatial
| Variable | Description |
|---|---|
here |
Your current position (Vector) |
there |
The position your crosshair is hitting (Vector) |
eye |
Eye position of what you're looking at, or your own (Vector) |
fwd |
Forward direction of what you're looking at, or your own (Vector) |
ang |
Angle of what you're looking at, or your own (Angle) |
vel |
Velocity of what you're looking at, or your own (Vector) |
Targeting
| Variable | Description |
|---|---|
trace |
Full eye-trace result table |
this / that |
The entity you're looking at |
hp |
Health of what you're looking at, or your own if looking at nothing |
near |
The nearest entity to your aim position |
nearme |
The nearest entity to your own position |
Dynamic Lookups
| Pattern | Description |
|---|---|
ent<id> |
Entity by index β ent42 β Entity(42) |
prox<distance> |
All entities near your aim within distance units (default 128) |
ply<name> |
Nearest player matching a partial name β plyNak |
p |
Shorthand print β p(value) works mid-expression |
Fuzzy entity lookup β If an unknown variable is used, EEL searches the map for a matching entity in order: player names β entity classes β entity names β entity models β nearest match.
-- Teleports the player matching "nak" to your crosshair
el_run nak:SetPos(there)| Command | Description |
|---|---|
el_run <code> |
Run Lua serverside |
el_run_cl <code> |
Run Lua clientside |
el_time <code> |
Run serverside and print execution time |
el_time_cl <code> |
Clientside version of el_time |
el_sealed <code> |
Run in a read-only environment β _G is not modified |
el_sealed_cl <code> |
Clientside version of el_sealed |
el_lazy fills in parentheses automatically and supports pipe chaining:
el_lazy here - eye + there | me:SetPos
-- equivalent to: el_run me:SetPos(here - eye + there)
el_lazy me:SetPos there
-- equivalent to: el_run me:SetPos(there)| Command | Description |
|---|---|
el_lazy <code> |
Lazy execution serverside |
el_lazy_cl <code> |
Lazy execution clientside |
| Command | Description |
|---|---|
el_ent_spawn <class> [amount] |
Spawn entities at your aim position (default 1, max 100) |
el_ent_remove_all <class> |
Remove all entities of the given class |
el_ent_sequence |
Print all sequences for the entity you're looking at |
| Command | Description |
|---|---|
el_debug_mode [0/1] |
Toggle the clientside debug overlay |
When enabled, nearby entities are rendered with:
- Collision mesh wireframe β actual physics hull from the server, drawn as a cyan wireframe
- Entity info overlay β class, model, position, angles, velocity, physics state, animation data, health, render properties, materials, and more
EEL integrates with CAMI for admin-mod compatibility. All commands require superadmin access by default, configurable through any CAMI-compatible admin mod.
- Download the latest release (
.zip) - Extract the contents
- Move the folder into
garrysmod/addons/so the path is:garrysmod/addons/eel/ - Restart your server or client
Pull requests are welcome.
Licensed under the GNU General Public License v3.0. See LICENSE for details.

