▶ Open the app ⌂ Home · you are reading the help

craftgaz — how it works

craftgaz is a craft constructor for Path of Exile 2 (patch 0.5+). You draw a craft as a flowchart of operations and branches, and a Monte-Carlo engine runs it thousands of times to tell you, for every possible outcome: how likely it is, how many attempts it takes, what it costs, and whether it turns a profit.

New here? Jump to the 60-second quick start. Want a term explained? See the PoE2 glossary.

Basics The core idea 60-second quick start The two views Reading the report Reference Node types Operations palette Choosing mods (the pickers) Editing a craft Details Prices & freshness Tiers, sides & ilvl PoE2 glossary Tips & FAQ

The core idea ↑ top

A craft is a flowchart. It starts from a single item (a base you buy), applies operations (orbs, essences, bones, omens…), branches on what you rolled, and ends at one of several outcomes — a sellable item, a fallback item, or a dead-end work-piece.

The engine plays that flowchart out tens of thousands of times with realistic odds (mod weights from the Craft of Exile dataset), tracking what each trial spends and where it lands. The result is a probability distribution over outcomes plus an expected-value (profit) calculation. Nothing is hardcoded for one item — the same machinery works on any craftable base.

Why a simulator and not a calculator? Real crafts loop, retry, and branch on luck (“if it fractured the right mod, continue; otherwise salvage”). Closed-form odds get unwieldy fast. Monte-Carlo just plays the craft, so the path-dependence (e.g. only 33% of items even reach the finishing stage) is captured exactly.

60-second quick start ↑ top

  1. Open Home and either click one of the presets or fill the New craft form with a class, base, and item level and press + Create new craft.
  2. A new craft opens as a single 📦 item node (your bought base) feeding a result — a preset instead opens a full graph you can dissect. Click the 📦 to set the starting rarity, any existing modifiers, and the buy cost.
  3. Add steps: click the green + on an edge, or the “+ operation…” menu, and pick an operation (roll first mod, exalt, essence, desecrate, …). See the palette.
  4. To split on luck, click a work-piece and choose “+ branches by mod” — each mod you pick becomes its own branch, plus a rest.
  5. Mark the items you’d actually sell: click a work-piece and 💰 make sellable, give it a name and a price in Divine.
  6. Press ▶ Run. Read the outcomes, expected attempts, and profit on the right. Tweak sale prices to re-run instantly.
Tip: almost everything on screen has a hover tooltip. When in doubt, hover the label, header, or glyph.

The two views ↑ top

The left panel is the craft graph, drawn top-to-bottom. It has two zoom levels:

Blocks view (collapsed)

Big named stages of the craft (e.g. a “prep” stage, a “reveal loop”, a “finish”). After a run, each block shows P(reached) — the share of trials that get this far — and its mean cost in Divine. Pill-shaped outcomes (terminals) sit in a row at the bottom with their probability and sale price. Click the on a block to open it.

Block detail (expanded)

The inner node graph of one block. Each node is one step (see Node types). Edges are labelled by what they represent: Y/ok/hit (green), N/fail/miss (red), loop (blue). On each node you can:

Use the breadcrumb at the top of the graph to go ← blocks or read the current block’s stats and note.

Node types ↑ top

A craft graph is a flat list of nodes. These are the kinds you’ll see:

NodeWhat it is
📦Item (start)Your starting item: rarity, any pre-existing modifiers (family · side · tier · origin, and whether each is fractured), and the buy cost. It’s the first node of the entry block. Click it to edit.
OpA single operation — apply one orb / essence / bone, then continue to exactly one next node. The workhorse node.
BranchA yes/no test on the current item’s mods. Routes to then (Y) or els (N). Built by “+ branches by mod”, or edited as a condition.
AttemptAn operation with an intrinsic pass/fail — it runs the op, then routes on whether it caught what it was after. The clearest example is fracture: hit = it locked a mod you wanted, miss = it locked the wrong one.
LoopRepeats a body sub-graph until a condition holds (or a cap). Used for “keep revealing / rerolling until the target appears”.
FinishA producing operation: it runs the op and then sorts the resulting item into the declared outcomes automatically (first matching outcome wins). It wires a producing step straight to the outcomes it yields, with no separate classify node.
Roll first modA special solver node, drawn with distinct styling (not in a separate panel). It compares chaos-orb spam against the desecrate variants and picks the cheapest expected way to land a mod matching any of your targets — see the palette and the report’s Method comparison.
Terminal / work-pieceWhere a trial ends. With a sale > 0 it’s a sellable outcome (💰); with sale = 0 it’s an intermediate work-piece — a place to add more operations or branches.

Operations palette ↑ top

These are the crafting steps you can add from the “+ operation…” menu. Each maps to a real PoE2 mechanic.

OperationWhat it does
roll first mod The entry point of many crafts. Starting from a rare with one changeable mod (optionally one fractured), it solves the cheapest expected way to get a mod matching any of your targets — comparing plain chaos-orb spam against six desecrate variants (Gnawed / Preserved / Ancient bone × with/without Omen of Abyssal Echoes, each optionally side-restricted). Editing it opens a target picker (OR-combined) plus an “allow desecrate methods” toggle.
perfect augPerfect Orb of Augmentation — adds a modifier to a Magic item that has an open affix slot, with a high tier floor (it rolls a high-tier mod; low tiers can’t appear).
exaltExalted Orb — adds one random affix to an open slot of a rare. The editor lets you raise the minimum tier (Greater floor 35 / Perfect floor 50) and force a side (prefix = Sinistral, suffix = Dextral omen). The result is random — classify it with branches or outcome conditions.
essenceEssence — makes the item rare (if needed) and adds one guaranteed modifier of a chosen family and side.
desecrateUse a bone (Gnawed / Preserved / Ancient) to add a desecrated mod, then reveal one screen — keeping an option that matches any of your targets if it shows up, otherwise the best available. You can force a side (a Necromancy omen), or uncheck “reveal now” to leave the mod unrevealed and reveal it later.
reveal desecratedReveal a previously-placed unrevealed desecrated mod, keeping an option matching any target. Abyssal Echoes gives a second screen on a first-screen miss. Use the same bone you desecrated with — it sets the reveal pool.
annulOrb of Annulment — removes a random non-fractured modifier. Optionally restricted to suffixes (Dextral omen).
chaos spamRepeatedly chaos the item until a chosen prefix axis-set reaches the required tier and count — it counts only prefixes and slams in a flat-damage prefix of an absent element (the cost is geometric — the engine computes the expected number of orbs). Modelled for the “add the 2nd damage prefix” case; pick a prefix axis-set.
suffix finishRuns a cost-optimal policy to finish the suffixes — it weighs exalts, annuls, and rerolls (good vs mid vs bad suffixes) to reach the target number of good suffixes for the least expected cost.
fractureFracturing Orb — permanently locks one random modifier (it can’t be removed or rerolled afterward; a second fracture is impossible). Because the locked mod is random, this is added as an Attempt: hit if it locked one of the mods you chose, miss otherwise. Needs ≥4 mods, and unrevealed desecrated mods can’t be fractured.

The project’s reference ring craft also uses a few advanced building blocks not in the quick palette — Essence of the Breach (unlock the 40% quality cap), catalyst-to-quality, divine-push, and a catalysing double-exalt. You can see and edit them via the { } raw IR / per-node JSON editor — they don’t have dedicated visual editors.

Choosing mods (the pickers) ↑ top

Two-stage mod picker

Wherever you choose a modifier, you get a searchable two-stage picker: first pick an effect by its human-readable wording (type to filter), then hover/click to see its tiers with the real in-game text. Picking Tn means “Tn or better” — a level floor, so higher tiers also match.

Mod-set builder (requirements)

For outcome conditions, branch conditions, and stage expectations, you build a mod-set from one or more requirements. Requirements are AND-combined (all must hold). Each requirement is a count over a selector: a side (prefix/suffix/any), a family or an axis-set, and an optional minimum tier.

OR targets (roll-first, desecrate, reveal, fracture)

When you’re picking targets for a solver/reveal/fracture, the chosen mods are OR-combined — landing any one of them counts as success. The builder highlights this with an “— OR —” separator.

Family vs axis-set. A family is one mod group (e.g. ColdDamage). An axis-set is a named bundle of families/axes that are interchangeable for your purpose (e.g. “any elemental resist”, “any flat elemental damage”). Use a family when you need a specific mod; use an axis-set when several mods would do.

Reading the report ↑ top

The right panel updates on every run. It has four parts.

Outcomes & profit

ColumnMeaning
outcomeThe named result item. Click its ▸ caret to expand the mod families that compose it (one outcome is many concrete mod-sets).
PProbability a trial ends at this outcome.
E[att]Expected number of full attempts to reach this outcome once — and this accounts for path-dependence (if only a third of items even reach the finishing stage, that’s baked in).
→90%How many attempts to hit this outcome at least once with 90% confidence.
sale (d)Editable. What this outcome sells for, in Divine. Type a new value and the report re-runs.
E[rev]Expected revenue contribution = P × sale.

Below the table: base buy (also editable), mean cost, mean revenue, and profit (EV) = Σ P·sale − E[cost]. Green is profitable, red is a loss.

Editing a price re-runs the craft (debounced) — but since probabilities and orb-costs don’t depend on the sale prices you set, only the profit figures move; the outcome distribution stays the same.

Operations & costs

Every operation node with its P(reached) and its expected spend per full run (a step reached rarely contributes little; loops and retries are included). The ⚙ roll-first node’s row expands to its full Method comparison — each method’s P(hit), all-in E[cost], which was picked (✓), and the resulting mod’s origin. The sum of operation costs plus base buy ≈ the mean cost above.

Blocks & stage contracts

Per block: P(reached), cost, and expect ✓. The last is a sanity check between stages — if a block carries an expected mod-set for its entrance, the engine reports the share of items entering that actually match it (and flags it ✗ unreachable if nothing can). Set one with the block’s “edit expect” button.

Editing a craft ↑ top

Prices & freshness ↑ top

All values are in Divine Orb (d). Currency/orb prices are seeded from the local knowledge base at startup and kept fresh by a background task that re-fetches the live community snapshot (poe2scout) when they go stale. The ⟳ prices button refreshes them on demand (falling back to the last good prices if the API is unreachable).

The sale prices of finished items, and the buy cost of the base, are yours to set — those are exactly the numbers you tweak to find where a craft is worth doing.

Tiers, sides & item level ↑ top

PoE2 glossary ↑ top

Modifier / affixA rolled property on an item. Prefixes and suffixes are the two sides; each belongs to a family (mod group) and a tier.
Rare / MagicRarity. A magic item has ≤1 prefix + ≤1 suffix; a rare has up to 3 + 3.
Exalted OrbAdds a random affix to an open slot of a rare. Greater/Perfect variants force a higher minimum tier.
Orb of AnnulmentRemoves a random modifier (never a fractured one).
Chaos OrbRemoves one random modifier and adds a new random one; used here as repeated “chaos spam” to fish for a target.
Divine OrbRerolls the numeric values within a modifier’s tier. Also the currency everything is priced in.
EssenceAdds a guaranteed modifier of a known family.
Desecrate / BoneDesecration adds a desecrated modifier using a bone (Gnawed / Preserved / Ancient, increasing power), then you reveal it from a small screen of options.
Fracturing OrbPermanently locks one random modifier so later orbs can’t touch it.
OmenA consumable that biases the next operation — e.g. Sinistral/Dextral (force prefix/suffix), Abyssal Echoes (a second reveal screen).
Quality / CatalystCatalysts add quality of a damage/defence type; some crafts need a quality cap unlocked (Essence of the Breach) before pushing to 40%.
Axis-setcraftgaz term: a named bundle of interchangeable families/axes (e.g. “any elemental resist”) used as one target.

Tips & FAQ ↑ top

▶ Open the app ⌂ Home