Coder Social home page Coder Social logo

tanninone / dependency-fulfiller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from idcs/dependency-fulfiller

0.0 0.0 0.0 163 KB

A manifest file based dependency fulfilment system for Vortex

License: GNU General Public License v3.0

JavaScript 0.22% TypeScript 99.78%

dependency-fulfiller's Introduction

What is this/How does it work ?

This is an experimental Vortex extension which aims to give users the ability to automatically fulfill mod dependencies and/or share mod setups with other Vortex users. This extension allows users to "Export Dependencies" by selecting one or more mods from the mods table (Only mods downloaded through the Nexus Mods website are supported), Vortex will generate a JSON string containing all the information required to download the mods - this data can then be distributed to other users by standard copy-paste - the other users will then need to "Import Dependencies" through the action bar button in the mods page.

alt text

Mod authors can distribute a generated dependency file with their mods which will immediately attempt to fulfill mod dependencies on successful mod installation (if the user enables this functionality in their settings page). The "Import Dependencies" button on the mods page can also be used to tell Vortex to search for dependency files within the current game's staging folder and attempt to fulfill them that way (for those of us that prefer full control over when the fulfillment system kicks in)

alt text

Servers can maintain a specific mod list and ask their users to "subscribe" to their dependency data which can be pulled as raw data from any hosting service. "Locking" to a certain subscription will ensure that only mods provided by the subscription are enabled and deployed. alt text

Example data:

[
  {
    "archiveName": "BuildShare-5-1-4-0c-1614288309.zip",
    "downloadIds": {
      "fileId": 442,
      "gameId": "valheim",
      "modId": 5
    },
    "allowAutoInstall": true
  },
  {
    "archiveName": "Better Continents-446-0-4-1-1616286717.zip",
    "downloadIds": {
      "fileId": 2343,
      "gameId": "valheim",
      "modId": 446
    },
    "allowAutoInstall": true
  }
]

What it doesn't do:

  • Will not export mods sourced outside of NexusMods.com
  • Will not export mods with orphaned/missing download archives
  • Will not export manually added mods unless the mod's metadata is populated (use the "Guess Id" buttons to have Vortex identify your mod and pull the metadata for you)
  • The auto-fulfill on install functionality will not use requirements defined within the mod page! (for auto-fulfill to work, the mod needs to have a ".vdeps" file included by the mod author)

Potential future enhancements:

  • Add ability to export/import external dependencies
  • Add ability to export/import mod conflict rules
  • A more robust downloading experience for non-premium users
  • Add metadata resolution to automatically detect manually added mods (sourced from NexusMods)

If you have any other suggestions feel free to create a github issue for it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.