eXaminator / kanka-foundry

FoundryVTT module to import information from kanka.io
MIT License
22 stars 9 forks source link

Allow importing of characters as actors #3

Open eXaminator opened 3 years ago

eXaminator commented 3 years ago

I have to look into this. This would probably require some configuration to define how to map fields. It would also be great to allow mapping of any character sheet field with any kanka attribute.

brockhaus commented 3 years ago

The mapping could be done in Kanka. Maybe by using a char template having the same attributes as the charsheet used by the game system? The benefit of having that in Kanka: You don't have to configure it in all game worlds in Foundry you might have for the same charakters (I open a new game world for each campaign chapter in order to reuse the worlds for other groups). That way you can simply install your module and import.

eXaminator commented 3 years ago

Thanks again for your feedback! I have been contemplating this issue every now and then ever since I created it.

The biggest problem is, that I want this to be system agnostic. So people should be able to use it with 5e, PF, SWADE or whatever else they play. At most I'd add some "predefined" templates for certain systems, but I actually don't want a dependency to other modules (or systems) to maintain this way.

The "problem" about Attributes in Kanka is, that they are by design "flat". So you can't nest them (the best you have are "sections", but those are basically just headlines). Also you probably don't want your attributes to have technical names that map to a Foundry system like attributes.strength.value or the like. This would also necessitate that you know what the value must be, even outside of foundry (which is already a pain in foundry itself).

That is the reason I'd prefer to do some kind of mapping inside of foundry – because I have the possibility to give the user all the info they need (up to a certain degree). But I hear you and your use case. I also see the need to make it simple to reuse configurations between worlds with the same system, in whatever form that configuration might be done.

That being said: I'm not sure I will ever implement this feature for multiple reasons.

  1. It is already a bit of work to maintain this module as it is.
  2. The difference in how systems handle characters is overwhelming, especially when we also take stuff like different kind of items into account.
  3. It would probably necessitate a 2 way sync, which can become a pain quickly. Especially for stuff that can't be mapped.

So I will probably not do this in the near future at least. But I keep this (and the other similar) issues open, because I do see value in those features (and some of those other issues, like syncing items, might actually be more likely for me to start with at some point, because they tend to be simpler) and want people to know that they are at least on my mind.

And depending on how foundry / kanka evolve over time, or depending on what ideas I (or others) come up with, it might become a lot more feasible and I might tackle this feature.

crimsonknave commented 2 years ago

Would it be possible to see if an actor with the same name exists and insert a reference to that actor into the journal entry? Ideally in the top section with Type and Location. Then, the gamemaster can go in and manually link to the journal entry in the actor and be able to bounce back and forth. It's a bit clunky, but I'd hope that it's not that much extra work.

eXaminator commented 2 years ago

This is actually kind of possible. You can add an attribute to the character in Kanka (let's call it "Actor") and add a Foundry-Link as a value (like @Actor[E2N5voHMjnZXuAdv]). If you star this attribute it will be displayed on the first tab in Foundry.

There are a few downsides to this:

crimsonknave commented 2 years ago

Just tried this, it works well enough for my needs, thanks!

As you suspected you can't use long form links, at least I wasn't able to figure out a way to escape the curly braces.

eXaminator commented 2 years ago

I wasn't able to find a way either. I'll bring this up with Kanka, but I can't guarantee anything. :)

Eb- commented 2 years ago

Some foundry systems such as Pathfinder 2e support the import and export of characters.

Kanka now supports json attachments for characters. Could simply load this character's associated json file (or choose from a list of json files on the character) and then import the character using the system's import functionality.

Can even expand this, allowing for saving a character to Kanka directly, which is exceptionally useful for Pathfinder Society games / Characters who hop between Foundry instances

frantz2501 commented 2 years ago

I would be interested to develop it for a specific game system not yet existing in foundry (I would share only in private due to legal issues). How would you address kanka -> actor import ? I would try to have a shot.

eXaminator commented 2 years ago

I really can't tell you yet tbh, because I haven't come up with a great idea – especially not for single systems.

If you want this to work in a fork of yours for just a single system, you might get away with copying some of the stuff that's already there, but instead of creating new Journals, you create new Actors and map specific Attributes on your Kanka entity to their counterparts in the Foundry Actor – maybe with some type conversion if necessary. You can probably skip the part where the whole Kanka entity is saved as a flag on the foundry document, because you would already have most of the important stats on the Character anyway.

Then you would probably want to listen to changes on the actor and update the entity in Kanka - something I haven't implemented yet.

What I would ideally want to do someday, is to allow GMs to provide their own mappings and maybe add some default mappings based on Foundry Systems and maybe Kanka-Marketplace-Sheets.

frantz2501 commented 2 years ago

thanks for the feedback ! Indeed, as you mentioned earlier, I will need to define a mapping into kanka beforehand. Not a problem for me but it is a hassle. Point is, kanka marketplace is not as important as foundry's. Maybe later. I will go this way.