Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking mods with harmony #8

Open
originalfoo opened this issue Mar 4, 2020 · 12 comments
Open

Tracking mods with harmony #8

originalfoo opened this issue Mar 4, 2020 · 12 comments
Labels
help wanted Extra attention is needed

Comments

@originalfoo
Copy link
Member

originalfoo commented Mar 4, 2020

Subscribe and enable Duplicate Assembly Scanner mod then look in Cities_Data folder for the DuplicateAssemblyScanner.log to get the details. Post details in a comment below and update the list in OP to include your results.

(Note: One of these 1.0.9.1 `0Harmony` is not the same as the other!)
- 1.0.9.1 /1386697922   Garbage Bin Controller
- 1.0.9.1 /1372431101   Painter

- 1.1.0.0 /870291141    Random Train Trailers 2.1.2
- 1.1.0.0 /1412844620   Realistic Walking Speed

- 1.2.0.1 /1567569285   Achieve It!
- 1.2.0.1 /1886877404   Custom Effect Loader
- 1.2.0.1 /1806759255   Customize It! Extended
- 1.2.0.1 /1658679290   Forest Brush
- 1.2.0.1 /1591417160   Hide It!
- 1.2.0.1 /1938493221   Mini FPS Booster 1.0
- 1.2.0.1 /1801953480   Natural Disasters Overhaul
- 1.2.0.1 /552309905    No Abandonment
- 1.2.0.1 /1721492498   Optimised Outside Connections
- 1.2.0.1 /924884948    Plop Growables
- 1.2.0.1 /1869561285   Prop Painter
- 1.2.0.1 /1420955187   Real Time
- 1.2.0.1 /576997275    Remove Need For Pipes
- 1.2.0.1 /1794015399   Render It!
- 1.2.0.1 /1435741602   Snooper
- 1.2.0.1 /1899640536   Theme Mixer 2
- 1.2.0.1 /1764637396   Toggle It!
- 1.2.0.1 /1312767991   Transport Lines Manager 13.1
- 1.2.0.1 /1680642819   Ultimate Level Of Detail
- 1.2.0.1 /877950833    Vanilla Trees Remover

- 1.2.0.2 /1562650024   Rebalanced Industries

- 2.0.0.0 /1758376843   Network Skins 2 Beta
- 2.0.0.0 /1934023593   RM Crossings V2.5
@originalfoo originalfoo added the help wanted Extra attention is needed label Mar 4, 2020
@krzychu124
Copy link
Member

Hmm I thought you group mods by Harmony version, dump to the log and then test for duplicates to show UI?

@originalfoo
Copy link
Member Author

It finds duplicate assemblies by name, then it scans mods (in a basic manner) to find which contian that assembly and that's what gets dumped in to the log.

@kianzarrin
Copy link

kianzarrin commented Mar 5, 2020

I have several questions:
1- what does the main list do?

2- I have NS2 | Hide Crossings | TMPE | remove need for pipes and I get the following log:

[Info]  DuplicateAssemblyScanner v1.1.0.29903
[Info]  Enabled
[Info]  SettingsUI
[Info]  Scanning app domain assemblies for duplicates...
[Info]  # '0Harmony' assembly exists in mods:
[Info]    - v2.0.0.0 /1934023593 'RM Crossings V2.5'
[Info]    - v1.2.0.1 /576997275 'Remove Need For Pipes'
[Info]  SettingsUI
[Info]  SettingsUI

TMPE is also using v1.2.0.1 but it is not listed. Are you printing only one mod per assembly? It would help me with debugging this bug if you print all mods using the duplicate assembly.

3- If I NS2 uses a custom build of harmony V2.0.0.0 and another mod uses the official build of Harmony V2.0.0.0 can you tell them apart?

PS: its hard to tell assemblies apart if they have same name and version. I found this link that uses file hash to tell them apart: https://stackoverflow.com/questions/2735643/how-can-i-tell-whether-two-net-dlls-are-the-same

@originalfoo
Copy link
Member Author

originalfoo commented Mar 5, 2020

  1. What do you mean by "main list"?
  2. The current approach to scanning for an assembly associated with a mod relies on the list of assemblies reported by plugin info for the mod: https://github.com/CitiesSkylinesMods/DuplicateAssemblyScanner/blob/master/DuplicateAssemblyScanner/DuplicateAssemblyScanner/Util/Assemblies.cs#L90
    • If anyone knows a better way, please send PR :)
    • I have no idea why game lists the assembly for some mods and not others
  3. Not currently, I just grab the assembly version and don't do any additional checks. See link in 2. above for method that does that.
    • Could potentially use md5 hash (from older version of FPS Booster mod) or get the Guid's?

EDIT: Added issues to track issues that Kian flagged.

@kianzarrin
Copy link

@aubergine10 What do you mean by "main list"?

Remember you said:

Post details in a comment below and I'll update the main list.


  1. thanks for clearing that up.

I have no idea why game lists the assembly for some mods and not others

Interesting ... I guess its because it does not load duplicate assemblies so it does not register them. This might render that whole md5 hash thing useless if the game does not re-load assemblies of the same version.

@originalfoo
Copy link
Member Author

if the game does not re-load assemblies of the same version

See #9

main list

Edited OP to make it clearer that I'll update the list in OP to include all results so people don't have to read through whole thread. The goal is that we get a list of which mods contain Harmony and (where possible) the version.

@ljp1776
Copy link

ljp1776 commented Mar 6, 2020

Hello, I am not a modder but I noticed a issue with CSL and wanted to help, Thought the duplicates was the issue and it solved one problem, but the main this I have is the game weather a new one was started or an old one was started didn't matter it still get corrupted and I don't know where to begin, cause all the mods that I download seam to corrupt the game somehow. If you could help with suggestions that would be greatly appreciated. well here is the log file.

[Info] DuplicateAssemblyScanner v1.1.0.29903
[Info] Enabled
[Info] SettingsUI
[Info] Scanning app domain assemblies for duplicates...
[Info] # '0Harmony' assembly exists in mods:
[Info] - v2.0.0.0 /1758376843 'Network Skins 2 Beta'
[Info] - v1.2.0.1 /1312767991 'Transport Lines Manager 13.1'
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] SettingsUI
[Info] Disabled

Well it pays to read so I attached the actual log file 🥇
DuplicateAssemblyScanner.log

@originalfoo
Copy link
Member Author

@ljp1776 The settings screen (SettingsUI) created when a mod is enabled (eg. loading cities.exe), and again when a city is loaded, and again if you return to main menu.

Your log shows you've loaded multiple cities in same session, which breaks most mods. Always exit to desktop before loading another city to reset the mods.

originalfoo added a commit that referenced this issue Mar 6, 2020
@ljp1776
Copy link

ljp1776 commented Apr 1, 2020 via email

@nilepereiraa
Copy link

Hi, it's Nile. Here's the DuplicateAssemblyScanner.log that you requested.

@originalfoo
Copy link
Member Author

Content of log above:

[>] = Assembly loaded in RAM, [*] = Mod enabled

0Harmony (4 loaded, 37 mods):
---------------------------------------------------------------------------------------------------------
    Asm Version  MD5 Hash                         /Mod Folder   Mod name
---------------------------------------------------------------------------------------------------------
> * 1.0.9.1      812905134bf7bd868428280d601ac573 /1372431101   Painter
> * 1.1.0.0      9b81c76b538fc2217f8df27d4d76685f /RealisticWalkingSpeed Realistic Walking Speed
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1209581656   Relight
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1393797695   Touch This! Tool 3
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1420955187   Real Time
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1562650024   Rebalanced Industries
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1567569285   Achieve It!
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1586027591   Tiny Segments 3.0
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1591417160   Hide It!
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1637106958   Lock Forestry
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1658679290   Forest Brush
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1674732053   Employ Overeducated Workers V2
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1680642819   Ultimate Level Of Detail (ULOD)
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1691909129   Rotate Brush
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1760945529   Terrain Level Of Detail
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1782814610   Building Variations
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1869561285   Prop Painter
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1899640536   Theme Mixer 2
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /1938493221   Mini FPS Booster 1.0
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /2016920607   RICO Revisited 1.3
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /2025147082   Realistic Population Revisited 1.1.1
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /2027161563   Lifecycle Rebalance Revisited v1.3.1
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /2033714682   Tree and Vehicle Props
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /2037888659   Instant Return To Desktop
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /530771650    Prefab Hook
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /552309905    No Abandonment
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /572888650    Remove Need For Power Lines
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /576997275    Remove Need For Pipes
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /877950833    Vanilla Trees Remover
> * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /912329352    Building Anarchy
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /924884948    Plop Growables
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /928128676    Improved Public Transport 2 [r5.0.3]
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /934994075    Service Vehicle Selector 2 (r5.0.1)
  * 1.2.0.1      09cb0a9d9724f2965a4b73bb590e9a57 /973512634    Sort Mod Settings
> * 2.0.0.0      616b7f80b28b7e80050998e4473d4c31 /1758376843   Network Skins 2
  * 2.0.0.0      616b7f80b28b7e80050998e4473d4c31 /1939169189   RM Crossings 3.0 
  * 2.0.0.0      616b7f80b28b7e80050998e4473d4c31 /2019097300   RM Unconnected Tracks 

@Allystrya
Copy link

I noticed today that Prefab Hook popped up as being no longer compatible. Also since Sort Mod Settings has been updated even though it is seems to be the same version of Harmony it is now compatible which had been been listed as incompatible previously. I also have some some mods not listed above.

I have also not posted about Painter because I understand it is a very old version of Harmony and it is my own issue if I make the choice to keep it. I had originally very briefly asked boformer about Painter on 4/20 on the Harmony page where he mentioned some special code was written "sort of". I did see the output log message of "Stone Age Harmony Skipping this one".

However there has to be a reason it will work completely and totally fine, then will up and stop. It loads just fine but no color changes happen nor do any of my color changes I had show yet there will be no errors in the logs regarding it whatsoever. But then, all of the sudden, it works. All my colors come back etc etc. and then a few days later it stops. He, boformer, did offer possibly loading Painter or Network Skins locally to force one or the other to load first as that may be the reason it sometimes works and sometimes does not. If there was another mod like this one I would never keep it as I despise errors of all kinds and hate incompatibilities. As a detailer I use this mod more than many, if not most, of my other mods. But I understand I may be trying to hang on to something that will just have to be let go :(

DuplicateAssemblyScanner.log

DuplicateAssemblyScanner v1.2.0.38255
[SettingsUI]
Scanning app domain assemblies for duplicates...

[>] = Assembly loaded in RAM, [*] = Mod enabled

0Harmony (3 loaded, 24 mods):

Asm Version  MD5 Hash                         /Mod Folder   Mod name

  • 1.0.9.1 812905134bf7bd868428280d601ac573 /1372431101 Painter
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1209581656 Relight
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1412844620 Realistic Walking Speed
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1420955187 Real Time
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1567569285 Achieve It!
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1586027591 Tiny Segments 3.0
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1591417160 Hide It!
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1658679290 Forest Brush
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1665106193 Skip Intro
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1680642819 Ultimate Level Of Detail (ULOD)
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1689984220 Electric Roads Mod 2
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1761648213 More Advanced District Snapping
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1764637396 Toggle It!
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1899640536 Theme Mixer 2
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /1938493221 Mini FPS Booster 1.0
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /2025147082 Realistic Population Revisited 1.1.1
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /2027161563 Lifecycle Rebalance Revisited v1.3.4
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /2033714682 Tree and Vehicle Props
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /2055972178 Custom Zone Mixer 1
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /530771650 Prefab Hook
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /924884948 Plop Growables
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /928128676 Improved Public Transport 2 [r5.0.3]
  • 1.2.0.1 09cb0a9d9724f2965a4b73bb590e9a57 /973512634 Sort Mod Settings
  • 2.0.0.9 e9b11a56ec5510bc2ef437a7d22f0df9 /2040656402 Harmony 2.0.0.9

CitiesHarmony.API (2 loaded, 2 mods):

Asm Version  MD5 Hash                         /Mod Folder   Mod name

  • 1.0.3.0 33badb7e6f6cd32f08c1ea2761eaa262 /1758376843 Network Skins 2
  • 1.0.4.0 d876fbf0c3c941c800a1aa7baaebf7b9 /1934023593 RM Crossings 3.0
    [SettingsUI]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants