Roadmap
Phase status
Section titled “Phase status”| Phase | Scope | Status |
|---|---|---|
| 0 — Workspace | crate skeleton, versioning | ✅ done |
| 1 — Core interface layer | ICvar, commands, cvars, live console | ✅ done, verified in Portal 1 |
| 2 — Injector | x86 CreateRemoteThread, launch + attach | ✅ done, verified |
| 3 — Mod system | mod.toml, discovery, Luau bridge | ✅ done, verified |
| 4 — Runtime bridges | C#, C/C++, Rust, Python, GML, ASM | planned |
| 5 — Launcher | egui desktop app: detect, browse mods, launch | 🚧 live build available |
| 6 — Games + API tiers | HL2/Episodes/P2 caps; SP-only scope | planned |
| 7 — Total engine exposure | hooks, entities, reflection, generated bindings | in progress (hooks ✅) |
| N — Packaging | zips, updates, docs site | site live at docs.usems.dexx.moe |
Phase 7 — what “everything ship” means
Section titled “Phase 7 — what “everything ship” means”Four discoverable mechanisms, automated instead of hand-bound:
- Interface enumeration — ✅ live:
regwalkwalkss_rgInterfaceschains; 151 interfaces found on Portal 1 (see Interface Resolution). - Hook engine — 🚧 live for
frame(clientHudUpdate, slot 11) andtick(serverGameFrame, slot 5); vtable interposition proven stable on both interfaces concurrently. Next: spawn/damage/death via detours. - Entity reflection — planned: walk server datamaps + client RecvProps; read/write any entity field by name, enumerate, spawn, remove, fire I/O.
- Generated bindings — planned:
tools/gen_apiturns RE results into typed FFI + Luau bindings + cap data. Hand-writing stops.
Planned API tiers (in build order)
Section titled “Planned API tiers (in build order)”| Tier | Highlights |
|---|---|
| entities | GetEntityByIndex, iterate, field get/set, spawn/remove, I/O |
| player | position, velocity, health, weapons, view |
| hooks | tick, spawn, damage, death, usercmd, keys, console line |
| console | cvar change callbacks, exec, ConVarRef for native cvars |
| world | util::TraceLine/TraceHull/TraceRay, physics objects |
| render | screen overlay: text, lines, boxes, tris (ISurface) |
| ui / sound / files / events | VGUI, emit sound, game-FS sandbox, GameEvents |
Long-term direction
Section titled “Long-term direction”The modding core is C/C++ (ABI-critical code lives in the native bridge), the launcher is Rust, and bindings expose one shared API to many languages. The current Rust-heavy core is an implementation detail of the bootstrap — the boundary is already drawn so the C++ side can grow.
Non-goals (stable decisions)
Section titled “Non-goals (stable decisions)”- Single-player only. No mp-branch support, no dedicated servers. Compiled-in mp code may be hooked/read like any code, but is not a target.
- No Metamod/SourceMod dependence, ever — that’s the founding constraint.
- No VAC-evasion infrastructure (follows from SP-only).
- No engine recompilation: vtable interposition and detours only.