## About The Pull Request
Updates `SPACEMAN_DMM_VERSION` to `suite-1.10` in `dependencies.sh`, for
the new
https://github.com/SpaceManiac/SpacemanDMM/releases/tag/suite-1.10
release
## Why It's Good For The Game
WE CAN FINALLY USE SOME 516 FEATURES WITHOUT BREAKING LINTERS, YAYYY!
(~~barring opendream~~)
## Changelog
No user-facing changes.
## About The Pull Request
Title. If compiled on 515 the game screen will be black
## Why It's Good For The Game
There is no reason for it to exist if connecting from 515 is not allowed
🆑
config: Added `TTS_HTTP_TIMEOUT_SECONDS` for setting the maximum
duration TTS HTTP requests can run for before being aborted.
/🆑
DNM because we need the rust-g PR to get released:
https://github.com/tgstation/rust-g/pull/210
Crit prio because rounds will not restart if there are hung TTS requests
and the TTS server is absolute dogshit and doesn't prevent them.
## About The Pull Request
Fixes for the not-yet-implemented GAGS and better 64bit detection
Also I moved the SQL methods because they're in the wrong spot when you
copy from the dmsrc output
https://github.com/tgstation/rust-g/releases/tag/3.7.0
## Why It's Good For The Game
Routine update
## About The Pull Request
Kapu told us to do it because it has the function for sound length now.
## Why It's Good For The Game
rust_g updated.
## Changelog
N/A
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
## About The Pull Request
- Node 22 LTS and Yarn 4.5.1
- Removes windows 7 compatibility support
- Set to install for you on the next build
- CI also bumped to Node LTS
## Why It's Good For The Game
Oil change for TGUI. Up to date and fresh!
## Changelog
N/A
## About The Pull Request
Watermelon wanted a more informative error message for when trying to
convert destructed userdata (left behind when qdeling a datum with a ref
being held by a lua state) to a BYOND value.
## Why It's Good For The Game
Better information for admin tooling is an obvious positive
## Changelog
🆑
admin: Dreamluau provides a more informative error message when trying
to pass references to qdeleted datums back to BYOND.
/🆑
## About The Pull Request
Exposes the rewind byond var, one guy had a problem with this and I had
flashbacks to manually setting repeat info on airlock animations and
decided to do the right thing.
Adds support for multiple target input folders by space separating them.
This should hopefully make integrating the cutter easier for downsteams
and servers with weird fucked up icon stuff.
This is a major release because I am being anal about SemVer and
TECHNICALLY I'm removing an unused (and unchanged) public version
constant
Also the input change is maybe sorta breaking so might as well
For more detail please see
https://github.com/spacestation13/hypnagogic/releases/tag/v4.0.0
## About The Pull Request
Ever since byondapi went stable, I've been meaning to create a
replacement lua library that uses it instead of the auxtools-based
auxlua. After so many months, I've finally got the code just about into
a position where it's ready for a PR.
[Click here](https://hackmd.io/@aloZJicNQrmfYgykhfFwAQ/BySAS18u0) for a
guide to rewriting auxlua scripts for dreamluau syntax.
## Why It's Good For The Game
Code that runs on production servers should not depend on memory hacks
that are liable to break any time Dream Daemon updates.
## Changelog
🆑
admin: Admin lua scripting uses a new library that (probably) will not
break when BYOND updates.
/🆑
## TODO:
- [x] Convert the lua editor ui to TS
- [x] Include a guide for converting scripts from auxlua syntax to
dreamluau syntax
## About The Pull Request
Release notes: https://github.com/tgstation/rust-g/releases/tag/3.3.0
Mainly bumping in order to use a feature of it in #83138, to optimize
the system a little better.
## Why It's Good For The Game
Faster init when that system will be more widely used is a good thing.
Also keeps us up to date and enables more tools to be available to
coders.
## About The Pull Request
Puts a switch inside our build tools that will download the appropriate
node version based on your OS.
#82334
## Why It's Good For The Game
Closes#83076
Allows players to play the game
## About The Pull Request
Per request of MSO, drops the fallback icon generation for clients under
515.1635. Lootpanel warns about this anyways and you had ample time.

Saves some time from SSlooting.
## Why It's Good For The Game
Pushes players to use a better client
Saves some server cost from older clients
## Changelog
🆑
fix: Lootpanel now requires 515.1635 to generate most icons. TG support
for 514 ended May 1. Update your client to fix the icons.
/🆑
## About The Pull Request
Bumps the cutter to my latest
[version](https://github.com/spacestation13/hypnagogic/releases/tag/v3.1.0)
See there for the full CL but in short:
### Fixes/Polish
Error handling actually works now (it prints instead of crashing the
program)
Pretty colors in CLI when running it

Release files are more portable (Windows version requires less cruft bs
dlls, and the linux version targets musl instead of glibc, making it far
less platform dependent)
### Features
The cutter supports a new mode called Reconstruction, which takes a
target dmi and does a good faith effort to convert it back to input png
and toml files. This only works for default bitmasking, and it doesn't
ALWAYS work, but it's really powerful.
It's what I used to make my initial cutter pr here. See
[here](https://github.com/spacestation13/hypnagogic/blob/v3.1.0/examples/bitmask-slice-restore.toml)
for more detail.
## About The Pull Request
Action doesn't have the bandwidth to maintain hypnagogic atm. I've
migrated it over to the spacestation13 repo, and cut a release for the
most recent version.
https://github.com/spacestation13/hypnagogic
I'll be attempting to maintain it myself, though I'm not amazing at
rust. We do what we must because we can.
## About The Pull Request
By default this will install node v20 LTS, but if a user is detected to
be using win 7 it's node v14
This lets us run higher node versions (with presumably more stable and
performant content) while allowing win 7 users to play
I should note that this is making clean tgui builds run at ~6.7sec which
is about a 6.9% speed increase (nice) from the previous #80310
## Why It's Good For The Game
Better tools
## Changelog
N/A nothing player facing
## About The Pull Request
Two reasons for this.
1. It's the stable branch, so let's move it up. This PR will detect any
issues that we might have with the latest 515.1633 as far as the
codebase is concerned (the servers have been running 1633 for at least a
week now).
2. ~~I'm fucking sick of seeing the Lua Scripting Notice in CI even
though it was fixed a few days ago in #82074
(5624d94524)
``~~
## About The Pull Request
This should be the very last version of auxlua I need to release before
its byondapi-based replacement
## Why It's Good For The Game
Some people still want to use lua scripting while the new library is yet
to be ready for release
## Changelog
🆑
fix: lua scripting should work on BYOND 515.1633
/🆑
## About The Pull Request
Release notes: https://github.com/tgstation/rust-g/releases/tag/3.1.0
Continuation of #76663, also see: #77307
Tested locally w/ DB connected and I couldn't reproduce my prior steps
to get a crash on end-of-round shuttle call/restart.
binary is from the release
### **Needs to be supervised by MSO for a testmerge imo**
## Why It's Good For The Game
Keeping up to date, bug fixes, same reasons as the 3.0.0 PR.
## About The Pull Request
Ok so you know all the dmis we have that are made to work with the
smoothing system? carpets, walls, etc.
The proper way to edit those is to convert them into a png with 5
"states' it in (one for 0 connections, one for horizontal, one for
vertical, one for all cardinals and one for all directions) and then
modify THAT, then run it through [the cutter
tool.](https://github.com/tgstation/icon-cutter)
But none ever does that, because we explain it fucking nowhere. So
instead, let's keep all those "base" files in the repo, alongside the
configs they work with, and "cut" the pngs into dmis as a part of the
build process.
I wrote a guide for how to interact with this system as a spriter, you
can find it
[HERE](https://github.com/LemonInTheDark/tgstation/blob/slice-the-sky/icons/Cutter.md).
[Adds a icon cutter build
task](52143d2e96)
This relies on action ninja's hypnagogic (find more
[here](https://github.com/actioninja/hypnagogic)), a rust based icon
cutter.
It operates inline with the file structure, searching the codebase for
templates and resource files and compiling them down to dmis.
It can do way more then just bitmask stuff, but that is what we are
using it for rn.
Hope is to prevent for eternity the "I'm just gonna edit each of these
255 icon states that's how this carpet was made right?" meme, and allow
more expansive use of smoothing in future
[Adds a lint that ensures config files work
right](21eeab9cf8)
Checks to ensure they have a paired png and dmi, and also avoids issues
with uncompiled changes by double checking that nothing happens
before/after a cutter run
[Pulls all non smoothed states out of structures into bespoke
dmis](a730e0cb47)
This is required because the cutter cannot output named icon states,
only the actual cut icon
[Does something similar to
walls](40780e9481)
Moves reinforced walls decon stuff from their icon to a var on the type
and a set of states in the reinforced_states dmi
Moves falsewalls into their own dmi, this involved some changes to
gamecode to ensure falsewalls knew which dmi to use and what key.
Makes falsewalls display as such in editor rather then just walls
Moves smoothrock's gibonite overlays into their own file for similar
reasons
[Same thing different day
(Floors)](9a3da3b697)
Pulls bespoke floor icon states into their own file, splits up neon
carpets into multiple files to make cutting possible
[Actually adds the cut templates and their matching png
files](1bd8920dc9)
Not much to report here, outside of I changed the prefix for bamboo
walls to bamboo_wall so it works with false_walls
## Why It's Good For The Game

None should have to manually edit cut dmis. Ever.
Also this makes adding a new smoothed thing trivial, don't even need to
know what tool you're using to do it. V good v good.
Sets us up nicely for wallening's well, wall of sprites.
Some structural decisions, we are essentially committing build artifacts
here. That's the best way of handling it because otherwise mappers could
need to run build.bat before opening a map, and that is stupid!
## Changelog
🆑
refactor: (Almost) all smoothed icons can now be edited in their pre cut
forms
/🆑
## About The Pull Request
LSP supports it, let's GOOOOOO
I've removed the 515 tests since they're stable, alongside the libcall
wrapper. left the rustgcall wrapper cause yaknow memes
Just removed all the 515 and 514 particular define wrappers. gaming
## Changelog
🆑
server: Minimum compile version has been bumped to 515. clients still
support 514 but we're gonna start using 515 restricted features for
serverside now.
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
## About The Pull Request
You can read more about what's introduced in the last four versions
here:
https://github.com/tgstation/rust-g/releases
The immediate effects for us are as follows:
Closes#76549Closes#76514Closes#76502Closes#76490Closes#76398Closes#76798Closes#76921Closes#76934Closes#76950
the updates to install rust_g.sh were to cut down on the copypasta code
and prevent desyncs.
🆑
code: The currently operating rust-g version on a live server is posted
to places like the runtime.log, in the same place where the revision
information and any applicable test merges already were.
/🆑
## About The Pull Request
I had to add new Windows signatures to auxtools so it would work on 515.
I then had to bump the auxtools lua dependency and push a new release
version. This PR bumps the auxlua dependency version.
## Why It's Good For The Game
Fixes admin lua scripting on Windows for 515, for now (it will probably
break again as more 515 beta releases come down the pipeline, but what
else can you do about it? It's probably still broken on Linux but that's
because nobody's found the 515 function signatures on Linux.)
## Changelog
🆑
admin: Fixed admin lua scripting on Windows-hosted servers running on
beta version 515.1602 (the latest version as of this change)
/🆑
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
On the tin. You can read more about what this update entails at the
changelog here:
https://github.com/SpaceManiac/SpacemanDMM/releases/tag/suite-1.7.3 .
Just a lot of tools that were developed in 2021/2022/2023 that are
finally available for use in this way thanks to a release. And more
importantly:
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Fixes#67166
oh my god this has been irritating me for so long it should
(theoretically) be fixed now since the code fixing this is now in the
release's source phew the button to click actually takes you to where
you need to go thank GOD
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
Nothing that particularly concerns players.
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
[Documentation
here](https://github.com/Mothblocks/tgstation/blob/maplint/tools/maplint/README.md)
We should not be using greps to the capacity that we currently are. If
you are not smarter than a parser, then you should not try to beat one.
DMM files should NOT be treated as text files that can be parsed with
any old Unix tool. They are a structured language. Because of our abuse
of greps, check_greps is full of hard to read, hard to maintain checks
that do not consistently work, because they all make very specific
assumptions about how TGM works, which are provably untrue.
This format is mostly straightforward for the lints people write, and
easily extensible to the ones people will want to write.
🆑
fix: Fixes a bunch of cases of windows not being where they were
supposed to be, tables/chairs stacking on each other, and other very
small stuff you've never noticed before.
/🆑
## About The Pull Request
Mothblocks recently talked about wanting an auxlua function to check if
the lua state was about to overrun its execution limit, and that was
something I had been thinking about for a long time prior, but never
bothered to actually implement until it was brought up. So I did just
that. The documentation has also been updated to include a description
of how the execution limit works and how to use the new function,
`over_exec_time`
## Why It's Good For The Game
Allows for lua loops of indeterminate length to do as much work as they
reasonably can in a single tick without setting off the execution
limiter and erroring out.
## Changelog
🆑
admin: Adds a new function for admin lua scripting, "over_exec_time",
for checking if lua code is running close to the execution limit.
Details are available in the lua editor's help menu.
admin: The execution limit is described in detail in the lua editor's
help menu.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* PKP Mind Virus: Glorfing Cigs edition
If you glorf while smoking you'll get the cig stuck in your throat, leaving you unable to breath, speak, or eat. Based off the sort of cig you have a random delay before you vomit up the cig. (Pipes last forever don't philoso-larp kids). Other players can help you by using the help action on you while you're hurt, which leads to something imitating the himelich manuver, a broken chest, and a vomited up blockage. Other forms of vomiting will work too, if that's even applicable.
Oh I fixed a bug in vomit code. Because paralyzing you forces you to the ground, thus changing your dir, paralyzing vomits always went down. This is cringe, easy fix tho.
Ah and I added some extra functionality to sound loops too. You can set them to pick and take from the provided list, then refilling it once it's empty. This keeps some variety while preventing the risk of repeat sounds
Oh and I added some new signals. Some misc ones, for force say and a different kind of help then the existing one, which I renamed. One for breathing, which I used to clean up leroxin. I was planning to hook this but didn't need to in the end.
One for vomiting too. and eating. Also added a way to update looping timer delays. Forgot about that, I also added variable delay for sound loops, because I thought it sounded better here.
Features audio courtesy of our very own san7890, and the quake jump sound.
Bumps auxlua to 1.3.0. The only thing this adds is the loadstring function, which is present in basically all other forms of lua scripting.
loadstring allows for compiling strings of lua code and running them. It's a function that exists in most other forms of lua. One particular use case is downloading the raw code of a lua module from the internet using a /datum/http_request, then using loadstring to run that module.
* preparations for self-referential list conversion
* additional changes for the auxlua 1.1.1 update
* fixed a type in `SS13.await`
* bumps auxlua to 1.2.0
* bumps auxlua to 1.2.1
A resuscitation of #67474 since Arm is not presently able to do it.
rustg_read_toml_file has backwards dependency to support older cases that checked for lack of list (the old sign the rust fn went wrong).
Fixes#67446
The configuration for the word filter now verbosely describes the error from the bad toml to the logs, allowing problems with it to be identified quicker and resolved.
Why It's Good For The Game
BLAZING
Ferris warning
Changelog
cl Armhulen/Armhulenn/Bazelart/Tralezab, san7890
admin: Word filters incorrectly set up will now have their errors actually described. Please, tell your server ops when you see it so they may fix the configuration.
server: Rust-g on this codebase is now on the 1.0.2 version, prepare accordingly.
/cl
I also bump rust-g's DLL to 1.0.2 in this PR as well.
* Change bootstrapped NodeJS on Windows from 32-bit to 64-bit
* Last node version to support Win7
* Skip platform check
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
From quick test all our helper scripts work fine on 3.7.
Why 3.7.9 instead of latest 3.7.12 ? Embed zips for these versions are missing from python.org ftp. (They apparently do not ship binaries for security-fix only releases)
Fixes problems with building tgui on certain versions of Node.
Bumps required NodeJS version to 16 (which is the current LTS)
These two things are atomic, they're just bundled in one PR for convenience.