Skip to content

/wallhacks

Script-provided

Start it with /lua run wallhacks.

Experimental

wallhacks locates the game camera pose via an AOB signature resolved at runtime (scanning a unique instruction and following its RIP-relative reference), so it survives ASLR and patch shifts rather than being pinned to a fixed address. If a future patch changes that instruction and the signature stops resolving, the overlay fails soft — it simply draws nothing (it never reads a wrong address). It is read-only and never writes game state. Still treat it as experimental.

Syntax

/lua run wallhacks
/wallhacks find <name substring>
/wallhacks [clear|on|off|self|vlock|dist|dump]
/wallhacks set <key> <value>

Description

World-space marker overlay: type a name substring and every matching in-world actor gets a bright, pulsing "sparkle" drawn over the real object in the 3D view (through walls), so you can see where it is.

Unlike /mapradar and /navmap, which draw dots on a 2D map, wallhacks projects each matching actor's world position onto the screen and draws a marker at that spot — hovering over the actual object in the world. Because it is a screen-space overlay with no occlusion test, markers draw through walls (hence the name).

Typical use: finding quest ground-spawn click items, a specific NPC in a crowd, or a harvest node, when you know part of its name but can't spot it on screen.

How it works

wallhacks reads the client's camera world pose (position + heading/pitch) from a memory struct it locates once by signature, builds a perspective projection from scratch (camera pose + a configured FOV + viewport) each frame, and projects the world X/Y/Z of each name-matched actor to a screen pixel. (FOV is taken from the fov_deg tunable, not memory — the client's FOV value reads unreliably.) Matching actors are refreshed a few times a second from mq.TLO.Spawns(); the projection and drawing run per frame on the overlay's foreground draw list.

It never targets, moves, or otherwise touches game state — it only reads and draws. If a memory read faults, the actor is behind the camera, or the projection isn't calibrated, it simply draws nothing.

Marker modes

By default markers are world-anchored: the marker sits on the actor's true screen position (lifted height world units above its base) and stays glued to it as the camera moves or rotates — the projection is recomputed each frame from the live camera pose, so no camera-motion compensation is needed. As you pitch the camera the marker moves up/down with the object, keeping it locked on.

/wallhacks vlock toggles a vertical-lock (compass) mode instead: it discards the vertical and pins the marker to a fixed horizontal line (lock_y), leaving only left/right bearing so nothing bobs as you look around. An object behind you clamps to the nearer screen edge as a "turn this way" hint. Useful for steering toward something off-screen rather than pinpointing it in view.

In plain English

In the default (world-anchored) mode the icon is stuck to the actor's spot in the world. When you move the camera, the icon slides across the screen by exactly the amount needed to stay on the actor — so it looks like it isn't moving relative to the actor, even though its screen position is constantly changing. That screen motion is what keeps it locked in the world.

Sub-commands

Command Effect
/wallhacks find <name> Sparkle every actor whose name contains <name> (case-insensitive substring).
/wallhacks clear Clear the name filter (stop sparkling actors).
/wallhacks on / off Master enable/disable for the overlay.
/wallhacks self Toggle the cyan ME anchor at your own position — a projection sanity check that should sit on your character. Default off.
/wallhacks vlock Toggle vertical-lock (compass) vs full-3D markers.
/wallhacks dist Toggle the numeric distance readout next to each marker (nearer markers also draw slightly larger).
/wallhacks dump Print the raw camera pose, your own pose, the tunables, and the current match count.
/wallhacks set <key> <value> Set a projection tunable (see below).

Tunables

The projection has a handful of numeric knobs, set live with /wallhacks set. The shipped defaults are calibrated for the confirmed build; you normally only touch these when porting to a new build or adjusting the compass line.

Key Default Notes
yaw_sign 1 Heading rotation direction (+1 / -1).
yaw_off 0 Heading zero-offset, degrees.
pitch_sign -1 Pitch direction (+1 / -1).
x_sign 1 Mirror screen-x (+1 / -1).
y_sign 1 Mirror screen-y (+1 / -1).
fov_vertical 1 1 = treat the FOV value as vertical, 0 = horizontal.
fov_scale 1.0 FOV fudge multiplier.
near 0.05 Minimum camera-space depth to draw.
fov_deg 65 Manual field of view (degrees). Used because the in-memory FOV reads unreliably; see the note below.
use_mem_fov 0 0 = use fov_deg; 1 = trust the in-memory FOV global.
lock_y 0.5 Vertical-lock line as a fraction of screen height (0 = top, 1 = bottom).
height 2.0 World-Y units to lift the marker above the actor's base, so it floats over the object. Raise for tall mobs.

FOV comes from fov_deg, not memory

The camera FOV global reads garbage on the confirmed build, so wallhacks uses the manual fov_deg by default. If markers spread too wide or too tight near the screen edges, adjust fov_deg (e.g. 5575).

Calibrating on a new build

If you see no markers (or the ME anchor doesn't sit on your character):

  1. /wallhacks dump — if the camera pose reads as garbage, the memory offsets don't match this build and it can't work until they're re-found.
  2. If the pose reads sanely but the ME anchor is off:
  3. No marker at all → forward is reversed: /wallhacks set yaw_off 180.
  4. Mirrored left/right → /wallhacks set x_sign -1.
  5. Mirrored up/down → /wallhacks set y_sign -1.
  6. Rotates the wrong way as you turn → /wallhacks set yaw_sign -1.

Examples

/lua run wallhacks
/wallhacks find fetid great-fly
/wallhacks set lock_y 0.25
/wallhacks vlock
/wallhacks clear
/lua stop wallhacks

See also

  • /navmap — 2D navmesh/route map overlay.
  • Me / Spawns — the position data the projection consumes.