Duke Nukem 3D: 20th Anniversary World Tour

Duke Nukem 3D: 20th Anniversary World Tour

30 ratings
How to play ANY source port through Steam (2025)
By Mike Stu
PSA: you can run your favorite source port using Steam, with full Overlay functionality (screenshots, hour tracking etc.). Here's how.
   
Award
Favorite
Favorited
Unfavorite
INTRO
Duke Nukem 20th Anniversary is a pretty bad port - it looks bad, sounds bad and plays worse. We don't have to live like this.

If you've clicked this guide, you're likely familiar with source ports such as Eduke32, Rednukem, BuildGDX or Raze - all of which run laps around the cursed Gearbox edition in terms of functionality and QoL improvements.

Downside is, you wouldn't normally be able to run them through Steam. You could add the executables as a "Non-Steam game", but then there would be no way to keep track of hours played or share silly screenshots with your homies. You deserve better.

Luckly, our good old friends SteamEdit and ZDL have us covered. Here's how to Duke it out in Steam, while keeping all 20th Anniversary files intact.

...By the way, this works exactly like my DOOM (1993) and DOOM II Guides. If you've seen that already, you should be familiar with all this.

WHAT YOU WILL NEED
ZDL3

ZDoom Launcher 3 is a nifty lil' application that lets you manage your .exes and .grp files. As the name suggests, it was developed for Doom source ports, but it works perfectly with most Build Engine source ports as well. You can download it here[zdoom.org].

A heads up tho: if you are really new to this, some of the terminology below can get lost on you. If you want to understand how exactly to configure ZDL to suit your needs, read this[forum.zdoom.org].

From now on, I will presume that you have a passing understanding on how ZDL works. If you don't, that's cool - just refer to the forum I linked you above.

SteamEdit

SteamEdit is an easy solution for... well, editing Steam files. This can be useful for a variety of reasons, but the relevant one right now is this: it lets you remap the .exes in any Steam game. You can get it here[steamedit.tg-software.com].

Once again, the thing is simple enough to use and I'm gonna assume you can figure it out no problem for the purposes of this Guide. If you're having trouble, please refer to the "How to Use" section in the website I just linked you above.
STEP BY STEP
A. Setup ZDL

First, we gotta tell ZDL where it should look for the source port and the base game.

  1. Place your ZDL folder inside your Duke Nukem 3D Twentieth Anniversary World Tour install folder. This is important later on.

  2. Launch ZDL and go to the "General settings" tab. Click the "+" icon under "Source Ports" and add the exe. of your preferred source port.

  3. Next, go to the "IWAD" section. Click the "+" icon under it and add your "DUKE3D.grp" file. By default, this can be found on SteamLibrary > steamapps > common > Duke Nukem 3D Twentieth Anniversary World Tour.

    ZDL should now be looking something like this:



  4. That should be it. Return to the "Launch config" tab, select your source port and hit "Launch" to test if the game is running correctly.

  5. On a side note, you can run addons such as Duke it Out in D.C. and Duke Caribbean by simply including their respective .grp files on the "External Files" section.

    For reference, here I'm running Alien World Order ("worldorder.grp") with Raze using NightFright's (great) patch[forum.zdoom.org]:


B. Setup SteamEdit

Once you've setup ZDL, it's time to trick Steam into thinking that it is a part of Duke 3D 20th Anniversary. This is what will allow us to launch ZDL through Steam's "Play" button.

  1. Run SteamEdit and look for "Duke Nukem 3D: 20th Anniversary World Tour" in the games section. Next, enable the "Tool" and "Config" icons (the gear one and the notepad one next to it, which should now be green):



  2. Click the "Edit Launch" icon. See those options? They will be displayed on a window every time you run the game through Steam. Click the "Add New" button and name it something like "Launch ZDL".

    On the "Executable" target, type the name of your ZDL folder / the name of your ZDL executable. For reference, mine is: ZDL_3-1.1_Win_x86/ZDL.exe

    Your SteamEdit should now be lookling like this:



  3. Click "Ok" and the "Save & Refresh" button (see picture in Step 1). Steam will now restart.

  4. Run Duke 3D through Steam as usual. If you've done everything correctly, the launch window should now show the "Launch ZDL" option. Click it everytime you want to run a source port.



  5. Congrats, ya did it! You will now be able to run the source port of your liking through Steam, screenshots and all. Go crazy.
FINAL REMARKS
Hope this has been useful to you! Note that this method will work not only for Duke 3D, but every Build engine game as well.

If you have any trouble, feel free to comment below - just read the guide carefully to make sure you're not missing some silly detail.

15 Comments
Mike Stu  [author] Feb 25 @ 3:09pm 
What this guy said! v :DukeCash:
Well the iwad files are actually .grp, so what you got to do in ZDL is click on Add Items to iwads section, then at the bottom right corner it says iwad files, click on that drop down list and go to "all files". Then look in the Duke Nukem 3D Twentieth Anniversary World Tour directory for the .grp file and double click on it. Also you may want to start ZDL the easier way...

Add this to the properties of your Duke Nukem 3D game on steam:
"F:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D Twentieth Anniversary World Tour\ZDL\ZDL" %Command%

Replace that long file location with the specific one that matches the location of the ZDL program on your computer, and ZDL at the end there is just for the exe (don't put .exe at the end there because it doesn't like that for some reason). Then it should always run ZDL now for you.
yeetfeet12 Feb 21 @ 3:41pm 
also where can i find the iwads?
yeetfeet12 Feb 21 @ 3:39pm 
hey im having trouble lauching the game i used the grp but eduke doesent respond
Mike Stu  [author] Jan 23 @ 5:05pm 
No problem! Glad to help :DukePigCop:
verdeAntico Jan 23 @ 4:28pm 
Thank you dude, you are a life-saver
Mike Stu  [author] Jan 23 @ 3:59pm 
Yeah, that's a quirk of SteamEdit - it tends to get affected by updates to the Steam database. I didn't mention it here because the issue seems to vary on a game by game basis, weirdly enough, and I never had this problem with Duke 3D.

As for Shadow Warrior Redux, you can try launching the source port through a launch parameter on Steam instead - it will be a permanent fix, but you may lose access to Steam Overlay depending on the source port (it works just fine with the Raze though, if I'm remembering correctly).

Check out my DOOM + DOOM II guide - I explain how to use the parameter in there, and the logic is exactly the same.
verdeAntico Jan 23 @ 5:28am 
To be precise, I did that for Shadow Warrior Redux, not Duke Nukem 3D
verdeAntico Jan 23 @ 5:15am 
Man, first, thank you so much for your guide
but I have a little problem:
it doesn't stick: each time I close Steam Edit everything return back to normal.
Maybe I didn't read the part where you talk about it..
I just hopped it can be a permanent change without having to re-do the steam edit part all the time.
Please, let me know
:LIMBO_boy:
Mike Stu  [author] Jan 12 @ 4:37am 
Huh, Steam´s having trouble finding the executable. Based on the file path you pasted below, it looks like you pasted the entirety of the system path in SteamEdit - you should only add the path relative to your Duke Nukem install folder.

For example, if ZDL is located on " C:\Program Files (x86)\Steam\steamapps\common\Duke Nukem 3D Twentieth Anniversary World Tour\ZDL_3-1.1_Win_x86\ZDL.exe ", your file path on SteamEdit should only be " ZDL_3-1.1_Win_x86\ZDL.exe " (see image in item B.2).

Let me know if this fixes it for you - and feel free to DM me if it doesn't.