No description
Find a file
Golumpa 354b0e9232 Decode reward keys and use mapping files
Add decoding for Monopoly reward keys and switch reward metadata to be looked up by decoded id. Implement decode_reward_key() and infer_reward_type(); replace the previous raw-key KNOWN_REWARDS approach with REWARDS_BY_ID built from mappings/*.json. Add mappings/items.json and expand mappings/arcs.json. Update decoder to produce reward_id, use REWARDS_BY_ID, and change guess_quantity() to accept reward_id. Refactor pool_mappings to reuse the new mapping loader, and update tests and docs to validate mapping files and document the reward key encoding/behavior.
2026-06-11 11:09:02 +01:00
docs Decode reward keys and use mapping files 2026-06-11 11:09:02 +01:00
exports Initial NTE history exporter 2026-06-10 23:59:01 +01:00
mappings Decode reward keys and use mapping files 2026-06-11 11:09:02 +01:00
src/nte_history_exporter Decode reward keys and use mapping files 2026-06-11 11:09:02 +01:00
tests Decode reward keys and use mapping files 2026-06-11 11:09:02 +01:00
tools Initial NTE history exporter 2026-06-10 23:59:01 +01:00
.gitignore Initial NTE history exporter 2026-06-10 23:59:01 +01:00
pyproject.toml Initial NTE history exporter 2026-06-10 23:59:01 +01:00
README.md Initial NTE history exporter 2026-06-10 23:59:01 +01:00
run-exporter.cmd Initial NTE history exporter 2026-06-10 23:59:01 +01:00
run-exporter.ps1 fix powershell location 2026-06-11 10:42:56 +01:00

NTE History Exporter

Prototype CLI exporter for Neverness to Everness pull history.

This version supports:

  • Game: Neverness to Everness
  • System: Monopoly
  • Banner ID: Lottery_Permanent
  • Banner name: Standard Board / Permanent Board
  • Banner ID: Lottery_LimitedCharacter
  • Banner name: Limited Character Board
  • System: Gashapon
  • Banner ID: Arc_MiracleBox
  • Banner name: Arc Miracle Box

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.

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.

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

Live capture, Windows:

.\run-exporter.ps1 --live

Launch it before logging in, then open any supported history board in game. The tool keeps listening until you press any key. Exports are written under exports\ as Permanent_<date_time>.csv/json, Limited_<date_time>.csv/json, or Arc_<date_time>.csv/json.

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.

File replay:

.\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.

Limited character history is exported as one shared pity pool: Lottery_LimitedCharacter. 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.

Boundary Policy

NTE history records do not appear to contain a unique server-side roll ID. UIDs are generated from decoded record fields and the record's order within all rows sharing the same raw timestamp.

Because 10-pulls can span page boundaries, partial timestamp groups can produce unstable UIDs. Normal mode exports only complete/stable timestamp groups. Boundary groups are skipped with warnings when the exporter cannot prove they are complete.

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 groups are expected to be complete 10-pull timestamp groups.

Current Adapters

  • live Windows raw-socket capture
  • mitmproxy .flows research decoder

Planned later:

  • live Npcap/libpcap capture
  • UI wrapper around the CLI