WARFRAME Wiki
Register
Advertisement
WARFRAME Wiki
Sgt Nef AnyoIcon
“Orokin secrets cannot remain secret forever! Start talking!”
The following article/section is conjecture. Content is subjected to change/removal as the game progresses. Please do not use this article for critical in-game information.
ArchimedeanYonta
“Very well. Keep your secrets.”
This article/section contains unofficial information, concepts, or terminology derived from or based on community discussion, invention, or knowledge. It may be subjective and contain information or terminology that is not used by Digital Extremes or in official WARFRAME communications, and may not be an officially recognized concept.
Photo-4
“It's taking longer than I calculated.”
This page is actively being worked on and may not be completely correct. Please assist in making this page accurate. See WARFRAME Wiki:Research on ways to perform research on this game. Click here to add more info.
If you see any wrong statements, please feel free to edit or write in the comment section what is incorrect.

Random number generation (or RNG) is the generation of a sequence of numbers that cannot be reasonably predicted better than by a random chance, usually through a random-number generator.[2] RNG is an essential feature in WARFRAME as it is involved in many components of the game such as graphics[1], weapon mechanics such as Critical Hits, generation of mission Tile Sets, and more. These game mechanics use varying degrees of randomness for performance purposes, with more rigorous methods taking longer to generate more "random" numbers as a tradeoff to computational speed.[1]

Most importantly, RNG is essential to the core gameplay loop with obtaining in-game items. The drop chance of an item can determine its trade value and influence a player's means of obtaining it such as farming, trading, or purchasing with in-game or real-world currency. This article will explain some details on RNG in relation to WARFRAME's Drop Tables and should only be used for educational purposes since these mechanics may not apply to WARFRAME in its current state.

Generating Random Numbers[]

As in many video games[3], random numbers are not generated non-deterministically since they use computational algorithms that give the appearance of a random sequence, also known as pseudorandom number generators. To the human eye, these numbers may look random, but they are actually from deterministic algorithms; under certain conditions and parameters, the algorithm will always return the same 'random' number. Throughout this article, the term "RNG" will refer to pseudorandom number generators.

RNG Fairness[]

A RNG is considered 'fair' when the random numbers it outputs correspond or results to the expected drop chances over an extended period of time (e.g. hundreds of runs) or throughout a population (in this case, WARFRAME's playerbase). In other words, the random numbers the RNG outputs follow a uniform distribution over an extended period of time.

Say one is trying to get GaraPrimeIcon Gara Prime's main blueprint from a Radiant AxiRelicIntact Axi G6. According to the official drop table repository, the blueprint has a 10% chance of dropping so a single player would expect to get the blueprint after opening an average of 1 / 10% = 10 Radiant AxiRelicIntact Axi G6. In the long term, say after opening 1,000 Radiant AxiRelicIntact Axi G6, the player would expect to get an average of 100 Gara Prime blueprints. These expected number of runs/drop table rolls or expected number of rewards over a number of runs/drop table rolls would be accurate if the written drop chances actually reflected on actual drop chances calculated by the in-game RNG. With a large sample size, if any deviation from these values is not within statistical error, then one could say that the 10% drop chance is "inaccurate".

Note that one cannot directly conclude that the drop tables are wrong or accurate from statistical methods (e.g. comparison of expected and observed count data using Chi-squared test), just the observations are statistically different from the expected drop rates. Use statistical analysis as a starting point for more research to be done (more sampling or rigorous tests) or to scrutinize drop tables' accuracy. There may be one or several reasons why your experience does not match expected rates:

  • The displayed drop chances are inaccurate from in-game chances.
  • Players are farming the wrong mission/enemy or rolling the wrong drop table (like in the case of Disruption where squad performance affects whether or not a rotation reward pulls from A, B, or C drop table).
    • There may be rare instances where a specific reward is missing from drop tables.[4][5][6]
  • There is a bug/issue with the game's RNG.[7][8]
  • There is an external factor that is not accounted for that is manipulating drop chances/RNG (e.g. having a squad member with a Mod Drop Chance Booster active).
  • The possibility that a player is astronomically (un)lucky with their drops.
    • If the RNG is truly fair with no manipulation, we would expect a (very) small portion of the player base to experience the extremes since every possible sequence of values is equally likely to appear.[9]
      • Say 30,000 players have farmed and built the RhinoIcon272 Rhino Warframe. Knowing that the Rhino Neuroptics, Chassis, and Systems blueprints have a 38.72%, 38.72%, and 22.56% chance of dropping[10], we would say that there is a 0.2256 ^ 5 = 0.0584% probability for a player to get five Systems blueprints in a row (similar to rolling the same number on a 5-sided die five times in a row). Therefore, we would expect around 18 players out of that 30k to have this (un)lucky experience (since 30000 * (0.2256 ^ 5) = 17.5314).
    • Randomness is not necessarily uniform, especially in small sample sizes; with a large enough sample size, there is clustering in any random distribution and players may experience either end of the drop experience (extremely 'lucky' or 'unlucky' with their reward drops). For example, a binary random number generator may produce the following sequence: "1010111011101010010010011011100001011010000000011010000001111010011010001100001011010111110101111010". The value 0 is rolled eight times in a row which may seem nonrandom to humans since our cognitive understanding of probability tends to view randomness as a uniform process, where we immediately expect an equal number of 0's and 1's to be rolled between any given period of time.[citation needed]
  • Player's confirmation bias through a relatively small sample size of drop experiences to support sweeping claims that drop tables are wrong. Player's method of sampling may be subjected to sampling bias.
    • By the law of large numbers theorem, the average of the results should be close to expected value the more trials are done. In the context of WARFRAME, the more times a particular drop table is rolled, the closer that the resultant number of drops should match the expected number of drops calculated from drop chances.

Seeding RNG[]

Sgt Nef AnyoIcon
“Orokin secrets cannot remain secret forever! Start talking!”
The following article/section is conjecture. Content is subjected to change/removal as the game progresses. Please do not use this article for critical in-game information.

It is unknown how WARFRAME generates the seed(s) for the random number generators that are used to determine drops from drop tables.

For seeding rudimentary random number generators, WARFRAME may use a machine-based random function (rand() in C++) to produce returns a pseudo-random number in the range between 0 and RAND_MAX.[11]

Based on EE.log, a modified srand() is intialized with a unique, non-repeating 64-bit value between −(2^63) to 2^63 − 1 (e.g. do not expect 1 or 2,222,222,222,222,222,222 to be the seed of the RNG).

Sample RNG seeds:

  • -7741523468968126435
  • 2541993907054812653
  • -7134035214884351693
  • -3354772158446415432
  • 9209242484211992089
  • -451729703806461350
  • 1984020437910075226

Weighted RNG[]

In a weighted random number generators, certain values will tend to appear more than others due to a bias (or weights) associated with those values. See #Rarity Weights and #Bias on how WARFRAME uses weighted values in their drop tables to make some rewards drop more frequently than others and vice versa.

It is also known that randomized innate bonuses to Kuva and Tenet weapons are weighted towards the lower percentages.[12] Warframes chosen for Helminth Invigorations are also subjected to weighted values.[13]

Linear Congruential Generator[]

One of the algorithms WARFRAME uses for generating pseudo-random numbers is Donald Knuth's version of a Linear Congruential Generator (LCG), scaling off rarity weights that influence the drop chances of items in /Lotus/Types/DropTables (enemy drop tables) and /Lotus/Types/Game/MissionDecks (mission drop tables).[14][15]

Note that the following LCG formula only applies to endless missions that involve getting rewards over time, such as Defense and Survival.

Where is the sequence of pseudorandom values, and

— "modulus", WARFRAME uses 1
— "multiplier"
— "increment", randomly chosen based on seed value
— seed value for RNG
— current iteration or reward rotation number, an integer

This type of RNG is cyclical in nature, meaning that after a certain number of iterations or period, the generator will return the same sequence of values, subsquently completing a "cycle".

For example, a LCG with a short period can be created using the following parameters[16]: m = 8, a = 3, c = 4, seed = 2147483647 The resultant sequence of numbers will look like:

1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, ...

In the cases of missions like Capture and Exterminate where players earn a reward upon mission completion, they simply use the process explained in #Reward Seeds and do not use LCG for random number generation.

Rarity Weights[]

WARFRAME uses four rarity weights in its RNG algorithm(s). These weights are the same across DropTables and MissionDecks, with the exception of /Lotus/Types/Game/MissionDecks/SortieRewards, which uses FixedWeights that are manually assigned by the developers.[14][15]

DropTables and MissionDecks
Rarity Weight Percentage
Common 0.755 75.50%
Uncommon 0.22 22.00%
Rare 0.02 2.00%
Legendary 0.005 0.50%
0.755 + 0.22 + 0.02 + 0.005 = 1

Normalization[]

Normalization occurs when one or more of the rarity weights are not present in a DropTable or MissionDeck. It refers to the division of constants that are added up so values fall between zero (0) and one (1) within different data sets.[14]

Example Normalization Procedure[]

Say a drop table has 1 Common, 1 Uncommon, 1 Rare, and 0 Legendary drops.
Normalize the rarity weightings by dividing by the sum of present rarity weightings
in drop table to ensure weightings add up to 100% exactly.

  Common: 0.755 / (0.755 + 0.22 + 0.02) = 0.758793969849246 = 75.8793969849246% ≈ 75.88%
Uncommon: 0.22 / (0.755 + 0.22 + 0.02)  = 0.221105527638191 = 22.1105527638191% ≈ 22.11%
    Rare: 0.02 / (0.755 + 0.22 + 0.02)  = 0.020100502512562 = 2.01005025125628% ≈ 2.01%

0.758793969849246 + 0.221105527638191 + 0.201005025125628 = 1 = 100%

Normalization Visualization[]

The two bar visuals below will demonstrate rarity weightings before and after normalization in a situation where a drop table has only uncommon and rare rarity weightings assigned to its item drops. Notice how the normalized weightings take up the entire range of all possible values between 0 inclusive and 1 exclusive while maintaining the same relative size between the different rarity weight classes (i.e. the same 11:1 ratio is maintained between uncommon and rare drops before and after normalization).

Bar visualization of initial weights
▾ 0 1 ▾
22.00% Uncommon Drop 2.00% Rare Drop 76% No Item Drop

Bar visualization of normalized weights
▾ 0 1 ▾
91.6667% Uncommon Drop 8.3333% Rare Drop

Different Rarity Weightings after Normalization[]

Present Weights Rarity Normalized Weight Percentage
All Common 0.755 75.50%
Uncommon 0.22 22.00%
Rare 0.02 2.00%
Legendary 0.005 0.50%
0.755 + 0.22 + 0.02 + 0.005 = 1
Common, Uncommon, and Rare Common 0.755 / (0.755 + 0.22 + 0.02) = 0.7587939698 75.88%
Uncommon 0.22 / (0.755 + 0.22 + 0.02) = 0.2211055276 22.11%
Rare 0.02 / (0.755 + 0.22 + 0.02) = 0.0201005025 2.01%
Legendary 0.00 0.00%
0.7588 + 0.2211 + 0.0201 + 0.00 = 1
Common, Uncommon, and Legendary Common 0.755 / (0.755 + 0.22 + 0.005) = 0.7704081633 77.04%
Uncommon 0.22 / (0.755 + 0.22 + 0.005) = 0.2244897959 22.45%
Rare 0.00 0.00%
Legendary 0.005 / (0.755 + 0.22 + 0.005) = 0.0051020408 0.51%
0.7704 + 0.2245 + 0.00 + 0.0051 = 1
Common, Rare, and Legendary Common 0.755 / (0.755 + 0.02 + 0.005) = 0.9679487179 96.79%
Uncommon 0.00 0.00%
Rare 0.02 / (0.755 + 0.02 + 0.005) = 0.0256410256 2.56%
Legendary 0.005 / (0.755 + 0.02 + 0.005) = 0.0064102564 0.64%
0.96795 + 0.00 + 0.02564 + 0.00641 = 1
Uncommon, Rare, and Legendary Common 0.00 0.00%
Uncommon 0.22 / (0.22 + 0.02 + 0.005) = 0.8979591837 89.80%
Rare 0.02 / (0.22 + 0.02 + 0.005) = 0.0816326531 8.16%
Legendary 0.005 / (0.22 + 0.02 + 0.005) = 0.0204081633 2.04%
0.00 + 0.8980 + 0.0816 + 0.0204 = 1
Common and Uncommon Common 0.755 / (0.755 + 0.22) = 0.7743589744 77.44%
Uncommon 0.22 / (0.755 + 0.22) = 0.2256410256 22.56%
Rare 0.00 0.00%
Legendary 0.00 0.00%
0.7744 + 0.2256 + 0.00 + 0.00 = 1
Common and Rare Common 0.755 / (0.755 + 0.02) = 0.9741935484 97.42%
Uncommon 0.00 0.00%
Rare 0.02 / (0.755 + 0.02) = 0.0258064516 2.58%
Legendary 0.00 0.00%
0.9742 + 0.00 + 0.0258 + 0.00 = 1
Common and Legendary Common 0.755 / (0.755 + 0.005) = 0.9934210526 99.34%
Uncommon 0.00 0.00%
Rare 0.00 0.00%
Legendary 0.005 / (0.755 + 0.005) = 0.0065789474 0.66%
0.9934 + 0.00 + 0.00 + 0.0066 = 1
Uncommon and Rare Common 0.00 0.00%
Uncommon 0.22 / (0.22 + 0.02) = 0.9166666667 91.67%
Rare 0.02 / (0.22 + 0.02) = 0.0833333333 8.33%
Legendary 0.00 0.00%
0.00 + 0.9167 + 0.0833 + 0.00 = 1
Uncommon and Legendary Common 0.00 0.00%
Uncommon 0.22 / (0.22 + 0.005) = 0.9777777778 97.78%
Rare 0.00 0.00%
Legendary 0.005 / (0.22 + 0.005) = 0.0222222222 2.22%
0.00 + 0.9778 + 0.00 + 0.0222 = 1
Rare and Legendary Common 0.00 0.00%
Uncommon 0.00 0.00%
Rare 0.02 / (0.02 + 0.005) = 0.8 80%
Legendary 0.005 / (0.02 + 0.005) = 0.2 20%
0.00 + 0.00 + 0.80 + 0.20 = 1
Common only Common 1.00 100%
Uncommon 0.00 0.00%
Rare 0.00 0.00%
Legendary 0.00 0.00%
1.00 + 0.00 + 0.00 + 0.00 = 1
Uncommon only Common 0.00 0.00%
Uncommon 1.00 100%
Rare 0.00 0.00%
Legendary 0.00 0.00%
0.00 + 1.00 + 0.00 + 0.00 = 1
Rare only Common 0.00 0.00%
Uncommon 0.00 0.00%
Rare 1.00 100%
Legendary 0.00 0.00%
0.00 + 0.00 + 1.00 + 0.00 = 1
Legendary only Common 0.00 0.00%
Uncommon 0.00 0.00%
Rare 0.00 0.00%
Legendary 1.00 100%
0.00 + 0.00 + 0.00 + 1.00 = 1

Example of Other Rarity Weightings[]

T1IsoVaultRewards

In-game representation of item rarity in bounty drop tables; notice how items are ordered in ascending order by alphanumerical sorting and not by their drop chances

Evidence of different rarity weightings used in Isolation Vault Bounties[17]
Level 30 - 40 Isolation Vault
Rotation A
Final Stage
Residual Boils Uncommon (25.00%)
Necramech Redirection Uncommon (12.50%)
2X Orokin Orientation Matrix Rare (6.25%)
Meso P4 Relic Rare (6.25%)
Residual Shock Uncommon (15.00%)
Necramech Steel Fiber Rare (7.50%)
2X Orokin Ballistics Matrix Rare (3.75%)
Neo D3 Relic Ultra Rare (1.88%)
Neo T4 Relic Ultra Rare (1.88%)
Theorem Contagion Uncommon (10.00%)
Necramech Thrusters Rare (4.00%)
Damaged Necramech Weapon Barrel Rare (3.00%)
3X Scintillant Rare (2.00%)
2X Orokin Animus Matrix Legendary (0.50%)
Axi O5 Relic Legendary (0.50%)
Bar visualization using in-game representation of rarity weightings[18]
▾ 0 1 ▾
Residual Boils Necramech Redirection Residual Shock Theorem Contagion
 
Common (25% + 12.5% + 6.25% + 6.25% = 50%) Uncommon (15% + 7.5% + 3.75% + 1.88% + 1.88% = 30.01%) Rare (10% + 4% + 3% + 2% + 0.5% + 0.5% = 20%)
  • Note that official drop table repository rounds values to nearest two decimal places.

Rarity Classification[]

Sgt Nef AnyoIcon
“Orokin secrets cannot remain secret forever! Start talking!”
The following article/section is conjecture. Content is subjected to change/removal as the game progresses. Please do not use this article for critical in-game information.

In the official drop table repository, each possible reward that can be randomly pulled from a drop table has a rarity classification based on their individual drop chance. Rarity weighting is a separate concept independent from classification and is used by the game internally to calculate an item's individual drop chance.

Drop Table Repository
Rarity Classification
Rarity Class Drop Percentage Range Possible Values In Drop Tables
Very Common 60.00% ≤ x ≤ 100.00% 100.00%, 91.67%, 86.44%, 77.78%, 77.44%, 75.50%, 68.18%
Common 33.33% ≤ x < 60.00% 56.34%, 50.00%, 48.71%, 38.72%, 33.33%
Uncommon 10.00% ≤ x < 33.33% 28.57%, 26.09%, 19.35%, 15.10%, 14.29%, 12.90%, 12.65%, 11.06%, 10.84%, 10.00%
Rare 2.00% ≤ x < 10.00% 9.68%, 8.70%, 7.69%, 7.14%, 5.88%, 5.50%, 4.35%, 2.58%, 2.00%
Ultra Rare 1.00% < x < 2.00% 1.84%, 1.58%, 1.36%, 1.01%
Legendary 0.10% < x ≤ 1.00% 1.00%, 0.85%, 0.67%, 0.50%, 0.40%, 0.37%, 0.34%, 0.22%, 0.18%
Beyond Legendary x ≤ 0.10% 0.00% (rounded to the nearest ten thousandths)

However, in-game, rarity classification of rewards in Codex entries, Sortie menu, Bounty menus, and Void Relics use different systems that are visual in presentation and are based on internal rarity weights after normalization. This classification applies to all items in the same rarity rather than individual drop chances.

Sortie Rarity Classification
Rarity Weight Approx. Color Scheme Hex Code Drop Percentage
(rounded two decimals)
IconCommon Common #bd9177 55.91%
IconUncommon Uncommon #d1d0d1 33.91%
IconRare Rare #ece175 10.00%
IconLegendary Legendary #b996db 0.18%
Total 100%
Relic Rarity Classification
Rarity Weight Approx. Color Scheme Hex Code Drop Percentage
(rounded two decimals)
Intact Refinement
IconCommon Common #bd9177 76.00%
IconUncommon Uncommon #d1d0d1 22.00%
IconRare Rare #ece175 2.00%
Total 100%
Exceptional Refinement
IconCommon Common #bd9177 70.00%
IconUncommon Uncommon #d1d0d1 26.00%
IconRare Rare #ece175 4.00%
Total 100%
Flawless Refinement
IconCommon Common #bd9177 60.00%
IconUncommon Uncommon #d1d0d1 34.00%
IconRare Rare #ece175 6.00%
Total 100%
Radiant Refinement
IconCommon Common #bd9177 50.00%
IconUncommon Uncommon #d1d0d1 40.00%
IconRare Rare #ece175 10.00%
Total 100%
Codex Rarity Classification
Rarity Weight Approx. Color Scheme Hex Code Drop Percentage
(rounded two decimals)
Common #bd9177 Varies based on rarity weightings present
Uncommon #d1d0d1 Varies based on rarity weightings present
Rare #ece175 Varies based on rarity weightings present
Total 100%
Common, Uncommon, and Rare present
(e.g. Elite Lancer and most enemies)
Common #bd9177 75.88%
Uncommon #d1d0d1 22.11%
Rare #ece175 2.01%
Total 100%
Common and Uncommon only
(e.g. Detron Crewman)
Common #bd9177 77.44%
Uncommon #d1d0d1 22.56%
Rare #ece175 0%
Total 100%
Common and Rare only
Common #bd9177 97.42%
Uncommon #d1d0d1 0%
Rare #ece175 2.58%
Total 100%
Uncommon and Rare only
(e.g. Feral Kavat, Battalyst, Kela De Thaym)
Common #bd9177 0%
Uncommon #d1d0d1 91.67%
Rare #ece175 8.33%
Total 100%
Rare only
(e.g. Torment, Corpus Cestra Target, Ved Xol)
Common #bd9177 0%
Uncommon #d1d0d1 0%
Rare #ece175 100%
Total 100%
Uncommon only
(e.g. Demolisher Nox)
Common #bd9177 0%
Uncommon #d1d0d1 100%
Rare #ece175 0%
Total 100%
Common only
(e.g. Kosma Gokstad Crewship, Vorac Crewship)
Common #bd9177 100%
Uncommon #d1d0d1 0%
Rare #ece175 0%
Total 100%
Bounties Rarity Classification
Rarity Weight Approx. Color Scheme Hex Code Drop Percentage
(rounded two decimals)
IconCommon Common #bd9177 Varies based on rarity weightings present
IconUncommon Uncommon #d1d0d1 Varies based on rarity weightings present
IconRare Rare #ece175 Varies based on rarity weightings present

Note that an item's drop chance's rarity weighting may not be the same as the item's rarity classification. For example, in the drop table shown in #Example of No Bias, Mod TT 20px Revenge uses the Common rarity weighting in calculating its drop chance, but its resultant drop chance falls between 10.00% - 33.32% so the drop table repository refers to it as an "Uncommon" reward.

"Manipulating" RNG[]

WARFRAME offers some in-game ways to increase player's chances of getting certain rewards. These include:

Quality Traces Common Uncommon Rare
Intact (default) 0 76% (25.33% each) 22% (11% each) 2%
Exceptional 25 70% (23.33% each) 26% (13% each) 4%
Flawless 50 60% (20% each) 34% (17% each) 6%
Radiant 100 50% (16.67% each) 40% (20% each) 10%

"Safety Nets" or "Pity System"[]

WARFRAME has no known system where players are guaranteed a rarer reward from a drop table after rolling a drop table's contents multiple times. Drop chances of items in drop tables are static with the exception of Void Relics of different refinements (which can be considered as separate drop tables, one for each refinement level) and multi-stage Bounties (a separate drop table is assigned per stage internally despite what the UI says).

Lich System[]

However, as of Update 31.1 (2022-02-09), players can decrease the weapon pool that an Adversary/Lich may generate with by choosing not perform a Mercy finisher on downed Progenitors (Kuva Larvlings or Candidates). The weapon pool will reset upon generating a new Adversary/Lich or if all possible weapons are rejected.[19]

For example, say a player is trying to get a KuvaBramma Kuva Bramma from a Kuva Larvling, the chances of getting it naturally is 1/19 = 5.2632% as of Update 31.1 (2022-02-09). Without the "safety net", it would take an expected number of 19 attempts before the player sees their first Kuva Bramma with 90% of the player base seeing at least one Kuva Bramma within ~43 attempts.[20] With the "safety net", all players are guaranteed (100% chance) to get one Kuva Bramma by 19 attempts, with the chance of getting a Kuva Bramma increasing rapidly with each attempt. For example:

  • 19 Kuva weapons in the pool (1/19 = 5.2632% chance), player sees a KuvaDrakgoon Kuva Drakgoon and skips, KuvaDrakgoon Kuva Drakgoon is removed from pool on mission completion
  • 18 weapons (1/18 = 5.5556% chance), player sees a KuvaSeer Kuva Seer and skips, KuvaSeer Kuva Seer is removed from pool on mission completion
  • 17 weapons (1/17 = 5.8824% chance), player sees a KuvaTonkor Kuva Tonkor and skips, KuvaTonkor Kuva Tonkor is removed from pool on mission completion
  • ...
  • 3 weapons (1/3 = 33.3333% chance), player sees a KuvaGrattler Kuva Grattler and skips, KuvaGrattler Kuva Grattler is removed from pool on mission completion
  • 2 weapons (1/2 = 50% chance), player sees a KuvaNukor Kuva Nukor and skips, KuvaNukor Kuva Nukor is removed from pool on mission completion
  • 1 weapon (1/1 = 100% chance), player sees a KuvaBramma Kuva Bramma and chooses, pool is reset for next cycle (i.e. after current Lich is defeated)

Archon Shards[]

As of Update 32.3 (2023-02-15), Archon Hunts feature a pity system for Archon Shards where each time a player fails to get a Tauforged shard, the chance is increased by 20% until the player is guaranteed a Tauforged at 100%. This pity is tracked individually for each player in a squad and for each of the three shards: TauforgedAmberArchonShard Tauforged Amber Archon Shard, TauforgedAzureArchonShard Tauforged Azure Archon Shard, and TauforgedCrimsonArchonShard Tauforged Crimson Archon Shard.

Diminishing Drop Chances[]

It is known that in very specific circumstances, the drop chances of certain items will decrease over multiple rolls as defined by the developers.[21][22]

Calculating an Item's Drop Chance[]

The following formulae are used to determine the base drop chance per item before introducing #Bias to individual items.

Example Procedure[]

Say a drop table has 8 Common, 6 Uncommon, 4 Rare, and 2 Legendary drops.
The drop chances of each item rarity are (before presenting biases):

   Common: 0.755 / 8 = 0.094375           = 9.44%
 Uncommon: 0.22 / 6  = 0.0366666666667    = 3.67%
     Rare: 0.02 / 4  = 0.005              = 0.50%
Legendary: 0.005 / 2 = 0.0025             = 0.25%

Reversing operation to find chances of picking an item from a particular rarity tier:

   Common: 9.4375% × 8     = 75.5%
 Uncommon: 3.66666667% × 6 = 22%
     Rare: 0.5% × 4        = 2%
Legendary: 0.25% × 2       = 0.5%

DropTables Variables[]

The following are some variables that are present within /Lotus/Types/DropTables enemy Drop Tables.

Bias[]

Bias is a variable exclusive to DropTables that unequally weighs items within DropTables (through a positive (+) or negative (-) value change), even if said items have identical rarity weights. Bias can be applied to specific items within a particular DropTable but is not global across all. The more bias an item has (larger value), the lower its drop chance is. Conversely, the less bias an item has (smaller value), the higher its drop chance. Additionally, because bias scales from the rarity weight that the item it is impacting is assigned to, items with rarity weights that hold more weight than others will still tend to drop more often, depending on the amount of bias that is present.[14]

Example of No Bias in Enemy Drop Tables[]

EliteLancerCodex
No bias[17]
Elite Lancer Mod Drop Chance: 3.00%
Mod TT 20px Revenge Uncommon (25.29%)
Mod TT 20px Quickdraw Uncommon (25.29%)
Mod TT 20px Redirection Uncommon (25.29%)
Mod TT 20px Razor Shot Uncommon (11.06%)
50 Endo Uncommon (11.06%)
Mod TT 20px Thunderbolt Legendary (0.67%)
Mod TT 20px Undying Will Legendary (0.67%)
Mod TT 20px Crossing Snakes Legendary (0.67%)
Bar visualization
▾ 0 1 ▾
Revenge Quickdraw Redirection Razor Shot 50 Endo
 
Common (25.29% * 3 = 75.87% ≈ 75.88%) Uncommon (11.06% * 2 = 22.12% ≈ 22.11%) Rare (0.67% * 3 = 2.01%)
  • Note that drop chances shown in drop tables round to the nearest two decimal places, thus calculated rarity weightings may be off from the actual/expected numbers.
  • The rarity classifiers in the table considers only the final drop chance and has nothing to do with rarity weighting

Notice that there is a clear distinction of different classes of items with the same drop chances. From here, one can deduce the rarity weightings each item used:

  • Revenge, Quickdraw, and Redirection each have a 25.29% drop chance; 25.29% * 3 = 75.87% which is close to the Common rarity weighting after normalization
  • Razor Shot and 50 Endo each have a 11.06% drop chance; 11.06% * 2 = 22.12% which is close to the Uncommon rarity weighting after normalization
  • Thunderbolt, Undying Will, and Crossing Snakes each have a 0.67% drop chance; 0.67% * 3 = 2.01% which is close to the Rare rarity weighting after normalization

Alternatively, if one has a Codex entry of a particular enemy completed, the reward drops shown will be color-coded based on the rarity weighting it used. See #Rarity Classification for more details.

Example of Bias in Enemy Drop Tables[]

EidolonTeralystCodex
Bias[17]
Eidolon Teralyst Mod Drop Chance: 100.00%
Mod TT 20px Lethal Momentum Uncommon (22.22%)
Mod TT 20px Terminal Velocity Uncommon (22.22%)
Mod TT 20px Fatal Acceleration Uncommon (22.22%)
Mod TT 20px Collision Force Rare (8.33%)
Mod TT 20px Pummel Rare (8.33%)
Mod TT 20px Crash Course Rare (8.33%)
Mod TT 20px Full Contact Rare (8.33%)
Bar visualization
▾ 0 1 ▾
Lethal Momentum Terminal Velocity Fatal Acceleration Collision Force Pummel Crash Course Full Contact
 
Uncommon (22.22% * 3 = 66.66%) Rare (8.33% * 4 = 33.32%)

Note that because drop chance percentages in the official drop table repository are rounded to the nearest two decimals, the total drop chance will not always add up to 100% exactly. Internally, the game will probably use floating-point values with some truncation/rounding so that:

  • Actual drop chances will add up to 100% exactly or
  • The RNG will not generate numbers that are outside of the reward bins

In other words, there will never be an instance where a player will get no drops after successfully getting a chance to earn a reward from some drop table.

Another Example of Bias in Enemy Drop Tables[]

FeyarchSpecterCodex
Bias[17]
Feyarch Specter Mod Drop Chance: 100.00%
Mod TT 20px Shotgun Amp Common (51.52%)
Mod TT 20px Final Harbinger Common (36.36%)
Mod TT 20px Empowered Blades Rare (6.06%)
Mod TT 20px High Noon Rare (6.06%)
Bar visualization
▾ 0 1 ▾
Shotgun Amp Final Harbinger Empowered Blades High Noon
   
Uncommon (51.52% + 36.36% = 87.88%) Rare (6.06% * 2 = 12.12%)

Example of Bias in End-of-Mission Rewards[]

Bias involved[17]
Void Storm (Veil Proxima)
6X Corrupted Holokey Uncommon (37.50%)
1200 Endo Uncommon (12.50%)
Sevagoth Chassis Blueprint Uncommon (10.00%)
Sevagoth Neuroptics Blueprint Uncommon (10.00%)
Sevagoth Systems Blueprint Uncommon (10.00%)
Veil Resource Bundle Rare (2.50%)
Axi O5 Relic (Radiant) Rare (2.50%)
Axi A13 Relic (Radiant) Rare (2.50%)
Axi N7 Relic (Radiant) Rare (2.50%)
Axi T7 Relic (Radiant) Rare (2.50%)
Axi G6 Relic (Radiant) Rare (2.50%)
Axi C6 Relic (Radiant) Rare (2.50%)
Axi I1 Relic (Radiant) Rare (2.50%)
Bar visualization
▾ 0 1 ▾
6X Corrupted Holokey 1200 Endo
 
Rare (37.50% + 12.50% + (10% * 3) = 80%) Legendary (2.50% * 8 = 20%)

Due to the drop table using only two rarity weightings (Rarity and Legendary), after #Normalization, Rare drop percentage is 2% / (2% + 0.5%) = 80% and Legendary is 0.5% / (2% + 0.5%) = 20%. Notice that despite 6X Corrupted Holokey, 1200 Endo, and Sevagoth's component blueprints using the Rare rarity weighting, they have different drop chances individually. This is due to bias involved to reduce/increase the drop chances of individual items. If there were no bias involved at all, we would expect each Rare item to have 80% / 5 items = 16% and each Legendary item to have 20% / 8 items = 2.5%.

Example of Bias in Bounties[]

Lvl10-30CetusBountyRotA
Bias in second Cetus bounty[23]
Level 10 - 30 Cetus Bounty
Rotation A
Stage 1
Steel Fiber Uncommon (25.00%)
200X Oxium Uncommon (25.00%)
2,500 Credits Cache Uncommon (25.00%)
100 Endo Uncommon (25.00%)
Stage 2, Stage 3 of 4, and Stage 3 of 5
Steel Fiber Uncommon (15.08%)
200X Oxium Uncommon (15.08%)
2,500 Credits Cache Uncommon (15.08%)
100 Endo Uncommon (15.08%)
Gara Systems Blueprint Rare (9.52%)
Charged Chamber Rare (9.52%)
Burning Wasp Rare (9.52%)
Lith B4 Relic Uncommon (11.11%)
Stage 4 of 5
Steel Fiber Uncommon (14.50%)
200X Oxium Uncommon (14.50%)
2,500 Credits Cache Uncommon (14.50%)
100 Endo Uncommon (14.50%)
Gara Systems Blueprint Rare (9.16%)
Charged Chamber Rare (9.16%)
Burning Wasp Rare (9.16%)
Lith B4 Relic Uncommon (10.69%)
2X Control Module Rare (3.82%)
Final Stage
Gara Systems Blueprint Uncommon (21.82%)
Charged Chamber Uncommon (21.82%)
Burning Wasp Uncommon (21.82%)
Lith B4 Relic Uncommon (25.45%)
2X Control Module Rare (9.09%)
Bar visualization of Stage 1
▾ 0 1 ▾
Steel Fiber 200X Oxium 2,500 Credits Cache 100 Endo
 
Common (25% * 4 = 100%)
Bar visualization of Stage 2, Stage 3 of 4, and Stage 3 of 5
▾ 0 1 ▾
Steel Fiber 200X Oxium 2,500 Credits Cache 100 Endo Gara Systems Blueprint Charged Chamber Burning Wasp Lith B4 Relic
 
Common (15.08% * 4 = 60.32%) Uncommon (9.52% * 3 + 11.11% = 39.67%)
Bar visualization of Stage 4 of 5
▾ 0 1 ▾
Steel Fiber 200X Oxium 2,500 Credits Cache 100 Endo Gara Systems Blueprint Charged Chamber Burning Wasp Lith B4 Relic 2X Control Module
 
Common (14.50% * 4 = 58%) Uncommon (9.16% * 3 + 10.69% = 38.17%) Rare (3.82%)
Bar visualization of Final Stage
▾ 0 1 ▾
Gara Systems Blueprint Charged Chamber Burning Wasp Lith B4 Relic 2X Control Module
 
Uncommon (21.82% * 3 + 25.45% = 90.91%) Rare (9.09%)
  • Lith B4 Relic has a slight bias applied, making it more likely to drop than the rest of the rewards that use the uncommon rarity weighting.

Attenuation (global bias)[]

Attenuation is a variable exclusive to DropTables. The boolean OverrideLevelAdjustedBiasAtten determines if attenuation is present in a DropTable or not. As the attenuation value increases, the drop chance of an item should decrease. However, because of how minor its set value (0.5) is (from one of the boolean's secondary variables, RareAttenMax), and that it impacts DropTables globally instead of individual items, it is impossible to accurately determine if it has a noticeable impact on items at all.[14][24]

MissionDecks Variables[]

The following are some variables that are present within /Lotus/Types/Game/MissionDecks Mission Rewards tables.

Reward Seeds[]

Photo-4
“It's taking longer than I calculated.”
This page is actively being worked on and may not be completely correct. Please assist in making this page accurate. See WARFRAME Wiki:Research on ways to perform research on this game. Click here to add more info.
"Despite the SRand variable (the seeding for the random number generator, a pseudo-random integer between 0 and RAND_MAX)" does not match EE.log giving out a negative value for SRand

rewardSeed is a variable exclusive to MissionDecks. It is a 64-bit signed integer that determines the missionReward players receive at the end of a mission. It is granted to you by the game's servers at the start of the mission and remains with you until its completion. rewardSeeds are given to the host, and members of the host's group receive the sessionId in order to participate in the same matchmaking session. You will only receive a rewardSeed when your client needs to distribute it to players in a group (as the host). This means that you will receive a rewardSeed if you begin a Public, Friends Only, or Invite Only session, but if you begin a Solo session, you will not be given a rewardSeed. Despite the SRand variable (the seed for the random number generator) being different for each player, each player will always receive the same missionReward as the host because of their identical sessionIds.[14][25]

Examples of valid reward seeds:

  • 5981559039678745352
  • -2947528797702211811
  • -1912700803863294092
  • -3758848590968623960
  • Any value in the range of −(2^63) to 2^63 − 1 or −9223372036854775808 to +9223372036854775807 inclusive
Samples in EE.log

Note that when players start a matchmaking session, the rewardSeed will be set to -1 before being updated with a random value.

3.260 Sys [Diag]: SRand seeded with: -3443681654817279495
...
4217.029 Net [Info]: MatchingServiceWeb::HostSession - settings: {"maxPlayers":4,"minPlayers":1,"privateSlots":0,"scoreLimit":15,"timeLimit":900,"gameModeId":0,"eloRating":28,"regionId":3,"difficulty":0,"hasStarted":false,"enableVoice":true,"matchType":"NORMAL","maps":[],"originalSessionId":"","usingPlayNow":false,"customSettings":"","rewardSeed":-1,"guildId":"","buildId":526217994,"freePublic":3,"freePrivate":0}
...
4217.154 Net [Info]: HostSessionCallback
4217.154 Net [Info]: sessionId=60e53502b0a65e27a219ad33
4217.154 Net [Info]: HostSessionDone (1, sessionId=60e53502b0a65e27a219ad33, rewardSeed=5981559039678745352)
...
4227.948 Net [Info]: NAT bound for client to <PLAYER_IP_ADDRESS>:4955
4228.005 Net [Info]: DeleteSessionCallback(1, {"sessionId":"60e53502b0a65e27a219ad33","rewardSeed":-2947528797702211811}
4228.005 Net [Info]: Deleted session
...
4231.370 Net [Info]: IRC out: QUIT :Logged out of game
4231.476 Net [Info]: DeleteSessionCallback(1, {"rewardSeed":-1912700803863294092}
4231.477 Net [Info]: Deleted session

Prior to Hotfix 10.6.2 (2013-11-05)[]

Sgt Nef AnyoIcon
“Orokin secrets cannot remain secret forever! Start talking!”
The following article/section is conjecture. Content is subjected to change/removal as the game progresses. Please do not use this article for critical in-game information.

Prior to Hotfix 10.6.2 (2013-11-05) changes, WARFRAME's random number generator had a flawed distribution[1], resulting in abnormal number of streaks of bad/good luck in the reward drops compared to a more "randomly" distributed RNG. Recall that WARFRAME uses the following formula for RNG in endless missions:

Where is the sequence of pseudorandom values, and

— "modulus"
— "multiplier"
— "increment", randomly chosen based on seed with truncation of lower-order bits
— initial seed value based on seed
— current iteration or reward rotation number, an integer

When players enter a mission, they get a random seed. Depending on that seed, they get a value between 0 and 1 inclusive which we will call "initial seed". After reaching a reward rotation, players get a random reward based on their initial seed.

On the next reward rotation, players will get a new random number depending on the seed. This new random number will be added to the initial seed. In other words, if the initial seed was 0.5, the interval picking number will be equal to 0.5 + increment. However, this "random" value is the same for every checkpoint after due to truncation in the RNG.[1] For example, the 3rd reward rotation would be determined by 0.5 + increment + increment or 0.5 + (2 * increment).

The issue with this RNG is that it is more deterministic as one with this knowledge and the loot table drop chances (previously hidden from players until 2021-06-28 or just before Update 21.0 (2017-06-29)[26]) can determine their initial seed and on the 2nd reward rotation determine what increment is (approximately). By extension, one can calculate the approximate number of reward rotations until players get their desired reward. Another issue with this method is that players that rolled a low increment value may experience getting the same reward multiple reward rotations in a row; this is more prevalent if the player's first reward is a common item though it is possible for a player to receive consecutive rare drops with a very low or very high increment value.[1]

Sample Scenario (pre-Update 8.1 (2013-06-07))[]

Tier 3 Defense drop table[27]
  • Order matters in determining drops (pre-Hotfix 10.6.2 (2013-11-05) at least).
  • Drop chances are rounded to nearest two decimal places.
  • This pre-Update 8.1 (2013-06-07) drop table are from a time where there is no such thing as AABCCCC... reward rotations (i.e. three different drop tables labeled A, B, and C). Instead, each reward rotation pulls from the same drop table.
    • Each mission type has three difficulty tiers, each with a separate drop table labeled "Tier 1", "Tier 2", and "Tier 3" corresponding to "Easy", "Medium", and "Hard" respectively. Difficulty levels depend on starting enemy level ranges.
Tier 3 Defense
Hellfire 18.97%
Heated Charge 18.97%
Convulsion 3.16%
Deep Freeze 0.15%
North Wind 0.15%
Shocking Touch 0.15%
North Wind 0.15%
Hellfire 18.97%
Stormbringer 3.16%
Cryo Rounds 0.15%
Split Chamber 0.15%
Barrel Diffusion 0.15%
Hell's Chamber 0.15%
Stretch 0.15%
Redirection 3.16%
Streamline 18.97%
Enemy Sense 3.16%
Enemy Sense 0.15%
Rush 0.15%
Focus 3.16%
Banshee Helmet Blueprint 3.16%
Banshee Chassis Blueprint 0.15%
Banshee Systems Blueprint 3.16%
Orokin Tier 3 Extermination Key 0.15%
Bar visualization of the above drop table
Hellfire Heated Charge Hellfire Streamline Focus
↑ 0 ↑ 0.1897 ↑ 0.3794 1 ↑

For example, in a pre-Update 8.1 (2013-06-07) scenario where a player starts a Tier 3 Defense mission[27]:

  1. At Wave 5, they get Mod TT 20px Heated Charge. Now they know their initial seed was between 0.1897 inclusive and 0.3794 exclusive. The way this is determined is:
    1. Create an interval between 0 inclusive and 1 exclusive consisting of all the possible rewards (note that the sum of drop chances is 1 or 100%). For example, Hellfire is 0.0 - 0.1897, Heated Charge is 0.1897 - 0.3794, etc.
    2. Find out where the initial seed fits in and that is the item players will get. In this case, 0.1897 ≤ initial_seed < 0.3794
  2. At Wave 10, they get Mod TT 20px Heated Charge again. Now they know their increment was approximately between 0 inclusive and 0.1897 exclusive or between 0.8104 inclusive and 1 exclusive.
    • 0.1897 ≤ initial_seed + increment mod 1 < 0.3794
      • If initial_seed=0.2111 and increment=0.1512, then (0.2111 + 0.1512) mod 1 = 0.3623
      • If initial_seed=0.3345 and increment=0.8556, then (0.3345 + 0.8556) mod 1 = 0.1901
      • If initial_seed=0.3793 and increment=0.9999, then (0.3793 + 0.9999) mod 1 = 0.3792
  3. In order to get the Orokin Tier 3 Extermination key, the last drop in the table, players would need to get a value between 0.9985 inclusive and 1 exclusive.
    • 0.9985 ≤ initial_seed + (5 * increment) mod 1 < 1
      • If initial_seed=0.2111 and increment=0.1512, then players will need to play at least 574 reward rotations to get their first key drop
        0.2111 + (574 * 0.1512) mod 1 = 0.9671
      • If initial_seed=0.3345 and increment=0.8556, then players will need to play at least 217 reward rotations to get their first key drop
        0.3345 + (217 * 0.8556) mod 1 = 0.9671
      • If initial_seed=0.3793 and increment=0.9999, then players will need to play at least 3,794 reward rotations to get their first key drop, with the next 14 reward rotations also providing the key drop (15 consecutive rare rewards!)
        0.3793 + (3794 * 0.9999) mod 1 = 0.9999

Sample Code[]

The following Lua snippet provides a sample sequence of one thousand values (i.e. 1,000 reward rotations pre-Update 8.1 (2013-06-07)) based on the above scenario if initial_seed=0.2111 and increment=0.1512:

local initial_seed = 0.2111
local increment = 0.1512
local previous = initial_seed

-- Rotation #574, #865 will hit the threshold needed for 
-- Orokin Tier 3 Extermination key
for i = 1, 1000, 1 do
    local result = (previous + increment) % 1
    previous = result
    if (result >= 0.9985 and result < 1) then
        print(i, result, "hit") 
    else
        print(i, result)
    end
end

Other Uses of RNG[]

In WARFRAME, RNG is not just used to determine whether or not an item will drop for players. It is also used in, but not limited to:

External Links[]

RNG
RNG in other games

References[]

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Sinclair, Steve (2013, November 5). Rng Algorithm Bugs/changes. Warframe Forums. Accessed 2022-07-26. Archived from the original on 2022-07-26.
  2. https://en.wikipedia.org/wiki/Random_number_generation
  3. See #External Links for some examples of random number generators in other games
  4. Ford, Rebecca (2022, January 25). The New War: Hotfix 31.0.11. Warframe Forums. Accessed 2022-08-17. Archived from the original on 2022-01-25. "Vaulted the Neo P2 Relic and replaced it with the Neo P4 Relic in the drop tables. The Neo P2 Relic was missed being Vaulted with Harrow Prime’s release.".
  5. Everett, Megan (2022, August 17). Khora Prime: Hotfix 31.7.2. Warframe Forums. Accessed 2022-08-17. Archived from the original on 2022-08-17. "Replaced the duplicate Meso H2 Relic dropping in Tier 2 Defense with the correct Meso H3 Relic.".
  6. Everett, Megan (2022, October 6). Veilbreaker: Revenant Prime: Hotfix 32.0.11. Accessed 2022-10-17. Archived from the original on 2022-10-17. "Swapped the unintentional duplicate Lith H5 Relic in the Void drop tables with a Lith P6.".
  7. "Glen (our Tech Director) identified and fixed a serious distribution flaw with random number generation (RNG) in Warframe. While enemy drops were not seriously affected, a truncation in the random 'seed' within the mission reward script could result in a terrible chain of bad luck. While some players may have benefited from this (a chain of good luck) the distribution was terrible." - Hotfix 10.6.2 (2013-11-05) patch notes
  8. Hotfix 29.5.7 (2020-12-10) fixed a short-lived issue on Ayatan Amber Star drop rates: "Fixed Ayatan Amber Stars dropping far less frequently than before Deimos Arcana."
  9. "So, why is it hard to test whether a given sequence of numbers is random? The reason is that if your random number generator (or your die) is good, each possible sequence of values (or die rolls) is equally likely to appear. This means that a good random number generator will also produce sequences that look nonrandom to the human eye (e.g., a series of ten rolls of six on our die) and which also fail any statistical tests that we might expose it to. If you flip enough coins, you will get sequences of coin flips that seen in isolation from the rest of the sequence don't look random at all." - https://www.random.org/analysis/
  10. From official Drop Tables, retrieved 2022-02-14
  11. https://www.cplusplus.com/reference/cstdlib/rand/
  12. Kuva Lich Data Weapon Drop Rates, Elemental Bonus Chance, Birth Places, Names (Archived)
  13. Voltage_WF (2021, July 8). Helminth weekly Invigorations are weighted. Reddit. Accessed 2022-07-12. Archived from the original on 2022-07-12.
  14. 14.0 14.1 14.2 14.3 14.4 14.5 Devove, FineNerds, & VoiD_Glitch. (n.d.). WARFRAME - Rarity Weights and "Random" Number Generation. Retrieved from July 13, 2018 on VoiD_Glitch's Github (since takened down) Archived from the original on December 21, 2018.
  15. 15.0 15.1 Navarro, J. (2016). Random Number Generation in Warframe. Navarroj.me. https://navarroj.me/WarframeRNG.html Archived from the original on July 10, 2021.
  16. Ko, Manny (2015). Math for Game Programmers: Parallel Random Number Generation @ 7:25. GDC. Accessed 2022-07-26. Archived from the original on 2022-02-09.
  17. 17.0 17.1 17.2 17.3 17.4 Obtained from the official drop table repository https://www.warframe.com/droptables on 2021-07-06
  18. See File:T1IsoVaultRewards.jpg
  19. "By skipping a Progenitor (choosing not to Mercy them) the spawned weapon is then put into a ‘reject’ pile for that round of Adversary generation, meaning that it will not appear again and ultimately reducing the weapon pool each time you ‘reject’. The list of rejected weapons is cleared once you accept an Adversary and the process would start again from a clean slate for both Sister or Kuva Lich the next time you go looking for an Adversary. This list clearing applies to both Sister and Kuva Lich, meaning once the chosen Adversary is Converted or Vanquished, the list clears for both factions. Test Cluster change: Kuva Lich/Sister of Parvos weapon reject list will now reset if you reject every possible weapon." - Update 31.1 (2022-02-09) patch notes
  20. To get the expected (average) number of attempts for a particular Kuva/Tenet weapon, we have to determine the distribution of the number of failures needed before getting one success. In other words, the average number of attempts without seeing a particular weapon before the player finally sees that weapon. The resultant probability distribution will follow a geometric distribution. 90% confidence level is determined using the geometric distribution's cumulative distribution function with 1/19 set as the probability for rolling a weapon.
  21. "An Orokin Cell farming exploit was brought to our attention by not only players, but also our internal flagging system when such a method is tripped for misuse. In short, players were forcing the Hyena’s to spawn infinitely by entering/exiting rooms knowing that their Orokin Cell drop rate is 100%. As a result of this misuse, the Orokin Cell drop rate for the Hyena’s in the Razorback mission will diminish the more you spawn, to still allow for multiple drop attempts but without giving away the entire cake." - Hotfix 25.8.1 (2019-10-09) patch notes
  22. "Cronus blueprint now only a guaranteed drop the first time Tolstoj is completed, % chance to drop continues to decrease on additional runs." - Update 7.8 (2013-04-19) patch notes
  23. From official drop tables, retrieved 2021-10-31
  24. DailyPermit (2020, August 17). Datamining shows DE messing up Steel Path droptables again. Reddit. Accessed 2022-11-20. Archived from the original on 2022-11-20. Snapshot of Steel Path Eximus drop tables shows presence of a "OverrideLevelAdjustedBiasAtten" field.
  25. This process can be partially observed in the game engine's log: EE.log
  26. https://forums.warframe.com/topic/809777-warframe-drop-rates-data/ - Warframe Drop Rates Data forum post
  27. 27.0 27.1 Pwnatron (2013, June 3). Defense Mission Rewards And Scaling. Reddit. Accessed 2022-07-26. Archived from the original on 2021-07-10.
  28. "Lotus 2.0! Lotus has recently had a major overhaul. Most of her lines have been re-recorded and now sound more consistent across the entire game. Lotus now uses a brand new DSP system to playback her audio files. Her voice has a more dynamic sound that makes use of some digital audio randomization so her voice effect will sound slightly different every time it plays." - Update 11.3 (2013-12-12) patch notes

Patch History[]

Update 31.1 (2022-02-09)

ADVERSARY WEAPON GENERATION - QUALITY OF LIFE CHANGE

As the pool of Adversary weapons grows and your checklist fills out, the natural chance of finding a Progenitor (Larvling or Candidate) with the exact weapon you desire shrinks. This Adversary Weapon Generation Quality of Life change is meant to reduce randomness over time of what weapon a Progenitor Candidate (Sister) or Larvling (Kuva Lich) can spawn with.

How it works:

By skipping a Progenitor (choosing not to Mercy them) the spawned weapon is then put into a ‘reject’ pile for that round of Adversary generation, meaning that it will not appear again and ultimately reducing the weapon pool each time you ‘reject’.

The list of rejected weapons is cleared once you accept an Adversary and the process would start again from a clean slate for both Sister or Kuva Lich the next time you go looking for an Adversary. This list clearing applies to both Sister and Kuva Lich, meaning once the chosen Adversary is Converted or Vanquished, the list clears for both factions.

Test Cluster change: Kuva Lich/Sister of Parvos weapon reject list will now reset if you reject every possible weapon.

Hotfix 10.6.2 (2013-11-05)
Improved distribution of random numbers generated by RNG. More information: https://forums.warframe.com/topic/128402-rng-algorithm-bugschanges/

NOV 5th, 2013 - RNG ALGORITHM CHANGES

If you are one of those players that feel like the RNG Gods are angry with you, starting today you may begin to notice a more fair and balanced hand from these divine beings.

Glen (our Tech Director) identified and fixed a serious distribution flaw with random number generation (RNG) in Warframe. While enemy drops were not seriously affected, a truncation in the random 'seed' within the mission reward script could result in a terrible chain of bad luck. While some players may have benefited from this (a chain of good luck) the distribution was terrible.

For context: Games use a lot of random numbers for things other than drops; for example when you blast one of those damned security cameras and a shower of sparks explodes out of it the each particle’s direction is determined by an RNG. Since games need a lot of RNG for effects and other things we actually have a very optimized RNG to make the game run quickly – the problem is you trade entropy (how random it is) for speed.

The RNG for drops needed to be slow and good to be fair and truly reflect the intended drop rates. The new code changes embraces a much slower and entropic means of determining drops of all kinds - weapons, Warframe parts, etc.

I'm very sorry for the frustration this has caused. We are committed to preventing future regression through automated tests... Attached to this post are contrast-boosted images from these tests. The bugged RNG, which is plainly giving dreadful runs. The 'fast' RNG without the truncation error - much better but still with an obvious pattern. Lastly, Glen's new code which shows a vastly improved distribution.

Thank you for reading and happy hunting Tenno!

Left to right: Bugged, Fast, Fixed (new hotness)

These pictures show the output of each RNG technique repeatedly flipping a coin: White is heads, Black is tails. In order for the loot tables to be fair and well distributed you want your RNG to output something that looks like static (which the new approach does).


Advertisement