Skip to content

[Feature] Support hosting and downloading custom content packs #1649

@Quantumrunner

Description

@Quantumrunner

Is your feature request related to a problem?

Content creators want to create scenarios that contain content such as tiles and characters that are not included as normal content in Valkyrie.

Valkyrie already allows to create custom content packs but there is now way to host them on a central location and then download them on demand.

With this features it would be easy to create content packs for Mansions of Madness that contain additional tiles and host them on GitHub (same as for scenarios). Furthermore Valkyrie can be expanded with other games as well. It would be possible to create scenarios other games such as the Doom Boardgame, Mice and Mystics or Gloomhaven.

Doom Mod

A mod for Doom already exist for Valkyrie already but needs quite some setup. Users need to manually copy the doom content pack files to their Valkyrie folder. The custom content packs change would automate all of this.

Describe the solution you'd like

In Select content section add an option to download custom content packs. These custom content packs are defined in an additional manifest file that is hosted on google drive (same as the manifest file for scenarios).

grafik

Custom Content Pack download location

After downloading a content pack it is saved in a new subfolder ContentPacks .

grafik

This folder then contains data of the custom content packs as zip file with file extension .valkyrieContentPack

grafik

The new manifest file can currently be found here: https://drive.google.com/file/d/1qGpXhwvQNsSOcT6CAd45RLB-zFI_cEou/view?usp=sharing

When a scenario gets started or the scenario editor get opened the downloaded content packs get unpacked in a temporary file location to load all data they contain (e.g. tiles, tokens...).

Custom content pack manifest file

The manifest file for custom content packs contains the definition of the content pack and where it is located on GitHub (property Url).

Property descriptions

  • format= Same logic as format specifier for scenarios. If the format is higher than the current Valkyrie format version than the custom content pack should not be shown in custom content pack download page.
  • type= Specify in which game this custom content pack will be shown. Possible values are D2ECustom or MOMCustom (for MOM I'm not sure if this is really the value. Please check in code...)
  • defaultlanguage= I can't remember if this property currently serves any purpose...
  • image=Image Uses shown in custom content pack download menu. Uses same logic as scenarios.
  • version=Version string generated to check if a new version a custom content pack is available. Uses same logic as scenarios.
  • name.English=English name shown in custom content pack download menu. Uses same logic as scenarios.
  • description.English= English description shown in custom content pack download menu. Uses same logic as scenarios.
  • url= url where the content pack file is located in GitHub.

Example manifest file content:

# Generated the 2023-01-15T11:06:22'UTC' with 1 scenarios
[Doom]
type=D2ECustom
defaultlanguage=English
image="contentpackicon.png"
version=1
name.English=Doom
description.English=DooM Conversion Kit for Descent
url=https://raw.githubusercontent.com/ValkDes/ValkyrieDTest/main/

The following video shows a working proof of concept:

ValkyrieDownloadContentPacks.mp4

Branch

All changes are available in the following branch:
https://github.com/NPBruce/valkyrie/tree/dev/CustomContentPacks

ToDos

  • Change logic in Valkyrie main menu so that the two files from Google Drive are not downloaded again every time the user goes to main menu. Instead the file should only be checked when the app is started.
    • If this does not get changed google drive will very quickly block the app users IP from downloading the manifest files for multiple minutes ( which then results in HTTP 403 access denied).
  • Add an icon for custom content packs on custom content pack download page.
  • Ask the creator of the doom extension to upload the custom content pack to GitHub (the extension link from my own repo is just for testing and should be removed once this change is ready).
  • Optional: Add possibility to start using Valkyrie D2E and MoM modes without importing any content. This could then be used for users who are only interested in using the custom content packs for other games.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions