Mod Message: Video link changed to
https://youtu.be/cjID61770rA?t=117
Mod Message: Time starts at 122.383 and ends at 3902.950 at 60 fps to get a final time of 1h 03m 00s 567ms. Retimed using yt-frame-timer
Milliseconds trimmed.
Mod Message: Time starts at 4.933 and ends at 3815.533 at 30 fps to get a final time of 1h 03m 30s 600ms. Retimed using yt-frame-timer
Milliseconds Trimmed.
Mod Message: Time starts at 4.467 and ends at 3853.750 at 30 fps to get a final time of 1h 04m 09s 283ms. Retimed using yt-frame-timer
Milliseconds trimmed.
@psionusoid It's been a while, but I wanted to give an update. While working on the coremodding framework itself, I ran into a practical problem: I didn’t want the workspace plugin to**** redownload the entire game every time someone switched versions, or to redownload the game if someone was developing multiple coremods for the same game version. That led me to create a system that could reconstruct previously downloaded game instances without having to download them again. I call the system ThrixlVault (or just Vault for short).
To implement this, I downloaded every version of the game from 0.6+38 to 1.16+559 for all platforms (Linux, macOS, and Windows) which comes out to a total of 435 distinct builds of the game. As you’d expect, many of the same files show up across different versions and platforms. To avoid storing the same data multiple times, I implemented deduplication: if two or more files have the same content, even across versions, the file is only stored once. Thanks to this, the entire set of 435 versions takes up just 12GB.
As part of deduplicating, I had to compute a hash for every file. A hash is essentially a unique fingerprint that changes if even a single byte of the file does. With that data already available, it made perfect sense to use it for verification too.
The result is a system that can:
- Reconstruct any previously downloaded version of the game without needing to fetch it again.
- Confirm that local files exactly match the originals downloaded from Steam.
- Detect any accidental changes introduced via in-game modding tools
Here’s a small excerpt from the Linux build of 1.16+559:
{
"schema": 1,
"blobs": {
"00013af3fe7b5750b97d04c88f988963c46d4a6c": [
"assets/figures/images/human/unpacked/faceMA1_goatee1_joy_streaks.png"
],
"000163158bb807ae9e9715704a17ac2c1c0d6e80": [
"assets/sites/scenery/ruinsDarkSwamp_pillar2.png"
],
"0001f0f6057b9d45cd5422cc1c85c1543daa4d66": [
"assets/figures/images/human/items/item_dagger_t2_fireC_tint2_60.png"
],
"000201bc92ebf765946ceaef4d03be7879e885e4": [
"assets/ui/scaleUI/unpacked/dungeonNode_glyffrixLast_down.png"
]
"00496f51640be288ca9b2b77e423f9f90ad4d71b": [
"assets/animation/spine/Bobblehead Hunter M2.png",
"assets/animation/spine/Bobblehead Mystic M2.png",
"assets/animation/spine/Bobblehead Warrior M2.png"
]
//~123100 additional lines omitted
}
The actual coremodding tools are still in development, but the vault system looks like it could be used to solve one of the issues brought up, which is that it's very easy to accidentally edit the core game files via the ingame mod tools and not remember you've done so.
Mod Message: Time starts at 9.150 and ends at 3691.850 at 60 fps to get a final time of 1h 01m 22s 700ms. Retimed using yt-frame-timer
2 seconds removed
That's really strange. Submit a support ticket (Request to mod an existing game), and ask the current super mod @ozgurkk35 to re-add you.
Mod note: @RedShifter changed the video to a permanent youtube link on their channel. Video marked as safe by @Gamebuster1990
@RedShifter I also already backed this run up as a private video on my channel if for some reason your youtube video ever becomes unavailable. If you want me to delete my copies, let me know and I will do so.
However, please be aware that our current policy on SRC is to reject runs without video proof, including if the run previously had video but has since been deleted. The runs are still kept on our recordbook, however: https://www.speedrun.com/ebtr/resources/os2hw
Mod note: Video marked as SAFE from deletion. I have a backup.
@FerricFox If the VOD is deleted I'll change the link of the video of this run to the backup. Please let me know if this is not okay.
Mod note: Video marked as SAFE from deletion. I have a backup.
@FerricFox If the VOD is deleted I'll change the link of the video of this run to the backup. Please let me know if this is not okay.
It's still accessible for me.
This won’t apply to Past Broadcasts (VODs) or clips.
It literally says it doesn't apply to VODs.
Some background on this, @psionusod and I were talking about various issues the ruleset has. Most of them have since been addressed.
I've attached the discussion we had on the discord server below.
The two main issues that remain are:
- It's hard to ensure a legacy isn't contaminated with modded heroes
- Buffs from previous versions of the game are unobtainable without downpatching. Note that downpatching below version 1.16+549 imposes security risks, especially if you have mods installed via steam workshop (see https://github.com/WilderForge/WilderForge/security/advisories/GHSA-42m8-jxr4-976p)
- The game alters the RNG of certain probabilities of based on things you've encountered in previous runs (even if the run was not completed). Generally in speedrunning, runs are usually start completely fresh, however Wildermyth presents a unique challenge as simply encountering a desired event reduces its probability in subsequent runs.
I don't really see an issue with using Devmode for event picking OUTSIDE of a submitted run if it is limited to only creating obtainable characters. My question however, is if some events are incompatible, does Devmode allow you to add execute two incompatible events on one character, thereby creating an impossible character?
Obviously, editing RNG values (other than resetting ALL probabilities to default) can't be allowed, as you can just alter the weights to construct the perfect run every time.
On a related note, I've been working on an autosplitter and load remover coremod for the game (https://github.com/WilderForge/AutoSplitter). I could make it so that the mod only allows characters that were created and used only when no other mods were installed would appear in runs. (basically it would work by keeping track of any mods installed, and save it to the character. If all the mods saved to the character are not whitelisted, the character can't be used). The mod could also make it so that devmode event picker only allows for compatible events.
I'm pretty sure I can resolve all of the above issues in the autosplitter mod. The modding api (wilderforge) already patches the downpatching security risk for older game versions. I don't think it would be very hard to add a button to reset RNG weights in the legacy. Or just make it so that RNG weighing doesn't happen at all and all probabilities stay at the default.
Here are the images of the relevant discussions on the discord server: