This topic will explain everything that is currently known about the RNG: the basics and how it works on treasure contents, steals and some other things.
BasicsFinal Fantasy XII uses a random number generator (RNG) known as the Mersenne Twister. It generates random numbers from a huge interval of [0, 2^32-1] and almost every random action that occurs in the game is connected to these random numbers. The following are spreadsheets of the first 20000 / 60000 random numbers the PS2 uses:
bmxer31's spreadsheet:
http://www.2shared.com/document/S8rXWkZR/RNG_Extended_List.htmlnathany33's spreadsheet:
http://www.2shared.com/file/Tq5pARB2/ff12_good_RNG_chart.htmlA Google Spreadsheet for the TZA version of the game:
https://docs.google.com/spreadsheets/d/1-QyphfndDVeXwFOD3sDUPKdGYPtjMrBb3298Jd7lnss/edit?usp=sharingHere's a link to an interactive webpage that can help you with RNG manipulation:
egli's webpage:
http://markegli.com/ff12/The first spreadsheet has two columns. 20000 random numbers in the first column and the corresponding Cure values in the second one. The formula for Cure is:
=INT((20+(MOD($A750;20*12,5))/100)*((LV+MAG)*MAG/256+2)*1,5)
You should change the formula to match your character's level and Magick Power. When changing formulae, position yourself in the first row (B1), change it and then double-click on the lower right corner of the B1 cell to apply the change to the whole column (
demonstration).
Note: The *1,5 at the end of the formula are for the Serenity license. Make sure you're at full health when casting Cure. If you do not have the Serenity license you must delete the *1,5 at the end.
The second spreadsheet might be easier to use as it already comes with explanations and how-to's. It also has the advantage of having more random numbers (60000).
The RNG works so that it takes one random number for every random action that happens in the game (excluding drops; they use some other way of randomness for some reason). The spell Cure uses only a single random number, that's why it is a great way to determine your position in the RNG. If you're using the first spreadsheet go Edit > Find, click on Options and search by columns (you must be in the B column), look for values and tick that "Match entire cell content" box. Enter your first Cure value and remember the following one. Keep pressing "next" until you find your position. The second spreadsheet has a more user-friendly way of finding things. If you need to move quickly through the RNG, keep punching yourself. A self-hit without a weapon equipped will always use 10 random numbers. Don't forget to unequip your shield or you may block sometimes (alternatively you can use a Shield and equip the Cameo Belt, use this method if you have the Brawler license). Also be careful not to miss your destination by combo-ing.
Treasure ChestsLet's take a look at how random numbers affect the treasure contents. I'll use the Brave Suit chest as an example. It has a 25% spawn rate. It has an 80% chance to contain Gil and 20% chance to contain an item. There are two sets of items, one in case you don't have the Diamond Armlet equipped and one in case you do. If the former is the case, you have a 50% chance to obtain Item 1 (Knot of Rust) and a 50% to obtain Item 2 (Scathe Mote). If you do have the Diamond Armlet equipped, it's 90% for Item 1 (Knot of Rust) and 10% chance for Item 2 (Brave Suit). You can find detailed information about treasure contents on
ff12maps.com.
Your chances to obtain a Brave Suit don't look so good. 0.25*0.2*0.1=0.005. That means you have a mere 0.5% of getting it. Exploiting the RNG will change this. Treasure spawns are determined when entering the zones. A set amount of random numbers is used when changing zones. This is the order of their functions:
1. Weather Changes
2. Random mob spawns
3. Treasure Chests
4. Traps
5. Rest
The Phase 2 Dig in Henne Mines doesn't have weather changes nor random monsters. The first number that's used when zoning into the area is for Brave Suit. Zodiac Spear is the 4th number. This means if you want to spawn the Brave Suit chest, the next random number MOD 100 (divide it 100 and look at the remainder) must be less than 25, or 00-24. Determine your position in the RNG and keep casting Cure until you're in front of a number than ends in <25 (MOD 100 will always represent the last two digits of a number). When done, enter the area. The chest will have spawned, make your way towards it, eliminating all enemies because their actions also consume random numbers.
By opening chests you use two random numbers. The first one is used for a Gil check. In the case of the Brave Suit chest, you'll get Gil if the next number ends in less than 80 and you'll get an item if it's 80-99. In case you get Gil, the second number is used to determine the amount. If you got an item, it will be Item 1 for a random number that ends in 00-49 and Item 2 for a random number that ends in 50-99 if you don't wear the Diamond Armlet. If you wear the Diamond Armlet, it's 00-89 for Item 1 and 90-99 for Item 2. To get the Brave Suit the next number must be 80-99 and the one after that 90-99.
Zodiac SpearSimilar as the above. When entering the zone, make sure the fourth number is less than 10. Enter the zone, kill all enemies you encounter (or use the Immoblize glitch) and reach the chest. Reach a position in the RNG, so that the next two random numbers are both 90 or higher (because it's 10% for item and 10% for that item to be Zodiac Spear).
Stealing / PoachingThis is similar to manipulating treasure contents. The steal mechanics work like this:
No Thief's Cuffs:
- A random number is used for rare steal. If it ends in 00-02 you get the rare item, and the process ends here. If not, it continues...
- A random number is used for uncommon steal. If it ends in 00-09 you get the uncommon item and the process ends. Otherwise, it continues...
- A random number is used for common steal. If it ends in 00-54 you get the common item and process ends, otherwise the steal misses.
Thief's Cuffs:
- A random number is used for rare steal. If it ends in 00-05 you get the item.
- A random number is used for uncommon steal. If it ends in 00-29 you get the item.
- A random number is used for common steal. If it ends in 00-79 you get the item.
This means that each steal attempt with the Thief's Cuffs will consume three random numbers because you may steal multiple items.
Poaching uses 1 or 2 numbers depending on whether or not the poach succeeds. The first number determines the success rate. If it fails, the process ends. If it succeeds, a second number is used to give you an item. 00-94 for common poach and 95-99 for rare poach.
For easy stealing, charge your steal before you engage your target. Nothing must move the RNG until you steal from the target. As for poaching, it will only work if you can Immobilze / Sleep / Disable / Stop your target.
Spawning Lv.99 Red ChocoboThe Chocobo spawns only in Haulo Green in Ozmone Plains. You must kill all 6 chocobos in that area, zone through 2 other areas and come back. There's a 1 out of 256 chance that a Lv99 Red Chocobo will replace any of the chocobos you've killed. Each time a normal Chocobo spawns two random numbers will be used, one for the spawn itself and one for its status (it may spawn asleep). If the Lv99 Red Chocobo spawns, only one random number is used. It will spawn if the next random number is less than 2^24. 2^24 = 16777216. In case you wonder why this happens, 2^24 out of 2^32 equals 1 out of 256. Here's a video of this method:
http://www.youtube.com/watch?v=w2fyEQzTEn4CreditsA big thanks to whoever started this whole discovery.
mkotha - for finding out that the Mersenne Twister is used as the random number generator and for figuring out its seed
bmxer31 - for translating mkotha's work into English and making the first spreadsheet
nathany33 - for information about the Lv99 Red Chocobo and making another great spreadsheet
FF12GrandMaster's - for being the first to develop a method for rare items in treasure chests
billygoten, pprincess, Gramps, flak76e and everyone else who has helped out
egli - for making an interactive webpage for RNG manipulation