🤑 Indie game store🙌 Free games😂 Fun games😨 Horror games
👷 Game development🎨 Assets📚 Comics
🎉 Sales🎁 Bundles


A member registered Oct 01, 2014 · View creator page →


Recent community posts

There is currently a bit of a bug with both GMS1 and GMS2 which causes the game to give up trying to initialize extensions if they are past certain size. Adding

if (debug_mode) live_preinit();

prior to live_init call fixes the issue.

Disabling GMLive (via live_enabled macro) while debugging (assuming that you don't want both at once) is another option.

On Coop menu, you can disable Steam, which allows to connect by IP instead.

(Edited 1 time)

The issue seems to be that you somehow have the "random" crown selected for custom characters (which share the save data), logic for which was never finalized because it was not pickable via UI anyway. Opening the loadout and picking other crown (e.g. "none") fixes the issue. I'll see about doing something with this for next update though.

Error text had no relation to the issue whatsoever, likely shown due to absence of debug information for part where the issue occurred.

Oh, I see. In that case, if anyone can upload a save file that breaks things, that would be appreciated.

One other person had this problem but I'm unable to reproduce it no matter what.

Have you checked Loading mods tutorial? If it's a directory (like with blaac's skin pack), you would do "/load skins", for example. /loadmod is used if there's a single .gml file.

The issue was resolved in private; new version (1.0.4) has revamped GMS1 installation instructions since a few people had problems parsing them.

Hotfix for this is now live.

Update: the issue is that apparently that the XML parser sometimes doesn't unescape "<" / ">" (originally "<" / ">" in code), breaking things. The issue is exclusive to GMS1 events.

Using live-coding on scripts instead works for a workaround until next build.

I'm currently investigating this - something is throwing it off in syntax recognition, which is probably a side effect of some last-minute fix because that does not happen in GMS2 version.

Unfortunately this is unlikely to have much resolution as this was a free mod and I don't have access to game engine's source code to even attempt troubleshooting distro-specific oddities.

As documentation states, the lobby is only destroyed when all players leave it - that is not done automatically, it is up to you to make players leave (or not leave) the lobby. The API is not signalized that the game has started as such.

There's a separate game server API for games that require long-time/persistent servers, but it is not covered in Steamworks.gml.

The lobby is not destroyed on session start in the example, only made private. That said, invitations should still work for private lobbies.

As I have said, the only cause of error that I can think of is corruption, because there's no other way it would not match up with actual code.

For clarity, did you verify integrity of game files via Steam, and then downloaded and installed a fresh copy of NTT?

(Edited 1 time)

What the error message says is that an array read operation went outside of boundaries in the array.

Array index that it states (row 17, column 14) does not match up with what is written in code of the said function (column 11 in a single-row array), which led me to conclude that your game files are corrupt.

The rest of the error message states that it originates from a destructor function in an input state (which hold polled buttons/etc for mods to get via API later), which was called by a "update inputs" function on a player object (which destroys the previous input state before it makes a new one), which was called by a bunch of other internal functions finally coming to the pre-update function in the code that handles modding API.

Well, if things work for other people, but don't work for you, it is a valid bet to try reinstalling the game just in case it is corrupted or anything.

I have tested but cannot reproduce that error. Have you tried verifying integrity of game files and then reinstalling NTT?

Does it always happen with mod in question, and if so, which mod is it? That error is pointing towards code that has nothing to do with custom characters.

New update is now released.

New update is now released.

I can't remember if the game starts in full-screen, but try Alt+Enter? Or set it to run in Win8 compatibility mode via file properties.

I'm aware and working on the issue, but I was not intending to roll out the next public release this quickly so it takes time to catch up. For a workaround, switching to the old u99_beta branch on Steam gets you a build of NT that NTT installs fine over.

(Edited 1 time)

It doesn't have local coop because it is not possible to zoom out the camera (like in Spelunky HD) due to pixelart, but you can open an extra window(s) of the game alongside, "host direct" on one of them, and "join direct" (with default IP-port) on the other(s). Then each window will follow their own player, kind of like ad-hoc split screen.

Beta versions can be downloaded from partnered Discord server.

Hello! "YellowAfterlife" or "@yellowafterlife" are both fine. Can mention me by the name too, but that can make it a bit harder to look up, as both my first and last name are fairly common in my country of origin.

Replied to moon2100 in QUESTIONS

On the affiliated Discord you can find the current preview build in #co-op_buddies channel' description. v9915+ have a "borderless fullscreen" option (as an option in "fullscreen" in Video Settings), which should help with that.

This is a strange question, but are you sure that it's 60fps? I just checked locally and Steam overlay says that it's 60fps, but in-game values still report 50fps, and it doesn't seem to be faster or smoother than SCBT.

Replied to protomutant in QUESTIONS

would it be possible to read the FAQ? (Setting up - On Mac/Linux support)

Have you tried following the official tutorial?  It specifically says which version to use. Also, you don't need to build anything - you can use the pre-built extension in this download.

Are you using the correct version of Steam SDK? GMS needs 1.35a.

Any function involving sending strings to Steam API, potentially including the built-in ones. Adding show_debug_message calls to different places should help to narrow down he location.

I think the only case where you could crash Steam client is by supplying an invalid string. Check that you didn't pass a non-string value as a string argument somewhere?

It is needed for events (e.g. lobby_join) to be dispatched correctly. I'm fairly confident that the example calls it somewhere from step.

Posted in Error in Code ?

That seems correct - this was originally going to be a P2P example (rather than with a server-player), and I guess I overlooked that when migrating the code. I'll fix that for the next update.

Replied to GidoLucion in QUESTIONS

See the announcement post. It even has the exact command to use.

Not necessarily advanced, but you would want a bit of extrapolation and interpolation - have the objects move in last reported direction (with steady velocity) while there's no data, and smooth out that predicted position to the actual one over a few frames when the information about the current position arrives.

For things like fired projectiles, you would only need to transmit initial velocity and impact position - the rest can be played out client-side.

I'd generally suggest to not go with "sending inputs only" - that implies input delay, which is not a thing to impose on players without a good reason. Sending the complete or changed state every frame is also a big task in itself.

You can also check out older blog posts on Monsters & Monocles' developer blog for various notes on networking in games of this.

(Edited 1 time)

Lag compensation shouldn't be affected by offset  of current_time, as time measurements would be entirely relative (to time when previous information arrived).

You would generally use something like Clumsy to artificially add lag on packets. Standard utility "netstat" can be used to figure out how and where Steam sends the packets (so that you know how to set up the filter condition in Clumsy).

It is hard to give advice without knowing what the game's like, but, in general:

  • In cooperative games, clients are usually allowed to check their own collisions, notifying the server when they get hit (and by what), as you want the game to favor the players and for players just generally have fun.
  • In competitive games, all checks and additional logic are usually done on server, as you want the game to be as fair as possible and to leave fewer opportunities for anyone to cheat. Exceptions are sometimes made for instantly-hitting  projectiles (laser beams, etc.), where damage is dealt if the player was certainly aiming right at the enemy on their side.

itch page simply links to the hosted version:


(because it's not possible to have the browser bring up the install dialog when downloading from itch)

As per tweaking, it's just changing the number in "tdf_bind" call on the bottom of the script to match the number of tweetdeck column that you have notifications in. I'm meaning to do some actual UI for this stuff, but hacking in menus on top of tweetdeck's already-unusual layout is not very fun at all.