Tutorials

Instructions on how to efficiently use idStudio.

How Do I Create idStudio Mods?

See the official website for more in-depth guides: https://idstudio.idsoftware.com/

The mod file locations idStudio reads & writes is not always what you package.
All editors are located in the "Windows" tab located on idStudio's top bar.

decl mod

texture mod

static / animated model mod

string mod

sound effect / voice over mod

music mod

entities mod

map mod

map mod (how to load)

devmenuoption/devmenuoption/new_campaign.decl

declType( devMenuOption ) {
	edit = {
		devMenuList = {
			num = 1;
			item[0] = {
				devMenuDisplayName = "Custom Map";
				devMenuMapName = "maps/custom_map_name.map";
				devMenuInventoryLoadout = "devinvloadout/dlc/e4m1_rig";
			}
		}
	}
}

What Files Should I Package For My idStudio Mod?

When developing a mod, many files will be generated in your idStudio base folder.
It is crucial that you ONLY package what is NECESSARY for your mod to avoid conflicts with other mods.

You may need to check "Show Binary + Raw Files" to view and package uncommon mod files in the Package Mod window.

Never package anything inside an "editors" folder.

decl mod (.decl)

Periodically delete everything in "generated/decls" so unused decl files can be removed and not accidentally packaged.

texture mod (.bimage)

static model mod (.bmodel)

animated model mod (.bmodel) (.bmd6anim)

string mod (.blang)

Delete all vanilla strings in the string editor if you haven't already done so.

audio mod (.wem)

Check "Show Binary + Raw Files" to view and package WEM files in the Package Mod window.

map mod (.map)

When you package a .map with decls, be sure to ONLY CHECK each individual decl class folder, not all of "generated/decls" as that would package many vanilla decl files into your mod.

entities mod (.entities.cbfile)

How Do I Upload Mods To The Mod Portal?

What About Custom Maps?

The Mod Portal will automatically fill in the relevant files for your mod so you may not need to worry about this.

Some models are invisible and the HUD "fuzzy"

This is an issue with the packagemapspec file. Here is how you can fix it as either the mod author or player who downloaded the mod from the DOOM Eternal Launcher.

      {
         "file" : 8,
         "map" : 3,
         "source" : 0
      },
If you are the Mod Author

Miscellaneous

If your mod has 2 maps, insert the following into the "MapFileRefs" field in the "packagemapspec.json" file.

      {
         "file" : 10,
         "map" : 3,
         "source" : 0
      },
      {
         "file" : 10,
         "map" : 4,
         "source" : 0
      },

If your mod has 3 maps, insert the following.

      {
         "file" : 12,
         "map" : 3,
         "source" : 0
      },
      {
         "file" : 12,
         "map" : 4,
         "source" : 0
      },
      {
         "file" : 12,
         "map" : 5,
         "source" : 0
      },

Follow the patterns above if your mod has more than 3 maps.


Known Fixable Issues

Some decls are Inaccurate when Testing in the Sandbox

The Sandbox uses the packaged .decl files from the base\generated\decls folder. Older decls that were previously removed from the base\declTree folder may still be present in the packaged mod. Here is how you can clean up your decls.

Custom Maps have unusually-large File Sizes

Fully-baked custom maps can have very large file sizes. Here is how you can reduce it.

Most Geo are Invisible when Testing in the Sandbox

Geo are mostly invisible or flickering in the Sandbox due to an issue with the dvdpc\base\packagemapspec.json file. Here is how to fix it.

Loading a Custom Map may crash at 80%

Loading an existing save for a custom map may crash at 80%. If the game does not crash, then all geo on a custom layer will be invisible unless a checkpoint is loaded. The 80% crash stems from the use of custom visibility layer. Here is how to fix it.

For example, change the custom layer:

	layers {
		"game/custom_map_name/visibility/vis_visibility_layer"
	}

To:

	layers {
		"game/sp/e1m1_intro/visibility/vis_barge"
	}

Here is what activating a layer in a devMenuOption decl looks like:

declType( devMenuOption ) {
	edit = {
		devMenuList = {
			num = 1;
			item[0] = {
				devMenuDisplayName = "Custom Map - Master Level";
				devMenuMapName = "maps/custom_map_name.map";
				devMenuInventoryLoadout = "devinvloadout/dlc/e4m1_rig";
				devMenuActiveLayers = {
					num = 1;
					item[0] = "game/custom_map_name/master_level";
				}
			}
		}
	}
}

Custom SFX & Music prevent Vanilla Audio from Playing

There are issues with both the mods.pck & music_mods.pck files that is generated when a new idStudio mod is created. Here is how to fix them.