Skip to content

Releases: Reloaded-Project/Reloaded-II

1.27.10

07 Jun 00:32
Compare
Choose a tag to compare

Changelog (1.27.10)

Read and Discuss in a Browser.
Previous Changelog.

This update improves Reloaded's Launcher for people using screen readers, labelling many
previously unlabeled items throughout the core UI.

Most of the core/main UI should now be a bit friendlier 😇.
It's not going to be perfect, but I hope it's just a little better.

Changelog (1.27.9)

Read and Discuss in a Browser.
Previous Changelog.

This update re-enables WPF Automation Functionality to improve accessibility for users who require
the use of assistive screen readers.

Originally this was disabled in an effort to improve performance, a significant amount of time is spent
initializing the automation system on every launch. However, I did not expect at the time that said Functionality
would have an impact on accessibility. I originally assumed that the functionality was only used for debugging purposes.

For that, I am sorry.

Changelog (1.27.8)

Read and Discuss in a Browser.
Previous Changelog.

  • Fixed a launcher crash that would occur when trying to set the Mod Preview to an image that's already in the Mod Root Folder.
  • For example setting Reloaded-II/Mods/your.mod.id/Preview.png as the image, when Preview.png was already in the correct location.
  • Originally reported here: #389

Changelog (1.27.7)

Read and Discuss in a Browser.
Previous Changelog.

  • Added a Safeguard against people putting files in Program Files/dotnet/shared that don't belong to the .NET runtime.
  • Originally reported here: #373
  • It's unknown why the files were there, it may be tModLoader, but I'm not personally sure.

Changelog (1.27.6)

Read and Discuss in a Browser.
Previous Changelog.

  • Reduced time taken to download many small mod updates.
  • Improved fault handling for mod updates.

This was done by adding an exponential backoff retry policy for mod updates. In addition, we now update 4 mods in parallel,
instead of just 1.

Changelog (1.27.5)

Read and Discuss in a Browser.
Previous Changelog.

Fixed by @AnimatedSwine37.

Fixed a bug where saving after clicking Load Existing Pack would cause the ReleaseMetadataFileName
property of every loaded mod to be lost on save, making the pack unusable.

Changelog (1.27.4)

Read and Discuss in a Browser.
Previous Changelog.

Originally reported as:

When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.

This is useful if:

  • You have reinstalled the game.
  • You have moved the game to another location.

etc.

Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small exten...
Read more

1.27.9

04 Jun 17:56
Compare
Choose a tag to compare

Changelog (1.27.9)

Read and Discuss in a Browser.
Previous Changelog.

This update re-enables WPF Automation Functionality to improve accessibility for users who require
the use of assistive screen readers.

Originally this was disabled in an effort to improve performance, a significant amount of time is spent
initializing the automation system on every launch. However, I did not expect at the time that said Functionality
would have an impact on accessibility. I originally assumed that the functionality was only used for debugging purposes.

For that, I am sorry.

Changelog (1.27.8)

Read and Discuss in a Browser.
Previous Changelog.

  • Fixed a launcher crash that would occur when trying to set the Mod Preview to an image that's already in the Mod Root Folder.
  • For example setting Reloaded-II/Mods/your.mod.id/Preview.png as the image, when Preview.png was already in the correct location.
  • Originally reported here: #389

Changelog (1.27.7)

Read and Discuss in a Browser.
Previous Changelog.

  • Added a Safeguard against people putting files in Program Files/dotnet/shared that don't belong to the .NET runtime.
  • Originally reported here: #373
  • It's unknown why the files were there, it may be tModLoader, but I'm not personally sure.

Changelog (1.27.6)

Read and Discuss in a Browser.
Previous Changelog.

  • Reduced time taken to download many small mod updates.
  • Improved fault handling for mod updates.

This was done by adding an exponential backoff retry policy for mod updates. In addition, we now update 4 mods in parallel,
instead of just 1.

Changelog (1.27.5)

Read and Discuss in a Browser.
Previous Changelog.

Fixed by @AnimatedSwine37.

Fixed a bug where saving after clicking Load Existing Pack would cause the ReleaseMetadataFileName
property of every loaded mod to be lost on save, making the pack unusable.

Changelog (1.27.4)

Read and Discuss in a Browser.
Previous Changelog.

Originally reported as:

When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.

This is useful if:

  • You have reinstalled the game.
  • You have moved the game to another location.

etc.

Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: [Fixin...

Read more

1.27.8

30 May 02:30
Compare
Choose a tag to compare

Changelog (1.27.8)

Read and Discuss in a Browser.
Previous Changelog.

  • Fixed a launcher crash that would occur when trying to set the Mod Preview to an image that's already in the Mod Root Folder.
  • For example setting Reloaded-II/Mods/your.mod.id/Preview.png as the image, when Preview.png was already in the correct location.
  • Originally reported here: #389

Changelog (1.27.7)

Read and Discuss in a Browser.
Previous Changelog.

  • Added a Safeguard against people putting files in Program Files/dotnet/shared that don't belong to the .NET runtime.
  • Originally reported here: #373
  • It's unknown why the files were there, it may be tModLoader, but I'm not personally sure.

Changelog (1.27.6)

Read and Discuss in a Browser.
Previous Changelog.

  • Reduced time taken to download many small mod updates.
  • Improved fault handling for mod updates.

This was done by adding an exponential backoff retry policy for mod updates. In addition, we now update 4 mods in parallel,
instead of just 1.

Changelog (1.27.5)

Read and Discuss in a Browser.
Previous Changelog.

Fixed by @AnimatedSwine37.

Fixed a bug where saving after clicking Load Existing Pack would cause the ReleaseMetadataFileName
property of every loaded mod to be lost on save, making the pack unusable.

Changelog (1.27.4)

Read and Discuss in a Browser.
Previous Changelog.

Originally reported as:

When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.

This is useful if:

  • You have reinstalled the game.
  • You have moved the game to another location.

etc.

Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

...

Read more

1.27.6

04 May 04:41
Compare
Choose a tag to compare

Changelog (1.27.6)

Read and Discuss in a Browser.
Previous Changelog.

  • Reduced time taken to download many small mod updates.
  • Improved fault handling for mod updates.

This was done by adding an exponential backoff retry policy for mod updates. In addition, we now update 4 mods in parallel,
instead of just 1.

Changelog (1.27.5)

Read and Discuss in a Browser.
Previous Changelog.

Fixed by @AnimatedSwine37.

Fixed a bug where saving after clicking Load Existing Pack would cause the ReleaseMetadataFileName
property of every loaded mod to be lost on save, making the pack unusable.

Changelog (1.27.4)

Read and Discuss in a Browser.
Previous Changelog.

Originally reported as:

When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.

This is useful if:

  • You have reinstalled the game.
  • You have moved the game to another location.

etc.

Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.


Complete Changes (Aut...

Read more

1.27.5

27 Apr 07:37
Compare
Choose a tag to compare

Changelog (1.27.5)

Read and Discuss in a Browser.
Previous Changelog.

Fixed by @AnimatedSwine37.

Fixed a bug where saving after clicking Load Existing Pack would cause the ReleaseMetadataFileName
property of every loaded mod to be lost on save, making the pack unusable.

Changelog (1.27.4)

Read and Discuss in a Browser.
Previous Changelog.

Originally reported as:

When changing the install location of a GamePass (Microsoft Store) game within Reloaded-II, the operation will no longer fail if the file is protected/unreadable due to OS' built in Copy Protection/Sandboxing.

This is useful if:

  • You have reinstalled the game.
  • You have moved the game to another location.

etc.

Instead, the same logic/steps as will be applied as if the game was added for the first time, including ASI Loader re-deployment (if necessary).

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.


Complete Changes (Autogenerated)

1.27.5 - 2024-04-27

Merged

  • Fix ReleaseMetadataFileName being lost when loading a r2pack to edit #370

Commits

====

Previous Changelog (1.25.10...

Read more

1.27.3

19 Apr 20:57
Compare
Choose a tag to compare

Changelog (1.27.3)

Read and Discuss in a Browser.
Previous Changelog.

This update adds fallback logic that will display error messages if any should occur before the UI is fully initialized.

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.


Complete Changes (Autogenerated)

1.27.3 - 2024-04-19

Commits

  • Updated: Changelog & Project Version f29eefd
  • Bumped: Project Version 32638a2
  • Added: Fallback path in case UI is not fully initialized for reporting errors b051ee2

====

Previous Changelog (1.25.10) | Misc Hotfixes

  • Fixed bug introduced in last update 32-bit Reloaded Launcher (Reloaded-II32.exe) couldn't DLL inject on 64-bit operating systems.
  • Slightly redesigned settings menu, to better expose language selection.

Also thanks to @Sencaid for German Translation, I missed that in last changelog >w<
Expect more minor bugfixes over weekend, this is just all I can do after work hours so far this week.

Defender Mitigation Announcement | Changelog (1.25.9)

This release (1.25.9) is dedicated to Windows Defender. I'll try to keep it short.

In the past week alone, I've seen over 300 reports of false positive virus detections
affecting users. At peak, around 4 issue reports an hour.

This is because Defender suddenly started flagging a small part of Reloaded related to DLL Injection
that I wrote (and haven't changed at all) in almost 4 years.

This was not easy for anyone. I respond to all issues, usually within 10 minutes if awake.
Likewise, volunteers in game spec...

Read more

1.27.2

12 Apr 17:55
Compare
Choose a tag to compare

Changelog (1.27.2)

Read and Discuss in a Browser.
Previous Changelog.

This update removes the dependency on PowerShell when decrypting MS Store games.
Just in case a user has a borked PowerShell setup.

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.


Complete Changes (Autogenerated)

1.27.2 - 2024-04-12

Commits

  • Improved: Powershell-less MS Store DRM Bypass a612cbe
  • Updated: Release Notes & Version adc771d

====

Previous Changelog (1.25.10) | Misc Hotfixes

  • Fixed bug introduced in last update 32-bit Reloaded Launcher (Reloaded-II32.exe) couldn't DLL inject on 64-bit operating systems.
  • Slightly redesigned settings menu, to better expose language selection.

Also thanks to @Sencaid for German Translation, I missed that in last changelog >w<
Expect more minor bugfixes over weekend, this is just all I can do after work hours so far this week.

Defender Mitigation Announcement | Changelog (1.25.9)

This release (1.25.9) is dedicated to Windows Defender. I'll try to keep it short.

In the past week alone, I've seen over 300 reports of false positive virus detections
affecting users. At peak, around 4 issue reports an hour.

This is because Defender suddenly started flagging a small part of Reloaded related to DLL Injection
that I wrote (and haven't changed at all) in almost 4 years.

This was not easy for anyone. I respond to all issues, usually within 10 minutes if awake.
Likewise, volunteers in game specific modding servers also take their time out of their day to help
troubleshoot users' issues. It was a heavy burden on everyone.

This was Rough

As this coincided with 2 game releases, where people starting Reloaded, the timing could not have been
any more unfortunate. Many new users had to experience an absolute trainwreck of a first impression;
whether it be due to defender, some longstanding rare bugs, or silent antivirus treatment.

Worseover, I could not even fix these bugs. Because the v...

Read more

1.27.1

30 Mar 15:28
Compare
Choose a tag to compare

Changelog (1.27.1)

Read and Discuss in a Browser.
Previous Changelog.

This update fixes a rare race condition resulting in
mod files sometimes being missing after a mod update or download.

(Thanks to @AnimatedSwine37)

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
  • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
  • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
  • This info is what's used to download missing dependencies.
  • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
  • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
  • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
  • The search index is what normally makes your mod searches in App super fast.
  • But it also knows the unique ModId of each uploaded mod.
  • So we can use this to find missing mods.
  • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
  • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
  • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus, so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.


Complete Changes (Autogenerated)

1.27.1 - 2024-03-30

Commits

  • Fix: Technically possible race condition where source or dest file is opened during package copy df427c3
  • Bumped: Project Version 476aaf9

====

Previous Changelog (1.25.10) | Misc Hotfixes

  • Fixed bug introduced in last update 32-bit Reloaded Launcher (Reloaded-II32.exe) couldn't DLL inject on 64-bit operating systems.
  • Slightly redesigned settings menu, to better expose language selection.

Also thanks to @Sencaid for German Translation, I missed that in last changelog >w<
Expect more minor bugfixes over weekend, this is just all I can do after work hours so far this week.

Defender Mitigation Announcement | Changelog (1.25.9)

This release (1.25.9) is dedicated to Windows Defender. I'll try to keep it short.

In the past week alone, I've seen over 300 reports of false positive virus detections
affecting users. At peak, around 4 issue reports an hour.

This is because Defender suddenly started flagging a small part of Reloaded related to DLL Injection
that I wrote (and haven't changed at all) in almost 4 years.

This was not easy for anyone. I respond to all issues, usually within 10 minutes if awake.
Likewise, volunteers in game specific modding servers also take their time out of their day to help
troubleshoot users' issues. It was a heavy burden on everyone.

This was Rough

As this coincided with 2 game releases, where people starting Reloaded, the timing could not have been
any more unfortunate. Many new users had to experience an absolute trainwreck of a first impression;
whether it be due to defender, some longstanding rare bugs, or silent antivirus treatment.

Worseover, I could not even fix these bugs. Because the virus detections were made by the 'machine learning'
side of Defender, releasing ANY UPDATE AT ALL means that 1000s of users would get new false positives.
[Dolphin Emulator was in the same predicament a few years ago](https://dolphin-emu.org/blog/2019/11/07/dolphin-progress-report-october-2019/#windows...

Read more

1.27.0

23 Mar 16:48
Compare
Choose a tag to compare

Changelog (1.27.0)

Read and Discuss in a Browser.
Previous Changelog.

This is a longer 'Progress Report' kind of post. Consider reading in a browser.

Dependency Resolution Update

This update is focused on more reliable resolution of missing dependencies, notably, reducing the amount of time that the following message is seen:

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

A fix for end users:

  • Launching Reloaded without Internet after a mod download will no longer render missing dependencies undownloadable.
    • We now ensure we don't remove unused dependency metadata if we're missing dependencies.
  • Fixed a very rare edge where it was technically possible the launcher incorrectly reports a missing dependency.
    • This would happen if a mod had multiple download locations (e.g. GameBanana+GitHub), but was removed from 1 location.

A fix for mod authors:

  • A launcher restart is no longer required to update mod dependency info.
    • This info is what's used to download missing dependencies.
    • You can now safely add/edit a mod in launcher, set dependency, add some files and publish.
    • Previously a launcher restart was required to ensure dependency info was embedded in your mod.
    • We now update the dependency data before publish, ensuring mod authors don't pack mod with missing dependencies.

An Automated Error Handler for Edge Cases:

  • We now use the Search Index as a fallback, if all else fails.
    • The search index is what normally makes your mod searches in App super fast.
    • But it also knows the unique ModId of each uploaded mod.
    • So we can use this to find missing mods.
    • This currently works for 11 games that use Reloaded-II on GameBanana (I don't index any other sites currently).
    • Enabling this has some security implications. This is only used as a last resort fallback, when all else fails.

This should hopefully help in getting cases where users experience missing dependencies closer to 0.
Especially in situations where a dependency is hosted only in 1 location, e.g. Only <This Mod Site>

Updated Docs

Documentation and in-launcher tutorial has been updated to feature installing via drag-and-drop as a method of installation.

image

(Hint: It's animated in the launcher)

Infrastructure Update

The open 1st party package server is an unsung hero ensuring your modding experience is as smooth as possible. This is the place where critical code mods are fetched from automatically when the primary source (like GitHub) hits its limits - a common scenario given GitHub's restrictions of 60 requests per hour per IP.

Given Reloaded's modular nature, you'll typically hit that limit restarting the launcher around 4 times. Now imagine you have a family, or are in a hotel room, or just troubleshooting, this limit may already be exhausted. Now you download a new mod, which requires some framework/critical component and suddenly you're told...

311567942-ab36118e-8a0b-40f3-a0d5-db3490a247f3

Not ideal.

With the surge of users, traffic on this server has risen drastically. In the past 20 days we have transferred 6TB of data. Month started with approximately 5MB/s and is now 7.5MB/s. This is especially surprising, as the critical code mods stored here are typically under 0.5MB in size.

pulse-browser_Qw41LjD9KC

pulse-browser_7lQjhXQXIB

I only found out a few days ago, as I was looking into why the server was unresponsive. Sometimes queries randomly took ~2-3 seconds to respond, and I was rather flabbergasted.

The Package server runs on a very minimal-effort fork of BaGet, renamed as BaGet-Reloaded to avoid confusion with the original project. Using the Sqlite3 backend.

To the best of my knowledge, the delays in responses were caused by a combination of:

  • A lot of writes to the DB, which blocks reads in Sqlite out of the box.
    • Notably, BaGet increments the 'download count' every time a package is returned via search.
  • Sustained load on a shared CPU (a.k.a. 'vCPU'). [to a very, very small extent]

I changed the settings on Sqlite3 to use WAL and synchronous=NORMAL. This allows us to perform reads during writes, thus fixing up the performance. In addition, I bumped the server specs a bit, just in case the load continues to climb. Currently the server is completely responsive again.

A Thank You

Services like the Package Server are supported by your donations.
They also help cover occasional game purchases.
Recent Example: Fixing Compatibility with Special K in presence of Steam Copy Protection/DRM for games like Granblue Relink

In the ~4 years I've been accepting donations so far, I've received a total of £358.87 (and 4 games). This has helped cover most of the costs involved. e.g. Package Server, Server Backups, Discord Bot(s), Search Index, Services for some Online Mods, Domain (Website Name) Costs etc.

With these donations I can almost break even. I don't have any concrete numbers (hard to calculate), but based on some quick maths, I've probably spent around £450-500 on Reloaded related things so far.

Thank you.

About the Future

Please remember. For most of its life, Reloaded has been a solo project.
Not just the Manager, but the Loader and many of the core components used across your popular mods.

In any case, the work on the successor continues, albeit slowly.

Every week, I spend around 24-30 hours on Reloaded things, on top of my fulltime job. Hopefully in 2 years, we'll live in a future where users can start experimenting with porting core components from Reloaded-II to Reloaded3. This is not easy to do, but I will relentlessly keep going, until it is done.

The intent of the recent reliability/bug-fix patches is to allow me to step back from maintaining Reloaded-II for a longer time and let me focus on the successor.

If you are a programmer, I should hopefully have a 'Specification' ready not too long from now. The work on this is resuming today, after a long hiatus (linked version is from last year), so various core parts of Reloaded3 will be open to community contributions. Until then, hang tight.

1.26.2

18 Mar 03:05
Compare
Choose a tag to compare

Changelog (1.26.2)

  • Fixed: Automated Builds not including new language options.
  • Added: Logging mod install location in loader.
  • We're logging this so it's easier to detect the 'user installed source code, not the mod' scenario.

Changelog (1.26.1)

  • Microsoft Store unprotecting no longer uses PowerShell.

  • We now use internal Windows COM interfaces.

  • Improves reliability where access to script running in PowerShell is restricted out of the box. (Admin setting, etc.)

  • This may more likely break with future Windows versions.

  • However updating the code be very easy (~10 mins) should it come to that.

  • ASI Loader deployment now places Reloaded.Mod.Bootstrapper.asi in game folder, instead of scripts subfolder.

  • Makes uninstall easier for end users.

  • Changed: Persona 4 Golden (MS Store) now aliases to Persona 4 Golden (Steam).

  • The devs used a different EXE name, which resulted in a different AppId, despite being the same game.

  • This meant end users won't see downloaded mods easily.

  • So an alias directly inside the code was added.

Changelog (1.26.0)

1.26.0 is a small feature update, bringing small features and bugfixes intended to make Reloaded-II
better work 'out of the box' for various different kinds of users. (i.e. Reliability)

Through most of its life, Reloaded-II has been a 'solo' project, so this update focuses on making R2
last just a little bit longer while I spend the next ~2 years working on Reloaded3.

Below is a small 'Progress Report'.
Community contributions are always welcome, and as usual, thanks for using this software.

Win32 Microsoft Store (i.e. GamePass) Games should now work 'Out of the Box'

In short: They should be as simple to set up as games on other launchers.
(If you're interested in the details, read on, otherwise skip.)

For a very long time, GamePass games have been a pain to set up.

Due to Copy Protection (DRM) that Microsoft employs at the Operating System level,
you're not allowed to read all of the game files, even if you 'own' the game.

This is problematic, because:

  • We can't inject code into game directly, as it needs to be started via gamelaunchhelper.exe.
  • So you can have working cloud saves, etc.
  • We can't install a shim (e.g. ASI Loader), because we can't read the EXE files.
  • They're encrypted on disk, and only decrypted when the game is ran.
  • So we can't figure out how to install a shim.

Unfortunately, as a result, this meant that we just had to say 'figure it out yourself' for a while.
As Reloaded-II has historically mostly been a solo effort, and I don't use Windows outside of debugging mods,
I've never really had opportunities to investigate further.

That was until @Aemony gave me a hint by linking the following post.

So I bought GamePass from my own pocket, and started investigating.
Turns out that if you spawn a process in the 'AppX' context of the game via Invoke-CommandInDesktopPackage,
or via IDesktopAppxActivator COM interface, you can read the normally encrypted files just fine.

With that in mind, I've written some code to dump unencrypted game files, and then replace the originals
with them, so Reloaded-II can work as expected. The process is multi step, and error prone to some
degree, however all games on GamePass that are frequently used with Reloaded seem to work just fine for now.
Source Code. The code I wrote should work on Win10 21H2 and above, no guarantees for older
Windows builds.

An additional set of patches were made to ensure:

  • GamePass games survive 'Verify Game Files' functionality.
  • GamePass games survive updates (hopefully).
  • Note: GamePass games can change their real EXE location (not the fake one in your game folder) after an update.
  • If this happens Reloaded-II should still work now.

When finding a GamePass game, Reloaded-II will now auto-unprotect it for you, and install ASI Loader.
When you launch from the launcher, it'll boot gamelaunchhelper.exe, to ensure your cloud saves work,
and the ASI Loader shim will handle loading Reloaded itself when the actual game boots.

Things should hopefully work 'just fine', for now.

PS. If you're unfortunate enough to have a Denuvo game on GamePass, your game start times should
now be ~3 seconds faster on a typical PC. You're welcome. Unfortunately, this is just another
case of how anti-piracy tech unfortunately always hurts the paying customer the most.

Mod Subfolders

(Originally contributed by @ItsKaa, thanks!)

You can now store mods in subfolders of Mods folder.

Example Reloaded-II/Mods folder:

Mods
├── FlatOut
│   ├── flatout2.packs.goofyahhmod
│   ├── flatout2.utils.modloader
│   ├── flatout2.utils.mpnamechange
│   ├── flatout2.utils.richpresence
│   └── flatout2.utils.zpatch
├── <other unrelated mod 1>
├── <other unrelated mod 2>
└── <other unrelated mod 3>

Image

If you're a fan of manual mod organization, say in the style of Stardew Valley, this is for you.
Should make you feel more at home.

Preserve Mod Order

(Contributed by @ItsKaa, thanks!)

The order of mods in the launcher is now fully preserved across restarts.
Previously, the enabled mods would show first in load order, and disabled ones would show after
in alphabetical order.

For newly added games, this is now the default (may change depending on feedback). For games
people previously added before this update, this is opt-in.

Image

In either case, you can change this setting at any time according to your preference.

Reloaded-II now defaults to DLL Hijacking as opposed to DLL Injection

i.e. Reloaded-II now uses ASI Loader by default, instead of DLL Injection for newly added games.

Many Steam users have been reporting that their Steam clients render their controllers absolutely
unusable for anything that wasn't launched by Steam
. Unfortunately, I don't think this will be
fixed any time soon either.

In order to reduce tech support requests of I launched via Reloaded and my controller doesn't work,
I decided to (unfortunately) bend over to Valve and make using a shim for launching Reloaded's
Loader the default.

Although I really, really, really don't like modifying game folders (they should be untouched!!),
I'm unfortunately forced to make this change to avoid end user issues.

Improving 'Missing Dependencies' Experience

Image

In some rare cases, mods which depend on other mods don't have the required update information to
download the other mod.

As Reloaded doesn't have a central package server, we copy the update info of each dependency into
each mod that depends on it. That update info is then used to download the needed dependencies in
lieu of a lack of a central package server. Reloaded updates this info on every reboot of the launcher.

In some cases, a modder may for example, forget to add update info to their mod, and some other mod
may set a dependency on it. Or the author of the mod that depends on it may have added the dependency
with a text editor, before hitting 'Publish'. In both these cases, the update info may be missing,
and dependency cannot be auto downloaded.

In this Release, 2 changes have been made to improve this experience:

  • Hitting 'Publish' triggers the action to copy dependency info.
  • Missing Dependency Dialog shows which mod's dependency is missing.

With these two changes, the likelyhood of a missing dependency error is reduced. And if it occurs,
it's easy to figure out which package was incorrectly uploaded/packaged or is missing update info.

Automatic Language Selection on First Boot

Image

Bing Chilling!

This is very long overdue, and a simple change. When you first boot Reloaded-II, it'll
auto select the language for you. So if your system display language is 中文(简体), Reloaded
will auto select zh-CN.xaml on first boot.

Drag & Drop Mod Installation

Image

Mods can now be installed by dragging them over the Reloaded-II window.

This is intended to make mod installation easier in the cases where you're downloading a mod from
a place that doesn't provide you a '1 click install' button. (e.g. GitHub, Nexus, that certain
kinky mod site etc.)

Loader Logging Change

A small change to how the loader logs mods that are about to be loaded.

Old logs:

[Reloaded] Loaded: FlatOut2.Utils.ModLoader in 118ms
[Reloaded] Loaded: FlatOut2.Utils.RichPresence in 9ms
[Reloaded] Loaded: FlatOut2.Utils.ZPatch in 3ms

New logs:

[Reloaded] Loading 3 Mod(s).
[Reloaded]
[Reloaded] Loading: FlatOut 2 Mod Loader
[Reloaded] - AppId   : FlatOut2.Utils.ModLoader
[Reloaded] - LoadTime: 112ms
[Reloaded]
[Reloaded] Loading: FlatOut 2 Discord Rich Presence
[Reloaded] - AppId   : FlatOut2.Utils.RichPresence
[Reloaded] - LoadTime: 9ms
[Reloaded]
[Reloaded] Loading: ZPatch
[Reloaded] - AppId   : FlatOut2.Utils.ZPatch
[Reloaded] - LoadTime: 3ms

Although more verbose, this change should make it easier for troubleshooting.
You can identify if a mod is stuck/deadlocked by the fact LoadTime doesn't appear.
And you can more easily match up mod IDs to user friendly mod names.

Miscellaneous Changes

  • Loader and Launcher now filter out duplicate mods (in a predictable manner).
  • Updated translations.
  • Loader saves ~150KB of RAM again, with trimming re-enabled.

Bug Fixes

  • Added a minimum height in mod update dialog.
  • Fixed a b...
Read more