foundryvtt / foundryvtt

Public issue tracking and documentation for Foundry Virtual Tabletop - software connecting RPG gamers in a shared multiplayer environment with an intuitive interface and powerful API.
https://foundryvtt.com/
235 stars 9 forks source link

Add tools to create a new system, module, or world package from within the /setup page of the UI, making it easier for users to create modules for packaging and distributing content. #2264

Open aaclayton opened 4 years ago

aaclayton commented 4 years ago

Originally in GitLab by @cjrobinsonubc

Currently, one of the biggest issues I have for building multiple worlds is the inability to easily share content between them without the overhead.

Example of a current workflow: I have World A and World B. Both are on-going worlds for which I create content each week, such as new random encounter scenes, custom monsters, items, etc. For a given week, I may create content for World A that in a few weeks' time I'll then use for World B. In order to get that content onto World B, I have to do one of two things:

  1. Write a module in order to share it over (I consider myself a user though and not a developer, so this is actually out of my comfort zone).
  2. I bypass this currently by creating a Compendium on World A and World B that are of the same name. It seems to populate them properly except for images. Assuming this is whole process is a bug though and shouldn't be relied upon.

It would be great to get a more User-centric workflow that allows me to share a Compendium across worlds without extra work.

aaclayton commented 4 years ago

Originally in GitLab by @cjrobinsonubc

One issue I can see running into with this approach is that if World A and World B are out of sync and have changes you want to keep from both, I don't believe the current suggestion will allow for this without overriding changes in one of the worlds?

I understand the intention to keep worlds independent but as I have more and more additional on-going worlds, it's will become more challenging to keep them all in-sync via module management.

aaclayton commented 4 years ago

Worlds are not using the same underlying DB. The behavior you referenced with the "same-named" compendium working (ish) in multiple worlds is a bug on the server side when you swap worlds during the same runtime. I don't want to introduce any dependencies between worlds - they are designed to be independent. Modules are the right approach - whether it's a lot of overhead or not depends on whether it feels like a lot of overhead to the user. Certainly just copying your compendium data across worlds is also a viable option.

aaclayton commented 4 years ago

Originally in GitLab by @cjrobinsonubc

@aaclayton Since the worlds are using the same underlying DB (are there use-cases that this isn't happening?), is there a way to do this without even creating a module? Some flag on the compendium itself that allows it to appear in both worlds without the module part?

Having to abstract it to a module is still a lot of overhead if you've only added one actor to a compendium that you now want to push that change to other worlds.

aaclayton commented 4 years ago

Good suggestion - I'll re-frame it slightly while keeping the spirit of what you're requesting. Path #1 is the correct approach, it just needs to be made easier for the non-technical user to create a module which contains compendium packs.