Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Axis & Allies 1942 Online is now available in Early Access! Buy it on Steam. The FAQ is available.
New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

[MOD] DLC Builder for Enhanced Edition v2.x games

argent77argent77 Member Posts: 2,764
edited September 2017 in General Modding

Download: DLC Builder v3.0

Latest beta: DLC Builder v4.0-beta4

This mod allows you to create a DLC archive out of a modded game installation. It can then be used to mod a clean game simply by dropping the file into one of the supported DLC folders. That way you don't have to go through the time-consuming and error-prone process of installing one mod after another if you simply want to reuse a known mod configuration. It can also be used to quickly synchronize multiple game installations for multiplayer sessions.

The mod automatically detects files that have been added or modified by mods and includes them in the resulting DLC archive. Files in extra folders (such as movies, music or scripts) that have been added manually or were installed by platform-dependent batch or shell scripts cannot be detected properly and must be placed into the working folder of this mod if you want to include them in the DLC archive as well. See the included Readme for more information.

An expert mode allows you to control more aspects of the DLC building process.

The resulting DLC archive can be easily installed on any game installation by dropping it into one of the supported DLC locations.

Supported DLC locations:
1. [Game install folder]/workshop (accepts only DLC archives with ".mod" extension) <- highest priority
2. [Game install folder]/dlc
3. [Game install folder]
4. [Documents folder of the game] <- lowest priority

Important:
The game version of the target installation should match the version of the game where the DLC archive has been created or you may encounter missing string references or outdated lines of text. It mainly depends on how many changes have been made to the dialog.tlk of the target version of the game.

Post edited by argent77 on
AstroBryGuysmeagolheartPeccamf2112FlashburnGrammarsaladJuliusBorisovButtercheeseDeejunk11hook71CrevsDaakkaguanaRavenslightGodSssiksseilorelminsterMantis37AndreaColomboMirandel
«13

Comments

  • AstroBryGuyAstroBryGuy Member Posts: 3,414
    edited June 2016
    Cool beans!

    How does the game handle two DLCs in the same priority location? (Just out of curiosity...)

    EDIT: And does the DLC take precedence over the override folder or vice-versa?

  • argent77argent77 Member Posts: 2,764
    edited June 2016
    DLCs are loaded in the order as described in my first post. Multiple DLCs in one folder are loaded in alphabetical order (i.e. zzz.zip takes precedence over aaa.zip).

    Resources in DLCs are handled like in override folders. Resources in DLCs of higher priority override resources of same name in DLCs of lower priority. The dialog.tlk is loaded from the DLC of highest priority, or is supposed to. There is currently a bug which may load the dialog.tlk from an arbitrary DLC of lower priority. But I have only noticed this effect when there are four or more DLCs present in the game (which is unlikely).

    Resources in regular override folders should always take precedence over files in DLCs.

  • smeagolheartsmeagolheart Member Posts: 7,088
    Amazing, this could help people who are trying to figure out why their text is messed up after every patch.

    If you make a dlc you just need to put the dlc back in the appropriate folder after an update and you'd be good to go.

  • argent77argent77 Member Posts: 2,764
    Yes, you can put it in any of the DLC folders mentioned in my first post. Personally, I would recommend to place it into the "workshop" folder, so it can override files from the SoD DLC in GOG or Steam installations.

    It might also work for mobile game versions (the DLC file format should be compatible) once they have access to v2.0 of the game.

    AstroBryGuyGod
  • CahirCahir Member, Moderator, Translator (NDA) Posts: 2,044
    Is it working for Beamdog version or only Steam or GoG versions?

  • argent77argent77 Member Posts: 2,764
    It's working for all games patched to v2.0 or higher, regardless of distributor.

    JuliusBorisov
  • CahirCahir Member, Moderator, Translator (NDA) Posts: 2,044
    Great, super cool tool you gave us then :)

    JuliusBorisovCrevsDaak
  • smeagolheartsmeagolheart Member Posts: 7,088
    edited June 2016
    I guess people could distribute their mod as dlc too potentially...

  • argent77argent77 Member Posts: 2,764
    Problem is that the dialog.tlk is not overriden in a cumulative way. Only the latest instance of the dialog.tlk is used by the game. You can use this method for distributing whole preconfigured mod compilations, however.

    What you suggested may work for mods that don't add anything to the dialog.tlk though.

    smeagolheartAstroBryGuy
  • smeagolheartsmeagolheart Member Posts: 7,088
    It sounds like Beamdog has planned never to do more than one dlc in that case if there is that issue with dialogue.tlk.

    Guess we won't be seeing additional companions or any like that then...

  • argent77argent77 Member Posts: 2,764
    It's more of a conceptual issue. How do you want to merge several dialog.tlk files without the danger of having two or more strings using the same string reference? I don't think Beamdog can do much in this case.

  • subtledoctorsubtledoctor Member Posts: 11,212
    I guess you can run ModMerge on the game that has a dlc in it, then mod the game, then run this utility to make a super-dlc where the .tlk files are combined.

    In any event this is absolutely bonkers awesome. Good job, man. I can't wait to see if I can use this to install a fully-modded EET install onto the iOS version, once 2.x is released there...

    GrammarsaladGod
  • argent77argent77 Member Posts: 2,764
    edited June 2016
    I have updated the first post to emphasize a weak point of the DLC system.

    DLCs may not always work correctly if the target game is on a different patch level as the game where the DLC has been created. This is caused by changes made to the dialog.tlk which is overridden by the instance found in the DLC. As a result you may experience missing or outdated lines of text.

    From what I can see it fine to use DLCs made on BG2EE v2.2 for BG2EE v2.3 targets as the updated dialog.tlk merely points out that Belhifet is a devil and not a demon. BG:SOD v2.3 added new lines however, so I would recommend to recreate the mod installation manually in this case.

    JuliusBorisov
  • argent77argent77 Member Posts: 2,764
    edited June 2016

    New version: DLC Builder v2.0

    This version takes care of new or updated files in extra folders automatically (such as movies, music or scripts). There is no need to manually place files into the working folder that should be included in the DLC archive. Exceptions are files that have been added manually without using WeiDU or files that have been installed by platform-dependent batch or shell scripts. But only very few (and old) mods are still using this method.

    First post has been updated.

    Grammarsaladmf2112JuliusBorisov
  • argent77argent77 Member Posts: 2,764

    New version: DLC Builder v2.1

    I have added an expert mode to the mod. It allows more control over the DLC building process, such as whether to scan extra folders for modded files automatically or whether to include the dialog.tlk.

    mf2112JuliusBorisov
  • argent77argent77 Member Posts: 2,764

    New version: DLC Builder v2.2

    Fixed: The DLC building process could fail when the dialog.tlk exceeded a certain file size limit.

  • StefanOStefanO Member Posts: 336
    All my parties use an individualized set of mods and randomness. Using your DLC builder makes the handling of the different parties very easy and elegant.

  • argent77argent77 Member Posts: 2,764

    New version: DLC Builder v2.3

    Changes:
    • Worked around a WeiDU bug which causes a number of commands to fail on files of over 1 GB size.
    • Added code to prevent WeiDU from creating unneeded backups of processed data on the harddisk.
    Added a note about file size restrictions to first post.

    smeagolheartJuliusBorisov
  • argent77argent77 Member Posts: 2,764

    New version: DLC Builder v3.0

    Another day, another update. This release allows you to create DLC archives out of mod installations that are bigger than 2 GB. It will automatically create multiple archives if needed to keep file size below the magic 2 GB limit. More about it in the Readme.

    JuliusBorisov
  • argent77argent77 Member Posts: 2,764

    New version: DLC Builder v4.0-beta

    Note: I've labeled this release as beta only because it requires the latest WeiDU beta to run.

    Lots of changes:
    • Created a project on Github: https://github.com/Argent77/A7-DlcBuilder
    • Added support for BIFF archives created by mods, which allows you to include even big mods which create their own BIFF archives (such as EET or Generalized Biffing).
    • Include language-specific override folders into search for modified files.
    • Improved search for modified files in extra folders (e.g. music or movies).
    • A backup of the engine.lua together with a short text file will be placed into the selected DLC folder if the file has been modified.
    • Changed the method how to manually include resources that have not been installed directly by WeiDU commands (see readme for more information).
    • Various minor bug fixes.

    JuliusBorisovGrammarsalad
  • ThelsThels Member Posts: 1,326

    It sounds like Beamdog has planned never to do more than one dlc in that case if there is that issue with dialogue.tlk.

    Guess we won't be seeing additional companions or any like that then...

    Not specifically true. If they made a second expansion, they could simply include a dialog file that has all the text from the base game, all the text from SoD and all the text from the second expansion in the second expansion's dlc file, and make sure that one is loaded last.

  • smeagolheartsmeagolheart Member Posts: 7,088
    Sure but what if they added two expansions? They'd had to include all strings with both. Anyway, I'm sure you see what I mean and it's tough way to implement things...

  • ThelsThels Member Posts: 1,326
    Yeah, I'm not saying it's optimal, but it shouldn't be a problem to keep a working dialog file, if all involved parties communicate together.

    Mods have the problem that they have no idea which other mods may be installed. Expansions don't have that problem, as there aren't any Expansions created that are unaware of each other. One Expansion is always going to be aware of the other's existence, and will be sure to be compatible with the older Expansion.

  • argent77argent77 Member Posts: 2,764
    edited August 2016
    The way DLCs are implemented is far from perfect, but probably the best they could do without breaking compatibility with earlier game engine revisions.

    If Beamdog were to release a second (or third) DLC they would indeed have to put every line of the main game and every DLC into each DLC's dialog.tlk. They would also have to ensure that for each game or DLC there are enough empty string slots available for new lines added by future game patches, so they don't interfere with the ranges reserved for the respective DLCs. That's probably a nightmare to support and keep up to date.

  • StefanOStefanO Member Posts: 336
    edited October 2016
    The latest 4.0-beta will not install on macOS 10.12 (sierra) because both the weidu and 7za binary are upx packed. upx packed binaries do not run on sierra.

    In order to make the mod work I replaced the shipped weidu binary with the latest weidu-240 and uncompressed the 7za binary. Failing to do the second is frustrating: The mod seems to run flawlessly but fails to produce the DLC file. Without any error message.

  • argent77argent77 Member Posts: 2,764
    Thanks for the pointer. I'll publish an update with the fixed binaries shortly. There are still some (minor) issues that have to be solved yet, so it will be another beta.

  • megamike15megamike15 Member Posts: 1,854
    edited October 2016
    what workshop folder? do you mean make your own or does the mod make one? i don't see one in my bg1ee steam folder.

    edit. nvm figured it out. it did not work anyways. used 3.0 the workshop one mad a audio file and zipping it did not have any files in the override folder.

  • argent77argent77 Member Posts: 2,764
    edited October 2016
    @megamike15 Version 3.0 of the mod does not support manually added files to the override folder yet. I've added a workaround in the current v4.0 beta to consider override files listed in a simple text file, but that should only be a temporary solution.

    I plan to automatically detect and add any files manually placed into the game's override folders (i.e. files not installed by WeiDU mods). It's one of the issues I want to solve before releasing a new stable version.

  • argent77argent77 Member Posts: 2,764

    New beta version: DLC Builder v4.0-beta2

    Changes:
    • Updated 7zip binary to fix compatibility issues with macOS Sierra.
    • Updated WeiDU binaries to v240.

    RavenslightStefanOJuliusBorisovGrammarsalad
  • StefanOStefanO Member Posts: 336
    One of my builds failed with
    ERROR: Unix.Unix_error(20, "stat", "music/K#blank.mus")
    PLEASE email the file SETUP-DLCBUILDER.DEBUG to Argent77
    Since @argent77 provided no email address, I post the debug file here.

    For completeness the weidu log is posted as well.

    The Dlcbuilder works on most of my games (aka combination of mods) and on some not. What triggers the error? No clue.

Sign In or Register to comment.