Skip to content

Version

Allows the game to automatically load modders' custom resources from the mod directory, simplifying the process for modders to utilize various game functionalities without any additional steps, and with extended localization support.

Ideal for mods that introduce new items, characters, or audio elements, the CWL eliminates the need for creating script DLLs to import Excel sheets.

Using CWL

  • Source Sheets (Character, Items, Races, Talks, etc)
  • Custom Adventurer
  • Custom Merchant
  • Custom Element (Feat, Ability, Spell)
  • Custom Religion
  • Custom Material (New color)
  • Dialog/Drama
  • Book Text
  • Localization Support
  • Sound/BGM
  • Lots of Fixes & Optimizations
    • Unified import process to reduce load time
    • Auto detect incompatible sheet
    • Rethrow excel parsing exceptions with more details
    • Safely load game with invalid modded elements/cards/quests
  • Comprehensive API

CWL is made with community effort and feedback, new features are added upon request.

Example Mod Setup

CWL requires your resources to be placed under the LangMod folder instead of Lang; otherwise, the game will duplicate the entire translation tree into your mod folder. Within the LangMod folder, you can add as many supported languages as you want by naming the subfolders with the language code, for example:

img

When CWL imports the resources, it will import from the current language folder first, effectively addressing the translation issue with the current Elin xlsx implementation, which generally only has JP and EN entries.

JP folder can be omitted, as long as the _JP entries in other lang folders are filled in.

ZHTW will use CN as fallback, while EN being the last fallback. CWL will use whatever is found as the last resort.

Custom Sources

Instead of calling ModUtil.ImportExcel on each xlsx worksheet manually, modders can now simply place the xlsx files within each language folder. CWL will import all the localized sources according to the sheet name that matches a SourceData or SourceLang.

Note that it's the sheet name, not the file name! For example, this will import SourceThing, SourceChara, LangGeneral accordingly.

img

Supported SourceData are:

Chara, CharaText, Tactics, Race, Job, Hobby
Thing, ThingV, Food, Recipe, SpawnList, Category, Collectible, KeyItem
Element, Calc, Stat, Check, Faction, Religion, Zone, ZoneAffix, Quest, Area, HomeResource, Research, Person
GlobalTile, Block, Floor, Obj, CellEffect, Material

Supported SourceLang are:

General, Game, List, Word, Note

You may also split the sheets into multiple xlsx files for organizing. The xlsx file name doesn't matter.

If you want to browse the IDs for in game things/charas/various sources, checkout Elin Sources:

img

Usage Examples

To see some CWL usage examples, checkout the following mods (and more):

Code Localization

You may export the string entries to a General sheet and let CWL import it to LangGeneral, then you can use "my_lang_str".lang() to localize in code at runtime.

img