{"id":17761676,"url":"https://github.com/pathoschild/moddependencyanalyzer","last_synced_at":"2025-04-01T13:43:58.291Z","repository":{"id":137218208,"uuid":"494662953","full_name":"Pathoschild/ModDependencyAnalyzer","owner":"Pathoschild","description":"Generates a directed graph of mod dependencies from your Stardew Valley mods folder.","archived":false,"fork":false,"pushed_at":"2022-05-21T03:13:18.000Z","size":2186,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-07T08:48:53.089Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pathoschild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-21T02:49:15.000Z","updated_at":"2022-05-22T03:10:54.000Z","dependencies_parsed_at":"2023-07-06T12:01:03.165Z","dependency_job_id":null,"html_url":"https://github.com/Pathoschild/ModDependencyAnalyzer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pathoschild%2FModDependencyAnalyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pathoschild%2FModDependencyAnalyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pathoschild%2FModDependencyAnalyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pathoschild%2FModDependencyAnalyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pathoschild","download_url":"https://codeload.github.com/Pathoschild/ModDependencyAnalyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246651505,"owners_count":20811991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-26T19:42:40.759Z","updated_at":"2025-04-01T13:43:58.268Z","avatar_url":"https://github.com/Pathoschild.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿**Mod Dependency Analyzer** is a little utility which analyzes a Stardew Valley `Mods` folder and\ngenerates a directed graph of mod dependencies. The generated `.dgml` file can be opened in DGML\nviewers like Visual Studio to visualize the data.\n\n# Usage\n## First-time setup\n1. Install [Visual Studio](https://visualstudio.microsoft.com/) if needed (the Community edition is\n   free and has all the features you'll need).\n1. In Visual Studio, click _Tools \u003e Get Tools and Features_.\n2. Click the _Individual Components_ tab and install _DGML editor_.\n\n## Generate a `.dgml` file\n1. Open the project in Visual Studio.\n2. Edit the options in the `config.json` file if needed.\n3. Click _Debug \u003e Start Without Debugging_ to launch the app.\n4. Follow the on-screen instructions.\n\n## View the dependency graph in Visual Studio\nFirst:\n1. Double-click the `.dgml` file to open it in Visual Studio's DGML editor.\n2. Click _Layout \u003e Analyzers_ at the top of the DGML editor, and enable _Find Hubs Analyzer_ and\n   _Unreferenced Nodes Analyzer_.\n\nThis will show a quick visual overview of the dependencies:\n\u003e ![](docs/screenshots/dgml-viewer-overview.png)\n\nSpecifically...\n* Content packs are grouped under the framework that loads them. (You can turn that off in the\n  settings.) Dependencies for each content pack are linked to the group for readability, but you\n  can click any content pack to see its specific dependencies.\n* Mods which are required by many other mods are highlighted in red (like Content Patcher).\n* Mods which aren't required by any other mods are highlighted in purple.\n\nFor example, in the screenshot we can see that the entire TMXL Map Toolkit group is unreferenced.\nThat means we could remove TMXL Map Toolkit and all its content packs, and all the other mods would\nstill be loaded fine.\n\nYou can also view specific subtrees. For example, which mods need the _Platonymous.Toolkit_\nframework (directly or indirectly)?\n1. Right-click _Platonymous.Toolkit_ in the graph, and choose _Select \u003e Incoming Dependencies_.\n   This will highlight the _direct_ dependencies.\n2. Right-click the graph background, and choose _Select \u003e Incoming Dependencies_ again to add the\n   incoming dependencies for all the selected mods. Repeat until no more mods get selected.\n3. Right-click the graph and choose _New Graph From Selection_.\n4. That gives us a graph of all the mods which need that mod installed:\n   \u003e ![](docs/screenshots/dgml-viewer-subtree.png)\n\nYou can view similar trees like _Select \u003e Outgoing Dependencies_ (mods needed by the selected mod),\nor _Select \u003e Connected Subgraph_ (every direct or indirect dependency or dependent).\n\n## Export graph to image\n1. [Open the graph in Visual Studio](#view-the-dependency-graph-in-visual-studio).\n2. Click _Share \u003e Save as Portable XPS_ at the top of the DGML editor.\n3. Use an online XPS to PNG tool like [Zamzar](https://www.zamzar.com/convert/xps-to-png/) to\n   convert it into an image.\n\n## Export graph to PDF (Windows only)\n1. [Open the graph in Visual Studio](#view-the-dependency-graph-in-visual-studio).\n2. Click _Share \u003e Save as Portable XPS_ at the top of the DGML editor.\n3. Open the exported file in [XPS Viewer](https://allthings.how/how-to-install-xps-viewer-on-windows-11/).\n4. Click _File \u003e Print_, then choose _Microsoft Print to PDF_.\n\n# For constributors\n## Bundled dependencies\nThe `lib` folder includes two dependencies:\n\n* [DgmlImage](https://www.nuget.org/packages/DgmlImage) 1.2.0.1, extracted from the NuGet package\n  since NuGet no longer supports referencing bundled files.\n* [SMAPI](https://smapi.io/) mod toolkit 3.14.5, taken from the game's `smapi-internal` folder\n  after installing SMAPI.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathoschild%2Fmoddependencyanalyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpathoschild%2Fmoddependencyanalyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathoschild%2Fmoddependencyanalyzer/lists"}