Since this is a Modder's Resource, I assume that you are familiar with how entities works and had at least some exposure with assetsinfo. If you need help with any of those, ask us in the DOOM Eternal Modding Hub: https://discord.gg/QhSyGVdJh8 If you are just getting started and want to learn how to make mods, see the DOOM Eternal Modding Wiki: https://wiki.eternalmods.com -----CUSTOM AI RESOURCES README----- The opening encounter in Reclaimed Earth is used as an example for each Custom AI. The rest of the level is unchanged. You can load the .zip file as a normal mod and load Reclaimed Earth to experience a demonstration of the Custom AI. The encounter in use is called "ai_encounter_manager_dlc1_opening" and it is found at the bottom of the entities file, along with the additional Custom AI entities. -----Folder Directories----- e6m2_earth_horde_patch1 - Contains the Custom AI decls. This folder is used because of its high patch priority. - Leave everything as-is unless you want to tweak the Custom AI. - If you are adding multiple Custom AI, it is best practice to load each Custom AI in its own folder. - You can change the folder the Custom AI uses if "e6m2_earth_horde_patch1" is already in use. Make sure the folder has a high patch priority to get all decls to load. - If you are changing the folder name, be sure to also rename "EternalMod\assetsinfo\e6m2_earth_horde.json". - Find the highest patch priority for the latest version of DOOM Eternal here: https://docs.google.com/spreadsheets/d/10R5fWKGyqPuCPdueqKeCYycHETSHg0QeFOCbWIQZUCY e5m2_earth_patch2 - Contains the entities file for Reclaimed Earth and is the level's highest patch priority. - e6m2_earth_horde_patch1 and Custom AI assets are loaded into this level in "EternalMod\assetsinfo\e5m2_earth.json" - If you are adding multiple Custom AI to a level, be sure to ADD the resources and ALL custom assets into the assetsinfo JSON file. - Be sure to have all the proper naming for the level you plan to use. gameresources_patch1 - Contains the Codex strings. Currently only in English but feel free to translate them to other languages. - Contains a modified Codex Tree decl to load the Custom AI's codex into TAG2. warehouse - Contains the Custom AI textures. Most Custom AI textures replace BATTLEMODE demon skins because the textures load more consistently. - Be wary if you are using any mod that brings a BATTLEMODE demon skin into single player. They may look messed up. warehouse_patch1 - Contains the Custom AI codex assets. - Leave everything as-is unless you want to tweak the codex entries. - It's fine to add multiple codex entries for Custom AI into this folder. -----Codex Entry Info----- In order for a codex entry to show up in your level, the entry must be present in whatever campaign your level is present in (Campaign, DLC1, DLC2, or Horde Mode). Given that the example level (Reclaimed Earth) is a DLC2 level, this resource by default adds the custom AI's codex to TAG2's codex tree. You will have to manually add the custom AI to the array of codex entries. Make sure the custom AI's codex is in their proper demon class group (Fodder, Heavy, Superheavy, or Ambient). If your level contains multiple custom AI, add all of their codex entries into the same codex tree decl. Codex tree locations: - Campaign: "gameresources_patch2\generated\decls\codextree\campaign\main.decl" - TAG1: "gameresources_patch2\generated\decls\codextree\campaign\dlc1.decl" - TAG2: "gameresources_patch1\generated\decls\codextree\campaign\dlc2.decl" - Horde: "gameresources_patch2\generated\decls\codextree\horde\horde.decl" In the example encounters for each Custom AI, an "idTarget_Codex" entity is used so the encounter can manually give any codex entries to the player. Below is an example of the entity. Simply activating the entity will activate any codex entry it contains. entity { entityDef example_codex_entity { class = "idTarget_Codex"; expandInheritance = false; poolCount = 0; poolGranularity = 2; networkReplicated = false; disableAIPooling = false; edit = { spawnPosition = { x = 1; y = 1; z = 1; } codexEntries = { num = 1; item[0] = "codex/hell/demon_imp"; // Set the Custom AI's Codex Decl here. } } } } -----Additional Files----- entities.txt - Contains all the entities required to spawn the Custom AI at least once. - Copy all of it into your custom level entities file, and remember to change the spawnPosition for the idTarget_Spawns. - If any of the entityDef names end with a number, that means you can (and should) have more than one of them, depending on how many of the Custom AI you plan to use in your level. eventCall.txt - Contains all the eventCalls required to spawn the Custom AI.