[Tutorials] Intro to Duke Nukem 3D CON Editing

Post your tutorials here to help fellow Raze users get the most out of modding and using Raze!

Moderator: Raze Developers

Post Reply
gerolf
Posts: 974
Joined: Sat Nov 06, 2010 1:32 pm

[Tutorials] Intro to Duke Nukem 3D CON Editing

Post by gerolf »

With the introduction of Raze, I am sure many of you are wanting to mod Duke Nukem 3D. The following guide will explain the roles of each CON file that comes with Duke Nukem 3D and how to manipulate them, but this guide assumes a few things:
-you have little to no programming knowledge or experience.
-you have a copy of the Atomic Edition (though, other versions also work with these changes, but the tutorials are using this version specifically).
-while this will be aimed at Raze, these tutorials should work in any DN3D port that supports custom CON files

Please, understand that this is targeted towards beginners. Most tutorials I see are aimed at people that have at least some programming knowledge, which I find makes it hard on novices to get started. These will attempt to explain what the code means while also showing ways for you to edit the game. This will NOT cover editing art and level design (that's for a different thread).

For the record, I am not an expert. Nothing I'll cover is really anything "new", and there's more than likely documentation elsewhere covering the exact same stuff, but I figured why not try to see if I can help anyone out who finds other tutorials to be difficult to follow. This is not the definitive guide to editing DN3D, but it should be enough to get you started at the very least. I hope people will find this information to be useful. Anyways, with that said...

What you need:
-You will need Wordpad, Notepad, Notepad++, or any other similar app that you prefer.
-You will need to place the 3 CON files (USER.CON, GAME.CON, and DEFS.CON) in your Raze folder. When you run Raze, it will run these custom CON files.

Now, what does each CON file mean and represent?

The color yellow will be used for anything USER.CON specific, red for anything GAME.CON specific, and blue for DEFS.CON specific.

CON file info:

USER.CON (User Configuration File)
Editing the User Configuration file (USER.CON) is a great way to modify DN3D, and this is the CON file we will be working with the most throughout this guide. Essentially, this file is used to control many parts of the game. For example: enemy hitpoints, weapon strength (including blast radius), text strings (messages, episode names, level names, etc), par times, and much more. While I can't go over EVERYTHING, I am going to go over enough to get you started! This file is the best for beginners to mess with because it shows direct change in the game. Many might find themselves fully satisfied with what can be done with USER.CON, and will not need to edit GAME.CON or DEFS.CON.

DEFS.CON (Definitions Configuration File) –
This file is essentially a list of numbers that are defined by phrases. The reason for this is so that a programmer doesn't have to remember the numbers; they just need to remember the phrases. So when adding to DEFS.CON you would write a phrase tied to a number so you'd be able to remember the phrase without needing to remember the number, but you can look at DEFS.CON to look up a number/phrase and when the game loads DEFS.CON, the phrases are converted back to their defined numbers for the machine to understand. Unless you intend on making major changes to the game, like rewriting actors or adding in new features that are not present currently, you more than likely will not need to mess with DEFS.CON. The more you edit GAME.CON, the more likely you'll need to edit DEFS.CON, though, and if all you are doing is USER.CON edits then you usually shouldn't have to mess with DEFS.CON. This guide won't have any DEFS.CON specific tutorials because it is generally the CON file you will not bother with until you have enough experience to do so, and it goes beyond the purpose of this guide.

GAME.CON (Game Configuration File)-
This file tells the game to load up DEFS.CON and USER.CON, as well as being home to a lot of actor code. This is the instructions that tell the game to do various things like making animation sequences. This file is not as straight forward as USER and DEFS. It can be very complicated to edit and takes time to learn and understand what all is in it and what can be changed. The purpose of this tutorial session is to familiarize you with the files, but going over everything in relation to GAME.CON goes beyond the scope of this guide. I will cover what I find to be the easiest things you can change, and give you some example tutorials that you can try out on your own that are specific to GAME.CON.

Now you should have a basic understanding of what each CON file is for. Now, let's get started with USER.CON. Open it up with your text editor of choice, and follow along.

USER CON TUTORIALS:
Getting started:
Spoiler:
Altering Game Messages:
Spoiler:
Changing Level, Episode, Difficulty Titles, and adjusting Par Times:
Spoiler:
Working with Sound and Music in USER.CON:
Spoiler:
Now, we are pretty much finished with the most basic changes you can make to USER.CON. Nothing too interesting so far is probably what some are thinking, but these are very useful edits to make your sets have a feel of their own. Now, let's get a little more involved with USER.CON.

-Altering Duke, His Guns, and Inventory:
Spoiler:
Altering Duke's Adversaries:
Spoiler:
Now you should understand the purpose and use of USER.CON. There's more that can be done with USER.CON, but I have covered the basics. Please note the following tutorials and info below are more challenging than what has been presented above. If you have trouble understanding it, it takes more patience to edit GAME.CON than editing USER.CON. If you are happy with USER.CON editing and feel the guides below are too tough or hard to follow, maybe you're better off just sticking with USER.CON editing for now. If you are ready for more, then let's move on, but first:

Commenting CON files:
Spoiler:
Now, we are finished with the USER.CON session of this guide. Let's move on to GAME.CON. GAME.CON is a much more complicated file than USER.CON. What I intend to do is show you how to do a few things with GAME.CON. Here's a couple routines to try:

GAME.CON TUTORIALS:
-Adjust the ammo the Pistol weapon pick-up gives Duke:
Spoiler:
-Enabling WACKPLAYER:
Spoiler:
Altering Enemies & Gore through GAME.CON:
Spoiler:
Obviously, there's much more to GAME.CON than just these tutorials, but I think these are some easy changes you can make that can help you make further changes elsewhere in GAME.CON with the knowledge you now have. Just be aware that you need to be very careful messing with GAME.CON. There's less room for user error here, so make sure to save often and be able to backtrack if you make a mistake.

The End (For Now):

That's it for now. I feel that I have written quite a bit of info that should help someone who knew nothing know a lot more than nothing about modding DN3D now that you've read from the start to the finish of this tutorial. You've learned all about USER.CON. You've learned what's inside of DEFS.CON (though currently we've had no reason to change anything in there). You've learned what GAME.CON is all about and have even learned a few things you can do inside of GAME.CON. With this knowledge, you should have the ability to look around these CON files and make changes to them, testing them out along the way and seeing what works and what doesn't.

Bottom line: You can say you know how to modify DN3D. There's still more to modding Duke than just CON files. Level design, art design, etc. have not really been covered here because they aren't really specific to CON editing.

I hope someone finds this information useful.
Last edited by gerolf on Sun Sep 27, 2020 12:18 pm, edited 6 times in total.
User avatar
Dynamo
Posts: 1026
Joined: Sat Jun 07, 2008 5:58 am
Location: Industrial District

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Dynamo »

Excellent work, this will be very useful for many I'm sure!
User avatar
Rachael
Posts: 13575
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Rachael »

Thank you for posting this!
User avatar
Kinsie
Posts: 7401
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Kinsie »

gerolf
Posts: 974
Joined: Sat Nov 06, 2010 1:32 pm

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by gerolf »

The post has now been updated!
Last edited by gerolf on Thu Sep 17, 2020 2:32 am, edited 1 time in total.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49073
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Graf Zahl »

Regarding the tutorials that no longer work, before removing them, please post a copy in the Feature Suggestions forum. Having these still available would make it a lot easier to prioritize which features will get re-added.
Gammli
Posts: 47
Joined: Sat Mar 02, 2019 12:46 am

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Gammli »

All commands on this page will still work: https://wiki.eduke32.com/wiki/Category: ... 5_commands
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49073
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by Graf Zahl »

Yes, those all still work, of course, plus several gamevar instructions. I'll see to add the remaining gamevar instructions ASAP so that this feature is complete.
gerolf
Posts: 974
Joined: Sat Nov 06, 2010 1:32 pm

Re: [Tutorials] Intro to Duke Nukem 3D CON Editing

Post by gerolf »

I edited the post to no longer show the Gamevar tutorials (as they were not on that list), but I did post them over at the "Feature Suggestion" section like you suggested :)

edit: here's the gamevar portion:
viewtopic.php?f=343&t=69884
Post Reply

Return to “Tutorials (Build)”