View Full Version : Zeno Content Editor - Knowledge Thread

07-08-2014, 02:31 PM
As all you aspiring modders know full well by now, the Zeno editor has become available for public use along with the release of the second patch of TBS1 (v2.6.45+) (http://stoicstudio.com/forum/showthread.php?3314-The-Banner-Saga-Patch-2-Release-Notes-2-6-45).

I mean to use this thread as a "Knowledge Base" for Zeno, with user-to-user help as well as the invaluable input from John and the rest of the dev-crew. This thread will inevitably go into modding details, that spin off the main topic, but keeping it as targeted on Zeno as possible would be better.

I'll keep this first post nice & clean and try to maintain it as we go. Stoic can edit it anytime, in order to update the key info and/or include any parts they deem should be "stickied" up front.

A quick-start guide on Zeno (and modding) has been composed by John here: "Modding The Banner Saga" (Google Docs) (http://bit.ly/tbsmodding), with more info "TBD". I will copy-paste some stuff from that guide here, too, in due time.

07-08-2014, 02:31 PM
Disclaimer: This post is a work in progress (WIP)

Note: Text highlighted in red is what I am not certain about and will require feedback from John/Stoic.

Here is a list of the top-most Zeno modules:


Here is a short description of what they do, from left to right:

Log: This is a simple text-file that records all[ Zeno operations. The "type" of the record entry is on the left, between the square braces, e.g [ERROR] or [INFO]. When something went wrong, you will see this turning red. What I don't like is that there are no time-stamps... :confused:
Compiler: This module compiles the edited/modded assets and turns them into a format that is "playable". You should use this when you're done editing/modding something, and want to play-test it.
Decompiler: This module de-compiles assets. This can be useful, for example, if you were given the a mod by a friend, and you wanna edit it but you don't have the "source" files. So, using the "compiled" files, you can create the "source" ones, edit them, and then re-compile them.
Item: This modules edits items. Pretty simple/basic modding! It is suggested than one starts modding from here.
Entity: Entities are all things that "exist" in the game, i.e. the "living" heroes/characters/units. This includes hero-characters (e.g. Yrsa, Rook etc), NPCs (e.g. Jorundr, Serpent etc) and enemy-units (e.g. Dredge Scourge, Thrasher Champion etc). See the following module description, Class, or more details.
Class: Classes refer to the generic unit types, e.g. Thrasher, Hunter, Siege Archer etc. Classes are abstract "archetypes" used to define the fundamental properties of a "higher-level" class or an entity (i.e. an "object of a class" when speaking in terms of OOP). Think of Classes as "molds" use to make something, and then "personalize" it, in order to give it a "character". That means that all entities (e.g. a specific Hero, say Iver), in their conception, belong to a specific Class (e.g. Iver is a Strongarm) and they "inherit" all their properties, e.g. stats, abilities, movement ranges etc; however, you can then edit the properties of an entity, to make them different from the "archetype" (mold) it was created from.
Ability: This module is not usable in this version of Zeno. Hopefully in a future release? Note: I have drafted a description of how to mod/edit/create abilities, but I haven't had the time to publish it yet. The problem is, mainly, that the abilities depend a lot on the combat's binary-code (not editable by use "mundanes"), which is a WIP by John/Stoic...
Anims: Here you can edit the animations of unit actions, frame-by-frame.
Heraldry: Here you can edit the Heraldry of the game. For the moment, I can only see the five default crests, i.e. I don't have access to the KS-backer submitted crests.
JSON: This is a simple text-editor that allows you to change stuff directly into JSON and CLIP files, bypassing the fancy GUI features offered by Zeno. This is for "deeper-level" moding/editing and it can be helpful when editing stuff not "officially supported" by Zeno, e.g. abilities.
Convo: Here you can edit dialogues/conversations & pop-up/events. This works together with Inkle-Writer, the nice tool used to create the massive amounts of text and the branching-story options of the games. More details later.
Saga: This edits the MASTER "files" of the game, that tie everything together. There are many sub-modules that require deep explanation, so this will have a post of its own.
Scene: Here you edit the "scenes" of the game. Scenes include battle-maps (top/isometric view), long- and close-world/travel (side-view) and, probably dialogue backgrounds and cut-scenes too (?).
Localization: The last module to be included in Zeno is this. Here, you can export [i]all localized text into a CSV (comma separated value) file, that can be easily edited by any third-party software, e.g. a simple text-editor like notepad++. Note: I am not sure if that's the only way to edit the localized content. For example, is it possible to "load" the French localization assets in Zeno, and then use Zeno to edit the dialogue-assets or the entity-assets? We will require some feedback from John on how to do this...

07-12-2014, 01:58 AM
John (and fellow modders),

I will start with a few questions on some fundamental topics of using Zeno. This is mostly meant to make sure that one does not accidentally break the mods he's labored upon, by a misclick or a misunderstanding :rolleyes: Before posing my questions, I will be explaining some things; do correct those "explanations" if they are mistaken (or too ambiguous).

1. Mod Content DLC: Practically, this downloads & installs another folder in the main-game directory, e.g. \SteamLibrary\steamapps\common\tbs\assets-src. This folder seems to be an "image" of the regular \assets directory, with two differences: (1) All the *.JSON.z and *.CLIP.z files are now decompressed, thus dumping the .z-extension, (2) there are two "manifest" JSON files in the root directory, for "saga1" and "common" assets; I can't exactly explain what those "manifest" are, but, in a sense, they tell Zeno how all the assets are structured and put together. The questions: Are the files of this DLC (i.e. all files in the \assets-src directory) automatically synced/updated each time the game updates to a new build/patch? I don't think that the content of this directory is meant to be modified, ever, right? I believe it serves as a "un-compiled backup" of the original game files, re-storable in case one breaks the game with a mod...

2. Creating mods with Zeno: Following the directions of your quick-start guide, I created a mod with the id "aleo_test". This process, when completed, created what seems like a copy-paste image of the \assets-src and \assets directories, in some remote-directory that I designated, e.g. C:\aleo_test\. The questions: Those two remote-directories must be the ones where (1) Zeno editor looks for the "de-compiled" asset-src files, opens and edits and saves them, and (2) when the mod is ready then Zeno can "re-compile" them in the asset-file format that is "load-able" into the game. The content of both those two remote directories (C:\aleo_test\assets-src and C:\aleo_test\assets) is the one that is meant to be edited, right? Once a lot of mod-work is done, one should be careful not to overwrite the remote-directories by accidentaly performing another "copy-paste" into the same remote-directory, i.e. using the same mod-id (e.g. aleo_test).

3. Zeno Compiler / Decompiler: This refers to the two "modules" of Zeno, 2nd and 3rd tab in the GUI. My question is this: Which are the "Source" and "Target" file-sets for these two operations? In my understanding, it is the two remote-directories (e.g. C:\aleo_test\assets-src and [.]\assets) and surely not the two main-game directories (\SteamLibrary\steamapps\common\tbs\assets-src and [.]\assets), right? Also, modding/editing is done on the uncompiled assets-src; if one accidentally does a "Decompile All", all his changes in the uncompiled files will be overwritten?

4. Multiple Mods / Selective Exporting: In case one wants to make, and eventually export, several different mods, must he make multiple mod-ids? That seems bad as multiple voluminous remote-directories (~4.5GB) will be created... Is there a possibility to export only a portion of a mod? For example, export only mods on the dialogues, or export only new heroes and added scenes/battles? I am asking because the Zeno-compiler (first step towards exporting a mod) does not seem to offer this "selectivity"...

5. Mod installation: How do we "install" a mod on a computer with no Zeno or Mod-Content DLC installed? Do we copy the files over directly into the game's compiled assets directory (and manually back up the originals), or is there a "better" way to do this? I am asking this, because if a mod contains mostly edits on the data-files (JSONs) and additions of that type, i.e. no new visual art etc, then it's probably gonna be really "light" byte-wise; no need to bloat the "mod-receivers'" disks with duplicates of all the compiled and uncompiled asset-trees...

OK, here's where I'll stop for today :) Thanks for your time. I hope this wasn't too confusing... :o


EDIT-- I added a #5 in the list of questions/remarks

07-21-2014, 01:58 PM
Here is some comments/questions/issues on my first "hands-on" experience with Zeno:

Apparently, the live-rendering of some SWF-animations while in "Entities" tab produces errors (URLResourceLoader.onLoadFailed file:///[*path*].portrait.swf: ErrorID 2032) that subsequently prohibit the entities-list to load properly, i.e. nothing appears in the bottom-left text box. I have to quit-and-restart Zeno for it to work.
Adding new image files (e.g. a dedicated portrait for Skalfing chieftain) is not taken into account by the mod-exporter, i.e. new images are not recognized/copied to the mod folder. For the record: adding them in the appropriate folder in the compiled /mod_id/assets (not assets_src!) directory allows me to use them normally while testing the mod; I have of course declared the change in the "Entity" & "Class" tabs. The problem is just with the exporter...
The mod-exporter always acts on the "safe side" and copies many more files than were actually edited. For example, my changes above were just on 3-4 json files, and the exporter copied like several 100s of files.
It seems that many things that are editable directly inside the JSON files cannot be done in the Zeno environment. For example, in the "Scene" tab: removing the tutorial interface from the great-hall tutorial_battle, or assigning specific stats (that bypass entity-declared ones) for spawned units etc, is not possible.
I was hoping that there would be a way to edit the SWF files for animations through Zeno; it doesn't seem possible... That would be useful to create new character portraits, or easily recolor battle-unit sprites (and then export them to the sprite-sheets used by the game).

I know that some of those questions will be answered once you are able to produce a more thorough Zeno-documentation, but I couldn't wait any longer! Thanks for your time & feedback. :)

10-24-2018, 11:46 AM
Really great stuff ! Thank you very much for trying to set this thread. Unfortunately, it didn't seem to spread. :-/
I tried nevertheless, using Stoic guide on Google docs, and despite creating my mod accordingly, all my tabs except Log and Compiler remain greyed.

10-24-2018, 01:26 PM
Hello there! Wow, first post after 4 years :) I had actually forgotten about this thread... :o

Well, I actually recommend against using the Xeno editor, as it is quite heavy and hasn't been properly updated in a long time. I propose using the basic TBSdec decompiler/compiler for straight-up editing of the data files (JSONs).