Miscellaneous

Anything that does not fit in the other categories go here. Covers FX/Particles, Backups, etc.

Backups

Information about how to backup various aspects of DOOM Eternal.

Backups

Backup Save Files

This technique essentially gives the player infinite save slots for each campaign.

Finding Save Files

Find your remote folder for DOOM Eternal, ex: C:\Program Files (x86)\Steam\userdata\#########\782330\remote
The ######### will be your Steam ID.

You should now see all of your saves and profile data as folders.

Save Folders

The following are valid save folders:
GAME-AUTOSAVE0
GAME-AUTOSAVE1
GAME-AUTOSAVE2
DLC1-AUTOSAVE3
DLC1-AUTOSAVE4
DLC1-AUTOSAVE5
DLC2-AUTOSAVE6
DLC2-AUTOSAVE7
DLC2-AUTOSAVE8
PROFILE

GAME = Base Campaign
DLC1 = The Ancient Gods Part 1
DLC2 = The Ancient Gods Part 2
PROFILE = DOOM Level Data

You may not have all of these folders. That means you do not have a saved game for every slot.
However, you should always have a PROFILE folder.

Backing Up Save Files

Backups

Backup DOOM Levels

This technique also allows the player to modify their DOOM level freely, as it is stored client-side.

Your DOOM Level and Event XP are not the same thing. A DOOM Level measures how much you have played the game and essentially serves no monetary value other than prestige.

Finding Your DOOM Level File

This step is not required, but it provides an alternative way to copy your save files and profile data.
This is also relevant to Backup Save Files.

Find your remote folder for DOOM Eternal, ex: C:\Program Files (x86)\Steam\userdata\#########\782330\remote
The ######### will be your Steam ID.

You should now see all of your saves and profile data as folders. PROFILE is the only folder you should worry about. It contains profile.bin which stores your DOOM Level.

Profile Tools

idProfile by emoose - Download
De-serializes the profile.bin file into a readable JSON format.

DOOMSaveManager by GoobyCorp - Download
Makes exporting and importing saves easier.

Instructions

  1. Unzip both files in the same folder
  2. Launch DOOM Save Manager.exe -> Continue if prompted with a warning -> Action: Export Backup -> OK -> Save the backup.zip file somewhere safe
  3. Extract PROFILE\profile.bin -> Drag & Drop it onto idProfile.exe -> profile.bin.json will now be created -> Open the file with a text editor
  4. CTRL + F -> Type: experienceGained -> Find Next and look in the line directly below experienceGained -> If it is present, change: "Int8" to "Int32" -> Change the current value after "Int32" to whatever you want -> Save
  5. Drag & Drop profile.bin.json into idProfile.exe -> profile.bin.json.bin will now be created -> Rename the file to profile.bin -> Delete the old file if need-be
  6. Open: backup.zip -> Replace the old profile.bin with the new one
  7. Launch DOOM Save Manager.exe -> Continue if prompted with a warning -> Action: Import Backup -> Select: backup.zip -> OK

DOOM Level Key - Reference Image

1 Level = 10,000 XP
250 Levels = 2,500,000 XP  |  1 Echelon (Stone Star)
2250 Levels = 22,500,000 XP  |  9 Echelon (Bronze Star)
4250 Levels = 42,500,000 XP  |  17 Echelon (Silver Star)
6250 Levels = 62,500,000 XP  |  25 Echelon (Gold Star)
8250 Levels = 82,500,000 XP  |  33 Echelon (Platinum Star)
10250 Levels = 102,500,000 XP  |  41 Echelon (Slayer Star)
12000 Levels = 120,000,000 XP  |  48 Echelon (Max Level)

Each star is 250 Levels, with 8 stars being 2000 Levels (20,000,000 XP) for each Echelon.
You can only have a maximum of 8 stars before you unlock the next tier.

You cannot level up past 48 Echelon.

Visuals

Information about various visual effects, such as FX, Particles, and Ribbons.

Visuals

FX_PARTICLE

The most common type of FX element will be an FX_PARTICLE, this called on a particle decl file that either defines the particle in the file itself or references already defined particleStage files.

Here are the most essential things to know when dealing with particle decls.

1.) Assign one or many particle decls to an FX element.

A single particle decl.

// each time the FX element is invoked, the sole declPrt will be rendered
item[8] = {
	name = "shrapnel_CENTER";
	group = "explosion";
	type = "FX_PARTICLE";
	duration = 2000;
	fadeOutTime = 1500;
	fadeInTime = 0;
	size = 2.0;
	enabled = true;
	delayMin = 100;
	delayMax = 115;
	color = {
		r = 1.0;
		g = 0.4;
		b = 0.2;
		a = 1.0;
	}
	tagNames = {
		num = 1;
		item[0] = "exhaust";
	}
	multiTagUseType = "FX_MULTI_TAG_USE_ALL";
	startCondition = {
		num = 1;
		item[0] = "FX_PROJECTILE_EXPLODE_ALT";
	}
	stopCondition = {
		num = 1;
		item[0] = "FX_OUTLINE_OFF";
	}
	originType = "FX_ORG_TRACK_POS";
	offset = {
		x = 0.0;
		y = 0.0;
		z = 0.0;
	}
	rotationType = "FX_ROT_START_AXIS_PARENT";
	rotOffsetAngles = {
		pitch = 0;
		yaw = 0;
		roll = 0;
	}
	particleParms = {
		declPrt = "weapons/rocketlauncher/explosion_lockon";
	}
}

If you pass an FX element a list of particle decls, one of them will be chosen at random each time the element is invoked. This is very useful if you don't want to see the same explosions over and over.

item[6] = {
	name = "LockonRocketExplosion";
	group = "explosion";
	type = "FX_PARTICLE";
	duration = 1500;
	fadeInTime = 0;
	fadeOutTime = 1000;
	size = 1.0;
	enabled = false;
	color = {
		y = 0.130136997;
		z = 0.0262412;
	}
	multiTagUseType = "FX_MULTI_TAG_USE_ALL";
	startCondition = {
		num = 4;
		item[0] = "FX_PROJECTILE_EXPLODE";
		item[1] = "FX_PROJECTILE_STOP";
		item[2] = "FX_PROJECTILE_STUCK";
		item[3] = "FX_PROJECTILE_EXPLODE_ALT";
	}
	stopCondition = {
		num = 1;
		item[0] = "FX_NONE";
	}
	particleParms = {
		declPrtList = {
			num = 3;
			item[0] = "weapons/combatshotgun/pop_rocket_charge_lv_01";
			item[1] = "character/pain_elemental/lost_soul/explosion";
			item[2] = "character/zombie_cueball/full_body_explosion";
			// declPrt = "weapons/grenade_launcher/concussive_blast";
			// declPrt = "weapons/rocketlauncher/explosion_array";
			
		}
	}
}

Using declPrtList makes it convenient to switch out particle decls, just don't forget to comment out the extra indexes!

particleParms = {
	declPrtList = {
		num = 3;
		item[0] = "weapons/combatshotgun/pop_rocket_charge_lv_01";
        item[0] = "character/doom_hunter/destructables/metal_chunk_explosion";
		item[1] = "character/pain_elemental/lost_soul/explosion";
		item[2] = "character/zombie_cueball/full_body_explosion";	
	}
}

 

Video Modding

Information for people who are looking to create video mods.

Video Modding

Creating Video Mods

Video modding is currently not supported by the Eternal Mod Injector.
Make sure to backup your video files before editing them.

Extracting Tools:

The RAD Video Tools by Epic Games Tools - Download

Finding a Video to Replace:

Every video file can be found at base\video in the DOOMEternal installation directory. Each video uses the .bk2 format. The only way to view .bk2 files is to open them in RAD Video Tools.

image-1636165110372.png

The GUI of the Context Menu might look different depending on the OS you are using.
This screenshot is from a Windows 11 GUI.

Converting a Video into the .bk2 Format

RAD Video tools can convert many different kinds of video formats into .bk2.
They are compatible with most video formats such as: .mp4 .gif .mov .wmv .avi

image-1636165623447.png

image-1636166025479.png

Replacing the Existing Video File

Make sure to create a backup for the original video file and store it somewhere safe.
If you fail to restore the original file, you will need to Verify File Integrity from your client.