Skip to content

Commit cb9dfbc

Browse files
committed
Initial commit: MkDocs Material scaffold for SC6 UE4SS modding docs
Sets up a Markdown-only documentation site targeting Cloudflare Pages: - MkDocs + Material theme with tabs/sections/admonitions/code copy - Section stubs: getting-started, ue4ss, sc6, cookbook, reference - Contributing guide with explicit rules for AI-agent contributors
0 parents  commit cb9dfbc

18 files changed

Lines changed: 564 additions & 0 deletions

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# MkDocs build output
2+
site/
3+
4+
# Python
5+
__pycache__/
6+
*.pyc
7+
.venv/
8+
venv/
9+
10+
# Editors
11+
.vscode/
12+
.idea/
13+
*.swp
14+
.DS_Store

README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# SoulCalibur VI Modding Docs
2+
3+
Community documentation for modding **SoulCalibur VI** via the
4+
[UE4SS](https://github.com/UE4SS-RE/RE-UE4SS) framework.
5+
6+
Built with [MkDocs Material](https://squidfunk.github.io/mkdocs-material/). Every page is plain
7+
Markdown under `docs/`. To add a page:
8+
9+
1. Create `docs/<section>/<page>.md`
10+
2. Add it to `nav:` in `mkdocs.yml`
11+
3. Commit → Cloudflare Pages rebuilds and redeploys automatically
12+
13+
See [`docs/contributing.md`](docs/contributing.md) for the full (short) guide — including the rules
14+
AI agents should follow when adding pages.
15+
16+
## Local preview
17+
18+
```bash
19+
pip install -r requirements.txt
20+
mkdocs serve
21+
# open http://127.0.0.1:8000
22+
```
23+
24+
## Deployment — Cloudflare Pages
25+
26+
No CI config is needed in this repo. Cloudflare Pages watches the GitHub repo and builds on every
27+
push to `main` (and produces a preview URL for every other branch / PR).
28+
29+
One-time setup in the Cloudflare dashboard — **Workers & Pages → Create → Pages → Connect to Git**:
30+
31+
| Setting | Value |
32+
|---|---|
33+
| Framework preset | *None* |
34+
| Build command | `pip install -r requirements.txt && mkdocs build --strict` |
35+
| Build output directory | `site` |
36+
| Root directory | *(leave blank)* |
37+
| Environment variable | `PYTHON_VERSION` = `3.12` |
38+
39+
You'll get a `*.pages.dev` URL after the first build. Add a custom domain under the project's
40+
**Custom domains** tab if desired.
41+
42+
### Why no GitHub Actions?
43+
44+
Cloudflare Pages does the build itself when it detects a push — adding a GH Actions workflow would
45+
just duplicate that work. If you ever want to mirror to GitHub Pages as a backup, add a workflow
46+
back then.
47+
48+
## License / disclaimer
49+
50+
Community project. Not affiliated with BANDAI NAMCO or the UE4SS team.

docs/contributing.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Contributing
2+
3+
This site is deliberately easy to extend — it's just Markdown and one YAML file. That makes it
4+
friendly for both human contributors and AI agents.
5+
6+
## Add a new page (the 30-second version)
7+
8+
1. Create a new `.md` file under `docs/` in the right folder (e.g. `docs/cookbook/swap-mesh.md`).
9+
2. Add it to the `nav:` list in [`mkdocs.yml`](https://github.com/YOUR_USER/SC6ModdingDocs/blob/main/mkdocs.yml) so it shows up in the sidebar.
10+
3. Open a PR. CI will build the site; GitHub Pages / Cloudflare Pages will redeploy on merge.
11+
12+
That's the whole workflow. You do **not** need to know JavaScript, React, Vue, or Astro.
13+
14+
## Rules of thumb for AI agents
15+
16+
When an AI agent is adding or editing pages, it should:
17+
18+
- **Prefer Markdown primitives** — tables, fenced code blocks, bullet lists — over custom HTML.
19+
- **Use admonitions** for non-prose content:
20+
```
21+
!!! warning "Title"
22+
Body text.
23+
```
24+
Supported: `note`, `tip`, `info`, `warning`, `danger`, `example`, `question`, `success`, `failure`.
25+
- **Label code fences** with a language (`lua`, `cpp`, `ini`, `json`, `text`) so syntax highlighting works.
26+
- **Link relatively** between pages (`../ue4ss/hooks.md`), never absolute URLs for in-site links.
27+
- **Keep page titles as H1** at the top of the file (`# Title`).
28+
- **Update `mkdocs.yml` `nav:`** whenever you add a new page — otherwise it's orphaned.
29+
- **Stub pages are fine**: add an `!!! info "Stub"` admonition and a TODO list so future passes know where to expand.
30+
- **Cite the source** of reversed info (dumper output, hook trace, disasm at address, etc.) in a `> source:` blockquote beneath the claim.
31+
32+
## Local preview (optional)
33+
34+
```bash
35+
pip install -r requirements.txt
36+
mkdocs serve
37+
```
38+
39+
Open <http://127.0.0.1:8000> — the site live-reloads on save.
40+
41+
## Build
42+
43+
```bash
44+
mkdocs build # outputs to ./site
45+
```
46+
47+
CI does this for you on every push to `main`.

docs/cookbook/index.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Cookbook
2+
3+
Short, copy-pasteable recipes. Each recipe should be self-contained: what it does, the code, and a
4+
"verify it works" step.
5+
6+
!!! tip "Adding a recipe"
7+
Create a new `.md` file in this folder, add it to `nav:` in `mkdocs.yml`, and follow the template below.
8+
9+
## Recipe template
10+
11+
```markdown
12+
# Recipe: <Title>
13+
14+
**Goal**: one-sentence description of what the user ends up with.
15+
16+
**Requires**: UE4SS version, any other mods, dumper output, etc.
17+
18+
## Code
19+
20+
```lua
21+
-- your snippet
22+
```
23+
24+
## How it works
25+
26+
Short explanation of the hook/UObject used.
27+
28+
## Verify
29+
30+
1. Launch the game.
31+
2. Expected log line / visual result.
32+
```

docs/getting-started/first-mod.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Your First Mod
2+
3+
Goal: get a Lua mod that prints a line to the UE4SS console every time the game reaches the main menu.
4+
5+
## 1. Scaffold the mod folder
6+
7+
Inside `…\Win64\Mods\`, create:
8+
9+
```
10+
Mods/
11+
└── HelloSC6/
12+
├── enabled.txt (empty file — presence = enabled)
13+
└── Scripts/
14+
└── main.lua
15+
```
16+
17+
## 2. Enable it in `mods.txt`
18+
19+
Open `Mods\mods.txt` and add a line:
20+
21+
```
22+
HelloSC6 : 1
23+
```
24+
25+
The `1` means enabled.
26+
27+
## 3. Write the Lua
28+
29+
=== "main.lua"
30+
31+
```lua
32+
-- Mods/HelloSC6/Scripts/main.lua
33+
local ModName = "HelloSC6"
34+
35+
print(("[%s] loaded"):format(ModName))
36+
37+
-- Fires once the first UWorld is ready.
38+
RegisterHook("/Script/Engine.PlayerController:ClientRestart", function(PC)
39+
print(("[%s] PlayerController ClientRestart"):format(ModName))
40+
end)
41+
```
42+
43+
## 4. Launch and verify
44+
45+
1. Start SoulCalibur VI.
46+
2. Watch the UE4SS console — you should see `[HelloSC6] loaded` early, then the `ClientRestart` line once you're past the splash/title.
47+
48+
!!! tip "Hot reload"
49+
Press the configurable hotkey (default `Ctrl+R` in newer UE4SS builds) to re-run Lua mods without restarting the game.
50+
51+
## Next
52+
53+
- Learn the API: [UE4SS Framework → Lua API Overview](../ue4ss/lua-api.md)
54+
- Hook more events: [UE4SS Framework → Hooks & Events](../ue4ss/hooks.md)

docs/getting-started/index.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Getting Started
2+
3+
This section walks you from a clean SoulCalibur VI install to a running "hello world" UE4SS Lua mod.
4+
5+
## Prerequisites
6+
7+
- SoulCalibur VI (Steam, up-to-date)
8+
- Windows 10/11 (UE4SS is Windows-only at time of writing)
9+
- A text editor — VS Code recommended
10+
- A current UE4SS release: <https://github.com/UE4SS-RE/RE-UE4SS/releases>
11+
12+
## Path through this section
13+
14+
1. [Install UE4SS](install-ue4ss.md) — drop the loader into the game folder and confirm it loads.
15+
2. [Your First Mod](first-mod.md) — scaffold a Lua mod, enable it, and see a log line on game launch.
16+
17+
Once both work, jump into the [UE4SS Framework](../ue4ss/index.md) section for API details, or the
18+
[Cookbook](../cookbook/index.md) for ready-made snippets.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Installing UE4SS into SoulCalibur VI
2+
3+
!!! info "Stub page"
4+
This page is a stub. Expand it with exact folder names, version notes, and troubleshooting
5+
as the project matures. See [Contributing](../contributing.md).
6+
7+
## 1. Download UE4SS
8+
9+
Grab the latest **zDEV** or release zip from the [UE4SS releases page](https://github.com/UE4SS-RE/RE-UE4SS/releases).
10+
11+
## 2. Locate the game's `Win64` folder
12+
13+
The default Steam path is:
14+
15+
```
16+
C:\Program Files (x86)\Steam\steamapps\common\SOULCALIBUR VI\SoulcaliburVI\Binaries\Win64\
17+
```
18+
19+
## 3. Extract UE4SS
20+
21+
Extract the contents of the zip **into that `Win64` folder**, so the following files sit next to the game's `.exe`:
22+
23+
- `dwmapi.dll` (the proxy loader)
24+
- `UE4SS.dll`
25+
- `UE4SS-settings.ini`
26+
- `Mods/` folder
27+
28+
## 4. First launch
29+
30+
Launch the game. On first load you should see:
31+
32+
- A console window titled **UE4SS**
33+
- A `UE4SS.log` file next to the dll
34+
- Any default mods (e.g. `BPModLoaderMod`, `shared`) listed as *enabled*
35+
36+
## Troubleshooting
37+
38+
- **No console appears** — ensure `GuiConsoleEnabled = 1` in `UE4SS-settings.ini`.
39+
- **Game crashes on boot** — try the non-dev build of UE4SS; some AOBs (array-of-bytes scans) can miss on a new game patch.
40+
- **DLL not loading** — verify the proxy DLL name matches what the game loads; `dwmapi.dll` is the usual default.
41+
42+
Next: [Your First Mod](first-mod.md).

docs/index.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
title: SoulCalibur VI Modding Docs
3+
---
4+
5+
# SoulCalibur VI Modding Docs
6+
7+
Community documentation for modding **SoulCalibur VI** using the
8+
[UE4SS](https://github.com/UE4SS-RE/RE-UE4SS) (Unreal Engine 4/5 Scripting System) framework.
9+
10+
!!! warning "Unofficial"
11+
This project is **not** affiliated with BANDAI NAMCO or the UE4SS maintainers.
12+
Mod at your own risk — never mod files online and keep clean backups of your game.
13+
14+
## What you'll find here
15+
16+
<div class="grid cards" markdown>
17+
18+
- :material-rocket-launch: **[Getting Started](getting-started/index.md)**
19+
20+
Install UE4SS into SoulCalibur VI and load your first Lua mod.
21+
22+
- :material-code-braces: **[UE4SS Framework](ue4ss/index.md)**
23+
24+
Lua API, hooks, UObject reflection, and dumper usage.
25+
26+
- :material-sword-cross: **[SoulCalibur VI Internals](sc6/index.md)**
27+
28+
Game-specific structures, character data, and notable functions.
29+
30+
- :material-book-open-variant: **[Cookbook](cookbook/index.md)**
31+
32+
Copy-pasteable recipes: modifying move data, swapping meshes, hot-reload loops.
33+
34+
- :material-library: **[Reference](reference/index.md)**
35+
36+
Glossary, addresses, and cross-cutting reference material.
37+
38+
- :material-handshake: **[Contributing](contributing.md)**
39+
40+
How to add a new page — designed so humans *and* AI agents can contribute.
41+
42+
</div>
43+
44+
## Quick links
45+
46+
- UE4SS upstream: <https://github.com/UE4SS-RE/RE-UE4SS>
47+
- SoulCalibur VI on Steam: <https://store.steampowered.com/app/544750/>

docs/reference/glossary.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Glossary
2+
3+
| Term | Meaning |
4+
|---|---|
5+
| **AOB** | Array-of-bytes signature. A pattern UE4SS scans for at startup to locate engine functions. |
6+
| **BP / Blueprint** | Unreal's visual scripting. Packaged as `.uasset`/`.uexp`. |
7+
| **CDO** | Class Default Object. The template UObject Unreal uses to spawn new instances of a class. |
8+
| **DataTable** | Unreal asset holding rows of a USTRUCT schema. Common for move/parameter data. |
9+
| **FName** | Unreal's interned string type, 8 bytes, used for identifiers. |
10+
| **Pak / PAK** | Packaged content archive. SC6 reads game content from `.pak` files. |
11+
| **UE4SS** | Unreal Engine 4/5 Scripting System — injects Lua/BP modding into UE games. |
12+
| **UFunction** | A reflected Unreal function, hookable from Lua via `RegisterHook`. |
13+
| **UObject** | Root base class of Unreal's reflection system. |
14+
| **UStruct** | Reflected C++ struct. |

docs/reference/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Reference
2+
3+
Cross-cutting reference material that doesn't fit under a single topic.
4+
5+
- [Glossary](glossary.md)

0 commit comments

Comments
 (0)