improve readme
This commit is contained in:
parent
5d16dac4d5
commit
dd7b86a5de
2 changed files with 50 additions and 30 deletions
80
README.md
80
README.md
|
|
@ -1,55 +1,73 @@
|
||||||
|
<img src="docs/images/hathor_card.webp" align="right" width="180" alt="Hathor" />
|
||||||
|
|
||||||
# NTE History Exporter
|
# NTE History Exporter
|
||||||
|
|
||||||
Prototype CLI exporter for Neverness to Everness pull history.
|
> Prototype CLI exporter for **Neverness to Everness** pull history — decodes your own game traffic into sanitized JSON ready for tracker import.
|
||||||
|
|
||||||
This version supports:
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
- Game: Neverness to Everness
|
## Supported Banners
|
||||||
- System: Monopoly
|
|
||||||
- Banner ID: `Lottery_Permanent`
|
| System | Banner | Banner ID | Pity pool |
|
||||||
- Banner name: Standard Board / Permanent Board
|
| -------- | ----------------------- | -------------------------- | ---------- |
|
||||||
- Banner ID: `Lottery_LimitedCharacter`
|
| Monopoly | Standard Board | `Lottery_Permanent` | Per-banner |
|
||||||
- Banner name: Limited Character Board
|
| Monopoly | Limited Character Board | `Lottery_LimitedCharacter` | Shared |
|
||||||
- System: Gashapon
|
| Gashapon | Arc Miracle Box | `Arc_MiracleBox` | Shared |
|
||||||
- Banner ID: `Arc_MiracleBox`
|
|
||||||
- Banner name: Arc Miracle Box
|
|
||||||
|
|
||||||
## What It Does
|
## What It Does
|
||||||
|
|
||||||
The exporter decodes Permanent Board, Limited Character Board, and Arc Miracle Box history pages from captured UDP data, applies conservative timestamp-boundary handling, and writes sanitized JSON suitable for tracker import.
|
The exporter decodes Permanent Board, Limited Character Board, and Arc Miracle Box history pages from captured UDP data, applies conservative timestamp-boundary handling, and writes sanitized JSON suitable for tracker import.
|
||||||
|
|
||||||
It does not export tokens, account IDs, role IDs, device IDs, server IPs, raw packets, cookies, session data, or other capture metadata. The import JSON contains decoded history rows only.
|
> [!NOTE]
|
||||||
|
> The import JSON contains decoded history rows only. It does **not** export tokens, account IDs, role IDs, device IDs, server IPs, raw packets, cookies, session data, or any other capture metadata.
|
||||||
## Privacy
|
|
||||||
|
|
||||||
Do not commit packet captures, generated exports, research briefs, or personal account data. The repository keeps `exports/` as an empty output folder, but ignores everything generated inside it.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Live capture, Windows:
|
### Live capture (Windows, requires Administrator)
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
.\run-exporter.ps1 --live
|
.\run-exporter.ps1 --live
|
||||||
```
|
```
|
||||||
|
|
||||||
Launch it before pressing Start on the game's main menu so the game's UDP connection can be captured, then open any supported history board in game. If you are already in game, log out to the main menu and enter again. The tool keeps listening until you press any key. Exports are written under `exports\` as `Permanent_<date_time>.json`, `Limited_<date_time>.json`, or `Arc_<date_time>.json`.
|
Or simply double-click **`run-exporter.cmd`** — it asks for confirmation before requesting Administrator privileges, and does nothing until you agree.
|
||||||
|
|
||||||
Pass `--debug` to also write the full research CSV next to each JSON export.
|
> [!IMPORTANT]
|
||||||
|
> Launch the tool **before pressing Start on the game's main menu** so the game's UDP connection can be captured. If you are already in game, log out to the main menu and enter again.
|
||||||
|
|
||||||
If only one banner is captured, the export JSON is copied to the clipboard. If multiple banners are captured in the same run, clipboard copy is skipped so one banner does not overwrite another.
|
Once running, open any supported history board in game. The tool keeps listening until you press any key. Exports are written under `exports\` as:
|
||||||
|
|
||||||
File replay:
|
- `Permanent_<date_time>.json`
|
||||||
|
- `Limited_<date_time>.json`
|
||||||
|
- `Arc_<date_time>.json`
|
||||||
|
|
||||||
|
If only one banner is captured, the export JSON is copied to your clipboard. If multiple banners are captured in the same run, clipboard copy is skipped so one banner does not overwrite another.
|
||||||
|
|
||||||
|
### File replay
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
.\run-exporter.ps1 capture.flows
|
.\run-exporter.ps1 capture.flows
|
||||||
```
|
```
|
||||||
|
|
||||||
For reliable deduplication, start from page 1 and scroll downward. If you only want pages 1-5, scroll through page 6 as well so the exporter can confirm the final timestamp group boundary.
|
Decodes a `mitmproxy .flows` capture instead of listening live — used for research and testing.
|
||||||
|
|
||||||
Limited character history is exported as one shared pity pool: `Lottery_LimitedCharacter`.
|
### Options
|
||||||
Arc Miracle Box history is exported as one shared pity pool: `Arc_MiracleBox`.
|
|
||||||
|
|
||||||
Live capture needs a local admin-capable packet socket on Windows. The prototype uses the built-in raw socket path first, without requiring mitmproxy capture files.
|
| Flag | Effect |
|
||||||
|
| --------- | --------------------------------------------------- |
|
||||||
|
| `--live` | Capture live UDP traffic instead of reading a file. |
|
||||||
|
| `--debug` | Also write the full research CSV next to each JSON. |
|
||||||
|
|
||||||
|
The `--debug` CSV holds any extra information that might be needed for fixing bugs. It contains no dangerous personal account data — only the raw bytes of the captured history page.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> For reliable deduplication, start from page 1 and scroll through the pages. If you only want pages 1–5, scroll through to page 6 as well just to be on the safe side.
|
||||||
|
|
||||||
|
## Privacy
|
||||||
|
|
||||||
|
> [!CAUTION]
|
||||||
|
> Do not commit packet captures, generated exports, research briefs, or personal account data. The repository keeps `exports/` as an empty output folder but ignores everything generated inside it.
|
||||||
|
|
||||||
## Boundary Policy
|
## Boundary Policy
|
||||||
|
|
||||||
|
|
@ -57,16 +75,18 @@ NTE history records do not appear to contain a unique server-side roll ID. UIDs
|
||||||
|
|
||||||
History always loads page 1 first and is scrolled downward, so the exporter anchors to the continuous run of pages starting at page 1 and ignores anything after the first gap (with a warning). This keeps the newest pages even if a later page is lost, and guarantees the newest timestamp group's ordinal 0 is captured.
|
History always loads page 1 first and is scrolled downward, so the exporter anchors to the continuous run of pages starting at page 1 and ignores anything after the first gap (with a warning). This keeps the newest pages even if a later page is lost, and guarantees the newest timestamp group's ordinal 0 is captured.
|
||||||
|
|
||||||
Within a timestamp group, ordinal 0 is the newest record and unseen rows can only append after the captured ones, so every exported UID is stable -- including a partially captured oldest 10-pull. All decoded rows are therefore exported. Re-scanning later simply adds any rows that were not yet captured, with the same UIDs for the rows already seen.
|
Within a timestamp group, ordinal 0 is the newest record and unseen rows can only append after the captured ones, so **every exported UID is stable** — including a partially captured oldest 10-pull. All decoded rows are therefore exported. Re-scanning later simply adds any rows that were not yet captured, with the same UIDs for the rows already seen.
|
||||||
|
|
||||||
For Monopoly, Points Gift and Chase Reward rows stay in the timestamp group for UID ordinal generation, but only `result_type = dice` rows count toward pull-set sizing. Arc pulls are always 10-pulls. In both systems every captured group is exported, including the oldest one even if it is a partially captured pull set, because its captured prefix is ordinal-stable.
|
For Monopoly, Points Gift and Chase Reward rows stay in the timestamp group for UID ordinal generation, but only `result_type = dice` rows count toward pull-set sizing. Arc pulls are always 10-pulls. In both systems every captured group is exported, including the oldest one even if it is a partially captured pull set, because its captured prefix is ordinal-stable.
|
||||||
|
|
||||||
## Current Adapters
|
## Adapters
|
||||||
|
|
||||||
- live Windows raw-socket capture
|
**Current**
|
||||||
|
|
||||||
|
- Live Windows raw-socket capture
|
||||||
- `mitmproxy .flows` research decoder
|
- `mitmproxy .flows` research decoder
|
||||||
|
|
||||||
Planned later:
|
**Planned**
|
||||||
|
|
||||||
- live Npcap/libpcap capture
|
- Live Npcap/libpcap and/or pktmon capture
|
||||||
- UI wrapper around the CLI
|
- UI wrapper around the CLI
|
||||||
|
|
|
||||||
BIN
docs/images/hathor_card.webp
Normal file
BIN
docs/images/hathor_card.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
Loading…
Add table
Add a link
Reference in a new issue