NTT Introduction


Nuclear Throne is a game that has a long history of active modding in it. Originally this modding was done in u19, which is the last version of Throne that used a specific GameMaker version that made modding the game simple for those that have basic GML knowledge. u19 is still accessible via Steam's beta selection for Throne. Many mods made the change to NTT upon its release, though some still use the old version. For those curious there is a Steam Guide that gives an in-depth explanation on how to mod on the older version, and is being shared here for archival purposes but can otherwise be ignored.

In June 2016 modder YellowAfterLife released Nuclear Throne Together(NTT). Initially this was a mod that would allow for online co-op play where base NT only allows for local play, which also featured in-game replays and fixed a lot of issues that existed in vanilla co-op. Later in February 2017 the game had a major update to introduce mod compatibility, which was a much more streamlined process for modding the most recent version of Nuclear Throne rather than most modders using an extremely outdated version. In May 2017, 4 Player support was added as well.

With NTT the process for installing mods is incredibly easy to figure out as well as playing online co-op. Being able to make mods takes some coding knowledge and a bit of know-how, but there are plenty of tools and guides to assist here. This makes NTT the staple in the community for modding and co-op, and a must-have for anyone with a PC version of the game.

Table of Contents


NTT Versions


NTT has many versions over the years, however for simplification only 3 versions need to be focused on for any casual player. The first two are v9940/v9944 which will require a download and extraction in order to play, they can both be installed here. There is a 'NTT-readme' file that includes instructions on how to install NTT, otherwise use the online faq for instructions/troubleshooting. v9944 requires extra steps to download and is a bit more complicated:

v9944 installation
  1. Opt into the modbranch_2021 beta. (Instructions)
  2. Install a fresh version of v9940 using this modbranch.
  3. Launch v9940 once.
  4. Install v9944 in the same way - do not tamper with any files inbetween these steps.
  5. v9944 can now be launched, though switching betas may cause it to break.
  6. To avoid this make a copy of the folder for v9944 access.

The latest NTT beta(v100) is currently being hosted as a beta branch on Steam only. It can be opted into just as any other Steam beta and launched directly through there. A guide to opt in is here, which also includes instructions on how to add any NTT/beta branch to your Steam library separately to have multiple versions installed at once.

The 3 versions of NTT all differ in usability, they are as follows:


NTT Features Overview


The two core features of NTT is co-op and modding. Co-op allows from 2 player to 4 player locally and online. As NTT relies on peer to peer connection if a player has an unstable connection it will lead to common lag issues. If lag is ever experienced in singleplayer(usually when running large mods), try running NTT-assemble and launching the game in offline mode as a quick fix.

For reasons shared on the versions page(link later) the best version for NT is with Steam, this is also true for NTT. Besides access to the latest beta branches, NTT is able to connect through Steam servers which allows for the Steam overlay in-game and an easy way to invite or join friends through Steam itself. If using any non-Steam version of the game connecting through IP is required - via port forwarding.

Port Forwarding Instructions (Non-Steam versions)

Connect-by-IP is the traditional way to connect to other players in a game. Port forwarding is done to let people connect to your active session to play games together, and must be done on NTT if not playing on Steam as there are no servers to connect through. As the name implies Connect-by-IP means that one or both players may be privy to each other's IP addresses, including the method listed below. Practice internet safety!

This following section is just one method of connection, there are plenty of guides online, so do not feel required to use this specific site.
Section written by mufina on the NT Discord:

  1. Download ZeroTier.
  2. ZeroTier will appear on your task tray.
  3. Wait for the Host to give you the network ID to join the network.
  4. Once Host has begun the session, wait for them to give their managed ip to you.

Host:

  1. Make an account on the website.
  2. Make a network.
  3. Make the network public.
  4. Give the users your Network ID.
  5. Host a game.
  6. Give the users your managed IP.

Make sure you both have joined the network. By default, NTT's port is 5394.

ZeroTier will show the host your physical IP on the website. Long distances will cause major ping, mostly 1000-3000ms.

If it doesn't work, it's either a firewall, different game version, ZeroTier not up-to-date or something completely different.


The other major feature of NTT is mod loading. It is as simple as downloading a mod, dropping mods into the mod folder and then loading them in-game via one of the many /load commands. Mod folder is located in the same file NTT was installed in. The quickest way to get to the default folder(such as for v100) is to right click Nuclear Throne in the Steam library and click Properties -> Installed Files -> Browse.

The most comprehensive list for mods can be found on the itch.io page which includes hundreds of mods, the default order is by popularity so the most popular/content heavy mods will be at the top, so if looking for what mod to try first this is a good starting point. Once a mod/modpack is put into the mod folder it can be loaded in the active NTT session, which is normally done from the campfire character select screen.

Playing mods on co-op requires all players to run the /sideload command to allow for file loading in that session. Only one player needs a mod installed in order to load it, it does not have to be every player in the lobby.

Achievements cannot be unlocked via NTT, even if on v100. Save data will not transfer between NTT to NT normally, meaning that getting unlocks(crowns, golden weapons, proto chest) will not effect vanilla save file. However, there are some ways to transfer save data that has its own guide here. (Link save editing later)


NTT Game Features


Once NTT is launched it will have a Main Menu similar to that seen in vanilla, however the 'Play' button will bring the player directly to the singleplayer character selection, with Co-Op being a separate option. There is no Daily or Weekly options on NTT, and hardmode can only be toggled on with a command.

The character select screen will be similar to that of vanilla but will include Skeleton and Frog from the selection who can have their own crown/weapon starts, and Big Dog on April Fools on the latest branches. If anything appears locked, briefly host an online co-op lobby which should give access to all unlocks. Additional NTT content includes Y.V. and Robot having unique C-Skins(Yung Cuz and Hazmat) and Skeleton has a B-skin, each still function the same.

There are a few unique controls to NTT.

Another unique feature of NTT is that the player will have an outline that makes them more visible on-screen, and each co-op player will have a different color. This can be disabled by using the '/outlines' command and re-enabled at any point, including mid-run. It will also show P1/P2/etc above the player heads if in co-op.

Some other changes of note is that players will not be stuck on the same screen as each other with online co-op. When portals spawn they will actually give a small indicator off-screen which makes finding them go much quicker in larger levels.

Outside of all these changes, the core gameplay of NTT will be the same as NT. Different versions will always mean there are different bugs present, but by and large the experience should be similar.

As mentioned the faq has a full list of commands, however for quick access these are the most useful for normal play; these are all built into NTT and needs no extra mods to run.

/sideload Enables mod loading in co-op lobbies, all players must do it to work.
/hardmode Enables/disables hardmode for the next run started.
/cwep [name]
/bwep [name]
/pwep [name]
Replace name with the desired weapon name.
cwep will change the primary starting weapon.
bwep will change the secondary starting weapon.
pwep will change the weapon found in proto chest.
Any weapon can be selected even if it's not a starter/gold weapon.
/ccrown [name] Changes the starting crown on the next run.
/ultras coop
/ultras own
/ultras all
Selects what mutations are seen upon reaching level ultra. All players must input it to change the mode like sideloading, before starting a run.
coop will give the vanilla NT version, Blood Bond or Gun Bond.
own will give each character their choice of ultras instead of co-op ultras. if running the same character, only one ultra can be picked but it can stack multiple times dependent on the ultra.
all will give the choice between either character ultras or co-op ultras; it is not possible to get both, just gives all of them as options.
/load [name] Loads a mod directory(folder), no file extension needed.
/loadmod [name].mod Many simple mods will be formatted as mod.gml files.
Typing in /load will preview all the other load commands in game.

(This is a brief summary of common commands for basic utility, remember to check the faq for deeper explanations. /help can also be used in game including all the load commands.)


Co-Op Menu Guide


This section will cover the entire menu UI primarily for first time usage, including info on sharing replays.

This is what the Steam version of the Co-Op menu will look like. A quick rundown of it;

If running a non-Steam version of NTT, the menu will look slightly different. Local 2P-4P and Replays from above are still selectable, but the different buttons will be;

Hosting a lobby will bring you to a screen that looks like this:

Even as players join, these options can be edited. While there are not visible arrows on these buttons, based on cursor position values can be clicked to the left/right to decrease/increase a value.


Modding NTT


If wanting to mod NTT it should be understood this is one of the more advanced parts of participating in the Throne community. It requires some coding knowledge to get started and may be frustrating to try to figure out at first, but luckily there are comprehensive guides out there to make the process smoother for those willing to show intuition. NTT was developed in GameMaker Studio using gamemaker language(or gml), which will be the basis of coding here.

The main tool used here will be YAL's modding faq which gives a basic introduction and gives a list of multiple resources to understand what is going on. Utilize all the links under documentation here! These are your building blocks to coding and should be treated as important to new modders. As mentioned in the guide GMEdit is a very useful tool in order to edit gml, use this page once downloaded for first time setup. As YellowAfterLife also developed this, it specifically is compatible with NTT modding and thus is a remarkable tool.
(Making a bookmark folder to keep track of everything can help to not get overwhelmed, as there are many links to keep track of!)

Now that the groundwork is laid, one can get familiar with coding. A good starting point from here is to look into other mods that are relatively simple; any gml file can be opened with a text editor such as Notepad, meaning that mods can be viewed to see how they were made which can provide useful insight.

If issues are run into that are not solved by the faq above there are many online guides that are in-depth on how gml coding works. Not all coding advice will be 1:1 to how coding works with NTT, but the basics will most certainly be there for most problems that are ran into.

There is an active modding community on the NT Discord and is a great place to share mods/programmers with other players. If learning to mod try to utilize the faq and many resources online that helps solve common issues - the Discord's faq clarifies the position to help those to help themselves, so it's better to try to work through problems rather than asking a solution to be found for you by other modders. This is the best way to learn, making a mod is not just about the end result but the knowledge gained through it!