Skip to content
This repository was archived by the owner on Jun 17, 2024. It is now read-only.
This repository was archived by the owner on Jun 17, 2024. It is now read-only.

User addon system. #40

@DreamyCecil

Description

@DreamyCecil

There should be a system for supporting user-created addons (such as weapon sets).

All of the addons should be loaded in upon starting the mod and should be toggleable through a new special menu.

Concept

Addons can be anything that's not particularly used by the game or mod themselves, such as JSON configs (like current weapon sets). They can be of any type and depending on their type, they can be used in various specific-to-addon ways.

Then, these addons are a part of "addon packs", which are basically just configs with metadata about addons. These addon packs have a display name, an author and a specific version assigned to them, as well as dependencies and addons themselves.

Addon packs should look something like this:

{
  "Name" : "Default Weapon Set", // Addon display name
  "Author" : "Dreamy Cecil", // Addon author
  "Version" : 1.0, // Addon version
  
  // Dependencies as 32-bit hashes that can be unique to each addon pack and generated from their metadata
  "Dependincies" : ["AABBCCDD", "01234567"],
  
  // Specific groups of addons that this pack includes
  "Addons" : {
    // Right now the strings can just signify the folder name within "Configs/WeaponSets/" and "Configs/AmmoSets/")
    "WeaponSets" : ["Default"], // "Weapon Set" addons within this addon pack
  },
}

When specific addon is created upon loading in the pack (let's say, a "Default" weapon set), it will be added to a static map of addons of that specific type for later generic usage (such as verifying which weapon sets are available upon loading them for the game).

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew featuretopic:addonsRelated to dynamically loaded user-created addonstopic:customizationRelated to mod customization

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions