Skip to main content

Making Mods: Getting Started

A high-level overview of what's possible with the Atlan Modding Tools. If you have previous experience modding Doom Eternal, this page explains the critical differences between the two games.

(Page is still a work in progress)

Dark Ages vs Eternal

Almost no differences exist between the Dark Ages and Eternal file system. However, major discoveries have simplified the modding process. Massive issues Eternal modders faced are irrelevant in Dark Ages.

Eternal Dark Ages
Mod loader replaces the files inside of the vanilla game archives. Mod loader builds it's own resource archive. The vanilla game archives are untouched
Modders had to know what archives contained which assets, and replicate this setup in their mods. Not an issue. The modded resource archive is loaded globally, so modded assets will always be usable. Modders don't need need to consider where their assets should be stored.
Adding new assets to an archive, instead of replacing existing assets, could cause instability. Not an issue. Add as many new assets as you want!
Game updates frequently broke mods due to resource archive priorities changing. Not an issue. The modded resource archive will always have the highest priority.

This doesn't make your mods immune to game updates. When updates revises a vanilla game file, you should update your mods to use that new version. Otherwise, your mod will be outdated because it uses a previous update's file as a baseline. The consequences will vary significantly depending on the mod. It may range from nothing happening, to game balance being off, to core mechanics not working, to game crashes.

What vanilla files are modified?

In total, Atlan Mod Loader edits 3 vanilla files:

DOOMTheDarkAges.exe
base/packagemapspec.json
base/meta.resources

The modded resource archive is base/modarchives/common_mod.resources

What is Possible?

Atlan Mod Loader supports modding the following types of files:

Building Your Mod

Before building your mods, you must use Atlan Resource Extractor to obtain the game's files. Please thoroughly read the information on the download page and in it's configuration file.

To obtain,add a file from

Fake Directories

A goal of Atlan Mod Loader is improving the developer experience when making mods. One way it does this, is by making directories optional

Is your mod file nested inside of 5 or 6 different folders? Use @ symbols in the filename, instead of creating literal directories. For example: rs_streamfile/generated/decls/strings/ui/mainmenu/a/b/c/somestring.decl is encased in 9 folders! Eliminate them all by naming your file rs_streamfile@generated@decls@strings@ui@mainmenu@a@b@[email protected]

You can also mix and match! Have a folder named rs_streamfile@generated@decls@strings and name your file ui@mainmenu@a@b@[email protected]. Find a setup and style most convenient for you!

test a@[email protected]

Mod Config. File

Atlan Mod Loader uses darkagesmod.txt as a mod's configuration file. Including a config in your mod zip is optional, but highly recommended!

Here is an example config. file. If you've created mods for DOOM Eternal, most of this will be familiar.

modinfo = {
    name = "Your Awesome Mod"
    author = "Your Name Here"
    description = "Your Mod Description"
    version = "3.0"
    loadPriority = 1
    requiredVersion = 1
}
aliasing = {
    "my_first_decl.decl" = "rs_streamfile/generated/decls/ability_dash/my_ability_dash_decl.decl"
    "my_second_decl.decl" = "rs_streamfile/generated/decls/ability_dash/default.decl"
}
Property Name Description

name

Your mod's name. Displayed in the Mod Manager
author Author information. Displayed in the Mod Manager
description Your mod's description. Displayed in the Mod Manager
version Your mod's version. Displayed in the Mod Manager
loadPriority If multiple mods edit the same file, their load priority is used to help resolve conflicts. Mods with a lower load priority override mods with a higher load priority
requiredVersion

The version of Atlan Mod Loader you must be running to load this mod.

  • Decl mods require a minimum version of 1
  • Entitydef and Logic Decl mods require a minimum version of 2
  • Mapentities mods require a minimum version of 3

The aliasing block is an optional. feature. IsAre the namenames of your mod filefiles extremely long and convoluted? Name itthem something simpler, then use your config. file to declare what's it name should be when mods are loaded!

The format for an alias is "Real Path In Zipfile" = "Game Asset Path"

Example Mod

I've created a sample mod that illustrates the "Fake Directory" and "aliasing" concepts. Download it here to get a feel for these powerful features!