Creed Lua Scripting API

Create custom overlays, radars, ESP, HUDs, and game tools using the built-in Lua scripting engine. Scripts run each frame and can read live game data and draw to the overlay.

Overview

The Creed team is proud to introduce the Creed Scripting Engine, powered by a built-in Lua 5.4 runtime. Each .lua file in the scripts/ or scripts/examples/ folder is loaded automatically at startup. Scripts can be toggled on/off, reloaded live, and each runs in its own isolated Lua state.

All scripting happens through the global creed table, which provides:

Draggable output: Each script's draw output gets its own drag handle on the overlay. You can reposition a radar script without affecting an ESP script that uses full-screen coordinates.

Quick Start

Create a .lua file in the scripts/ folder (or scripts/examples/) with a global OnTick() function:

-- hello.lua
local WHITE = creed.Color(255, 255, 255)

function OnTick()
    creed.DrawText("Hello from Lua!", 100, 100, WHITE, 20.0)
end

That's it. The overlay picks it up automatically (or click Reload All in the Scripts tab).

Tip: No recompilation needed to change scripts. Edit the .lua file, then hit Reload in the overlay.

Script Lifecycle

Each script goes through these stages:

  1. Load — The file is read and executed once (top-level code runs here). Use this for local variable initialization and color constants.
  2. OnTick() — Called every frame (~60 times/second). All drawing and data queries go here.
  3. Reload — Triggered from the overlay UI. The script state is destroyed and re-created from disk.
-- Top-level: runs once on load
local counter = 0
local RED = creed.Color(255, 0, 0)

-- Called every frame
function OnTick()
    counter = counter + 1
    creed.DrawText("Frame: " .. tostring(counter), 10, 10, RED)
end

Sandbox & Safety

Scripts run in a sandboxed Lua environment. The following are not available for security:

BlockedReason
os, ioNo filesystem or OS access
dofile, loadfile, loadNo loading arbitrary code
requireNo module system (prevents file access)
collectgarbageNo GC manipulation
rawget, rawset, rawequal, rawlenNo metatable bypassing

Available standard libraries: math, string, table, utf8, coroutine, and base functions (print, pairs, ipairs, tostring, tonumber, type, select, pcall, xpcall, error, assert, next, unpack).

Drawing API

All draw functions write to the overlay's render queue. Coordinates are in screen pixels (0,0 = top-left). Colors are packed 32-bit ABGR integers created with creed.Color().

Draw limit: Up to 4,096 draw commands per frame across all scripts. Text uses 1 command. Complex scenes should be efficient.

DrawLine

creed.DrawLine(x1, y1, x2, y2, color [, thickness])

Draws a line between two screen points.

x1, y1
Start point (screen pixels)
x2, y2
End point (screen pixels)
color
Packed color from creed.Color()
thickness
Line width in pixels (default: 1.0)

DrawBox / DrawFilledBox

creed.DrawBox(x, y, w, h, color [, thickness])
creed.DrawFilledBox(x, y, w, h, color)

Draws a rectangle outline or a filled rectangle.

x, y
Top-left corner (screen pixels)
w, h
Width and height
color
Packed color
thickness
Outline width (DrawBox only, default: 1.0)

DrawCircle / DrawFilledCircle

creed.DrawCircle(cx, cy, radius, color [, thickness] [, segments])
creed.DrawFilledCircle(cx, cy, radius, color [, segments])

Draws a circle outline or filled circle.

cx, cy
Center point (screen pixels)
radius
Radius in pixels
color
Packed color
thickness
Outline width (DrawCircle only, default: 1.0)
segments
Number of polygon segments (default: 32). Use lower values for performance or for polygon shapes.

DrawTriangle / DrawFilledTriangle

creed.DrawTriangle(x1, y1, x2, y2, x3, y3, color [, thickness])
creed.DrawFilledTriangle(x1, y1, x2, y2, x3, y3, color) NEW

Draws a triangle outline or filled triangle from three screen points.

x1, y1
First vertex
x2, y2
Second vertex
x3, y3
Third vertex
color
Packed color
thickness
Outline width (DrawTriangle only, default: 1.0)
-- Draw a filled direction arrow
local cx, cy = 200, 200
creed.DrawFilledTriangle(cx, cy - 20, cx - 10, cy + 10, cx + 10, cy + 10,
    creed.Color(255, 100, 100))

DrawText

creed.DrawText(text, x, y, color [, fontSize])

Draws a string at the given screen position.

text
String to display (max 63 characters)
x, y
Top-left of the text (screen pixels)
color
Packed color
fontSize
Font size in pixels (default: 14.0)

Color

creed.Color(r, g, b [, a]) → number

Creates a packed 32-bit color value. All draw functions expect this format.

r, g, b
Red, green, blue (0–255)
a
Alpha / opacity (0–255, default: 255 = fully opaque)
Returns: number — packed ABGR color for use with all draw functions.
local RED        = creed.Color(255,   0,   0)           -- solid red
local SEMI_BLACK = creed.Color(  0,   0,   0, 128)      -- 50% transparent black
local GOLD       = creed.Color(255, 200,  50)           -- solid gold

ColorLerp NEW

creed.ColorLerp(color1, color2, t) → number

Linearly interpolates between two colors. Useful for health bars, heat maps, and smooth transitions.

color1
Start color (packed)
color2
End color (packed)
t
Blend factor (0.0 = color1, 1.0 = color2)
Returns: number — interpolated packed color.
local RED   = creed.Color(255, 0, 0)
local GREEN = creed.Color(0, 255, 0)

-- Health bar that fades from red to green
local hpFrac = player.Health / player.MaxHealth
local barColor = creed.ColorLerp(RED, GREEN, hpFrac)

Game Data

GetEntities

creed.GetEntities([maxDistance]) → table<EntityInfo>

Returns a list of all nearby game entities (players, vehicles, structures, mines, turrets).

maxDistance
Maximum distance in game units / cm (default: 10000 = 100m)
Returns: array of EntityInfo — see EntityInfo type.
local entities = creed.GetEntities(20000)  -- 200m range
for _, ent in ipairs(entities) do
    if ent.IsPlayer and not ent.IsLocalPlayer then
        creed.Log(ent.ClassName .. " at " .. tostring(ent.Distance / 100) .. "m")
    end
end

GetProjectiles

creed.GetProjectiles([maxDistance]) → table<ProjectileInfo>

Returns all in-flight projectiles (grenades, mortars, artillery shells, rockets).

maxDistance
Maximum distance in game units (default: 50000)
Returns: array of ProjectileInfo — see ProjectileInfo type.

GetLocalPlayer

creed.GetLocalPlayer() → PlayerStats

Returns the local player's health, stamina, and position.

Returns: PlayerStats — see PlayerStats type.
Note: Returns a valid object even when dead or not spawned, but MaxHealth will be 0. Always check player.MaxHealth > 0 before using.

GetLocalTeam

creed.GetLocalTeam() → number

Returns the local player's team ID.

Returns: number0 (Colonial), 1 (Warden), or 255 (unknown).

GetCamera

creed.GetCamera() → table

Returns the current camera state. Essential for radar rotation and WorldToScreen.

Returns a table with:
FieldTypeDescription
PositionVector3Camera world position
RotationnumberCamera yaw in degrees (0–360)
PitchnumberCamera pitch angle in degrees
FOVnumberField of view in degrees
OrthoWidthnumberOrthographic width (world units visible)
ProjectionModenumber0 = Perspective, 1 = Orthographic

GetClosestEnemy

creed.GetClosestEnemy([maxDist] [, playersOnly] [, targetVehicles] [, fovRadius]) → AimbotTarget

Finds the closest enemy to the crosshair within a maximum distance.

maxDist
Search range in game units (default: 50000)
playersOnly
Only target player characters (default: false)
targetVehicles
Include vehicles as targets (default: true)
fovRadius
Crosshair FOV radius in pixels (default: 200)
Returns: AimbotTarget — see AimbotTarget type. Check .HasTarget before using.

GetArtillery

creed.GetArtillery() → ArtilleryData

Returns current artillery state if the player is manning an artillery piece.

Returns: ArtilleryData — see ArtilleryData type. Check .IsInArtillery first.

GetWind

creed.GetWind() → WindData

Returns current wind conditions from the game's weather system.

Returns: WindData — see WindData type. Check .Valid first.

Utility Functions

WorldToScreen

creed.WorldToScreen(worldX, worldY, worldZ) → table | nil

Projects a 3D world position onto screen coordinates. Returns nil if the point is behind the camera or off-screen.

worldX, worldY, worldZ
World position (game units)
Returns: table with .X and .Y (screen pixels), or nil.
local screen = creed.WorldToScreen(ent.Position.X, ent.Position.Y, ent.Position.Z)
if screen then
    creed.DrawText(ent.ClassName, screen.X, screen.Y, WHITE)
end

WorldToRadar NEW

creed.WorldToRadar(worldX, worldY, playerX, playerY, cameraYaw, radarCX, radarCY, radarRadius, radarRange) → table

Converts a world position to radar screen coordinates with proper camera rotation. Handles clamping to the radar circle edge automatically.

worldX, worldY
Entity world position
playerX, playerY
Local player world position
cameraYaw
Camera rotation from creed.GetCamera().Rotation
radarCX, radarCY
Radar center on screen (pixels)
radarRadius
Radar size (pixels)
radarRange
Radar range (world units)
Returns: table with .X, .Y (screen pixels) and .InRange (bool).
local cam = creed.GetCamera()
local player = creed.GetLocalPlayer()
local dot = creed.WorldToRadar(
    ent.Position.X, ent.Position.Y,
    player.Position.X, player.Position.Y,
    cam.Rotation,
    160, 160,   -- radar center
    140,         -- radar pixel radius
    15000)       -- 150m range
creed.DrawFilledCircle(dot.X, dot.Y, 3, RED)

GetScreenSize

creed.GetScreenSize() → table

Returns the overlay's display dimensions.

Returns: table with .Width and .Height (pixels).

GetDistance

creed.GetDistance(vec3a, vec3b) → number

Returns the 3D Euclidean distance between two Vector3 positions.

GetTime / GetDeltaTime

creed.GetTime() → number

Returns the current time in milliseconds since system boot (monotonic). Useful for animations and timing.

creed.GetDeltaTime() → number NEW

Returns the time in seconds since the last call to GetDeltaTime(). Essential for frame-rate-independent animations.

Returns: number — typically ~0.016 at 60 FPS.
local offset = 0

function OnTick()
    local dt = creed.GetDeltaTime()
    offset = offset + dt * 100  -- 100 pixels per second
    creed.DrawFilledCircle(100 + offset, 100, 10, creed.Color(255, 255, 0))
end

GetFrameCount NEW

creed.GetFrameCount() → number

Returns a monotonically increasing frame counter. Useful for pulsing effects, alternating visuals, and periodic updates.

-- Blink every 30 frames
if creed.GetFrameCount() % 60 < 30 then
    creed.DrawText("WARNING", 100, 100, RED, 24)
end

Lerp / Clamp NEW

creed.Lerp(a, b, t) → number

Linear interpolation: returns a + (b - a) * t.

creed.Clamp(value, min, max) → number

Clamps value between min and max.

IsGameStable

creed.IsGameStable() → boolean

Returns true if the game is fully loaded and not in a loading screen or hex transition. Check this before reading entity data to avoid stale pointers.

Log

creed.Log(message)

Appends a message to the script log visible in the overlay's Scripts tab. Useful for debugging.

Config System

The config system lets scripts declare user-configurable settings that appear in the overlay UI. Users can adjust them without editing your script.

RegisterConfig

creed.RegisterConfig(key, type, options)

Declares a user-configurable setting for this script. Call this at the top level of your script (outside OnTick). The setting appears in the overlay's script settings panel.

ParameterTypeDescription
keystringUnique identifier (max 31 chars)
typestring"toggle" or "slider"
optionstableConfiguration options (see below)

Toggle options:

FieldTypeDefaultDescription
labelstringkeyLabel shown in UI
defaultboolfalseInitial value

Slider options:

FieldTypeDefaultDescription
labelstringkeyLabel shown in UI
defaultnumber0Initial value
minnumber0Minimum value
maxnumber100Maximum value
-- Declare configs at the top of your script
creed.RegisterConfig("radar_range", "slider", {
    label = "Radar Range (m)",
    default = 150,
    min = 50,
    max = 500
})

creed.RegisterConfig("show_friendlies", "toggle", {
    label = "Show Friendlies",
    default = true
})

GetConfig

creed.GetConfig(key) → number

Reads the current value of a config entry. For toggles, returns 1.0 (on) or 0.0 (off). For sliders, returns the current slider value. The value is set by the user through the overlay UI.

ParameterTypeDescription
keystringThe key passed to RegisterConfig
function OnTick()
    local range = creed.GetConfig("radar_range") -- slider value
    local showFriends = creed.GetConfig("show_friendlies") > 0 -- toggle as bool
    -- use values...
end

Per-Script Overlay Settings

Each loaded script has overlay-controlled rendering settings accessible from the Scripts tab (or the Lua Configuration section in the main menu). These are managed entirely by the overlay — scripts do not need to implement anything for these to work.

SettingTypeDefaultDescription
VisibletoggleonHide/show all drawing output from this script
DraggabletoggleonShow a drag handle to reposition the script's output
Opacityslider1.0Multiply the alpha of every draw call (0 = invisible, 1 = fully opaque)
Scaleslider1.0Scale all coordinates and sizes (0.25× – 4×)
Reset PositionbuttonReset the drag offset back to (0, 0)

These settings are automatically saved per-script and restored when the overlay restarts.

Types

Vector3

A 3D vector with arithmetic operators. Can be constructed or received from API calls.

local v = Vector3(100, 200, 300)
print(v.X, v.Y, v.Z)

-- Arithmetic
local sum  = v + Vector3(10, 0, 0)
local diff = v - Vector3(0, 10, 0)
local scaled = v * 2.0

-- Methods
local len   = v:Length()
local lenSq = v:LengthSquared()
local norm  = v:Normalize()
local d     = v:Dot(sum)
local dist  = v:Distance(sum)
Field / MethodTypeDescription
X, Y, ZnumberComponents (read/write)
Length()numberMagnitude
LengthSquared()numberSquared magnitude (faster, skip sqrt)
Normalize()Vector3Unit vector (returns zero vector if length < 0.0001)
Dot(other)numberDot product
Distance(other)numberDistance to another Vector3
+, -, *Vector3Add, subtract vectors; multiply by scalar
tostring()string"Vector3(x, y, z)"

EntityInfo

Returned by creed.GetEntities(). Read-only. Represents any scanned game entity.

FieldTypeDescription
AddressnumberMemory address (for advanced tracking)
NamestringInternal UE4 actor name
ClassNamestringClass name (e.g. "SimCharacter", "WatchTower")
PositionVector3World position (game units / cm)
RotationnumberYaw in degrees (0–360)
DistancenumberDistance from local player (cm)
TeamIdnumberTeam: 0 (Colonial), 1 (Warden)
HealthnumberCurrent health
MaxHealthnumberMaximum health
ArmornumberVehicle armor (0 if not a vehicle)
MaxArmornumberMax armor
IsPlayerbooleanTrue if this is a player character
IsVehiclebooleanTrue if this is a vehicle
IsStructurebooleanTrue if this is a building/structure
IsMinebooleanTrue if this is a landmine or tripwire
IsListeningKitbooleanTrue if this is a deployed listening kit
IsLocalPlayerbooleanTrue if this is YOUR character
IsAITurretbooleanTrue if AI-controlled turret (pillbox, garrison)
AITurretRangenumberAI turret max attack range (cm)
HasItemHolderbooleanHas an inventory component
BoxOriginVector3Bounding box center (world space)
BoxExtentVector3Bounding box half-extents
BoundRadiusnumberBounding sphere radius
HasValidBoundsbooleanTrue if bounding box data is valid
CapsuleHalfHeightnumberPlayer capsule half-height
CapsuleRadiusnumberPlayer capsule radius
HasBoneDatabooleanTrue if skeleton bone data is available
ValidBoneCountnumberNumber of readable bone positions

GetBonePosition(index)

entity:GetBonePosition(index) → Vector3 | nil

Returns the world position of a specific bone. Index is 0–16 (17 tracked bones). Returns nil if that bone wasn't successfully read.

ProjectileInfo

Returned by creed.GetProjectiles(). Read-only.

FieldTypeDescription
AddressnumberMemory address
NamestringProjectile actor name
PositionVector3Current position
VelocityVector3Current velocity vector
PredictedImpactVector3Predicted landing position
DistancenumberDistance from local player
TimeToImpactnumberEstimated seconds until impact
TypenumberProjectileType enum value
IsIncomingbooleanHeading towards the player
IsDangerousbooleanWill impact near the player

PlayerStats

Returned by creed.GetLocalPlayer(). Read-only.

FieldTypeDescription
HealthnumberCurrent health
MaxHealthnumberMaximum health (0 if not spawned)
StaminanumberCurrent stamina
MaxStaminanumberMaximum stamina
PositionVector3World position

ArtilleryData

Returned by creed.GetArtillery(). Read-only.

FieldTypeDescription
IsInArtillerybooleanIs the player manning artillery?
ArtilleryTypestringType name (e.g. "LRArtillery", "Mortar")
GunnerYawnumberCurrent gun yaw (degrees)
GunnerPitchnumberCurrent gun pitch (degrees)
ArtilleryPositionVector3Artillery piece world position

WindData

Returned by creed.GetWind(). Read-only.

FieldTypeDescription
WindAzimuthnumberWind direction (0–360 degrees)
WindSpeednumberWind speed (m/s)
ValidbooleanIs wind data available?

AimbotTarget

Returned by creed.GetClosestEnemy(). Read-only.

FieldTypeDescription
HasTargetbooleanIs there a valid target?
PositionVector3Target world position
VelocityVector3Target velocity (cm/s)
DistancenumberDistance to target
TeamIdnumberTarget team ID
IsVisiblebooleanIs target visible?
NamestringTarget actor name

ProjectileType Enum

Available as a global table for comparing against ProjectileInfo.Type.

ConstantValueDescription
ProjectileType.Unknown0Unknown projectile
ProjectileType.Grenade1Frag grenade
ProjectileType.Smoke2Smoke grenade
ProjectileType.Mortar3Mortar shell
ProjectileType.Artillery4Artillery shell
ProjectileType.Rocket5RPG / AT rocket
ProjectileType.Gas6Gas grenade

Example Scripts

Radar

A classic top-down radar that rotates with the camera. Entities appear as colored dots clamped to the radar circle.

-- radar_example.lua
local RADAR_X, RADAR_Y = 160, 160
local RADAR_RADIUS     = 140
local RADAR_RANGE      = 15000  -- 150m

local BG     = creed.Color(10, 10, 20, 180)
local BORDER = creed.Color(60, 65, 90, 200)
local ENEMY  = creed.Color(255, 60, 60, 220)
local FRIEND = creed.Color(60, 200, 60, 150)
local WHITE  = creed.Color(255, 255, 255)

function OnTick()
    creed.DrawFilledCircle(RADAR_X, RADAR_Y, RADAR_RADIUS, BG)
    creed.DrawCircle(RADAR_X, RADAR_Y, RADAR_RADIUS, BORDER, 2.0)

    local player = creed.GetLocalPlayer()
    if not player or player.MaxHealth <= 0 then return end

    local cam    = creed.GetCamera()
    local myTeam = creed.GetLocalTeam()

    for _, ent in ipairs(creed.GetEntities(RADAR_RANGE)) do
        if not ent.IsLocalPlayer then
            local dot = creed.WorldToRadar(
                ent.Position.X, ent.Position.Y,
                player.Position.X, player.Position.Y,
                cam.Rotation,
                RADAR_X, RADAR_Y, RADAR_RADIUS, RADAR_RANGE)

            local color = (ent.TeamId == myTeam) and FRIEND or ENEMY
            creed.DrawFilledCircle(dot.X, dot.Y, 3, color)
        end
    end

    creed.DrawFilledCircle(RADAR_X, RADAR_Y, 4, WHITE)
end

ESP (Extra Sensory Perception)

Draws bounding boxes, labels, and health bars over enemy entities using WorldToScreen.

-- esp_example.lua
local RED    = creed.Color(255, 50, 50, 220)
local GREEN  = creed.Color(50, 255, 50)
local YELLOW = creed.Color(255, 255, 50)

function OnTick()
    if not creed.IsGameStable() then return end
    local myTeam = creed.GetLocalTeam()

    for _, ent in ipairs(creed.GetEntities(30000)) do
        if ent.TeamId ~= myTeam and not ent.IsLocalPlayer then
            local screen = creed.WorldToScreen(
                ent.Position.X, ent.Position.Y, ent.Position.Z + 90)
            if screen then
                local dist = ent.Distance / 100
                local color = ent.IsVehicle and YELLOW or RED
                local boxH = math.max(8, 60 - dist * 0.12)
                local boxW = boxH * 0.5
                creed.DrawBox(screen.X - boxW/2, screen.Y - boxH/2, boxW, boxH, color, 1.5)
                creed.DrawText(string.format("%s %.0fm", ent.ClassName, dist),
                    screen.X - boxW/2, screen.Y + boxH/2 + 2, color, 12)

                -- Health bar
                if ent.MaxHealth > 0 then
                    local frac = creed.Clamp(ent.Health / ent.MaxHealth, 0, 1)
                    local hpColor = creed.ColorLerp(RED, GREEN, frac)
                    creed.DrawFilledBox(screen.X - boxW/2, screen.Y - boxH/2 - 4,
                        boxW * frac, 3, hpColor)
                end
            end
        end
    end
end

Artillery Helper

Displays wind info and incoming projectile warnings when operating artillery.

-- artillery_helper.lua
local INFO = creed.Color(100, 200, 255)
local WARN = creed.Color(255, 80, 80)

function OnTick()
    local arty = creed.GetArtillery()
    if not arty.IsInArtillery then return end

    local screen = creed.GetScreenSize()
    local x = screen.Width / 2 - 100
    creed.DrawText(string.format("Yaw: %.1f  Pitch: %.1f",
        arty.GunnerYaw, arty.GunnerPitch), x, 10, INFO, 16)

    local wind = creed.GetWind()
    if wind.Valid then
        creed.DrawText(string.format("Wind: %.1f m/s @ %.0f°",
            wind.WindSpeed, wind.WindAzimuth), x, 30, INFO, 14)
    end

    -- Incoming shell warning
    for _, proj in ipairs(creed.GetProjectiles(30000)) do
        if proj.IsDangerous and proj.IsIncoming then
            creed.DrawText(string.format("INCOMING %.1fs", proj.TimeToImpact),
                screen.Width / 2 - 80, screen.Height / 2 - 50, WARN, 24)
            break
        end
    end
end

Animated HUD

Shows smooth animations using GetDeltaTime, GetFrameCount, ColorLerp, and Lerp.

-- animated_hud.lua
local RED   = creed.Color(255, 60, 60)
local GREEN = creed.Color(60, 255, 60)
local WHITE = creed.Color(255, 255, 255)
local smoothHP = 1.0

function OnTick()
    local dt     = creed.GetDeltaTime()
    local player = creed.GetLocalPlayer()
    if not player or player.MaxHealth <= 0 then return end

    -- Smoothly animate health bar towards actual value
    local targetHP = creed.Clamp(player.Health / player.MaxHealth, 0, 1)
    smoothHP = creed.Lerp(smoothHP, targetHP, dt * 5.0)

    -- Color fades from red to green based on health
    local barColor = creed.ColorLerp(RED, GREEN, smoothHP)

    -- Pulsing border when low HP
    local frame = creed.GetFrameCount()
    local pulse = (math.sin(frame * 0.1) + 1) * 0.5
    local borderAlpha = smoothHP < 0.3 and (100 + pulse * 155) or 150

    local x, y, w = 20, 20, 200
    creed.DrawFilledBox(x, y, w, 16, creed.Color(0, 0, 0, 160))
    creed.DrawFilledBox(x, y, w * smoothHP, 16, barColor)
    creed.DrawBox(x, y, w, 16, creed.Color(200, 200, 200, borderAlpha), 1.0)
    creed.DrawText(string.format("HP %.0f%%", smoothHP * 100), x + 4, y + 1, WHITE, 12)
end

Quick Reference

FunctionDescription
creed.Color(r, g, b [, a])Create packed color
creed.ColorLerp(c1, c2, t)Blend two colors
creed.DrawLine(x1, y1, x2, y2, c [, t])Line
creed.DrawBox(x, y, w, h, c [, t])Rectangle outline
creed.DrawFilledBox(x, y, w, h, c)Filled rectangle
creed.DrawCircle(cx, cy, r, c [, t] [, seg])Circle outline
creed.DrawFilledCircle(cx, cy, r, c [, seg])Filled circle
creed.DrawTriangle(x1..y3, c [, t])Triangle outline
creed.DrawFilledTriangle(x1..y3, c)Filled triangle
creed.DrawText(text, x, y, c [, size])Text string
creed.GetEntities([dist])Nearby entities
creed.GetProjectiles([dist])In-flight projectiles
creed.GetLocalPlayer()Player HP, stamina, pos
creed.GetLocalTeam()0=Colonial, 1=Warden
creed.GetCamera()Camera position, yaw, FOV
creed.GetClosestEnemy([...])Nearest enemy to crosshair
creed.GetArtillery()Artillery state
creed.GetWind()Wind direction/speed
creed.WorldToScreen(x, y, z)3D → screen coords
creed.WorldToRadar(wx, wy, px, py, yaw, ...)3D → radar coords
creed.GetScreenSize()Overlay dimensions
creed.GetDistance(v1, v2)3D distance
creed.GetTime()Time in ms (monotonic)
creed.GetDeltaTime()Seconds since last call
creed.GetFrameCount()Frame counter
creed.Lerp(a, b, t)Linear interpolation
creed.Clamp(v, lo, hi)Clamp value
creed.IsGameStable()Game ready check
creed.Log(msg)Debug log to overlay