Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
DoryH123

Hexen WAD: Changing Names

Recommended Posts

Hello all,
I'm currently working on a Hexen WAD and I plan to change all of the original Classes, Monsters and some of the Items.
I want to change their names within the game so when, let's say, you start a new game, instead of seeing "Fighter, Cleric, Mage" in the menu, you see my own custom class names. Same when you're killed by a monster, picking up an item, etc.

I tried both XWE and SLADE and still there's no clue on where those details are stored within the WAD and how to change them.

Any help would be appreciated.

Share this post


Link to post
DoryH123 said:

Same when you're killed by a monster


Just to point out, this makes it sound like it's a mod for ZDoom; the original HeXen did not display messages when you are killed by a monster.

But yes, to change what you wish to, would require a source port of some sort, ZDoom, Doomsday etc.

In Doomsday, all text can be edited via Text.ded and Finales.ded.

I'm not familiar enough with ZDoom to say where from memory, where the text is stored.

Share this post


Link to post

Look up the languages.txt lump in zdoom.pk3. You can create a LANGUAGE lump in your mod where you just copy-paste the lines you want to change and modify them here. (There is absolutely no need to copy all the lines you don't want to change, such as Doom level names or Chex Quest quit messages...)


That said, if you have custom classes, then all you need to do is change the "Player.DisplayName" property in their DECORATE definition.

Share this post


Link to post

Thank you both for your quick reply. :)

Look up the languages.txt lump in zdoom.pk3. You can create a LANGUAGE lump in your mod where you just copy-paste the lines you want to change and modify them here. (There is absolutely no need to copy all the lines you don't want to change, such as Doom level names or Chex Quest quit messages...)


That said, if you have custom classes, then all you need to do is change the "Player.DisplayName" property in their DECORATE definition.

I've taken a look inside the languages.enu and found all the object and weapon names, but unfortunately no class or monster names.
Also, I could not find the "Player.DisplayName" property you speak of, and I looked all over the PK3. Where exactly must I look?

Share this post


Link to post

It's a property in the definition of the player class. For example, this is the cleric:

// The cleric ---------------------------------------------------------------

ACTOR ClericPlayer : PlayerPawn
{
	Health 100
	ReactionTime 0
	PainChance 255
	Radius 16
	Height 64
	Speed 1
	+NOSKIN
	+NODAMAGETHRUST
	+NOTHRUSTWHENINVUL
	PainSound "PlayerClericPain"
	RadiusDamageFactor 0.25
	Player.JumpZ 9
	Player.Viewheight 48
	Player.SpawnClass "Cleric"
	Player.DisplayName "Cleric"
	Player.SoundClass "cleric"
	Player.ScoreIcon "CLERFACE"
	Player.InvulnerabilityMode "Ghost"
	Player.HealRadiusType "Health"
	Player.Hexenarmor 10, 10, 25, 5, 20
	Player.StartItem "CWeapMace"
	Player.Portrait "P_CWALK1"
	Player.WeaponSlot 1, CWeapMace
	Player.WeaponSlot 2, CWeapStaff
	Player.WeaponSlot 3, CWeapFlame
	Player.WeaponSlot 4, CWeapWraithverge
	Player.FlechetteType "ArtiPoisonBag1"
	
	Player.ColorRange 146, 163
	Player.Colorset		0, "Blue",			146, 163,    161
	Player.ColorsetFile 1, "Red",			"TRANTBL7",  0xB3
	Player.ColorsetFile 2, "Gold",			"TRANTBL8",  0x8C
	Player.ColorsetFile 3, "Dull Green",	"TRANTBL9",  0x41
	Player.ColorsetFile 4, "Green",			"TRANTBLA",  0xC9
	Player.ColorsetFile 5, "Gray",			"TRANTBLB",  0x30
	Player.ColorsetFile 6, "Brown",			"TRANTBLC",  0x72
	Player.ColorsetFile 7, "Purple",		"TRANTBLD",  0xEE
	
	States
	{
	Spawn:
		CLER A -1
		Stop
	See:
		CLER ABCD 4
		Loop
	Pain:
		CLER H 4
		CLER H 4 A_Pain
		Goto Spawn
	Missile:
	Melee:
		CLER EFG 6
		Goto Spawn
	Death:
		CLER I 6
		CLER J 6 A_PlayerScream
		CLER KL 6
		CLER M 6 A_NoBlocking
		CLER NOP 6
		CLER Q -1
		Stop		
	XDeath:
		CLER R 5 A_PlayerScream
		CLER S 5
		CLER T 5 A_NoBlocking
		CLER UVWXYZ 5
		CLER [ -1
		Stop
	Ice:
		CLER "" 5 A_FreezeDeath
		CLER "" 1 A_FreezeDeathChunks
		Wait
	Burn:
		FDTH C 5 BRIGHT A_PlaySound("*burndeath")
		FDTH D 4 BRIGHT
		FDTH G 5 BRIGHT
		FDTH H 4 BRIGHT A_PlayerScream
		FDTH I 5 BRIGHT
		FDTH J 4 BRIGHT
		FDTH K 5 BRIGHT
		FDTH L 4 BRIGHT
		FDTH M 5 BRIGHT
		FDTH N 4 BRIGHT
		FDTH O 5 BRIGHT
		FDTH P 4 BRIGHT
		FDTH Q 5 BRIGHT
		FDTH R 4 BRIGHT
		FDTH S 5 BRIGHT A_NoBlocking
		FDTH T 4 BRIGHT
		FDTH U 5 BRIGHT
		FDTH V 4 BRIGHT
		ACLO E 35 A_CheckPlayerDone
		Wait
		ACLO E 8
		Stop
	}
}	
Note these three lines:
	Player.SpawnClass "Cleric"
	Player.DisplayName "Cleric"
	Player.SoundClass "cleric"
SpawnClass is what's used to determine which things are spawned in the map (since as you know, Hexen lets you filter things by class as well as by skill level). DisplayName is what you want. SoundClass is for SNDINFO stuff. Presumably, you'll only want to change DisplayName.



Also, you won't find monster names directly. You'll find obituaries.

Share this post


Link to post

Thank you, I managed to find the necessary lines and changed them around.
I saved the result as zdoom.pk3 and ran ZDoom, but when starting a new game I still saw the standard class names(fighter, cleric, mage) instead of my custom names.
What am I doing wrong?

Share this post


Link to post
DoryH123 said:

I saved the result as zdoom.pk3

No, don't do that.

Don't you have a wad you are working on? Create in that wad a LANGUAGE lump and only paste the modified language.enu lines in it. Don't modify zdoom.pk3; it'll only make your mod incompatible with normal installations of ZDoom -- including future versions with changed stuff in the pk3.

DoryH123 said:

when starting a new game I still saw the standard class names(fighter, cleric, mage) instead of my custom names.
What am I doing wrong?

Can you actually show your custom classes?

Share this post


Link to post

I do not know how to create a lump; However, I managed to import the altered language.enu file into the WAD as is, and it worked.(I changed the name of the Porkalator item to Moschopsator)
The problem is, when I tried to do the same with clericplayer.txt, fighterplayer.txt and mageplayer.txt, they showed up in SLADE as unknown files rather than TXT files, and the changes to the class names didn't work.

Share this post


Link to post

The engine recognize certain reserved lump names, such as LANGUAGE and DECORATE. A full list can be read here.

Names like "clericplayer" aren't in that list. Since actor code can take a lot of space, the code is spread out in several smaller files. You'll notice that zdoom.pk3 contains a decorate.txt file that is nothing but a series of #include for each file in the actors directory.

Creating a new lump is simple. In SLADE, you can use the "New empty entry" icon on the toolbar (it's a little file with the letter E on it), or the Archive->New menu. It'll create an empty lump (a marker) which you can just "Edit as Text" and copy paste stuff into.

It seems you have not actually modified the class in any way, other than changing their names. So here is what you can do. You can use inheritance to make your life simpler.

Create a new lump named DECORATE. Edit it as text and copy paste this:

Actor NotACleric : ClericPlayer { Player.DisplayName "Not A Cleric" } 
Actor NotAFighter : FighterPlayer { Player.DisplayName "Not A Fighter" } 
Actor NotAMage : MagePlayer { Player.DisplayName "Not A Mage" }
Save changes to the lump. Then create another new empty lump. Name it MAPINFO. (Or, if you already have a MAPINFO lump, use that one.)

Copy paste this code in your MAPINFO lump:
gameinfo
{
	PlayerClasses = "NotACleric", "NotAFighter", "NotAMage"
}
Save changes, save wad, and try.

Share this post


Link to post

You're making a beginner's mistake; which is to build your mod from an IWAD. This is going to get you accused of warezing the game, so make sure to include only the things that you have actually modified and none of the rest.

For example, this works. You'll see how small it is compared to the state of your mod now; because all the Hexen stuff -- which is brought by the Hexen IWAD already and that you'd just load twice otherwise -- has been removed.

Anyway, it works for me. If it isn't working for you, download and install a more recent version of ZDoom or GZDoom from here.

Share this post


Link to post

Thank you, I tried it in GZDoom and it works. For some reason it doesn't work on ZDoom although I downloaded the latest version today.
also, thanks for the heads-up about the warezing- I'm still fairly new to WAD modding so I'm still prone to beginners' mistakes.

One last thing: the monster names, or "obituaries" that you mentioned earlier, where do I find them?

Share this post


Link to post

For the standard actors, they're in language as well. You'll find them all starting from about line 600, with in order suicide, environment, Doom monsters, Heretic monsters, Hexen monsters, Strife monsters, Doom weapons, Heretic weapons, Hexen weapons, Strife weapons, telefrag and friendly fire obituaries. (The Chex Quest obituaries are way below, starting about at line 1700, and the other ZDoom games feature their own obituaries in their own IWADs rather than in zdoom.pk3.)

For custom monsters, you can define a LANGUAGE lump identifier as well, or use your string directly. See the wiki.

Share this post


Link to post

Thank you once again; I found everything I needed to change. Thanks for the link on custom monsters, too! It will come in handy. :)
For all your help, your name will appear on the credits list when this mod (hopefully) comes out.

This thread can be closed now.

Share this post


Link to post
Guest
This topic is now closed to further replies.
×