We’re back with our second update of 2024. We’re finally releasing the long awaited campaign import feature!
Campaign Import
The long awaited campaign import feature is now available for our Wyvern and Elemental subscribers. We’ve spent the better part of the past 6 months working on this, added multiple new servers to handle the workload, and did our best to prepare for this release.
All campaigns have a Import section now under Settings > Import. Importing a small sized campaign with 1000 entities and 200 images takes about 3-5 minutes depending on how busy the servers are. Errors in the import process result in partial imports, rather than no import, to avoid locking up the databases during multiple minutes.
Since campaign imports depend on the campaign export feature, and those don’t contain all the data of a campaign like permissions, users and roles, that data isn’t available to be imported.
We’ve prepared a documentation that contains more details about how the process works and what is and isn’t included.
Character sheets get javascript
Artisans on the marketplace can now include javascript with their character sheets. On a technical note, this is included directly on the page render in a script tag, meaning it gets executed separately from Kanka’s javascript. We will not accept any javascript that uses Kanka’s jQuery as we plan on removing that framework later this year, and would rather people use vanilla js. Overly complex js that we can’t understand will also get rejected to not negatively impact the experience for our users.
With the introduction of javascript, we’re also removing the HTML purification. This means that your HTML will be saved as is (while still removing any PHP stuff). Our marketplace artisans no longer need to battle with making table loops, html attributes from variables, and any other headaches previously caused.
General improvements
When viewing a calendar’s reminders subpage, it is now possible to bulk edit some fields, and bulk delete reminders.
The random widget now allows selecting an entity from all modules rather than forcing a specific one.
Pinned attributes get the live edit feature.
Family trees can now add a new founder. This injects a new character and relationship as the parents of the existing founder.

It’s now possible to add a tag directly from the entity header.

Entities get a new experimental markdown export alongside the existing json export. This is only available for individual entities and not as a bulk action due to performance issues.

When viewing a map’s layers subpage, the layer’s image is visible as a thumbnail.
Inactive accounts now have a 18 month grace period instead of 12 before being deleted along with all of their data.
Tags get a new data-tag-id and data-tag-slug property in various interfaces.
API changes
The family tree is now available as a GET from the API.
The API now has a bulk creating endpoint.
When creating or editing attributes of an entity, the entity_id is no longer required and assumed from the url instead.
Bug fixes
Closing various dialogue popups by pressing the X icon works again.
The entity transform interface now lists module alphabetically and using the campaign’s custom module names.
Various sub-tables now have the entity tooltip on hover.
Importing a content pack once again properly imports the images for entities.
Fixed a few bugs with setting the focus point of an image in the gallery.
The created by property is once again properly set when using the quick creator.
That’s it for the overview of this 2.3 release. We’re currently hard at work on the fulltext search feature and other fun things you can see on our roadmap.
As always, thanks to our amazing subscribers for making this huge updates possible! Come join us on our Discord to get early sneak peaks of future updates.

