<h1 align="center">SacredStep</h1>

<p align="center">
  <b>Windows overlay for Blox Fruits Soru</b><br>
  Auto-fires the selected skill the moment your flashstep lands.
</p>

<p align="center">
  <img alt="platform" src="https://img.shields.io/badge/platform-Windows%20x64-111111?style=flat-square">
  <img alt="language" src="https://img.shields.io/badge/C%2B%2B-17-00599C?style=flat-square&logo=cplusplus&logoColor=white">
  <img alt="ide" src="https://img.shields.io/badge/Visual%20Studio-2022%20%2F%2018-5C2D91?style=flat-square&logo=visualstudio&logoColor=white">
</p>

---

## What it does

SacredStep sits on top of Roblox and watches **your** character only.

| Race | How a Soru is confirmed |
| --- | --- |
| **Normal** | Local Animator track |
| **Draco** | Local VFX scan (new effects on your character), then animation / motion fallback |

When a Soru is confirmed, the currently selected skill is sent (`Z`, `X`, `C`, …) as a click, hold, or mini-combo.

---

## Features

- Live attach to `RobloxPlayerBeta`
- Race switch: Normal / Draco
- Skill slots with click, hold, and combo modes
- Independent R-spam (toggle or hold)
- Custom binds, themes, toast + status bar
- Config stored in `%APPDATA%\SacredStep\config.ini`

---

## Build

**Requirements:** Visual Studio 2022 or 18 with C++ x64 toolset.

```bat
build_release.bat
```

Output: `bin\Release\SacredStep.exe`

Or from a Developer prompt:

```bat
MSBuild SacredStep.sln /p:Configuration=Release /p:Platform=x64
```

The Release target packs a single executable. Distribute only `SacredStep.exe`.

---

## Layout

```
SacredStep.sln          solution
SacredStep.vcxproj      app
main.cpp                entry
ui.h                    overlay UI
macro.h                 binds, spam, skill fire
rbx_detect.h            local-player detect
config.h                AppData config
protect.h / protect.cpp runtime helpers
tools/                  pack + stub
```

---

## Notes

- Run as the same user as Roblox. Close the app before rebuilding.
- Offsets are fetched at runtime and cached under AppData.
- Do not redistribute unpacked cores.
