OOKNET [ / search the index ]
──────────────────────────────────────────────────────────────────────────────────────
[ KB ] [ GIT ] [ PROJECTS ] [ ABOUT ]
══════════════════════════════════════════════════════════════════════════════════════
OOKNET [ / search ]
────────────────────────────────────────────────
[ KB ] [ GIT ] [ PROJECTS ] [ ABOUT ]
════════════════════════════════════════════════
CLONE git.ooknet.org/ooks/wowsim-stats.git
FILES COMMITS: 280
FILES COMMITS: 280
══════════════════════════════════════════════════════════════════════════════════════
════════════════════════════════════════════════
[5506adb] data: current sim outputs, history purged of regenerated arti... 2026-07-18
[5506adb] data: current sim outpu... 2026-07-18
.github/ ci: remove old workflows 2026-01-26
nix/ ookstats: cooldown failed account fingerprin... 2026-07-16
web/ data: current sim outputs, history purged of... 2026-07-18
.envrc refactor: treewide, wowsimstats 2.0 2025-09-14
.gitignore git: gitignore .astro and untrack build arti... 2026-05-02
account-manual-links.json ookstats + web: account leaderboards, alts U... 2026-05-07
flake.lock flake: bump nixpkgs, run vercel CLI via npx 2026-05-06
flake.nix flake: switch systems to default for darwin ... 2026-05-02
README.md docs: update readme 2025-07-29
.github/ ci: remov... 2026-01-26
nix/ ookstats:... 2026-07-16
web/ data: cur... 2026-07-18
.envrc refactor:... 2025-09-14
.gitignore git: giti... 2026-05-02
account-manual-link... ookstats ... 2026-05-07
flake.lock flake: bu... 2026-05-06
flake.nix flake: sw... 2026-05-02
README.md docs: upd... 2025-07-29
README rendered @ master ══════════════════════════════════════════════════════════════════════════════════════
README rendered @ master ════════════════════════════════════════════════
The wowsimcli tool consumes simulation inputs as RaidSimRequests in the protojson format. These input files can be exported from the WowSims Web UI. The core of this project is a workflow that automates simulation at scale. We use nix to programmatically compose the required protojson input files. A script then orchestrates the entire process:
This approach allows us to easily generate thousands of simulation combinations while also leveraging the powerful caching and parallelization features of the nix build system. If a simulation's input hasn't changed, nix can use a cached result instead of re-running it, saving significant time.
Right now the project is still in a proof of concept stage, and requires more work.
nix-command and flakes are enabled in your
~/.config/nix/nix.conf:
experimental-features = nix-command flakes
experimental-features = nix-command flakes
nix developThis will enter a nix development shell with all the required dependencies in your PATH.
wowsimcli: The command-line tool used to run the simulations.
nodejs: Web frontend.
To run simulations use:
nix run .#<simulation>Simulations are organized into the following format:
Race comparison benchmarks:
race-<class>-<spec>-<phase>-<encounterType>-<targets>-<duration>
DPS rankings: dps-<phase>-<encounterType>-<targets>-<duration>
<class>-<spec>:
druid-balance<phase>:
p1 is available currently, preRaid coming soon.p1<encounterType>:
raid is available currently (dungeon and specific boss simulations are
planned for future updates).raidtargets:
single 1 Targetcleave 2 Targetthree 3 targetten 10 targetsingleduration:
long: 300 seconds, with a 60s variance (300s ?60s)short: 120 seconds, with a 30s variance (120s ?30s)burst: 30 seconds, with a 10s variance (30s ?10s)Example simulations
nix run .#dps-p1-raid-single-long This will run all dps specs in P1 bis gear,
against 1 default raid boss for 300s 60s +/-, for 10,000 iterations each.
nix run .#race-paladin-retribution-p1-raid-cleave-burst This will run
simulations for all Retribution's playable races, against 2 default raid boss
targets, for 30s 10s +/-, for 10,000 iterations each.
Running a simulation script generates a JSON file with the aggregated data in your present working directory. These files are also copied to web/public/data/ to be used by the web front-end. The ability to specify an output directory is planned for a future update.
To refresh all data used by the website, run the following command:
nix run .#allSimulations
This command runs every simulation and updates the corresponding data files in web/public/data/.
LOG most recent first ══════════════════════════════════════════════════════════════════════════════════════
LOG most recent first ════════════════════════════════════════════════
2026-07-18 ─┬─ 5506adb
│ data: current sim outputs, history purged of regenerated artifacts│
2026-07-16 ─┼─ d5832dc
│ ookstats: cooldown failed account fingerprint backfills│
2026-07-16 ─┼─ 1ec89fa
│ deploy: crawl only latest periods│
2026-07-16 ─┼─ 62976dc
│ ookstats + web: home top players use account rankings│
2026-07-16 ─┼─ 72874ae
│ ookstats + web: season 3 defaults, dynamic season scopes2026-07-18 ─┬─ 5506adb
│ data: current sim outputs, │ history purged of regenerated │ artifacts│
2026-07-16 ─┼─ d5832dc
│ ookstats: cooldown failed account │ fingerprint backfills│
2026-07-16 ─┼─ 1ec89fa
│ deploy: crawl only latest periods│
2026-07-16 ─┼─ 62976dc
│ ookstats + web: home top players │ use account rankings│
2026-07-16 ─┼─ 72874ae
│ ookstats + web: season 3 │ defaults, dynamic season scopes [ FULL LOG ]
────────────────────────────────────────────────────────────────────────────────────── OOKNET
──────────────────────────────────────────────── OOKNET