-
Notifications
You must be signed in to change notification settings - Fork 51
Standard Quest Reward Structure
Contributed by Zerea#4608
Disclaimer: I am very much still a noob when it comes to modding, I only started looking into the files a week ago so mistakes may have taken place. All of this information comes strictly from what is viewable from MHR Editor and deduced from slight alterations and dozens of repeated experiments. Assumptions have been made in certain places that cannot be easily verified with this brute-force methodology but I lack the skillset to look any deeper into the files/memory/code to do it properly.
Found by Korayshin and Zerea (Arized on Nexus).
This is an attempt to explain the main files responsible for loot composition shown on the reward screen at the end of a standard hunt. I do not yet fully understand how Rampage Quest Rewards are decided.
Please feel free to contact me on Discord with questions/comments (Zerea#4608).
Relevant files are located in \natives\STM\data\Define\Quest\System\QuestRewardSystem Also of interest is MonsterLotTableData located in \natives\STM\data\System\RewardSystem\LotTable
MainTargetLotNumDefineData - Responsible for the base and maximum target reward values for a given target number.
- TargetNum - The number of target Monsters a given quest has.
- BaseLotNum - The starting base value for Target Rewards. This is the minimum amount of Target Rewards received. Rewards received will never be below this value. This is on a per-monster basis so multiple target quests will result in this amount of Rewards as the minimum value per target monster killed.
- MaxLotNum - The maximum value for Target Rewards after all other calculations are performed. Rewards received will never exceed this value. This is also on a per-monster basis so multiple target quests will result in this amount of Rewards as the maximum value per target monster killed.
- Index - Corresponds to the number of Target Monsters a quest has. Indexes 4 and 5 are currently unused.
In addition, there appears to be a hard-coded limit with the gap between BaseLotNum and MaxLotNum of 4 for all currently used Indexes. Exceeding this limit causes the RandomLotNumTableData to be completely ignored in reward calculations and as a result there will be no variance whatsoever in rewards received.
QuestDataForRewardData - Responsible for adding extra Target/Quest/Additional Quest Rewards
- QuestNumber - The index of the quest being modified.
- TargetRewardAddNum - Always adds this value of additional target rewards to the BaseLotNum up to MaxLotNum and discards the remainder.
- AdditionalTargetRewardTableIndex - Alters the extra Target Rewards given by TargetRewardAddNum based on a specific index given. By default this Index is 0 which means the additional rewards are from the standard pool of Target Rewards indicated in MonsterLotTableData. Advanced quests, Master Utshushi's Challenges, and most Event quests utilize specialized indexes for these extra rewards.
- CommonMaterialAddNum - Adds this value to the amount of common materials located in Quest Rewards on the end screen.
- CommonMaterialRewardTableIndex - Alters the common materials added based on a specified Index. These are much more prevalent and numerous to map out in a reasonable timeframe. Typical rewards consist of bones, ores, armor spheres, and silver/gold eggs as examples.
- AdditionalQuestRewardTableIndex - The index used to determine what Additional Quest Rewards are added (if any) to the quest. Typically these are things like Commendations, High Commendations, and various Vouchers.
- ClothTicketIndex - Unsure at this point.
RandomLotNumTableData - Responsible for adding additional rewards as variance.
- AddNum - Adds this value to the amount of Target Rewards and Quest Rewards. Will not exceed the MaxLotNum for Target Rewards, but Quest Rewards do not appear to have a maximum value. However, the hard limit for both rewards appears to be 40, or at least that is all that renders on the reward screen. There is a possibility that even more rewards can be received, and simply only 40 rewards are rendered.
- Probability - The probability of the associated AddNum succeeding.
- Index - Noting here that these indexes appear to be done in groupings separated by an empty index. Indexes 1 and 2 are the first grouping, 4/5/6 are the next grouping, and so on. Also of note is that each grouping's probability sums to 100. Supposedly even if the percentages do not sum up to 100 the game will still recalculate probability accordingly, however I do not have the patience to thoroughly test that. As of now I am unsure on the specifics on how the game determines which index grouping to use for each quest. In general low star rank quests use the indexes limited to up to 1 or 2 extra rewards, and high star rank quests have access to the indexes with up to 4 extra rewards.
This random result is done on a per-monster basis for each Target monster killed.
In addition, there appears to be a hard-coded limit for the maximum number of AddNum which is set at 4. This corresponds with a very similar limit noted above on the gap between BaseLot and MaxLot. Exceeding this number does not immediately pose any problems, as the excess reward are simply ignored. However significant problems arise with the introduction of the armor skill Good Luck and/or a Felicrow Twig activating during a quest. If the extra rewards generated by either/both of these two take you over the MaxLotNum, the game will crash upon rendering the Rewards screen. This behavior is absent with default values (0-4) in the AddNum table.
MonsterLotTableData - Controls all the base loot parameters for every monster in game.
- Not much here needs in-depth explanation from me that hasn't already been done by several data-mining efforts such as Kiranico and MHRice.info. If you are tech-savvy enough to unpack the game's files and open them up, you can probably understand this file without much explanation.