v9940 - 60fps, chat revamp, mod stuff

Been a while huh? While I'm pretty sure that more or less everyone had already tried one or other beta from Discord, I think it's important to formally promote a version to take the role of the new stable release.

So, let's begin

60fps (or any FPS, really)*

* so long as supplies last your CPU can hold up

As it was recited a few times, implementing 60fps on the Nuclear Throne's original source code would not have been viable - the game contained thousands of velocity, timing, and other constants that would all have to be manually readjusted (sometimes just multiplying or dividing by two, sometimes more complex formulas - and you might have thought that your high school physics course was useless).

However, I didn't write a GM-specific code editor with advanced find-replace functionality (pattern matching, custom logic) for nothing, you know, so I thought - maybe this would be more viable to do this way? Fast-forward some 30 hours of work, and the game now spots a current_time_scale variable, which controls how fast everything happens.

So, to run the game at 60fps, you would open chat (T) and paste (Ctrl+V) the following:

/gml q=60 room_speed=q current_time_scale=30/q

For 144fps, you would change 60 to 144.

While this isn't perfect (differences in how projectiles bounce are the most apparent), it's still a very good option if you were irked by 30fps lock in past.

Combine with display scaling, and the game looks smoother than ever.

Chat overhaul

For a long time, chat in NTT was pretty basic - you could enter text and erase entered text.

This changes now - the chat now has cursor, selection, and even auto-completion!

Mods can make use of new chat features as well, so this is an all-around good thing.

Mod tools

If you are making or playing NTT mods, there are a couple new toys now.

There are now shaders, which can be used for visual effects, or wilder things - such as the raycast mod by Golden Epsilon:

There are now also 3d functions, which can be used for, well, that

And mouselock functions for specific purpose of first-person mods and anything akin.

And you can now make built-in mutations more or less powerful via skill_set(mut_scarier_face, factor)

And about 30 other things

The Future

The future is bright.

It would appear like the day had come when Nuclear Throne imports and functions correctly in GameMaker Studio 2, therefore it might finally be time to move to GMS2.

This will allow to make use of various performance improvements that happened in past year and so, will allow to finally have proper post-loop performance in coop (eliminating the need for offline mode), and open the road for some of the wilder improvements (for mods in particular).

For the base game, it'll hopefully mean a less broken Linux and Mac builds, as both runtimes had seen substantial improvements recently.

However, that means that this is potentially the last release that runs on DX9 (and, consequently, Windows XP) - while u99r2 will likely still get a separate XP-compatible version for those few that use it (which, essentially, would be the current state of bugfixes + whatever newer ones manually ported back to GMS1), NTT tends to change far more game code at once, therefore maintaining two independent versions would be impractical.

Have fun!


NuclearThroneTogether9940.zip 11 MB
Jan 18, 2019

Get Nuclear Throne Together

Download NowName your own price


Log in with itch.io to leave a comment.

is there a way to make the game automatically be in 60fps?


You could add the command to your startup.txt in the save directory; if you own Nuclear Throne on Steam, openbeta_win64 (vanilla) and ntt_testing (NTT) branches both now have framerate and aspect ratio settings under Game.

is ntt testings the same as ntt development?


Ah yes, sorry - quoting from memory.

I'm kinda curious, do you have direct access to that steam version?

I’ve been on and off working on the game itself since 2017 - update 99 and the (slightly unfortunate) Xbox port are my work, as is the ongoing effort to migrate the game to current GM versions.

I assume this won't get read since it's been a minute but how would I go about enabling the 2.5d look that's not in third-person like in the first example? 

Unless someone on Discord has it (or is willing to rewrite it - was mostly about setting up 3d camera), that mini-mod is probably lost.

Ah shame to hear. Thanks for the reply though!

у меня проблема мне постоянно вылетает ошибка (место положение файла с игрой) не является предложением Win32 что делать

Обычно означает, что ты ставишь NTT на несовместимую версию NT. В стиме билд игры для v9940+ лежит в бета-ветке “modbranch_2021”.

Deleted 3 years ago

The process is as following:
- Start multiplayer, get to campfire screen
- Each player does `/sideload` to enable loading mods/external content
- Any of players does the commands or `/load startup` to load their startup.txt

When setting the game to run at 60 fps by the command mentioned in this post, I get the following message at the title screen: 

    Your game seems to be running at >1x speed.
    Try removing options.ini from the game directory;
    Check the FAQ topic if the issue persists.

What's the cause of this happening? How can this message be disabled? Is there any command in NTT to suppress all warnings and error messages to display on the title screen?

Well, does the game work correctly despite that? If you ran the command and then exited to the main menu, this appears for a split second as the framerate stabilizes to the original value.

I run the command at startup through `startup.txt`. Here's its content.

/gml game_set_size(426, 240)
/gml room_speed*=2 current_time_scale/=2

If I set `AlternateSyncMethod=1` at `options.ini` this message is constantly displayed at the title screen and menus. This can be seen in the video.

When setting AlternateSyncMethod to 0, the warning isn't displayed. However, I observe tearing and tiny frame rate stuttering when playing the game, so I have to change the value back to 1.

In general, I think, it's probably better to put warnings in the console or/and in a log file. Or, as an alternative, there can be a command/option to change log verbosity.

every time  i try to install this update i get this error message:

Couldn't open NuclearThroneTogether.exe for writing: System.UnauthorizedAccessException: Access to path "Snip\Steam\steamapps\common\Nuclear Throne\NuclearThroneTogether.exe" is denied

i managed to fix it by changing the install location, but now it just won't start. i double click on the exe file, it says that the game is running, and then it just... stops running, before it even brings it up.

See if you have a data.win in game directory. If you do, rename/remove it and run NTT-Assemble again

yeah, that worked, thanks

where we can get that Raycast Mod? i can't find it

Worth asking on Discord- a version was tweeted out when someone asked about this last time, but I'd imagine that it is no longer the current one.

Thank you so much for the update! Love it, and the jump to 60fps is beautiful.  I couldn't find the raycast mod you mentioned, is it something that's available?

The author posted a copy in response to someone asking;

Generally you would ask on Discord

Awesome update, thanks a million. Only one problem: There seems to be a hard cap at 144fps. I can't get the game to run any higher than that and I'm positive it's not a hardware limitation.

Well, I originally had it cap at 60, then someone said that they have a 144hz monitor so I bumped the cap to 144 and never thought of it again I take it that you have a 240hz monitor?

Yep, sure do! IMO the best way to have the mod would be with no framerate cap, that way it's totally future proof.

Playing at 144FPS IS SO DOPE

Thanks for making the mod!