Recent community posts
There is currently an issue where gamepads cannot be used to select mod-made skins in loadout.
This will be fixed in the next release, but till then you can use "/gamepad" command to switch to mouse for a moment ("/gamepad 0") and then back ("/gamepad 1") after selecting the skin.
You could make a file called shareammo.mod.gml, and have it execute it on game start:
ultra_set(0, 2, 1)
Then you'd `/loadmod shareammo` once per session and that would be it.
The only friendly fire that there is by default is on explosive weapons, but that is not easily gotten rid of. May want to pick Boiling Veins in such case.
An easy thing would be to do
/gml ultra_set(0, 2, 1)
which would give you the "shared ammo from pickups" coop ultra mutation. Similarly,
/gml ultra_set(0, 1, 1)
can be used to get "shared health from pickups" ultra mutation.
At one point someone was doing a mod that had all players have shared ammo pool, but apparently it wasn't finished and was generally acting kind of weird at best.
Clicking the option another time sets native cursor to work with a size limit, which workarounds an issue on some systems where cursors larger than 64px turn invisible (although the Windows permits cursors up to 256x256 by the format).
If you make a .txt file called "startup" in "mods" directory, any commands from it will be automatically executed as soon as you boot into a local game (same as if you did /loadtext startup).
In online session, only the person loading the mod needs to have it - any required files will be transmitted over the network.
Yes - just click on "[Modded]", and it'll collapse the mod list. Click again to expand. Only works when it is usually shown (pause/loading/gameover).
- Green icons near the mod names can be clicked to unload them or Control+clicked to reload them.
- Mod list can be scrolled via mouse wheel when mouse is over the green icon area.
Main menu is outside of the game state - no mod-related code runs at that time, replays cannot be recorded, and generally things work... differently. I have briefly evaluated doing this when starting to integrate modding support, but it could have too many side effects to make it a worthwhile development. You can totally replace the character selection with custom menu(s) and set that up to load via startup.txt though.
Some of the recent WIndows updates did some interesting things to compatibility, and you may also have to set the game to run in Windows XP SP2 compatibility mode.
If you have an NVidia graphics card and GeForce Experience installed, watch out for that - the recent updates seem to be plainly butchering compatibility with games/applications. A person that I work with on a few projects had to rollback the driver because the GPU ceased projecting to external monitors after an update and GMS games would similarly just black screen when in full-screen mode.
Ultra mod is based on update 19 so that's about 1.5 years of differences in underlying game structure.
It is possible to make mods to selectively mimic most of the interesting parts (characters, weapons?) of it though.
I'd think that at least someone of people asking about this would have enough programming experience to get on that.
I don't recall anyone reporting framerate issues with labs. It could have coincided with something like Steam client glitching out (which causes the mod to lag heavily because it has to poll it's events to be able to do networking). Restarting Steam usually helps that.
If mods are written suboptimally (e.g. picking through every enemy/projectile/wall every frame), that can pose it's own problems. That would be a thing to investigate separately by loading/unloading mods and watching how framerate changes.
In general though, the more walls\floors\enemies\projectiles there are, the slower the game gets.
This is usually helped by switching to spatial collision system introduced in GameMaker last year, but I am unable to make use of that in NTT because it's currently not deterministic, meaning that it noticeably messes up networking and breaks replays entirely.
Since the option cannot be toggled while the game is running, the only way to utilize it for local sessions would be to make a separate "offline" version of the mod, which isn't something I'm enthusiastic about (spending time adding conditions to everything and then spending twice the time to make every new build).
Overall, mostly can only wait till things are fixed on GameMaker side.
The game freezes if there's nothing coming through from the remote player(s), meaning that it is unable to proceed without dropping connection to player(s). Timeout regulates how long the game waits this way before giving up.
Amount of things going on has very little significance due to technical aspects - since the number of objects gets very high late-game, networking is done closer to how RTS games usually work - transmitting actions instead of positions.
My suggestion was to try setting the timeout to a very high value (e.g. 3600 = a hour), and seeing if it eventually comes back or not. The technical side is as simple as it gets (asks Steam to send data back and forth; pings twice a second if nothing comes back), so it is unlikely that anything can be done on the side of the mod; Restarting Steam sometimes fixes particularly strange issues with it.
Hopefully this week. Currently having the preview build tested by some people. If you have time and willingness to test, send me a message on Discord (YellowAfterlife#3735) and I'll send you the work-in-progress build.
Upon further examination, the issue was identified to be because the act of ravens having their health and max health reset during flight, with "flying" object also being exempt from Scarier Face' rules (meaning that they'd go from 8/8hp to 10/10hp).
Narrowly hitting with a wrench (only dealing damage once) does 4hp damage, full hit does 8hp damage, so that explains it.
That is a known issue (a regression after making HUD draw in pause menu correctly) and will be fixed in the next release. The only "fix" would be to write/use a mod that draws custom HUD (e.g. there's HUDit).
Depending on what you are playing the mod for and how much you are concerned, reverting to 9883 would work for avoiding the issue.
That was not a balance change.
It was a change to make custom enemies and custom projectiles possible, as the game previously was literally checking if something is currently displaying a "hit" sprite or not to determine whether to deal damage. Since this basically made the entirety of enemy logic a bloody pile of hacks (e.g. for firing animation enemies are actually changing their idle/walk sprites), and imposing this upon modders would be suboptimal at best, I have taken the time to make it into an proper countdown timer until next melee hit instead.
However, as you have mentioned, this does seem to change damage of some things... I'm currently figuring out why's that, as it would seem like it should have been a +-10% damage difference (off-by-one-frame) at most. Unfortunately, making this mod isn't my full-time job, so I have to balance between mod development and actual work.
As per palace dogs and Big Bandit in particular, the ability to hit them multiple times during attacks will be returned in next update explicitly, since the game does seem to have been balanced around the bug (instead of fixing it).
Since networking is done entirely through Steam API, to play without Steam you would need something to emulate a substantial chunk of Steam client, including networking functions. I assume that such things exist, but you'll have to look around by yourself.
Alternatively, as a "true programmist", see if you can get Faucet Networking to compile on Mac/Linux or otherwise produce an open-source native extension for GameMaker for synchronous/blocking UDP networking functions on Windows/Mac/Linux. My Steam API networking extension can be used as reference for how game<->extension communication should be handled in current versions of GM. If such thing was to exist, I could add a "connect by IP" feature in future.
Upon further evaluation, it seems like you can 1-hit or not 1-hit crows both in vanilla and NTT - this depends largely on whether you are swinging the wrench in open space and on the distance to the target. In open space, the crow is pushed alongside on a swing (like a board on a wave), dealing more damage. If the swing touches a wall, on other hand, it advances slower than the crow is pushed away from it, and thus does less damage. Only narrowly reaching the target with a swing results in a similar effect.
That is up to Steam. It does support LAN (the same approach is used for detecting devices in-home streaming). Whether it supports hooking up devices directly would be a thing to test separately.
If the connection is excessively choppy, the game will stall while there's nothing coming through.
You can assess the situation by holding Tab and watching whether the displayed ping for the player is periodically jumping into hundreds. Connection graph below it would also reflect the situation. There's also framerate displayed there, which should be convenient, since you mention that the game runs at 60+ fps but it is locked to 30fps unless changed with mods.
Sometimes it's Steam fault and restarting it fixes the problem. Sometimes it's the actual connection being odd.
Depends on what exactly you are trying to do - e.g. for movement you could just adjust hspeed\vspeed and clamp it to (0, maxspeed) range like the game does. For shooting weapons, there's player_fire() function. Swapping weapons is just exchanging values of "wep" and "bwep" (and a few other variables like "reload", "breload" - see fields.gml).