top of page
Search

ONMYOJI SOUL FARMING DESIGN TOOL

zhouyiwe
Mar 11
11 min read

Designing an Excel Simulation for Onmyoji Soul Farming (Orochi Stage 10)


Overview

Onmyoji (阴阳师) is a turn-based strategy RPG developed by NetEase. Players collect and train Shikigami to form teams for both PvE and PvP combat. PvE focuses on repeated dungeon clearing for resource farming and character progression, while PvP focuses on competitive team composition and turn order strategies. One of the most important progression systems across both modes is equipping Shikigami with Souls.


Each Shikigami equips six Souls. Souls provide a main stat, multiple randomized substats, and set bonuses when matching pieces are equipped. Because Shikigami performance depends heavily on these stats, obtaining strong Soul sets is essential for clearing higher difficulty PvE content.


This post documents my design tool process for analyzing Soul farming in Onmyoji, with a focus on modeling PvE progression through simulation. To keep the model controlled and comparable, this analysis focuses only on PvE Orochi dungeon farming as a consistent and repeatable source of Souls. The goal is to estimate build viability, farming effort, and progression pacing for two different Shikigami roles.


Soul Stat Optimization and Orochi Farming

Souls can be obtained through several systems in Onmyoji such as shops, events, rewards, and farming zones. For this analysis, I focus only on PvE Orochi dungeon farming as a consistent and repeatable source of Souls. This keeps the model controlled and avoids introducing time-limited or progression-dependent reward systems.


In the Orochi dungeon, each run drops a random Soul. The dropped Soul has multiple layers of randomness. A grade tier is determined by the dungeon stage. A Soul set type is assigned. A main stat is chosen from a slot-specific stat pool. Several substats are randomly selected. When the Soul is enhanced, random substats receive additional stat increases. Because of this layered randomness, players often farm the same dungeon many times while searching for Souls that meet specific stat requirements for their target builds.


Drop rate tables for Orochi dungeon stages are publicly documented online. These tables show the probability of each Soul grade appearing per run and provide concrete probability data for simulation.


With the Soul system and Orochi farming loop defined, the next step was turning this general frustration with randomness into specific design questions that a simulation could answer.


Questions This Tool Tries to Answer

This raises a design and player-facing question: how much Orochi dungeon farming is statistically required to complete usable Soul builds for different Shikigami roles?


  1. How many Orochi dungeon runs are expected to complete an optimized Soul set for two different types of Shikigami builds

    - As a player, I want to estimate how long I need to farm to complete strong builds for two Shikigami so I can plan my time investment.

    - As a designer, I want to evaluate whether different build targets create reasonably paced PvE progression.


  2. After a fixed farming budget, what is the probability that each Shikigami reaches minimum viable stats

    - As a player, I want to know which Shikigami is more likely to reach a usable build within a limited number of dungeon runs.

    - As a designer, I want to understand whether optimization difficulty is balanced across different character roles.


  3. How does increasing farming investment produce diminishing returns for each build

    - As a player, I want to identify when continued farming is unlikely to yield meaningful improvement.

    - As a designer, I want to verify that Soul farming remains rewarding without becoming excessively grind-heavy.


To answer those questions in a meaningful way, I first had to define the exact rules and constraints the model would simulate, including drop rates, slot rules, and substat generation.


System Rules to Model


Orochi Stage Selection

For this design tool, I model Orochi Stage 10 only. This stage has clearly documented Soul grade drop rates and is commonly used for PvE Soul farming.


According to the documented table, Stage 10 has the following Soul grade drop probabilities:

  • Grade 4: 67%

  • Grade 5: 30%

  • Grade 6: 3%

These probabilities define the first random variable in the simulation.


Soul Set Scope

To reduce scope and allow meaningful comparison, I model two specific Soul sets:

  • Shadow for an attacker-focused build

  • Fortune Cat for a support-focused build

The simulation is conditioned on the selected Soul set type. Drops of other Soul sets are treated as irrelevant to the build and excluded from evaluation. This means each trial represents one drop of either Shadow or Fortune Cat, depending on the build being evaluated.

 













What Counts as One Simulation Trial

One simulation trial represents one Soul drop event of the selected set type from Orochi Stage 10. Although an actual dungeon run may drop multiple Souls, this simplification isolates a single Soul drop to make the probability model clear and manageable.


Figure 1: Single-Trial Soul Generation and Viability Evaluation Flow
Figure 1: Single-Trial Soul Generation and Viability Evaluation Flow

Soul Structure Rules

Each Shikigami equips six Souls, one per slot.

Main stat rules by slot are as follows:

  • Slot 1 main stat is fixed as ATK

  • Slot 3 main stat is fixed as DEF

  • Slot 5 main stat is fixed as HP

Slots 2, 4, and 6 have multiple possible main stats selected from documented stat pools. These main stat pools determine whether a Soul meets the main stat requirement of a build.


Substat and Strengthening Rules

Souls begin with two to four substats depending on grade. When strengthened to levels 3, 6, 9, 12, and 15, a substat is either added or upgraded. If four substats already exist, one existing substat is randomly upgraded at each milestone.


According to the Soul Sub Stats page, there are eleven possible substat categories, from which substats are randomly selected. These rules define how Soul quality evolves after enhancement and must be simulated probabilistically.


Once the system rules were established, I narrowed the scope further by defining two build targets and a clear viability standard for each one.


Build Definitions and Completion Rule

To answer the design questions defined earlier in this project, I first needed to specify what counts as a usable Soul and what counts as a completed build.


Shadow Attacker Build

Required main stats:

  • Slot 2 ATK Bonus

  • Slot 4 ATK Bonus

  • Slot 6 Crit or Crit DMG


Desired substats:

  • Crit

  • Crit DMG

  • ATK Bonus

  • SPD

A Shadow Soul is considered usable if it has the required main stat for its slot and contains at least two desired substats.


Fortune Cat Support Build

Required main stats:

  • Slot 2 SPD

  • Slot 4 HP Bonus or Effect RES

  • Slot 6 HP Bonus


Desired substats:

  • SPD

  • HP Bonus

  • DEF Bonus

  • Effect RES

A Fortune Cat Soul is considered usable if it has the required main stat for its slot and contains at least two desired substats.


These build requirements are simplified PvE conventions based on common attacker and support roles and are used here as modeling assumptions rather than strict meta standards.


Build Completion Rule

A build is considered completed when at least four of the six equipped Souls are usable under the criteria defined above. This rule allows the simulation to measure expected runs to completion, probability of success under a fixed farming budget, and diminishing returns as farming investment increases.


Soul Data

  • Orochi Stage 10 Soul grade probabilities

  • Main stat pools for each slot

  • List of possible substats

  • Strengthening milestone behavior

  • Definitions of usable Souls for Shadow and Fortune Cat


The drop rate table, stat pools, and strengthening rules were obtained from the Onmyoji Fandom Wiki pages listed in the References section. The screenshots included in this post served as documentation that the input data was gathered and ready to use in the simulation.


If certain numeric stat roll ranges are not explicitly documented, I approximate them using equal probability distributions within each stat category. Since the design questions focus on probability of usable builds rather than exact stat totals, this approximation is reasonable and consistent with the scope of this project.


After defining the inputs and success criteria, I translated the problem into an Excel-based Monte Carlo simulation workflow.


Simulation Technique

Pre-Vis

My goal was to build an Excel-based simulation that estimates how likely a Soul drop is usable for two different build types, Shadow for an attacker Shikigami and Fortune Cat for a support Shikigami. Each row in the spreadsheet represents one simulated Soul drop from Orochi Stage 10. For each drop, the model randomly generates a grade, slot, main stat, and four substats sampled without duplication from the stat pool.


The spreadsheet then evaluates two conditions. First, it checks whether the main stat matches the required stat for that slot and build. Second, it counts how many substats match the desired substat list. If both conditions are satisfied, the drop is marked as viable using a TRUE or FALSE value.


By repeating this process for many trials and tracking the cumulative success rate, I can estimate the probability that a single drop is usable and how the probability of obtaining at least one usable Soul increases as the number of farming runs increases. I visualize this using success rate curves and summary statistics in Excel.

Figure 2: Tool Workflow (Computation and Usage Flow)
Figure 2: Tool Workflow (Computation and Usage Flow)

Simplifying Assumptions

To keep the model manageable, I only simulate Orochi Stage 10 farming and treat each trial as one independent Soul drop. Only Grade 4, Grade 5, and Grade 6 Souls are included because these are the relevant grades for PvE progression. Substats are sampled without duplication to match the actual game mechanic. Upgrade roll redistribution and enhancement outcomes are not simulated, and viability is defined using a mid-tier PvE usability standard based on correct main stat and at least two desired substats.

 



















Success Chance and Expected Value

Each Soul drop can be modeled as a Bernoulli trial, where the outcome is either viable or not viable. The probability that a single drop is viable is estimated directly from the simulation as:

p = (number of viable drops) / (total number of trials)


In Excel, this is calculated using:

COUNTIF([Is this Soul drop viable?], TRUE) / total trials

The number of desired substats follows a hypergeometric distribution because substats are sampled without replacement from the stat pool. This determines the probability that a Soul meets the usability condition.


The expected number of runs required to obtain one usable Soul is:

Expected runs = 1 / p


The probability of obtaining at least one usable Soul within N runs is:

P(success within N runs) = 1 - (1 - p)^N


This allows me to visualize farming progression and diminishing returns by plotting cumulative success rate as trials increase.


With the simulation logic outlined, the next step was organizing the spreadsheet into clear worksheets for inputs, simulation runs, and result comparison.


Tool Structure (Excel Worksheets)


Overview

This design tool analyzes the Soul farming system in Onmyoji, specifically focusing on Orochi Stage 10. The purpose of the tool is to estimate how long it takes to obtain viable Souls for two different Shikigami roles: an attacker using the Shadow Soul set and a support using the Fortune Cat Soul set.


In Onmyoji, each Soul drop contains randomized properties including grade, slot, main stat, and substats. Because these layers of randomness directly affect build completion, it is difficult for players or designers to estimate farming effort using intuition alone.


This tool uses Monte Carlo simulation to model the Soul generation process and evaluate viability according to defined build requirements. By simulating thousands of Soul drops, the tool calculates success probabilities, expected farming effort, and progression trends.


Core Simulation Worksheets

The primary worksheets in this tool are the Shadow Simulation and Fortune Cat Simulation worksheets. These sheets perform the core simulation and generate the main outputs.


Each row represents one simulated Soul drop from Orochi Stage 10. The model randomly generates the following properties:

  • Soul grade

  • Slot number

  • Main stat based on slot-specific stat pools

  • Four substats sampled without duplication


The tool then evaluates each drop using two classification steps. First, the tool checks whether the main stat satisfies the build requirement using logical comparisons against the required main stats for that slot. Second, the tool counts how many desired substats appear in the generated Soul. If at least two desired substats are present and the main stat requirement is satisfied, the Soul is classified as viable.


This produces a TRUE or FALSE viability outcome for each simulated drop.

Using these outcomes, the worksheet calculates:

  • Probability that a single Soul drop is viable

  • Expected number of runs required to obtain one viable Soul

  • Expected number of runs required to complete a full six Soul build

  • Success rate progression as the number of simulated runs increases


In addition, each simulation worksheet contains a Build Definition panel, which summarizes the Shikigami role, Soul set, primary function, main stat requirements, desired substats, and viability classification rule. These panels provide documentation and make the tool easier to understand.


Other Worksheets

Soul Inputs

This tab defines the functional input parameters used by simulation, and it contains several important input tables.


Grade Pool:

Defines the possible Soul grades included in the simulation. It currently includes Grade 4, Grade 5, and Grade 6 Souls, which represent realistic farming outcomes in Orochi Stage 10.








Substat Pool:

Defines all possible substats that can appear on Souls. These include ATK, ATK Bonus, Crit, Crit DMG, SPD, HP, HP Bonus, DEF, DEF Bonus, Effect RES, and Effect HIT.

















Main Stat Pools by Slot:

Define which main stats are allowed to appear in each slot. This follows the actual game rules where Slots 1, 3, and 5 have fixed main stats, and Slots 2, 4, and 6 allow multiple possible main stats.


Main Stat Requirements for Shadow and Fortune Cat:

Define which main stats are required for each build. These tables are referenced by the simulation to determine whether a generated Soul satisfies the build.
















Desired Substat Lists:

Define which substats contribute to building viability for each Soul set.











These tables act as the functional input layer of the tool. Changing values in this worksheet automatically updates the simulation results.


Summary Worksheet (Summarize Tab)

This worksheet combines the results from both the Shadow Simulation and Fortune Cat Simulation worksheets.


It calculates the cumulative success rate progression for both Soul sets and displays them on a single comparison chart titled Soul Drop Comparison. This chart visualizes how the estimated probability of obtaining viable Souls stabilizes as the number of simulated runs increases.


This worksheet is important because it allows direct comparison between attacker and support build difficulty. It clearly shows which build type reaches viability faster and which requires more farming investment.


Finally, once the tool structure was in place, the outputs could be used to answer the original farming and progression questions in a practical way.


Using This Tool

As a designer tunes the Soul build requirements and observes the simulation results, this spreadsheet can be used to examine farming difficulty and progression consequences, answering questions including:


  1. How many Orochi dungeon runs are expected to complete an optimized Soul set for two different Shikigami builds?

    - Observe the success rate values in the Summary worksheet for both Shadow and Fortune Cat.

    - The success rate represents the probability that a single Soul drop is usable.

    - The expected number of runs required to obtain one usable Soul can be estimated using: Expected Runs ≈ 1 ÷ Success Rate

    - Compare the expected runs between Shadow and Fortune Cat to determine which build requires more farming investment.


  2. After a fixed farming budget, what is the probability that each Shikigami reaches minimum viable stats?

    - Use the cumulative success rate values in the Summary worksheet, which show how the probability increases as the number of trials increases.

    - Each trial represents one independent Soul drop.

    - Designers can check the success rate at a specific trial number, such as 100 or 500 runs, to estimate the probability of obtaining a usable Soul within that farming budget.

    - Compare Shadow and Fortune Cat to evaluate which build is more achievable within limited farming time.


  3. How does increasing farming investment produce diminishing returns for each build?

    - Observe the Soul Drop Comparison chart in the Summary worksheet.

    - Early trials show larger changes in success rate, while later trials show smaller changes.

    - When the curve stabilizes, additional farming produces minimal improvement.

    - This helps identify when continued farming is unlikely to significantly improve build completion probability.



References

Onmyoji Fandom Wiki, Collection / Illustration, retrieve from:

Onmyoji Fandom Wiki, Soul (Stats / Positions / Sub Stats), retrieve from:

Onmyoji Fandom Wiki, Soul Zones: Orochi, retrieve from:

Onmyoji Fandom Wiki, Soul List, retrieve from:


 
 
 

Comments


bottom of page