Skip to content

[Rando] Stat Items#6760

Open
Jepvid wants to merge 26 commits into
HarbourMasters:developfrom
Jepvid:RandoStatItems
Open

[Rando] Stat Items#6760
Jepvid wants to merge 26 commits into
HarbourMasters:developfrom
Jepvid:RandoStatItems

Conversation

@Jepvid

@Jepvid Jepvid commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

An attempt to reduce junk by adding status items rpg lite style

Default settings expect 5 stat items to reach maximum stat (8 for magic).

Its possible to add up to 100 items per stat, adjustable for how much % needed to reach max

Power = chance to deal double damage, guaranteed double damage when capped
Speed = incremental speed increase to 40% extra speed at max cap (ground speed and swimming)
Defense = Incremental defense increase, capped at 50%. Multiplicative addition so total of 75% damage reduction with double defense.
Magic = Incremental magic increase, magic is in logic once you have half of a normal magic bar

Push speed slider, Crawl speed slider and climb speed slider exist aswell.

Added bonus is Quarter Heart containers. Replaces all containers and heart pieces to Quarter Heart Containers in the item pool

Added a fail to gen if Items exceeds locations so now it wont outright assert crash if to many items in pool

Models are made by Fadó and Nickel
Icons are made by Nickel in HM64

Big thanks to Fado, Jam and Nickel to help playtest this

If this is something not of interested to be merged then its completely fine to close this pr.

Ai have been used in this pr but I have reviewed all code it made to make sure it matches what expected in repo.

Build Artifacts

@Pepper0ni

Pepper0ni commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

An idea to expand this would be to have the current speed sliders, climb, crawl, push, be a scalable stat in this fashion.

A thought for damage would be to, instead of having random chance, scale up the health of enemies to get more granular damage thresholds to work with

@Jepvid

Jepvid commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Its all doable just need to look more into the damage tables and get what the average is etc. Scaling is hard to work around with.

@Pepper0ni

Pepper0ni commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

I would not blame you for saying out of scope for now, but my vision for this would be to have enemies scaling past normal HP so you want to find damage to keep up.

Let's say we have 4 damage ups in the pool, so base damage of KSword slash becomes 4, scaling up to 8. Obviously we can 1-1 counter the initial multiplication be multiplying the health of everything by 4, but then as we actually get damage increases we end up stronger and making a game with already pretty easy combat easier (hyper enemies notwithstanding). The catch is we have to cognizant of the 1 byte limit.

The highest HP enemy in the game that I know of is Ganondorf (or a 20 heart dark link) with 40, who would become 160 with a base *4 and limits us to a *6 total enemy scaling. To go further we would need to do janky things, but we still have options like starting link with only 3* strength so he starts weaker than vanilla.

The other thought would be if combat difficulty scaled by seed progression somehow, which would further play into the above point. Assigning difficulty by sphere count is an option but not a reliable one, spheres are not a stable metric, otherwise OoT Rando would be hard to make scaling for that won't at some point box the player in with a high scaled enemy. Otherwise we have to simply assign an expected combat level per enemy to scale by.

@Jepvid

Jepvid commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

I am definetly not against it. I am willing to give it a look to see if its feasable in the current manner this pr is. Preferably i want to make it so that the % required setting scales properly with it

@Jepvid

Jepvid commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

I have looked around the health and damage and unfortunately incremental power is out of scope for how this system works for now.

To get it matching with the "up to 100 stat items" setting changes would be needed to done to health and damage value system in OoT overall or a new form of api to make it possible to adjust values

@Jepvid

Jepvid commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

I will look into adding climb, push and crawl speed modifiers to it. Probably make 5x the cap on all 3 sliders

@Jepvid Jepvid marked this pull request as draft June 18, 2026 13:22
@Jepvid Jepvid marked this pull request as ready for review June 25, 2026 15:34
@Jepvid

Jepvid commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Ive done the finetuning i want. probably needs some more playtesting before merge to find all edgecases.

@Jepvid Jepvid force-pushed the RandoStatItems branch 3 times, most recently from 355f865 to 279959c Compare June 29, 2026 09:27

@garrettjoecox garrettjoecox left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

basically every touchpoint to the source is an argument on why the VB hooks are good, they could be hooked for both the cvar cheat or enhancement and your code.

love the concept, though I think the execution & UI should be vastly simplified after someone playtests and gives some good ranges. It should just be like a single checkbox to enable the entire setting.

@Xandervile

Copy link
Copy Markdown

One thing I'm gonna throw out there - some of the current upgrades do go against some of the glitches for no logic, such as climb speed, may want to note that somewhere in the settings for these options.

@Jepvid

Jepvid commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

Every stat items is is selectable before genning seeds so you can pick what stat items there are in the pool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants