Phase Mod (Local Teleportation) v1.3

Crimson Desert Mods |
Phase Mod (Local Teleportation) v1.3


Local teleportation at a configurable distance using a configurable hotkey. You teleport in the direction you are going. next steps are vfx from skills and stamina/spirit usage.

# Phase for Crimson Desert — v1.3
Press **V** to blink forward through walls. Configurable distance, QPC-driven slowmo on fire, instant-feel teleport via combined absolute + collision-sweep writes. Targeting now uses your **velocity vector** by default — if you’re moving in a direction, that’s where you blink, regardless of camera pitch / body lag.

Targets **`CrimsonDesert.exe v1.07.00`**.

## What’s new in v1.3 (2026-05-17)
– **`UseVelocityDirection=1` (new default)** — reads your actor’s current velocity vector at fire time and blinks along that. No more “I’m looking east but it sent me south” because of body-rotation lag. As long as you’re holding W (or any move key), blink goes where you’re going.
– Direction priority chain (highest first): **Velocity → ActorHeading → CameraDirection → MovementFacing**. Each falls through to the next if it can’t produce a valid direction. So if you stand still and press V, velocity falls through to actor-heading and you still blink along your body facing.
– New `VelMinSpeed=0.5` knob — minimum horizontal m/s for velocity-direction to count as “moving”. Below that, falls through.
– All earlier modes still work — set `UseVelocityDirection=0` to fall back to v1.2 actor-heading behaviour.
– Internals: 7-byte-stomp dt-scale gate on the 250 Hz writer (skips writes during interpolation half-ticks), AOB-resolved Cave A / Cave B hooks chain cleanly with FreedomFlyer and other physics-hook mods.

## Requirements
– **Crimson Desert** patched to **v1.07.00**.
– **Ultimate ASI Loader** (or any equivalent) installed in `bin64/`. See <https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases>.

## Install
1. Copy `bin64/Phase.asi` and `bin64/Phase.ini` into your `/bin64/` folder.
2. Launch the game. Phase writes a log to `bin64/Phase.log` once it’s loaded.
3. Press **V** in-world to blink. (Hotkey is configurable — see INI.)

## Usage
– **Sprint forward + V** → blink in sprint direction.
– **Strafe right + V** → blink right.
– **Walk backward + V** → blink backward.
– **Stand still + V** → blink along body facing (velocity fell through to actor-heading).
– During the blink there’s a brief slowmo (~400 ms at 8% speed by default) — that’s the QPC time-scale hook.

Wall-clip is **always on** during the suppression window (no INI flag) — combined writes to entity+0x90 (current pos) and entity+0x1A0 (prev pos for swept collision) make the teleport survive walls without dropping you through the world.

## Configuration
Edit `bin64/Phase.ini`. Changes are picked up live (~2 s re-read interval).
| Key | Default | Notes |
|—|—|—|
| `Enabled` | 1 | Master switch. |
| `Hotkey` | `0x56` (V) | Trigger key. |
| `HotkeyMod` | 0 | Optional second key; 0 = none. |
| `BlinkDist` | 12.0 | Teleport distance in game units. |
| `BlinkUpBias` | 0.7 | Optional vertical lift on blink (cm above current Y). |
| `CooldownMs` | 800 | Min ms between blinks. |
| `SuppressFrames` | 30 | Physics frames the wall-clip / instant-teleport writes run. |
| `UseVelocityDirection` | 1 | **v1.3** — read velocity at +0xC0/+0xC8 and aim along it. Recommended. |
| `VelMinSpeed` | 0.5 | m/s threshold. Below this, velocity falls through to next priority. |
| `UseActorHeading` | 1 | v1.2 fallback — aim along body yaw quat at +0x60/+0x68. |
| `UseCameraDirection` | 0 | Not wired yet — stub. Leave at 0. |
| `FacingPollMs` | 16 | Movement-facing tracker poll interval. |
| `FacingMinDelta` | 0.003 | Min per-poll position delta for facing update. |
| `UseInvisibility` | 0 | Legacy Blink mechanic. Off — the visibility chain isn’t reliable. |
| `SlowmoEnabled` | 1 | QPC time-scale dip during blink. |
| `SlowmoMinScale` | 0.08 | Time scale at the dip. 0.08 = 8% speed. |
| `RampInMs` / `PlateauMs` / `RampOutMs` | 50 / 400 / 100 | Slowmo timing envelope. |
| `LocalContinuityMax` | 80 | Cross-actor pollution guard — max allowed jump in trusted local pos. |
| `LocalContinuityTimeoutMs` | 15000 | Reset trusted baseline after this many ms with no accepted sample. |

VK code reference: <https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes>

## Compatibility
Phase chains onto existing hooks at Cave A (`+0x28CB34E` v1.07 RVA) and Cave B (`+0x37FD50B`). Coexists with FreedomFlyer and similar movement mods — Phase detects a prior `E9` JMP at either site and chains into that mod’s cave instead of yanking it.

The actor-velocity field at `+0xC0/+0xC8` is on the same physics body Cave A captures — no extra hook or struct chain needed.

## Troubleshooting
– **Blink doesn’t fire / “pos not valid – skipped”:** the trusted-local-pos baseline hasn’t seeded yet. Move around for a couple of seconds; Phase needs Cave A to fire a few times before it trusts the read.
– **Blink direction feels off:** check `Phase.log` — each fire prints `dir=velocity` / `dir=actor-heading` / `dir=camera` / `dir=movement`. If you expected velocity but got actor-heading, your speed was below `VelMinSpeed`. Lower the threshold or move faster before pressing V.
– **Game runs unmodded after install:** ASI Loader isn’t loading. Verify `winmm.dll` / `dxgi.dll` / similar loader DLL is in `bin64/`. If using OptiScaler, move `Phase.asi` into `bin64/plugins/` instead.
– **Phase.log shows “BYTES MISMATCH”:** game version isn’t v1.07.00, OR another mod has stomped the hook site without using the standard chain protocol. Disable other mods one at a time to identify which.

## Building from source
cd /source
cl /O2 /LD /EHsc Phase.cpp /link /OUT:Phase.dll
ren Phase.dll Phase.asi
“`

Requires MSVC’s x64 build tools (any recent Visual Studio Build Tools install works). Drop the resulting `Phase.asi` next to `Phase.ini` in your game’s `bin64/`.

Source depends on `../../player_base.hpp` (the AOB-resolved player-static slot resolver shared with SuperJump and Miner).


Author: dukusmaximus


Download


Crimson Desert mods give players the freedom to expand and personalize their adventure across the vast world of Pywel. With a wide range of free mods available, you can enhance gameplay, improve visuals, and introduce new features that make every moment in the game even more exciting. Try the Crimson Desert Phase Mod (Local Teleportation) v1.3 mod to bring something new to your journey, and continue exploring other mods that help you shape the experience exactly the way you want, with no limits.
Useful Information: How to install Mods | System Requirements | Crimson Desert Guides | Crimson Desert News

Leave a Reply

Your email address will not be published. Required fields are marked *