Rare hunting · Acquisition guide
Legendary held-item drop rates: when Alpha rewards can roll gold
The official Alpha held-item table first lists legendary rewards at Wayfarer III: 20% Legendary and 80% Epic. Trailblazer I has the same row. At earlier listed titles, the legendary column is 0%.
← All rare Aniimo hunts and reward routes
Check your title before farming for legendary rarity
The table is keyed to Pathfinder title. It does not say that choosing any particular Alpha overrides the listed rarity eligibility. Check this before spending a session expecting a gold item from a tier that lists none.
| Title | Rare | Epic | Legendary |
|---|---|---|---|
| Special Rookie / Student I / Student II | 100% | 0% | 0% |
| Student III / Wayfarer I / Wayfarer II | 75% | 25% | 0% |
| Wayfarer III / Trailblazer I | 0% | 80% | 20% |
Sources: Probability Details: capture, Nurture, Alpha held items and Sparkling styles ↗
Farm the correct reward pool
First decide whether you need any legendary item or one specific item. A 20% legendary-rarity roll does not tell you the chance of a named item within that rarity. The official table reviewed here does not publish those item-selection weights.
For a named target, inspect the activity’s current reward preview and identify a source that includes it before grinding. Record the item and rarity actually received. Do not use a generic gold-drop guide as proof that every Alpha drops your chosen item.
- Read your current title and locate its official rarity row.
- Inspect the target activity’s reward preview for the specific item you want.
- Complete an eligible reward attempt and record the actual result.
- Separate rarity failures from getting a different legendary item.
- Recheck progression before continuing if your title’s legendary entry is 0%.
Sources: Probability Details: capture, Nurture, Alpha held items and Sparkling styles ↗
What a 20% chance means over several rewards
If eligible reward rolls are independent with a constant 20% chance, five rolls give a 67.2% chance of at least one legendary. Ten give 89.3%; fourteen give 95.6%. None is a guarantee.
The calculation is 1 − 0.8^n. It describes at least one item of legendary rarity, not the best item, a particular trait or a particular upgrade outcome. The table alone does not establish pity, independence, reward caps or the number of eligible rolls earned per fight.
| Eligible rarity rolls | At least one legendary | No legendary |
|---|---|---|
| 1 | 20.0% | 80.0% |
| 5 | 67.2% | 32.8% |
| 10 | 89.3% | 10.7% |
| 14 | 95.6% | 4.4% |
Sources: Probability Details: capture, Nurture, Alpha held items and Sparkling styles ↗
Plan eligible legendary-rarity rolls
The official Alpha held-item table, checked October 5, 2026, lists a 20% legendary-rarity chance for Wayfarer III and Trailblazer I. This is not the chance of a particular item. No exact client build is supplied.
Exact model: 1 − (1 − p)ⁿ. The average is not a guarantee. Independence, fixed rates, reward caps and absence of pity are assumptions; the source does not establish them. A fight may grant a different number of eligible rolls. Named-item selection weights are unknown. Relevant rule changes require a fresh source check before continued use. Calculation code
Read the calculation code
The TypeScript source used by these helpers is shown below.
/** Constant-probability independent trials. No inference about pity or named-item odds. */
export function independentOdds(chance:number,rolls:number) {
if(!Number.isFinite(chance)||chance<0||chance>1||!Number.isInteger(rolls)||rolls<0||rolls>100000)throw Error('Invalid bounded odds inputs')
const atLeastOne=chance===1?(rolls>0?1:0):-Math.expm1(rolls*Math.log1p(-chance))
const percentile=(target:number)=>chance===0?null:chance===1?1:Math.ceil(Math.log1p(-target)/Math.log1p(-chance))
return{atLeastOne,none:1-atLeastOne,expectedRolls:chance===0?null:1/chance,median:percentile(.5),p95:percentile(.95)}
}
export const PHARMACY_ORDER=['Handwashing','Prescription drugs','Blood pressure','Antibiotics'] as const
/** Permute the player's observations into the sourced broadcast order. Never guesses a missing clue. */
export function pharmacyCode(observations:Readonly<Record<string,string>>):string|null {
if(Object.keys(observations).some(key=>!PHARMACY_ORDER.includes(key as typeof PHARMACY_ORDER[number])))throw Error('Unknown poster')
const digits=PHARMACY_ORDER.map(key=>observations[key]?.trim())
if(digits.some(d=>!d))return null
if(digits.some(d=>!/^\d$/.test(d)))throw Error('Each poster needs one digit from 0 to 9')
return digits.join('')
}
Did this calculation help with your next step?
Optional aggregate feedback. No inputs or saved progress are included. You can exclude this browser on the owner page.
Source set