> For the complete documentation index, see [llms.txt](https://docs.autowall.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autowall.fun/documentation/roadmap-not-implemented-yet.md).

# Roadmap / Not Implemented Yet

## Roadmap / Not Implemented Yet

The original spec (`lua/*.md`) describes a much larger API than what's built. This page tracks the gap honestly so nothing here reads as documentation for code that doesn't exist.

### Not implemented at all

* **Textures/images**: `render.load_image`, `load_svg`, `load_image_file`, `render.image`, `image_uv`, `render.gif`, and the `texture` object (`:valid()`, `:destroy()`, `.width`/`.height`).
* **Extra geometry**: `render.triangle`/`triangle_filled`, `render.polygon`, `render.gradient`, `render.blur`, `render.blur_circle_3d`, `render.push_clip_rect`/`pop_clip_rect`, `render.text_rich`/`text_rich_size`.
* **Entities beyond players**: `entity.get_weapons()`, `entity.get_thrown_grenades()`, `entity.get_weapon(player)`, `entity.get_velocity(player)`, `entity.get_bone_position(player, idx)`, `entity.set_prop`.
* **Dedicated `esp.*` and `math.*` modules** — see ESP and Math. Build your own ESP overlay from `entity.*` + `render.world_to_screen` + `render.*`; the stock Lua 5.4 `math` library already covers general-purpose math.
* **Generic reflection SDK** (`sdk.*`, `photon.*`, per-class `get(key)/set(key,value)` over named fields for `CTransform`/`CCamera`/`CWeaponController`/`CAimController`/etc) — still **not built**; that would need hand-maintained field-*name*-to-offset tables per class. What *is* now available is lower-level: Memory's `memory.read_*(addr)` primitives, so a script can chain raw offsets itself (`memory.read_ptr(memory.local_player() + 0x98)`) once it knows them — but there's no per-class field-name convenience layer on top, and deliberately **no write primitives** (see Memory for why).
* `bit32`/`jit`/`ffi` libraries (this runs plain Lua 5.4, not LuaJIT) — use Lua 5.4's native bitwise operators instead.
* `print_chat` doesn't post to the actual in-game chat yet — it's a log-only tag right now.
* `require("lua.module")` cross-file includes — each script only loads its own single file today, `package.path` isn't wired up.
* Programmatic removal of a `ui.*` control once created (it lives for the process lifetime of the script instance that created it).
* Weapon/movement scripting hooks (`entity.get_weapon`, force-move/aim offset style calls) — flagged as a bigger follow-up, see Entity.

### Partially implemented / different from spec

* `entity.get_players()`/`get_origin`/`get_prop` cover a **subset** of documented keys (health/team/name/origin) — no ammo, no weapon state, no bone positions.
* `render.text`'s `"verdana_bold"` currently renders identically to `"verdana"` (no distinct bold font wired up).

### UI

`ui.switch`/`slider`/`combo`/`color_picker`/`input`/`button`, `ui.create_tab` (real menu tab, shared across scripts), `item:get/set/visible/depend/on_change`, and `ui.find`/`get_value`/`set_value`/`set_visible`/`depend`/`on_change` are implemented — see UI. Still missing from the originally pasted spec:

* `ui.keybind`, `ui.multiselect`, `ui.list`, `ui.selectable` — no capture-a-key or multi-select/list widgets exist yet.
* `ui.create_group` is accepted but a no-op — grouping already happens implicitly via each control's own `group` argument, there's nothing separate to pre-register.
* `ui.find`/`:depend` only search **within the calling script** — no cross-script lookup by name.
* `item:visible(function)` — only the static boolean form is supported, not "recompute every frame" callback form.
* The **built-in engine config paths** (`ragebot.enabled`, `ragebot.aimbot.enabled`, `esp.box`, `visuals.third_person`, and the full list of `antiaim.*`/`movement.*`/`esp.*`/`visuals.*` paths) via `ui.get(path...)`/`ui.set(path...)`/`ui.find("ragebot", "min_damage")` — this would mean hand-wiring a path string to every single existing `c::get<T>(g_ctx->cfg.xxx)` field across the whole config (`cfg_t` has dozens of fields). Real, bounded, but sizeable — say which specific paths you actually need read/write access to from a script and we'll wire those first rather than all of them blind.

### Why "core first" over the full spec

{% hint style="info" %}
The full spec (`lua/*.md`, \~4500 lines across 15 files) describes a LuaJIT+FFI-based scripting API roughly on par with commercial cheat scripting engines: full texture/image pipeline, generic memory-offset reflection for a dozen SDK classes, persistent app-wide UI injection, blur/gradient render effects. Building that with the same fidelity the docs imply is a multi-day effort, not a single pass — and the memory-reflection layer in particular is a deliberate scope cut for safety, not a time constraint. This documentation set covers what's real today; extend it incrementally as concrete scripts need specific pieces from the list above.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.autowall.fun/documentation/roadmap-not-implemented-yet.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
