Skip to content

Releases: drok/Harmony-CitiesSkylines

Update From GitHub v1.0.2

12 Feb 21:31
Compare
Choose a tag to compare

First non-steam release

This mod allows the Steam game City Skylines to use mods hosted outside of the Steam Workshop.
It became necessary because the game's developer has banned the creator of the mod from being able to upload updates. So, the updates must necessarily come from elsewhere (here).

Allows the following mods to be updated from GitHub:

  • self (this mod)
  • 2399343344 (Harmony Redesigned, only for 0.9.21 -> 1.0; 1.0+ updates itself)
  • 2325122732 (Supply Chain Coloring)
  • 2389228470 (Transfer Broker)

These are the only supported mods in this release, however, in the near future the algorithm for generally finding any mods will be released. There are security issues that must be thoroughly tested before, so I'm not rushing to release a half-baked version. The generalized version, when ready, will not hard-code any mods but self, and will allow all creators to publish their content directly on GitHub, without Steam or the game developer's censorship, and without even my involvement or censorship.

Local Installation

To install locally, download the "Update From GitHub archive" zip file below, and unzip it to %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods, such that the enclosed UpdateFromGitHub.dll has a path like %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods\UpdateFromGitHub\UpdateFromGitHub.dll

Support

Harmony For Games, Update From GitHub forum, which also includes project updates and planned future features.

Welcome to censorship, politics-free game mods

I'm starting this liberation movement with Cities Skylines because they are particularly vicious offenders to freedom of choice, but will expand it to support other games too.

About the release section

The releases for this mod share the same space with the Harmony (redesigned) releases, because they are differently configured builds of the same code base (think a Honda Accord Deluxe being assembled on the same line as a Honda Accord SE. Same tools, same stockroom, different configurations). The title headings will clearly indicate which mod the release is for, as well as the name of the downloaded archive, will be unmistakably named.

Harmony (redesigned) v1.0.1-hotfix

10 Feb 07:13
d5c4f90
Compare
Choose a tag to compare

Hotfix 1.0.1 (source) contains:

  • Fixes issue #26

Release v1.0 notes below still apply

Includes HarmonyLib v2.2 and expanded error reporting.

To install locally, download the "Harmony Mod" zip file below, and unzip it to %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods, such that the enclosed HarmonyMod.dll has a path like %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods\HarmonyMod-1.0\HarmonyMod.dll

This local installation will coexist with version 0.9 from the workshop. Using the built in Awareness interface, the two instances communicate and hand over patching responsibilities to the most updated instance which is enabled. The workshop version is required for some mods which misguidedly try to detect whether Harmony is present by checking if certain workshop items are subscribed. Most notably, @MacSergey's mods have this problem, as his faulty detection logic is built into all his mods.

Additional features

  • Detects mods which use/abuse a vulnerability present in the game's Assembly Resolver (#18)
  • Disables the adware on the main menu (workshop ad, DLC ad, "newsfeed", and the Paradox Login, which is used to associate the data uploaded by the game to Paradox with an individual user)
  • Contains Harmony Library v2.2.0.0 plus bugfixes released at @paradeike/Harmony after that release
  • Auto-update from this Release feed when new releases are posted. It checks for freshness once when the game application is started, and automatically downloads/updates with the available release.

I will push the source code to the repo after Colossal's API update is released, because I have found that their current draft API at (CitiesHarmony.API/2.1.0-rc)[https://www.nuget.org/packages/CitiesHarmony.API/2.1.0-rc] and CitiesHarmony.API/2.1.0-rc contain code to attack users of this Harmony, claiming it has become incompatible, and recommending they install Colossal's own Harmony as a solution.

Colossal's Harmony also plays some dirty tricks with versioning, where renames the 2.2.0.0 Library AssemblyVersion to be labelled as, and appear to be AssemblyVersion 2.0.4.0, while overloading the FileVersionInfo field of the DLL file to contain the actual assembly version. This is one reason why it will have difficulty distinguishing the two distinct versions. Due to these dirty hacks, I am delaying the source code push as to not make it easier for Colossal to attack this Harmony and the users.

Harmony v1.0

09 Feb 01:33
Compare
Choose a tag to compare

Source
Includes HarmonyLib v2.2 and expanded error reporting.

To install locally, download the "Harmony Mod" zip file below, and unzip it to %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods, such that the enclosed HarmonyMod.dll has a path like %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods\HarmonyMod-1.0\HarmonyMod.dll

This local installation will coexist with version 0.9 from the workshop. Using the built in Awareness interface, the two instances communicate and hand over patching responsibilities to the most updated instance which is enabled. The workshop version is required for some mods which misguidedly try to detect whether Harmony is present by checking if certain workshop items are subscribed. Most notably, @MacSergey's mods have this problem, as his faulty detection logic is built into all his mods.

Additional features

  • Detects mods which use/abuse a vulnerability present in the game's Assembly Resolver (#18)
  • Disables the adware on the main menu (workshop ad, DLC ad, "newsfeed", and the Paradox Login, which is used to associate the data uploaded by the game to Paradox with an individual user)
  • Contains Harmony Library v2.2.0.0 plus bugfixes released at @paradeike/Harmony after that release
  • Auto-update from this Release feed when new releases are posted. It checks for freshness once when the game application is started, and automatically downloads/updates with the available release.

I will push the source code to the repo after Colossal's API update is released, because I have found that their current draft API at (CitiesHarmony.API/2.1.0-rc)[https://www.nuget.org/packages/CitiesHarmony.API/2.1.0-rc] and CitiesHarmony.API/2.1.0-rc contain code to attack users of this Harmony, claiming it has become incompatible, and recommending they install Colossal's own Harmony as a solution.

Colossal's Harmony also plays some dirty tricks with versioning, where renames the 2.2.0.0 Library AssemblyVersion to be labelled as, and appear to be AssemblyVersion 2.0.4.0, while overloading the FileVersionInfo field of the DLL file to contain the actual assembly version. This is one reason why it will have difficulty distinguishing the two distinct versions. Due to these dirty hacks, I am delay the source code push as to not make it easier for Colossal to attack this Harmony and the users.

Steam release v0.9.21

18 Mar 09:54
Compare
Choose a tag to compare

This release implements some new features (ACL, Late Report, ReflectionTypeLoadException handling, and API misuse detection)

The attached zip file includes the files released as Steam Workshop item 2399343344

Note that ReflectionTypeLoadException errors are detected and reported on the Harmony Report, but are due to bugs in the respective mods. The workaround is shown in detail at #9, but briefly:

  1. Unsubscribe the affected mod.
  2. Resubscribe the affected mod.

Unzip the attached file in %LOCALAPPDATA%\Colossal Order\Cities_Skylines\Addons\Mods to use it as a local mod.

First Release on Steam (v0.9.11)

12 Mar 10:16
Compare
Choose a tag to compare

This is the (second) initial release on steam.

The binary package below contains bugfixes for issues 2-6.

Should anyone need to, you have my express permission to publish this release as another workshop item.
At the moment, it seems my workshop item is the target of some unfair competition from the original Harmony mod, boformer, who is a Colossal Order employee.

You can also rebuild the binaries, but you will need to generate new Properties/StrongName.pfx keys. The mod files must be StrongNamed so the mod can identify if another conflicting DLL is loaded instead of the expected DLLs