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
- Versions guide to installations.
- Features Overview for the basics of co-op and loading mods.
- Game features that explains differences over base NT.
- Co-op Menu guide for first time usage
- Modding introduction to those who want to make their own.
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
- Opt into the modbranch_2021 beta. (Instructions)
- Install a fresh version of v9940 using this modbranch.
- Launch v9940 once.
- Install v9944 in the same way - do not tamper with any files inbetween these steps.
- v9944 can now be launched, though switching betas may cause it to break.
- 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:
- v9940 is the latest stable version of NTT that released on January 19th, 2019.
- This option seems to be best for online co-op, as it is much less prone to desyncs.
- Obscure bug where Ravens flying towards players can cause desyncs if one of the players is using a controller.
- Any version that is on u98 or u99r1 should be compatible for v9940.
- This includes the default Steam version, Itch, GOG, Windows EGS and the old Humble/Indiebox versions.
- (Only Steam, Humble and GOG versions are listed as officially supported, NTT has been tested on all of these PC platforms and have worked.)
- The 'explofix' mod is needed for any records as explosions do not work as intended. Currently the download is only shared through the NT Discord.
- v9944 is a NTT beta that was shared in the NT Discord around April 2020, and later on Itch.io on February 17th, 2024.
- This version is used for a specific Steam beta branch, u99r2b3s listed as modbranch_2021.
- A popular branch that modding is done on. Some older mods may struggle in v100 that work fine here.
- Performs better than v9940, but has frequent desyncs in co-op.
- The 'vanfix' mod is needed for any records as vans do not have contact damage. It can be downloaded via Itch.io here.
- v100 is the NTT beta hosted through Steam added on June 16th, 2022 with its latest update on December 7th, 2023.
- The current version is 100.017 listed as ntt_development.
- Preforms far better than any other NTT version, due to its optimizations it is a popular choice for singleplayer record attempts.
- May not be compatible with some mods, and also may experience co-op desync issues.
- Bug in YV's mansion is present where only Golden Screwdrivers will appear in the weapon chest.
- B-Skin unlocks have been known to cause crashes.
- If using replays there is a bug where clicking the 'Menu' button at any time can cause a desync on all three versions. Using the '/exit' command when a run is over is the safest way to end a run.
- openbeta 2021 & 2023 beta branches are not compatible with any NTT version, v100 is meant to be used in their place.
- Similarly, the version obtained via Xbox windows app cannot actually run NTT because it is on a 2021 beta branch.
- NTT is compatible for Windows. For Linux support for versions through Steam, try using Proton. For other platforms and for Mac, try using WINE.
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:
- Download ZeroTier.
- ZeroTier will appear on your task tray.
- Wait for the Host to give you the network ID to join the network.
- Once Host has begun the session, wait for them to give their managed ip to you.
Host:
- Make an account on the website.
- Make a network.
- Make the network public.
- Give the users your Network ID.
- Host a game.
- 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.
- 'T' button can be pressed in order to type, whether to send messages to other players or load commands.
- Up arrow can be used with chat open to cycle thru previous messages/commands.
- '/' button can be pressed in order to start a line with a slash for quick mod loading.
- 1-6 buttons can be pressed to create notifications for other players to see as a way of non-verbal communication, including health and ammo indicators which is useful for players off-screen.
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;
- 'Local 2P-4P' to play NTT locally.
- 'Replays' gives an option to enable replays. If enabled, any run in NTT will be locally stored and can be viewed/shared within NTT itself.
- Selecting a replay will give the option to launch, stream or delete it.
- Watching a replay will show chat commands used, and gives options to change players(P1 default) and change the replay speed.
- If the 'play' button is hit, the replay can actually be taken over and played normally from that exact point.
- Replays are locally stored in files and can be sent to other players, who can put it in their replay folder in order to view.
- To access it on Windows go Win key + R for the run prompt, then paste in '%localappdata%/nuclearthrone' and hit enter. The folder is called replays.
- Replays on some NTT versions have been known to desync, especially if hitting the 'Menu' button at any point of the run including the end. Simply type '/exit' when a run ends instead of hitting the Menu button.
- 'Use Steam' can be swapped from Yes/No. Selecting No will change it to the non-Steam NTT version, which should allow joining of friends who are running the same versions of NTT that isn't on Steam. (Not actually tested)
- 'Find Match' will queue you in any open public lobby, or automatically create a lobby if anyone else is trying to find a match. (Appears to be buggy - being the lobby host may make you stay stuck on the loading screen.)
- 'Host Public/Private' will create a lobby for friends to join; if private only friends through Steam can be invited/join.
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;
- 'Alias' is the display name used in a run and can be changed, otherwise it will default to your Windows username.
- 'Host Game' will host a lobby that those with the IP are able to join, if the right setup is done(port forward guide above). A password can optionally be set.
- 'Join Game' will give a spot to enter IP/Password in order to join the host. Port can be kept on default, 5394.
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.
- 'Delay' will display the ping delay while playing, the lower the number the better. Once players join it will automatically adjust for ping.
- 'Slots' can be selected from 1P to 4P to decide how many players can join.
- 'Local Slot 1' gives the Player 1 slot to the host. Clicking on an Empty Slot will make it an additional Local Slot and vise versa, allowing for 2-3 players locally to play with friends online.
- 'Invite Players' will launch the Steam overlay if applicable in order to invite any online friends.
- 'Start' will bring players to the character selection. A new lobby must be created if wanting to adjust these lobby settings further.
- 'Title' will be the title of the game, which is seen by those searching for public games.
- 'Allow Spectators' will let any player who joins during lobby creation but exceeds the number of player slots to spectate the game from their own NTT client. They can switch player perspective using the same UI as replays, and can talk in chat but cannot interact with the game otherwise.
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!