1.11
Golden Crayon's sound runs on Steam Audio again, in place of the MiniAudio engine it has used lately. Steam Audio is what the game ran best on, so it's back, rebuilt from the ground up. You shouldn't notice any big differences: rooms, plate and convolution reverb, muffling through walls and underwater, and voice chat should all sound the way you're used to. If anything sounds off to you, quieter, louder, closer, further away or just different, please let me know.
Speech now goes through Prism instead of Universal Speech. Prism works with far more screen readers: NVDA, JAWS, Narrator, System Access, ZDSR, ZoomText, PC-Talker and others on Windows, VoiceOver on Mac, and Orca and Speech Dispatcher on Linux. It also notices when you start, close or switch screen readers while the game is running, so speech follows along without a restart.
The Speech tab in Settings has three new options:
Screen Reader To Use picks which screen reader the game speaks through when you have more than one running. Automatic, the default, chooses for you as before. If the one you pick isn't running, the game goes back to choosing automatically until it is. Narrator shows up in the list as UIA.
Pitch, next to Rate, for the game's own voice when you aren't using a screen reader.
Show What Is Spoken On A Braille Display, on by default. Turn it off if you'd rather your braille display wasn't updated with every message.
Changing the Music, Sound Sources or Stream volume now takes effect on every sound in that category at once.
Wax templates can now use say, to choose what's announced when the template is built. See wax_template_guide.txt in the documentation folder.
A plate space's decay time now tops out at 30 seconds, so a huge value typed in by hand no longer rings practically forever.
Dialogs can now have an ID, so buttons, triggers and other actions can open them, and can be set to open only that way. Thanks Kaliah.
Buffers and menus now pan evenly from left to right, instead of bunching the last few together on the right. Thanks Kaliah.
On a Mac, Option with the arrow keys, Backspace or Delete now moves and deletes by word in text boxes. Thanks McOi.
The map inventory now always uses the real Control key with Tab, so changing your modifier keys no longer has your computer switch apps instead. Thanks Levi.
You can now jump on slants, and walking under or above one no longer lifts you onto it. Thanks to everyone who submitted reports.
Two new Gameplay settings choose what you hear when you sit down, and when other players do: the fall sound of the surface, as before, or the sit sound.

1.10.7
By request, the Dry slider is back on convolution spaces. It defaults to 0, so existing spaces sound the same.
Fixed a map item with a Pickup Message not appearing on the map at all. Thanks Kaliah.
Play sound is now available for if statement actions in the builder. Thanks Kaliah.
When a player you are tracking leaves, you are now told and tracking stops, instead of W reading out where they used to be. Thanks Cookie.
Landing on air at the bottom of a map no longer causes fall damage. Thanks Levi.
Fixed crackling when playing many piano or drum notes at once. Thanks Kaliah.
Fixed reverb ignoring occlusion, so a muffled sound on the other side of a wall no longer comes through clearly in the reverb. Thanks McOi.

1.10.6
You can now write your own Wax Template Builder templates. Save a .gcw file in your Stash folder and it appears in the template list after the built-in ones, as a form with the questions you choose. See wax_template_guide.txt in the documentation folder.
Counters now have a Starting Value in the builder. Set it above the Required Count and the counter counts down, firing when it reaches the Required Count. Thanks Kaliah.
Map items now have a Pickup Message in the builder, spoken instead of "X received". It can include things like [inventory.key]. Thanks Kaliah.
Pressing a shortcut that several controls share, like Alt+H, now cycles through them instead of always landing on the first. Thanks Kaliah.
Added a speech history buffer holding everything the game has said, without typed characters or back-to-back repeats. Thanks McOi and BTyson.
Fixed a source set to start paused playing anyway when you added it from the builder, until the map was reloaded. Thanks BTyson.
Fixed passage opening, closing and loop sounds ignoring occlusion zones. Thanks Kaliah.
Fixed muffled echoes of a playlist's music piling up each time it changed track, restarted, or was edited in the builder, and not stopping when paused. Thanks AWhiteWolf.
Fixed a bug that destroyed the audio engine on macOS when convolution reverb loaded an impulse response, which is a likely cause of the crashes Mac players have been seeing. It may not fix everything, but it is a real find thanks to the debugging tools Mac players ran and sent back. Thanks Levi and everyone who helped.
The Buffer Mutes menu item is now Buffers, with Muting and Visibility tabs. A hidden buffer still works but can no longer be reached with the bracket keys, and a buffer that is both muted and hidden is switched off entirely.

1.10.5
Convolution reverb is much lighter on performance and no longer freezes the game while loading.
Added a Maximum Convolution Rooms Heard At Once setting, in case your audio stutters.
Fixed convolution reverb getting louder and louder on a sound each time it went out of range and came back.
Fixed occluded sounds getting more muffled each time they went out of range and came back.
Builders now get a map warning when an exclusion zone covers the whole of the excludable source or ambience it belongs to, which silences it everywhere. Thanks McOi.
Builders now get a map warning for an exclusion zone whose id matches nothing.
Map warnings now have their own buffer, which you can mute, replacing the Show Map Warnings setting.

1.10.4
Key triggers, checkpoints and map items can now cover an area instead of a single tile, the same as buttons and levers. Fill in any of the Maximum X, Y or Z boxes in the builder, and anywhere inside works. Thanks Kaliah.
Fixed some players hearing an excludable source inside its own exclusion zone.
Fixed the game freezing when a URL or radio stream it was playing cut out or went silent.
Fixed converted Sketchbook maps turning full-volume sounds silent. Thanks Levi.
Fixed changing the stream, music or sound source volume undoing the behind-you pitch decrease on sounds until you moved. Thanks Wong.
The context menu (Backspace) now has a Polls item, opening the same menu as /polls. Thanks DHT.
Fixed the camera's position readout (D while holding G) on 3D maps giving directions that ignored which way you were facing, and saying the camera was both above and below you. Thanks Levi.

1.10.3
Fixed a tile zone's speed change sticking with you for the rest of the session if you disconnected while standing in one.
Trying to test a convolution space or impulse response in the builder with a file that won't load now tells you it couldn't be loaded, instead of just going silent with no explanation.
Converting a Sketchbook map no longer leaves a travelpoint's destination map with a .map extension it doesn't need here.
Converting a Sketchbook map now also brings across points of interest, its map-wide spawn point, its starting health setting, and positioned URL sources, instead of leaving them as unconverted comments.
Holding Shift while pressing Enter on a line in Edit An Element now duplicates it instead of editing it in place, opening a fresh form with the same settings and asking for new coordinates. Interactables aren't supported yet.
Fixed a synced playlist landing out of sync when a bunch of its URL tracks share one server, which was overwhelmed by probing them all at once and refused or timed out several of them every time.
A playlist source's Sound Files box now has a From URL button. Hand it a page, typically a directory listing, and it scans that page for audio file links and adds whatever it finds, instead of you having to type out every filename by hand.
Convolution reverb no longer has a Dry setting anywhere. A real impulse response recording already captures its own direct sound as the start of the recording, so any extra dry signal the game played on top of it was always doubling up on something already there.
Added an Enable Convolution Reverb setting, next to Enable Reverb. Turning it off silences convolution spaces specifically, without touching ordinary reverb or plate spaces elsewhere on the map, for anyone who wants the cheaper kinds without paying convolution's extra cost.
Just keep in mind that turning off Enable Reverb itself still turns off everything, convolution included.
Fixed occlusion and convolution reverb sometimes not adjusting to a live map edit, or to the map you just joined, until you took a step. Saving a settings change that affects them (Enable Reverb, Enable Convolution Reverb) now takes effect the same way, immediately.

1.10.2
The game no longer runs inside the network message that logs you in. That is as odd as it sounds. I don't know how to explain it in English to make sense for you guys, but it should hopefully stop some crashing here and there.
The game no longer stops while a map loads. A map is now loaded a slice at a time alongside everything else, so you can keep moving, talking and using menus while one comes in, where before every part of the game except the window itself stopped dead until the map had finished, which on a large map is several seconds of a game that looks like it has hung.
Maps load about four times faster. A map that used to take four seconds now takes about one. The game was doing three things over and over for every line of a map, each of them far slower than it needed to be, and none of them had to be done that way.
Voices keep going through a map load too, so nobody gets cut off mid-sentence while you walk through a door. A voice may briefly be muffled by the wrong wall while the map it is being muffled by is still arriving, which is a fair trade for hearing the whole sentence.
The single map loading sounds switch is now three, on the Map tab. One for the sound a load starts with, one for the loop that plays while it goes on, and one for the sound at the end.
Settings has an Advanced tab now, after Map, for the handful of things that trade one thing off against another rather than simply switching something on. Its first setting is how much of each frame a map load may take. Keep the game smooth and a map takes longer to arrive, or let it arrive sooner and the game stutters while it does. Balanced is the default, and is what the loading above already feels like.
Automatic reconnection is back, with a Network tab to switch it on and set how many attempts it makes. It was hidden because leaving the game reconnected you to it over and over.
Fixed a source that only reaches into a convolution space, rather than sitting inside it, sounding as though all of it were in there.
Fixed a door or gate's open sound staying behind on the tile you opened it from.
Fixed macOS players never getting an error log. It was being written inside golden_crayon.app, where nobody can see it and where every update wiped it, and now sits in the Golden Crayon folder beside the app along with everything else the game writes. Thanks Levi.
The game no longer keeps trying to load sounds that are not there. A sound the folder does not have is now noticed once, named once in the error log, and skipped from then on, instead of being retried on every footstep, every source retry and every map load, which is how one session's log ended up with 770 copies of the same missing footstep in it, burying everything else worth reading.
Another cause of the game quitting outright with no error message has been fixed, this one in the engine itself. A background connection loading a URL sound and a map reload clearing that same sound away could take it apart at the same instant, and now they wait for each other.
To be honest, I can reproduce that fault on its own, where it wrecks memory in seconds without the fix and never with it, but the crash in the game has never been reproducible on demand, so all I can promise is that its cause can no longer happen. If you still hit a silent quit, send me the error log next to the game.

1.10.1
A networking mistake in 1.10 had every door slam, wall bump, and bike crash broadcasting to the entire server instead of just your own map, so for a little while, something was rattling doorknobs and crashing into walls on maps you'd never set foot on. This was obviously Peeves. You asked me to leave him be. Give him hell from me, but from now on, only on your own map.
The same fix means doors, gates, and passages sending their own custom volume and pitch, new in 1.10, now actually reaches everyone else too, not just you.
The Impulse Response browser, reached from a convolution space's Browse button, now previews using that space's actual Wet, Dry, Low Cut, and High Cut, instead of always sounding fully wet no matter what Dry was set to.
Someone talking while standing inside a convolution space is now heard that way by everyone nearby, not just by themselves. Voice chat never had this before, only footsteps and other sounds did.
Fixed reopening a convolution space to edit it clearing out its Impulse Response file and every one of its sliders.

1.10
Convolution reverb spaces are here. Build a room out of a real recording instead of a synthesized one, for a space that should sound like a specific place rather than just a size and a brightness.
A convolution space works differently from a reverb or plate space. Someone standing INSIDE one is heard that way by everyone nearby, not just by themselves. Step into a cupboard and everyone around you hears you rustling around in a cupboard, while they keep whatever room they're standing in themselves.
Now that reverb costs a lot, there's now a setting under Sound and Audio to turn all reverb off if you need the headroom back.
By high demand, the map converter can now convert maps from Sketchbook, Your World, not just the old syntax and common builder methods used in older games. Most elements come across directly. A few, like belt and passage directions, need a code filled in by hand for now until more of them are known, and anything Sketchbook has that this game doesn't gets a short comment naming exactly what didn't convert, right next to the original line, so you're never left guessing what happened to it.
The map converter now writes its warnings into the converted map as comments, including any sound the game doesn't actually have, so you can see what still needs picking up by hand.
The map converter's own comments are a lot shorter across the board now too, so a converted map doesn't drown in explanation before you even get to the content.
Okay, enough about that stuff. Onto the more minor things. Actually not all are minor, but we could say, extra.
You can now customize the opening and closing sound volume and pitch of doors, gates, and passages.
There is now a gameplay setting to start out sitting instead of standing after you log in. Off by default.
There is now a gameplay setting to stop Q and E turning you while you're sitting down. Off by default, and bikes and canoes still turn.
Fixed an elevator listing, and trying to ride to, every floor on the map instead of just the ones its shaft actually reaches.
If you weren't getting an error log next to the game even with that setting on, it likely wasn't a bug. The build was probably still running on an older version of my NVGT fork from before error logging was added there. This version's build should have it, so hopefully that's fixed now.

1.9.4
Fixed pressing P never mentioning a pose you were the one who requested, when checking on your own partner.
Added two new keyboard sounds: Korena's Keyboard and Tunmi's Keyboard.
You can now press Shift P, which will allow you to open the profile of the player near you. If there are multiple, it will present a list to choose from.

1.9.3
Fixed Ctrl+Z's zone teleport asking you to pick minimum, midpoint or maximum coordinates for a zone with no extent in any of those axes to choose between. A zone that's a single tile in width and depth but still tall in z still asks, since min and max still apply. Thanks AWhiteWolf.
Fixed the fall sound looping forever while hovering over open air at the map's floor boundary (minz on 3D maps, miny on 2D ones). It kept trying to make you fall and kept getting held up there instead, playing fall.ogg over and over the whole time. Thanks McOi.
Fixed other players' footstep, landing and falling sounds repeatedly trying to load a sound file that doesn't exist whenever they stood over open air with no slope underneath.
Fixed "none.ogg" showing up twice in the builder's interactable sound browser. This is as of sounds version 18 when I intentionally added none.ogg files.
Added poses: request one with a nearby player, such as a hug or leaning on their shoulder, and they have to accept before anything happens. Gated through My Circle, with a personal block list per pose and a gameplay setting if you'd rather not see them at all.
The game is now able to generate an error log thanks to some NVGT modifications. It's nothing extreme, but it should help some, especially with sudden crashes that cannot be traced. You can find it under General settings if you want to turn it off, but I recommend keeping it on.

1.9.2
Added keyboard sounds back, off by default. The majority voted yes with the newly created poll system, at the time of this changelog entry.
Added the ability to choose which keyboard you hear, test it before committing to it, and choose whether other players can hear you type or you can hear them.
Added the ability to have letters be announced as Capital, announce Capital and beep, or just beep.
Fixed lifts being able to flood the server with movement packets if a builder set their speed extremely low, the way elevators already guard against.
Fixed leaving a hazard map while the rebound pendant's hazard protection was on still being able to kill you, appearing to happen on the map you'd just arrived at. Thanks Levi.

1.9.1
Fixed a rare crash around a map change that quit the game outright with no error message, caused by a URL-based ambience, source or stream's background connection tearing down its sound at the same instant the audio system was still using it. This may not be the only cause behind that kind of freeze or crash, so let me know if you still run into one. Thanks for bearing with the strange version numbers this week.
Typing something in the chat box now follows you if you switch to a different conversation before sending it, rather than being left behind. If you'd rather each conversation keep its own separate draft the way it used to work, there's a new gameplay setting to turn that back on. Thanks Levi.
While holding the camera, pressing D now speaks where it actually is. The surface under it, its coordinates, and how far and which direction it is from you. Thanks Levi.
Fixed menu and list letter navigation and search matching against the untranslated English text of an item instead of the translated text you actually hear, which made a translated item unreachable by its own first letter. Thanks Nicop.
Fixed a door continuing to carry you after /go teleported you elsewhere mid-transit, instead of letting go. Thanks Levi.
Fixed leaving a map (going to your main map, /leave, etc.) partway through a door carrying you saving your position wherever the door had gotten to, rather than a safe spot, which could drop you at that same location on the other map and send you falling if there was nothing under it. Thanks Levi.
Fixed /retry (and anything else that respawns you on the same map, like /leave on your main map) landing you at the starting point of a door that happened to be carrying you, instead of the map's actual spawn point. Thanks Wong.
Added Ctrl+Z, a zone teleport for authors and contributors. It lists every zone on the map, including ones that were never marked trackable and beacons, then lets you spawn at its minimum, midpoint or maximum coordinates. There's a new Map Settings option to always use one of those instead of asking each time. Thanks DHT.

1.9.0.1
Strange version number, I know. But this was a rushed out fix.
This fixes a conflict between menu, and menu_input. sorry about that.

1.9
This is quite a big update, hence the minor version change. It was going to be version 1.8.13, but it sort of got bigger and bigger, until... well. You probably have already figured it out. The minimum version is now 1.9, due to some bugs that needed both client and server patches.
Adds buffer timestamps. They're off by default so they don't disturb those who prefer the way they usually are.
Added a text input interactable, which asks the player to type something and hands it to the rest of the map as [id.value], with optional answer checking, attempt limits, a password mode and its own sounds.
Added a menu input interactable, which asks the player to pick from a list you write, and can wire each choice straight to its own element.
Both of these inputs can be placed on a tile like a button or given no position at all, in which case anything can open them with an activate action, and both can be made server bound so it reaches everyone else on the map.
A message you were part way through typing is now kept if you get disconnected, and is waiting for you the next time you open that conversation. Escape and Cancel still throw it away, since backing out on purpose is a decision.
Fixed a crash when the connection dropped while the chat box was open on a group, a private conversation or staff chat.
Fixed switching your input device during voice chat leaving your microphone tuned to the old one, which made a mic whose true rate is slightly off 48000 crackle once you switched away and back.
Fixed sounds piling up silently while an output device is misbehaving and then all playing at once, very loudly, the moment it starts working again. Thanks Levi.
Sources can now start paused, so a sound can wait to be switched on by a trigger instead of playing from the moment the map loads.
Added an Interactable Options button to sources, 3d sources, timed sources and playlist sources, holding Start Paused and Server Bound.
3d sources can now be given an ID in the builder, so they can be controlled by triggers without hand editing the map.
Fixed pausing a timed source only lasting until its next tick, which quietly switched it back on again.
Fixed a trigger that pauses, resumes or toggles a server bound source being applied twice on everyone else's game, which made a shared source stutter, invert, or ignore the press entirely.
Fixed a trigger relayed to the rest of the map being rebroadcast again by every player who received it, multiplying the traffic from a single press and letting a passage, door, source or playlist be driven several times over.
The builder's sound, wall, platform and preset browsers, and the file browser used for picking on/off sounds, now follow your Sidescrolling Menus and Wrap Menus settings, instead of always moving with up and down and always wrapping.
You can now choose how to sort players when using the tracking menu, or pressing P. Find it in gameplay settings.
Doors, gates and passages can now be given a custom Locked Message, spoken instead of the default "This door is locked." wording when someone tries one that's locked. Thanks Grekko.
Fixed an ambience (including one playing a music track) restarting from the beginning every time you stepped back into its bounds after leaving, instead of picking up from wherever you'd left it. Thanks VIPPotato.

1.8.12
This update is full of bug fixes relating to the sound system. However, there are some other fixes in here too.
Fixed a synced playlist source drifting out of step while you were out of its range, so walking back within earshot no longer drops you onto a track behind or ahead of the one everyone else is on.
Fixed a synced playlist putting you on a completely unrelated track when one of its URLs failed to answer how long it was, which each player worked out for themselves and so could disagree about. Those are now retried, and a playlist that still cannot tell plays on rather than claiming to be in sync somewhere nobody else is.
Fixed a playlist URL that took more than a second to fetch being restarted from scratch every second and then dropped as broken after ten, which was most of them.
Fixed a live URL in a playlist being dropped as broken while it was still filling its buffer, which it is given eight seconds to do.
A URL in a playlist is now downloaded once instead of twice, since working out how long it is already fetched the whole thing and then threw it away.
Downloaded sources, streams and playlist tracks now go in one folder rather than loose in your app data, and whatever a crash left behind is cleared at startup instead of building up forever.
Added a Clear Sound Cache button under Settings, Map, which throws away those downloads and tells you how much space it got back.
Fixed a synced playlist giving up on a track it could not load and stepping past it, which left that player a track out of step with everyone else for the rest of the session; it now waits for the shared playlist to move on and rejoins it.
Fixed Next Track or Previous Track on a playlist interactable jumping backward before landing forward, which got worse the more people were on the map: every player's copy of the trigger was rebroadcasting the track change as though they had pressed it themselves.
Fixed a playlist restarting its track several times over when a repeated or out-of-date position arrives, instead of only acting on one that is actually newer.
Fixed a source's Restart bouncing endlessly between everyone on the map, restarting the sound over and over, once more than one player was there to relay it.
Fixed a health drainer being switched on or off repeatedly by every player's copy of the trigger rather than just once.
Cut needless network traffic when a trigger pauses or resumes a source, which every player on the map was relaying onward as though they had set it off themselves.
Fixed map sounds going silent for the rest of the session after a map reloaded with other players standing on it.
Fixed a reloaded map inheriting leftover tiles and layering from the map it replaced.
Fixed live-editing a URL or playlist source leaking an open stream, a downloaded temp file, and part of the shared playlist sync budget.

1.8.11
Fixed a playlist source getting stuck for good on a track it could not find, instead of skipping it.
Added a Step Height field to the Stairs Template in the Wax Template Builder, so a staircase's steps can rise more than one tile each instead of always being stuck at one. Thanks Levi.
Fixed a fixable map error or warning sticking around in Fix and Edit Map Errors after the line it pointed at was already fixed or removed live, still offering to edit text that was no longer on the map. Thanks Levi.

1.8.10
Not a big update, just sound fixes.
Fixed a playlist source going silent for good, not just skipping a beat, whenever a track tried to start or advance while you happened to be standing out of its earshot range. It needed a map reload or an interactable to ever come back, even long after you'd walked back into range.
Hardened synced playlist sources against a rarer version of the same large-playlist crash 1.8.9 already fixed. That fix only capped how many tracks one playlist source could probe at once. A map with more than one synced playlist source (say, a jukebox in two different rooms) could still add their probes together and hit the same ceiling. Every synced playlist source on a map now shares one probing budget instead of each getting its own.
Fixed a reflection (the echo you hear off a nearby wall) not picking up an occluded_space's muffling the way the sound it's echoing already does, so a sound correctly muffled by standing in a different acoustic zone still threw off bright, unmuffled echoes right next to it. Thanks Nicop.

1.8.9
This patch is about playlists. I couldn't really take a break, and they were bugging me. Plus people were crashing, so I figured I'd be nice and fix it outright. LOL.
Fixed a synced music playlist with a lot of tracks freezing, and on a large enough one outright crashing, the game while it loaded. Due to this, playlists have been capped at a max of 200 tracks.
Fixed a synced playlist source restarting at track 1 when rejoining the map instead of resuming where it actually was.
Fixed toggling a playlist source (pause/resume) skipping to a different track instead of actually pausing and resuming. This one took me three tries, so a quick and honest play by play.
Try one: figured resume just wasn't telling the sound to play again. Fixed that. Still broken.
Try two: figured the "did it finish" check trusted a flaky playing flag too much, so I made it double check the sound's actual position too. Still broken.
I even chased down whether our own synced wall clock was somehow the culprit. It wasn't.
Turns out a paused source's spot in the sound pool was never protected, so the pool could hand it to literally anything else that needed one. Resuming was resuming whatever ended up sitting there instead, not your actual track.
I only found this because I stopped and asked myself why excludable sources never had this problem. Turns out they just turn their volume down instead of ever actually stopping, so they never let go of their spot to begin with. Every source now holds onto its own spot properly while paused.
Fixed editing a playlist source always resetting its Volume slider to 0%, no matter what it was actually saved as. Thanks VIPPotato.

1.8.8
Usually when I release updates, I focus on most recent to earliest. The most recent tickets appear at the bottom, and go backward in history all the way to the top.
This time, I decided to go the opposite way. That being said, excluding some things in this update, you will see bug fixes and improvements that probably should have existed ages ago. It's not because I ignored them, but I was so focused on  addressing the latest tickets, that I forgot about the earlier ones too.
So here goes. First, the new stuff.
You can now have custom presets for everything that already has presets. It's as simple as that. Thanks Keri.
Fixed a server-bound playlist source's Next Track/Restart Playlist forgetting how many times it had actually been pressed, so returning to the map (or another player joining) could land it a track behind, or further off, instead of where it actually was.
Randomly pitching chat sounds is now a separate option per buffer (public chat, map chat, staff chat, group chat, private messages) instead of one switch for all of them. Thanks DevilGuardian.
Fixed the Wax Template Builder's box template tagging its hollow interior with the same surface flag as its floor, so standing on a window ledge or anything else above the actual floor got reported as the floor itself. Thanks Levi.
Fixed a playlist source built in the builder saving at 0 volume instead of 100 when the Volume slider was never touched. Thanks fridge.
Fixed pausing (or toggling) a playlist source getting mistaken for its track finishing, which immediately advanced it to the next track instead of actually pausing. Thanks VIPPotato and Levi.
Added a Previous Track action for playlist sources, to go with Next Track. Thanks Keri.
Previewing a platform while testing reverb, occlusion, or material presets now works the same as the normal platform browser, landing sounds and holding Space to repeat included. Thanks Keri.
Adds the ability to access languages in the context menu.
Adds the ability to ask Kayla a question in the context menu.
Fixed the reverb preset browser piling up more and more live plate/freeverb tanks the longer you stayed and previewed presets, eventually making the game's audio stutter. Thanks Grekko.
And now, the old stuff.
You can now change octaves on instruments with Left and Right arrows, one at a time, instead of only jumping there with the number keys. Thanks Soldadito.
A collected checkpoint no longer appears when scanning with the spyer. Thanks Sadra.
Map Settings' voice chat checkbox is now a Normal/Map-wide/Disabled list, adding a way to disallow voice chat entirely on a map. Thanks Ben.
Added a Default input device and Default output device to Settings' sound tab, which follow whatever your system's default device actually is, switching live if you plug in a headset or change it in Windows. Thanks asmodeus.
Releasing a piano key now fades the note out instead of stopping it dead, and drumset samples keep playing themselves out after you let go, same as a real kit. Thanks Nicop.
The file browser used for picking on/off sounds can now reach other drives, not just the one the game is on, and jumping to an item by typing its first letter is more reliable. Also fixed it freezing on macOS and Linux.
Player beacons now play at a slightly randomized interval instead of the same fixed one for everyone, so several nearby players no longer beacon in perfect unison and sound like just one player. Thanks lolgamer.

1.8.7
Plate spaces and zone plate reverbs now have Low Cut and High Cut, shaping a reverb's tone directly instead of only its decay, so a space can sound thin, boomy, muffled, or bright without changing how long it rings or how big it sounds.
Added over twenty new reverb presets built around that, including Telephone Line, Padded Cell, Bunker, Gymnasium, Crystal Cavern, and Mine Shaft, alongside a batch of everyday ones like Attic, Basement, Library, and Small Church.
Fixed reverb preset previews cutting a preset's tail off the instant you pressed Space again, even on the exact same preset.
Fixed the game becoming completely unresponsive, sometimes for a long while, if your connection dropped at the exact moment you tried to log in.
Synced playlist sources now remember their current track and position when advanced with Next Track or Restart Playlist, so a player joining later hears the same spot instead of the beginning.
Fixed editing a Plate space or Zone plate reverb from the builder while standing in the map requiring a full reload to see the change, instead of updating live like an ordinary reverb space already does.
Signs can now play as you step instead of always looping, so you can still tell one is nearby without a constant sound the whole time you're near it. Switch between the two with Shift+F4, or from Game Settings' Gameplay tab, right next to Sign sounds. Thanks Levi.
The reverb, occlusion, and acoustic material preset browsers can now preview through a platform other than whatever you're standing on. Tab and Shift+Tab step through them one at a time, and Ctrl+O opens the full list. Thanks Keri.

1.8.6
This is a follow up patch to address a few quick mosquitos that showed up upon release of 1.8.5.
Now where was that fly swatter?
Ah, here it is.
Fixed a playlist source looping a downloaded URL track forever instead of moving on to the next one once it finished.
Fixed browsing reverb presets, and the reverb space form's own Test Reverb button, reverberating through the whole world instead of just the one test sound, so anyone walking near you while you tested no longer had their own footsteps warp to match whatever preset you were on. Thanks Keri.
A synced playlist can now join you mid-loop onto a URL track, not just a local file, as long as that URL is a plain downloadable file rather than a live stream.
Those were the only mosquitos I could find.

1.8.5
Adds a Plate space, a second kind of reverb space that uses a plate reverb instead of freeverb. Same four settings, plus Predelay and Size, and it doesn't get the metallic ring freeverb gives short sharp sounds.
Plate spaces honor decay times freeverb can't reach, anything under about 0.6 seconds or over 6.
Adds a Zone plate reverb, the same rule as a zone reverb but driven by the plate, so a named zone can use one without hand-placing a box around it.
Chat sounds can now be pitched a little differently each time, so a busy conversation stops sounding like the same bubble over and over. Off by default, as Randomly pitch chat sounds under the Sound tab in Game Settings. Thanks Dobby.
Ctrl+R now retries a challenge map, the same as typing /retry. R on its own still sits and stands.
Fixed leaving a map while a door or gate was still carrying you sending you back at the height it started from rather than where you actually were. Gates were the worse of the two, never reporting where they had taken you at all. Thanks Wong.
Fixed closing a menu with Space riding you forward on the bike, when you were still holding Space as the menu closed. Thanks Levi.
Map warnings can now be fixed in the builder even while they are hidden. Hiding them was also putting them out of reach of Fix and Edit Map Errors, rather than only keeping quiet about them. Thanks Levi.
Fixed a console elevator playing its music after the journey had ended, until you stepped off, instead of during the ride. Thanks Andresito.
Fixed being able to climb one tile below a map's minimum Z. A rebound pendant is what made it reachable. Thanks Keri.
Fixed /me always posting to public chat regardless of which conversation you were writing in, except Map Chat. It now goes to whichever conversation is selected, group chats included.
Adds a Playlist Source to the builder's Sound options, cycling through a list of files instead of looping one.
Adds Next Track and Restart Playlist trigger actions for playlist sources.
Adds a Synced option for sources, playlist sources, music, and music playlists, so a player joining partway through hears wherever it's already at instead of it restarting just for them.

1.8.4
The builder gallery returns! Enjoy. It's in the context menu.
Fixed a long-standing bug where losing connection while a menu was open would fail to realize the game already ended.
Adds Fix and Edit Map Errors to the builder menu, shown only when the map actually has one, so you can jump straight to the line instead of hunting for it. Thanks Keri.
Holding Space on a platform now repeats its footstep at your walking pace instead of needing to be mashed, when auto walk is on. Thanks Keri.
Fixed Ctrl+O in the wall browser offering sounds that silently didn't work once placed. Thanks Keri.
Fixed the Show line text when receiving errors setting being ignored by most map error and warning messages.
Fixed the Spyer repeating a flag when two adjacent platforms shared it. Thanks Keri.
Wax Templates now take a Wall Flag and a Surface Flag instead of one Flag for both.
The Context menu's Purchase Golden Pass is now a Golden Pass submenu. About, Buy (Gumroad plus PayPal, Venmo and Cash App), and Redeem, which prompts privately instead of typing /redeem into chat. Thanks Wong.
The classic builder menu can now be reordered, everything from placeable items to Add a line, Map Settings, Close Builder, all of it. Reorder Builder Items in the builder menu, same keys as Reorder Elements. Thanks Keri.
The Builder tab in Game Settings also has a checkbox to hide Reorder Builder Items, and a Reset Builder Order button next to it.
Reordering, in Reorder Elements and Reorder Builder Items alike, can now announce a move as Moved above or Moved below the neighbor it landed next to, instead of just the item and its position. Choose which in the Builder tab of Game Settings.
There is now a buffers.txt, letting you set the order your buffers are created in. Generated the first time with the default order if it doesn't already exist.

1.8.3
Most of this release exists because I sat down to build my own house.
I laid the floor, filled the inside with air, and put a wall around the whole thing. The moment the wall went down, the floor was gone. Brick was in its place, and nothing told me why.
I thought I knew the cause. The coordinate map is the part of the engine that keeps track of what is where, and it is the part I have spent the most time patching around, across several versions and on every system this game runs on. So I looked there first, and I did find two things.
Asking it what sits inside a box costs more the bigger the box is, rather than the more things there are in it. And it cannot be asked which elements overlap a box, only which ones fit entirely inside it. Both are real, and the game now works them out for itself. Neither was my house.
The real cause was simpler, and it was mine. The last element covering a tile is the one that is most important. Adding a line has only ever put it at the end. I put the wall down last, so the wall won. There was no way to change that afterwards, short of deleting the floor and adding it back.
So this release adds two things. A way to see what you have just covered, and a way to fix it.
Placing a platform or wall now tells you when it completely covers one that was already there, and names it. Nothing is removed. The older one is still underneath, and the new one is just what is on top now. You will not hear this for ordinary overlap, like dropping a platform onto the ground platform under your whole map, because that happens on nearly every placement.
Map elements can be reordered. Reorder elements, in the builder, opens a list of everything on the map, interactables like doors and gates included.
I am leaving the coordinate map alone for now, since this time it was not the cause. But if it keeps costing me this much, I will write our own.
Anyway, on to the bug fixes and improvements. Sorry about that, everyone.
There is a new checkbox under the Map tab in Game Settings, Show map warnings as well as errors. Warnings are problems that do not stop an element being built. Turn it off if you would rather build without them. Errors still come through.
Fixed excludable source and ambience fades doing almost nothing and then rushing at the end. Thanks Levi.
Fade in and fade out can now be set separately, as Fade In and Fade Out in the builder, so a sound can drift away slowly and come back quickly. Thanks Levi.
Climbing can now be done with S and X as well as Page Up and Page Down. Plenty of laptop keyboards have no page keys at all, Mac ones especially, which put climbing out of reach entirely. Thanks Mc'oi.
A lever can now span a box instead of one tile, the way a button already could, so pressing Enter anywhere inside it throws the same lever. Thanks Kaliah.
Fixed three settings the builder could write but the map could not read back, so a line the builder had just made was rejected as having an unknown parameter. Thanks BlueKenSunshine.
Fixed acoustic materials muffling the wrong tile. The line between you and a sound is walked one cell at a time to find what it passes through, and each step was rounded to the nearest tile rather than being read where it actually was. Thanks Jelly.
The speak and teleport actions now get their own boxes when they sit inside an if statement, instead of asking for a Target ID and quietly meaning something else. Speak takes a message, teleport takes X, Y and Z. Thanks Kaliah.
The condition builder now offers only the properties the element you are asking about actually has.

1.8.2
Shift plus Z now reports every platform and wall on the tile you are standing on, rather than just the one you can feel. This lets you check if something underneath is gone.
Fixed a floor's Use the label instead of the floor number field doing nothing when set to yes, because the builder never wrote it into the floor.
A button can now span a box instead of just one tile, the same way an instrument or a clock can, so pressing Enter on any tile inside it activates the same button. Thanks Kaliah.
Fixed a looping sound losing its occlusion muffling for good once it left earshot and came back, which is what made riding an elevator back to a floor you had already visited leave that floor's sounds unmuffled until the map reloaded. Thanks Kaliah.
Every template in the Wax Template Builder now has an optional Flag field, so a table, staircase, or the rest of a template can be named all at once instead of flagging each wall and platform by hand with the line editor afterward. Thanks Keri.
Double walls can now take two flags, Flag 1 and Flag 2, one for each side, so feeling one from either direction can name that side instead of both sides sharing one name or having none at all. Thanks Keri.
Passages can now take a Wall Flag and a Surface Flag, naming the wall it becomes when closed and the floor it becomes when open. Thanks Keri.
Lifts can now take a Flag, naming the platform the same way a plain platform's flag does. Thanks Keri.
Text that is already in an input box is now automatically selected. This only applies in some cases, and not everywhere. You can turn this off under the Interface tab in Game Settings.

1.8.1

The map error report now covers boxes written back to front and boxes reaching outside the map. A minimum greater than its maximum is swapped for you, because that way round covers nothing at all and the element would simply never respond with nothing to say why, and you are told it happened. A minimum below the map's own minimum is reported without anything being changed. Both are warnings, so nothing stops being built.
Shift plus F2 shows the message of the day in a read-only box instead of reading it out, so a long one can be read at your own pace and gone back over rather than listened to in one run. F2 on its own still speaks it. Thanks OlegTheSnowman.
Fixed falling faster than you should for the rest of your session after dying from a very long fall. A fall speeds up the further it goes, and that extra speed was only ever put back when you landed, so a fall that ended by killing you kept it. Everything you fell afterwards, however short, ran at the speed you had built up on the way down. Thanks Wong.
The folowing buffers are now excluded from being translated. All chat buffers, private messages, all notification buffers, and death messages.

1.8
Golden Crayon can now be played in a language other players have written. /languages (or /l) opens the panel, where you can browse what other people have translated, switch to one, start your own, or work on one you already help with. Picking a language downloads it into your translations folder alongside the ones that came with the game, so it is there in Game Settings afterwards whether or not you are connected, and it is kept up to date for you as the people working on it improve it.
There is a new setting under General, Keep community languages up to date automatically, for anyone who would rather keep their own copy exactly as it is.
Nothing but English is reserved. If the translation that ships with the game for your language is not good enough, you can write yours under the same name rather than having to invent a different one. Downloading only ever happens when you press Use this language, so nobody ends up on a translation they did not pick.
Choosing a language you already have a copy of will not throw the old one away. It is moved into translations/backup first, named with the date, so Spanish (2026-08-16).lng sits alongside the new Spanish.lng.
There is one new documentation file that goes together with translations.txt. It is called translation_system.txt, and it gives information about working on translations with other people.
Fixed a lever's speak action going off when a map loads rather than when somebody pulls the lever. Thanks Kaliah.
Fixed the piano's black keys. Their sound files are named with a sharp, and the sharp was not escaped when the game asked the sound server for one, so it asked for C where it meant C#. The server answered with a not-found page, and the game saved that page as the sound. Thanks Levi.
On macOS the game now keeps its files in a Golden Crayon folder beside the app rather than loose in Applications, which is where script_keys.txt had been hiding all this time. Your settings, keybindings and sounds move across on first launch.
Inventory items are now spoken with spaces rather than underscores, both when you tab through what you are carrying and when you are handed something.
Fixed a volume slider snapping to 0 when you edit a source or an ambience.
Fixed getting stuck inside the floor when an elevator arrives.
Elevator floors can now be named instead of numbered, which is what a building with a basement wants. Set the new Use the label instead of the floor number field to yes on a floor and the elevator says your label and nothing else, so one labelled Basement is announced as Basement rather than Floor 1, Basement.
The %f in your elevator's intro text becomes the label as well, so an intro reading Floor %f is worth rewording to just %f. Floors that do not tick it read exactly as they did.
Fixed group chats and private message conversations duplicating themselves, once for every multiline message anybody sent. Thanks Erlking.
Sending a multiline message to a group no longer shows the /g and the group name as part of what everybody reads.
Staff Chat no longer appears in the conversations list more than once.
Escape now goes up one level in the server's menus instead of throwing you out of them. Keep in mind this is new, and may not apply to every single menu. If you would rather Escape closed menus the way it used to, untick Escape goes back one level in the server's menus, under Interface in Game Settings.
Read only boxes reached from a menu have a Back button rather than Dismiss.

1.7.3
Fixed a looping sound coming back completely dry on re-entering earshot while standing in one continuous reverb zone.
There are new settings under Speech, Let incoming chat and notifications interrupt speech and Let map announcements interrupt speech, letting you choose whether those cut off current speech or wait their turn.
Fixed the up arrow doing nothing on a 2D map while the rebound pendant's floating protection was on. It was being treated as a jump attempt, and jumping is deliberately disabled while floating, so the press just went nowhere instead of climbing you through the air like it should have. Thanks VIPPotato.
A lever's Initial State could still end up doing nothing even when you set it to yes, this time because the builder itself never saved the flag. It was checking the saved value against the word "on", but the field is an ordinary yes/no box and never holds that word, so state=true never made it into the map. Existing levers built with Initial State set before this fix will need to be reopened and saved again for it to take effect. Thanks Wong.

1.7.2
The game will now resync sounds after a sound update, so you do not have to restart your client.
Alert and question dialogs used to work by tearing down and rebuilding the game's actual window every time one opened. That's never been safe outside Windows. It could freeze the window solid on macOS, and on Linux the window would vanish entirely while the game kept running underneath with nothing left to bring back. These dialogs are now built as an in-game menu instead, the same way the rest of the game's menus already work, so no window gets torn down anymore.
F12 now copies whatever was last spoken to your system clipboard with a confirmation beep, standing in for NVDA's speech history on platforms where NVDA isn't available.
A lever's saved Initial State was doing nothing, so a lever meant to pause a source on load would leave it playing anyway. It now applies correctly.
Sonar's on/off/follows-you setting was not being remembered between logins, even though its loop speed and scan distance already were. It is now saved along with the rest of your sonar settings.
The play_sound interactable action was going silent for most sound names, like coins, gems, positive, power, and error, since it only checked one of the two sound libraries those live in. It now checks both, and browsing for a sound in the builder now always picks the one you actually chose instead of one that happens to share its name.
There is a new setting under Sound, Mute progress tones (downloads, sound syncs) while the game window is not focused, so an update or sound sync can be left running in the background without a climbing beep the whole time it works. Off by default, like the other unfocused-mute settings it sits next to.
Checking for sound updates could leave the game looking frozen for a moment, every time you start the game, even when there was nothing new to download. The game has to hear back from the server before it can tell whether anything changed, and it was waiting for that answer in a way that stopped the window from responding in the meantime, so a slow connection could make the game look like it had crashed right as it started up. It now stays responsive while it waits, and if the server does not answer within 15 seconds, it gives up and carries on rather than sitting there indefinitely.
Found the actual fix for reverb randomly flaring up while walking through a reverb space, which 1.4 had claimed to fix but hadn't really.
Fixed a map's background stream failing to play some radio stations. It never followed a redirect, which most station URLs actually are, so it tried to play whatever page the redirect pointed away from instead of the real stream. A regular sound source pointed at the same URL always worked, since it already followed redirects correctly.
You can now export your buffers without having to exit the game first. Shift plus Backslash does it instantly, and it's also in the context menu. Thanks DevilGuardian.
Ctrl+P now opens the player palette (/pp) and Ctrl+Shift+P now opens the staff panel.
Fixed severe lag on large maps with a lot of looping sound sources or ambiences scattered across them. None of those were ever being closed once you wandered out of earshot, so every single one of them, no matter how far away, sat there getting fully reprocessed on every step or jump you took for as long as the map stayed loaded.
Fixed the instrument's spoken instructions telling you to use "Q through P" for the black keys. The real keys are W, E, T, Y, and U, which is why they seemed broken to anyone going by what they were told.

1.7.1
Stepping on a hazard while the rebound pendant's health protection was on left you unable to take damage from anything afterwards, even once the pendant came off. Your game marked you as dead before asking the server, the server refused because you were protected, and nothing then told your game otherwise, so it went on believing it. Thanks DevilGuardian.
If you are still on 1.7 and it happens to you, walking to another map clears it.

1.7
There is a new item, the rebound pendant, available from the store for 25 crayons. It is a builder's tool: while you are working on a map of your own, it can take the map's dangers out of your way so you can get on with building instead of dying to your own hazards. You choose which of its protections you want each time you put it on, and the menu explains what each one does. It only works on a map you build on, and never on a challenge map.
It is deliberately obvious. A quiet shimmer follows anyone wearing one, and you hear it again each time they take a step, so nobody is quietly invincible next to you without you knowing. Two settings under Sound let you turn off your own or other people's, separately.
Most of this release exists because I sat down to build a challenge map.
There is a specific kind of humility available to a person who writes a game engine, opens their own builder, tries to do something entirely ordinary, and discovers they cannot. I went in to build a puzzle. I came out with a bug list. The good news is that everything that got in my way would have got in yours too.
There is a new kind of gate. AND and OR gates can only ask whether their inputs are switched on or off, so neither can ask whether a counter has reached ten. A conditional gate can. You give it a condition, written exactly the way conditions are already written for the if action, and it watches that condition continuously and fires the moment it becomes true. An if action is only looked at when something else runs it, so it misses anything that changes quietly. This one notices on its own.
It fires once each time the condition becomes true, not over and over while it stays true, and arms itself again if the condition later stops holding. Tick Single Use if you want it to fire only the first time and never again. Worth knowing that a counter already fires at its own required count, so you do not need a gate just to watch a counter you control.
Conditions can be built in the builder now instead of typed from memory. The Condition box has a Build Condition button that opens the same clause editor the if action already used, and that editor can now offer the inventory, knows the properties it had been missing, and no longer quietly rewrites one it does not recognise.
The set action is usable from the builder again, which is a polite way of saying it was not usable from the builder at all. Picking an element knocked set straight back off the list, and there was nowhere to say which property or what value anyway. It has proper boxes for both now.
Editing an interactable whose actions were written as a brace block no longer throws those actions away. The builder could not read the multi-line form, so it opened with an empty action list and saving wrote that emptiness back over your work.
Key triggers and map items had the same problem with Single Use, which is also on by default for both, so that box could never be turned off either. Both are now worded the other way round, as Can Be Used More Than Once and Can Be Picked Up More Than Once.
Turning off a sequence trigger's Reset On Fail does something now. The box only wrote itself down when it was ticked, and the setting is on by default, so unticking it wrote nothing at all and the default quietly won. It is worded the other way round now, as Keep Progress On Wrong Input.
The play_sound action can place a sound instead of only playing it flat, and can set volume and pitch: play_sound:[beep.ogg,5,10,0,vol=-6,pitch=120]. Everything after the file is optional, and a bare play_sound:beep.ogg still means what it always did. The builder has boxes for all of it, plus a Browse Sounds button where it used to offer the element browser.
A lot of interactables had been playing no sound at all. Counters, pressure plates, key triggers, sequence triggers, lifts, map item pickups and the menu click sounds were all pointed at files that stopped existing when the game moved off the old sound pack, and a missing sound fails silently. They point at real files again, and sounds you chose yourself are unaffected. A path that already had a folder on it also no longer gets a second copy of that folder tacked on.
Excludable sources pointing at a URL now start out correctly muted or unmuted instead of all playing at once. A URL source has to connect and buffer before it can make any noise, and the muting was being decided during that window, against a sound that did not exist yet, so the decision went nowhere and the stream came up at full volume with the game believing it had already been silenced. Walking into the zone and back out was what corrected it, which is why it seemed to fix itself. Thanks Muffin.
Gates chained into other gates kept counting as active forever once they had fired, so a puzzle asking for three levers held at once could be solved by flipping two, letting go, and flipping the third at your leisure. Fixing that outright would rewrite puzzles in maps that already exist, so it is a setting instead.
Moving your camera around on a tile which is contained within a zone now plays at the normal pitch if the normal pitch is either the same, or set to 0.
Leaving a map while an elevator was still moving no longer takes the elevator's grip on you with you. You would arrive on the next map unable to move at all, and typing /go only left you hovering wherever you landed. Thanks Levi.

1.6.1
This minor patch addresses a few map elements that were not behaving.
A vanishing platform set to trigger controlled now actually holds still. It kept cycling regardless, appearing and disappearing on its own timer as though the setting had never been ticked. The setting was written into the map correctly and read back correctly, so it stayed ticked in the builder every time you looked, but the part of the map loading that builds the platform was ignoring it and had been for as long as the setting has existed.
The same fix restores two other things that were being dropped along with it. A vanishing platform given an ID is now reachable by triggers, so showing, hiding and toggling one by ID works instead of silently doing nothing. And one set to start disabled now starts disabled.
Sound sources and ambiences pointing at an ordinary audio file on the web, like a Dropbox link, loop again instead of playing through once and stopping. Anything at a URL was being treated as live radio, and live radio cannot loop by its nature, so plain files were getting the wrong treatment. Actual radio stations are unaffected and still stream as before.
That also fixes the game freezing or crashing when one of these stopped, whether by leaving the map or by a trigger. It was the same cause. A plain file was being held open as a live stream, and closing one of those partway through is a far rougher thing to do than closing a file.

1.6
An interactable's actions now run in the order you wrote them. A list like set:counter.current=1, set:counter.current=2 ran backwards, last action first, so the counter finished on 1 instead of 2, and any list where one action depended on an earlier one came out wrong. Actions inside an if statement were never affected, which is why wrapping them in a condition that was always true, like 1 == 1, worked around it. Thanks Nicop.
If you worked around this by writing a list of actions in reverse, those lists now run reversed for real and need putting back the right way round. Actions you wrapped in an always-true if statement are fine as they are and can stay.
Maps can now ask to keep what you are carrying when you come back to them. Add keepitems to a map and dying on it hands you back the items you had collected, instead of the reload emptying your map inventory along with everything else. It is deliberately narrow. It only applies to the same map, so leaving for anywhere else still arrives empty-handed even if that map also has keepitems, and it only applies within one visit to the server, so disconnecting or going back to the menu starts a fresh run. Your main inventory was never affected by map loads and still isn't.
Map conditions can now read what you are holding. [inventory.keycard] gives the number of keycards you have, 0 if you have none, and works anywhere a condition does, so if:[inventory.keycard]>0 finally lets a map ask whether you already have something. Worth knowing alongside keepitems, since a kept item's pickup can still be collected a second time on the way back through, and this is how you stop that.
While adding it, fixed truthy conditions only accepting the literal 1. A bare if:[counter.current] was false for a counter sitting on 2, and would have been false for a player holding two of an item. Any number other than zero now counts as true, which is what these were always meant to mean.
Dialogs, signs, text squares, clocks and calendars can now cover an area instead of a single tile. Give any of these minx, maxx, miny, maxy, minz and maxz in place of x, y and z and it answers anywhere inside. Instruments already worked this way and are unchanged. Thanks Grekko.
In the builder each of them now has three Maximum (optional) boxes under X, Y and Z. Leave them blank and you get the single tile you always got, fill in only the ones you want and the rest stay one tile deep, and camera markers fill them in for you if you have marked the corners. Everything already built is untouched.
A wide sign is also audible along its whole length now, rather than beaconing from one corner of itself. The spyer reports any of these by its size, as 5x5 tile clock or 3x3 tile sign, the same way it already describes a hazard, and says it once at the nearest edge rather than once for every tile it crosses. One that is still a single tile reads plainly as clock or sign, as before. Elements whose coordinate is a position rather than a place you stand, like 3d sources, ambiences and checkpoints, deliberately stay single points, since a range would not mean anything for them.
Doors, gates and elevators no longer demand a loop sound and a moving sound.
Doors and gates can now be built both ways at once. Thanks mary_queen.
Two things worth knowing about it. If you gave the door an ID, its twin gets the same ID with _reverse on the end, since two elements cannot share one. And do not tick it on something marked automatic, because automatic doors fire on where you are standing rather than on Enter, so a pair of them will pass you back and forth forever.

1.5.1
This patches a few loose ends left over from the URL streaming work in 1.5.
Sound sources placed on a map that pointed at a URL, like an internet radio stream or a Dropbox link, would connect and position correctly but never actually start playing. Ambiences had the exact same problem. Both are fixed now, and both also count against the Stream volume slider instead of Sound Sources or Music, matching how the background stream already worked.
One more thing worth knowing. A URL sound source or ambience can take a couple of seconds to actually start once you're in range. That's not lag, it's the game deliberately holding off and letting the stream buffer ahead first, the same wait the background stream already asks for, so what you hear once it starts doesn't stutter or break up.

1.5
Maps with a lot of sound sources load much faster.
Loading also no longer pauses on a fixed schedule. It used to stop for a moment after every sound it started and again every fifty lines it read, whether any of that took time or not, so the wait grew with the size of the map rather than with how slow the work really was.
Also, music now streams. Took me long enough.
Internet radio and other live streams in maps now play at all, instead of quietly failing. They also no longer break up while playing, though they take a few seconds to start now, which is the buffering that keeps them smooth.
A vanishing platform set to replace itself with air now really leaves air behind. Building one on top of an existing platform used to show that platform through the moment it vanished, so replacing with air looked like it did nothing at all.
Maps that start a great many sounds at once no longer crash when you join them. This only ever happened on slower machines, which is what made it look random.
A map with a wildly oversized element on it no longer freezes the game for a minute when you join, and again when you leave. One line asking for something five thousand times taller than the map it was on was enough to do it, whatever else was or wasn't on the map.
Lifts, activatable platforms and passages no longer move, hide or delete the wrong tile. This only showed up after a map had been edited while people were on it, and it would go for whatever had been built on top of them instead of their own tile.
Leaving a map in the middle of a jump no longer drops you a tile below wherever the next map puts you, which is how people were ending up on negative coordinates and having to climb back out. Thanks OlegTheSnowman.
Leaving a map while falling no longer finishes that fall on the map you arrive at. The landing was charged at however far you had dropped on the map you left, so a long fall followed you and hurt you somewhere else.
Pedalling the bike in the instant a menu is opening no longer leaves the pedalling sound going for as long as the menu is up. The bike winds itself down while you are in there now, instead of waiting for you to come out and braking then. Thanks Soldadito.
In the builder, choosing the reference ID for an excludable zone now lists each ID once. Give five sources the ID birds and it offered birds five times over, all five meaning the same thing. One zone still excludes all of them, which was never the problem. Thanks OlegTheSnowman.
With keyboard echo set to words only, typing punctuation no longer says "blank". It was announcing the lack of a word rather than a word, so writing anything with a comma and a space in it said blank on every space, and punctuation in an empty field said it too. Punctuation with a word in front of it still reads that word. Thanks OlegTheSnowman.
Menus no longer run on the form system underneath them. That part you won't hear, beyond menus being a little quicker to open, but it is what the rest of this is built on.
Menus have picked up a set of options in Interface settings as a result. They can sidescroll, so left and right move between the options and up and down read the focused one a character at a time, or a word at a time with the control modifier held. They can also wrap around from the last option back to the first, announce an option's position as 3 of 12, and pan their sounds by how far down the list you are. Everything is off or unchanged by default except the reading, which uses arrows that previously did nothing.
Text fields now use the Mac keys on a Mac. Command does copy, cut, paste, select all, find and go to line, and Option plus the arrows or delete moves and deletes a word at a time. Thanks Yael_g.
Command with an arrow now jumps around a text field on a Mac. Left and right for the ends of the line, up and down for the start and end of the whole field, and hold Shift with any of them to select on the way. A Mac laptop has no Home or End key, so there was previously no way to reach any of those four places at all.
If the game freezes on a Mac, it now leaves behind a file called freeze_log.txt that says what it was doing, sitting next to golden_crayon.app rather than inside it. Please send it over, along with what you were doing at the time. Give it about half a minute before you force quit, since the file is written as it goes and the part that matters is what it records while frozen.
Windows users, this most likely isn't for you, as the freeze it's chasing has only been reported on Macs. The file gets written either way though, so if the game ever freezes on you as well, send it along too.

1.4.3
Mostly a Mac release, with a few things everyone gets.

Mac fixes
Fixed the game crashing as soon as you joined a map, and often as soon as you connected. This was a bug in the engine, and it affected every map.
That one was found by reading the code and hasn't been confirmed working on an actual Mac yet, as there isn't one here to test on. If you're on a Mac, please let us know either way.
Still not fixed: the freeze after dismissing a dialog. That one's still being looked into.

Fixes for everyone
Camera markers now fill in a staircase's width and number of steps, not just its starting corner. Mark the two corners of the staircase you want and the Stairs Template arrives filled in. How far your markers reach across the direction of travel becomes the width, and how tall they reach becomes the number of steps, so the finished stairs land exactly inside what you marked.
The Stairs Template no longer asks for a Width on 2D maps. Those stairs are a side view with no width to set, and the number you typed was thrown away, but the form refused to build until you filled it in anyway.
The wax template builder's staircases can now be walked up instead of jumped up. Stairs Template has a new Stair Style option. The original stepped stairs are unchanged and still need a jump per step, and the new climbable ones let you go page up, forward, page up, forward all the way to the top. Turn Riser Walls on with them, so walking straight into a step bumps the riser instead of dropping you into the gap. Thanks Keri.
Fixed the speech volume slider doing nothing and always showing 0. Everyone starts at full volume once, which is what you've been hearing anyway.
Menus and dialogs no longer save your entire settings file to disk before they'll open.
Fixed settings not always saving properly, which could lose a change you'd just made.
Fixed sounds getting interrupted or disrupted when moving, turning, or walking, caused by timed sound sources and moving sound sources (lifts, vanishing platforms) reloading and recalculating more than they needed to.

1.4.2
I'm gonna let Claude describe this because my knowledge here is poor.
Fixed the real cause of voice chat making the whole game lag. Walking, turning, and even pressing keys would crawl while anyone nearby was talking, and 1.4 and 1.4.1 both took a swing at this without landing it. Voice audio is handed to the sound system in small pieces, and when the space set aside for those pieces filled up, the game sat there waiting for room to free up instead of moving on, freezing everything else in the meantime. It now simply skips a piece it can't fit, which is exactly what the existing gap-filling already covers. Measured on the same map with the same people talking, the worst stall dropped from 211 milliseconds to 21.
Fixed the jitter buffer slider above roughly 330 being able to freeze the game outright the moment someone started speaking. The space set aside for voice audio was a fixed size that a setting that high could not fit into, so the game waited forever for room that could never appear. That space is now sized from your actual setting, so the whole slider range works.
Fixed hearing yourself back (Listen to self) using a buffer barely twice the size of a single piece of audio, which meant it filled constantly and stalled the game the same way, this time while you were the one talking.
Voice chat no longer does wall, material and reflection calculations for players who aren't currently saying anything. Every player's position update was running a full check of everything between you and them, however far away they were, to work out how their voice should sound, including for people who had never spoken.
Voice chat's wall reflections no longer create and feed silent copies of a voice when there is no wall nearby to reflect off. Every speaker was costing three times the audio work everywhere, including outdoors, purely to have two of those copies immediately silenced.
Turning a voice down no longer costs the game work on every scrap of audio that person sends. Any volume other than exactly 100 percent, whether the global voice volume or one person's own, put every piece of their audio through a calculation on each individual sample of it. With the stalling above fixed, that had become the single most expensive thing voice chat did, larger than actually playing the audio. Lowering a volume is now free. Raising someone above 100 percent still does that work, because that is where their audio is kept from distorting, but it's meaningfully faster than it was.
Fixed a rare crash when someone stopped being heard at the exact moment a piece of their voice was still on its way to being played, which could happen on leaving a map or when a speaker dropped out.
Hearing yourself back (Listen to self) now goes through the room's reverb, the same as everyone else hears you. Everyone around you heard your voice through the space you were standing in, while your own monitor stayed completely dry, so there was no way to tell from your own end whether a reverb space was working at all.

1.4.1
Fixed a travelpoint's disabled setting and ID not loading with the map.
Sources and timed sources can now be given an ID in the builder, so triggers can pause, resume, toggle or restart them the same way other interactable elements already could.
Fixed proximity voice chat's outgoing side using the same blocking method that caused 1.4's movement-freezing bug, just on the send path instead of receive.

1.4
A bug fix release. Nothing new to learn, just things that should have worked all along.
Sequence triggers now watch their own sequence= list automatically. A button no longer needs an on_activate=sequence_input action wired back to the sequence trigger just to be one of its steps.
Fixed the teleport and sequence_input actions doing nothing. Both were silently corrupted whenever combined with another action or given more than one argument, which was most of the time.
Fixed the wax template builder (Shift+B) being reachable from anywhere by anyone. It skipped the same contributor/location check the regular builder already enforces.
Fixed the floor/elevator builder's Label field not saving. It offered an unused Flag field instead, so the label you typed just vanished.
Travel points no longer demand Travel Text. It was marked optional but was actually required, even though leaving it blank already worked fine.
Fixed Escape not dismounting the golden bike. It only recognized the regular bicycle by name.
Fixed falling into the void when the platform at a map's floor boundary is missing, in both 2D and 3D. You now land on the boundary itself instead of falling forever.
Fixed the vanishing platform's Active Sound field browsing hundreds of unrelated footstep files instead of general sound sources.
Fixed a single hyphen in dialog text being read as a forced line break. Only a real double hyphen counts now.
Fixed a reverb space nested inside another always losing to the outer one. The one you're actually standing in now wins.
Fixed a single footstep, bike movement, or landing sound briefly playing through the wrong room's reverb when crossing into a new one.
Fixed a map's mapwidevoice setting doing nothing. It was being read from the map but never actually consulted anywhere, so voice chat stayed limited to the normal nearby range regardless.
Fixed reverb briefly flaring up for no reason while walking around inside a single reverb room.
Fixed the microphone staying in use after turning voice chat off or muting it.
Fixed ping appearing to spike into the thousands of milliseconds when several people talk over proximity voice chat at once.
Proximity voice chat is now muffled by walls and materials between you and the speaker, the same as every other sound in the game.
Reduced the per-frame cost of voice chat's wall-reflection effect (the "feel the wall" sense of a nearby surface), which was recalculating a full wall scan every frame for every speaker.
These voice chat fixes are pretty experimental. They've only been tried with two or three people talking at once, so real results with a full map's worth of voices may vary, and it's possible they don't fully hold up. Let us know what you're still seeing.

1.3.2
This is to address a very, very, and I mean very! Annoying bug with the camera.

1.3.1
This is a patch to address a few critical bugs, but there are some helpful additions.
Fixed holding Up on a 2D map with jump-on-up enabled and autowalk on letting you jump over and over without ever landing. Jumping now takes a fresh press of Up, the same as Space, instead of firing again every frame the key stays held.
You can now have the game announce when a map is updated, rather than just the sound. You can toggle this under Map settings.
Fixed the Mac version writing its sounds and settings inside its own app bundle, where an update wipes them, and sometimes updating into a copy of itself nested inside its own Resources folder. Both now live in the folder beside the app, the same as Windows and Linux.
You can now turn with ALT up, down, left and right arrows in 2D maps.
Hopefully fixed the issue where you could die twice in a row by dying in a hazard and then falling, but this is speculation. I tested it myself and it seems to be holding up fine, but let me know if it still happens for you guys.

1.3
A bad cutoff or order on an occluded space or acoustic material no longer takes your sound device down with it.
The game's sounds now install as a folder instead of one large file. This was not a choice. The format they were packed in cannot be read back once it passes about two gigabytes, and the sound library had grown past that, so the pack the game was building could no longer be opened at all.
A note for builders, now that the sounds are a folder you can see into.
Adding your own is possible in a way it was not before, and it is worth being clear about why that is a problem rather than a feature.
A map built around a sound the rest of us do not have is simply silent for everyone but you, and it will look to them like the map is broken. Sending the file along afterwards does not really fix it either, because there is no way to be sure it reaches everyone who will ever load that map.
The builder therefore only offers sounds that came with the game, and that is deliberate. Please stay with them.
If it turns out this is not being respected, the alternative is to start enforcing it and reject maps outright, which is worse for everybody and not something anyone wants to spend the effort on.
Sound updates now download only the files that actually changed. No more using up twice the amount of disk space necessary.
A missing or damaged sound is now noticed and replaced. No more corruptions.
Anything that takes a while now plays a rising tone as it goes, the way a screen reader reports a progress bar.
The sound download no longer opens a window of counters to tab through. The tones say the same thing continuously, without being asked, and Escape still cancels.
The sounds now have a changelog of their own. It arrives as sounds_changelog.txt next to this file whenever it changes.
Ambiences can now be excluded, the way sources already could. Give an ambience a reference ID, and any excludable zone naming that ID silences it while you stand inside. This is useful if you have an ambience that silences out of its edges, but you also want to add silence inside.
A sign sharing a tile with a menu is now read, instead of the menu opening over the top of it. The same goes for the rest of a map's own furniture: doors, gates, passages, dialogs, instruments, travelpoints, clocks, buttons and the like all answer Enter first, and the menu stays shut while you are stood on one.
Maps can now ask for the classic bike. Add classicbike to a map and bikes on it ride the way they did in the original client.
A source or ambience playing something out of the music folder now counts as music.
Deleting an excludable zone while people are on the map no longer leaves the source it was silencing stuck silent.
Adding a playlist to a map that is already being played on now actually starts it.
Interrupting a sound update is now safe. Losing your connection or closing the game partway through leaves what has already downloaded in place and picks up from there next time, and there is no longer any moment during an update where you are left with no sounds at all.

1.2.1
This release attempts to patch a handful of issues, but there is no guarantee that it fixes them. Some of what follows was worked out from crash reports rather than from reproducing the problem here, so it may well not be the whole story. That is why this is 1.2.1 and not 1.3.
Other players can now hear you playing an instrument. Every note was being sent out under the wrong filename, without the folder it actually lives in, so the sound the other clients went looking for did not exist and nobody but the player heard a thing.
An instrument can now cover more than one tile. Write minx, maxx and the rest in place of x, y and z, or fill in the optional maximums in the builder, and it answers anywhere inside that box. Nothing changes for instruments already built, since x, y and z still mean a single tile.
Fixed searching a list closing the game. Pressing F3 or Control F in a list that had nothing selected yet, then searching for anything, took the client down instantly. The search asked the list what was currently under the cursor without checking that anything was, which is also why it looked like a problem with terms that are not found: there was nothing to find because the search never got that far.
The keys used for the Control and Alt modifiers can now be changed, from two new lists in Settings under Interface. This is mainly for Linux and macOS, where the desktop claims combinations like Alt and F1 before the game is ever told the keys were pressed.
Tile zones can now retune walls. Name the wall as the zone's surface, tile name and all, as in surface=wallwood, and its bump takes the zone's pitch, whether you walk into it, the camera does, or the sonar reports it. Zones with no surface still leave walls alone.
Tile zones now change how other players sound, not just how you sound. A zone's pitch change only ever reached your own feet, and it now covers other people's footsteps, landings and falls as well.
A map marked nocamera now actually switches the camera off. The setting was read from the map file and then never consulted anywhere, so the camera worked everywhere regardless of what the map asked for.
Holding G on a nocamera map, or Shift on a nospyer map, no longer walks you. The key was refused and the arrow then fell through to ordinary movement, so asking for something the map does not allow sent you wandering off across it instead of leaving you where you were.
Fixed the game closing itself on maps with reverb on some setups. Reverb is built on a sound engine feature that not every audio device can provide, and being refused it was treated as impossible rather than merely unavailable, which took the whole game down without a word.
Returning to the main menu no longer leaves the game unable to reconnect. Some ways of leaving a server left it believing it was still in one, which both blocked the Connect option silently and left the old map running underneath the menu.

1.2
Fixed a reverb space's Wet value doing nothing, with the reverb far too loud whatever you set. Wet is an amount from 0 to 1, but it was being handed to the engine as a decibel level, where 0 means full volume rather than none. The whole range from 0 to 1 therefore landed within a single decibel of full, so every setting sounded the same and all of them were as loud as the reverb could go. Wet now does what it says: 0 is no reverb, 1 is the most, and the values in between space out properly. Reverb spaces and zone reverbs you have already built will sound quieter and will want their Wet raising to taste.
Backslash now opens a box for map chat. Slash still opens the chat screen on whichever conversation you last used, and backslash leaves that alone, so using one does not change what the other opens on. Slash commands can be typed into the map chat box as well. Backslash previously showed a preload count, which only ever appeared in development builds.
Added a Speech section to Settings. It holds whether to use your screen reader when one is available, and the voice, rate and volume used when it is not, all of which were previously fixed with no way to change them. These are saved with the rest of your settings rather than separately, and the voice is remembered by name, so installing or removing voices will not leave you on the wrong one. The setting for staying quiet while the window is not focused lives here too.
Added a setting to mute all sound while the game window is not focused. It sits with the volume sliders in Settings under Sound and Audio, and in the volume mixer, so it is wherever you already are when adjusting sound. Everything goes quiet when you tab away and comes back at the volume you left it at. It is off by default, and it does not change your saved volume, so quitting while tabbed out still starts you up at the right level next time.
Added a setting to stop the game speaking while its window is not focused. Plenty carries on without you, and having chat and other players read out over whatever you switched away to do is just interruption. Turn it on in Settings under Speech and the game stays quiet until you come back. It is off by default.
The sonar no longer plays a hazard and the surface under it at the same moment. Both sounds arrived together for the same spot, which is hard to pick apart, and the surface is not the thing you need to react to when there is a hazard there. The hazard is now reported on its own, and the surface is heard as usual everywhere there is not one.
Editing something you already built no longer wipes out whatever you put on top of it. Map pieces are stacked, and the newest one wins wherever two overlap, which is what lets you build on top of a platform in the first place. Editing a piece rebuilt it as though it were brand new, so it came back above everything you had added since: go back to widen a platform and the table standing on it vanished, even though nothing had touched the table. An edited piece now returns to the same place in the stack it already occupied, so the things built on it stay put.
Fixed an elevator built while you are on the map insisting it is the only floor. An elevator is given its list of floors once, when a map finishes loading, so one placed from the builder afterwards was never given any and said so no matter how many floors the map had. A floor added after the elevators already existed was invisible to them for the same reason. Both now update the lists as they are placed, so an elevator works as soon as you build it instead of only after a reload.
Fixed a crash while an elevator was moving. If an elevator was asked for a floor that no longer lined up with the map's list of floors, it read past the end of that list and took the whole game down with an Index out of bounds error. It could happen from the main menu too, since maps keep ticking underneath the menus. It now gives up on the ride instead, and opens its doors so anyone aboard is let out rather than left standing in a sealed elevator unable to move.
A number that isn't a number now says so, instead of blaming an innocent parameter. Values for numeric settings were read up to the first character that didn't fit and the rest was thrown away without a word, so a single missing semicolon quietly swallowed whatever came next. Writing speed=100 loop=none.ogg, with no semicolon between them, took the speed as 100, lost the loop sound entirely, and then complained that loop was missing, naming a parameter sitting right there on the line. That reads as the game being wrong about something you can plainly see. The value is now checked in full, and a bad one is reported against the setting it actually belongs to, with a note to look for a missing semicolon.
You can now hear what a platform sounds like to land on before you use it. In the platform browser, Space still plays the footstep. Control J or Control Space plays the sound of landing on it, and Control H or Control Shift Space plays landing on it hard, so whichever is easier to reach works. Previously the footstep was all you could hear, so the only way to judge the other two was to build with the platform and go jumping on it. If a platform has no landing sound of that kind, it says so rather than just staying quiet.
Jumping with the up arrow on a 2D map now works while you are walking. Holding left or right stopped it, so you had to come to a stop before you could get off the ground. The arrow keys share one timer that paces how fast you walk, and each direction restarts it as it steps you, so a held direction kept that timer from ever reaching the point where the up press was looked at. The pacing now applies only to walking and climbing, where it belongs, and not to jumping.
A passage no longer has to bring its own wall. Wall Type is optional now, and leaving it blank, or writing none, means the passage places nothing at all when it closes and simply stops being walkable, letting whatever walls you have already built do the blocking. Previously the field was required and the builder quietly substituted stone if you left it empty, so there was no way to say you wanted the map's own walls used.
The Move Sound box is gone from passages. Passages do not move, so it was offering a sound for something that never happens. Doors, gates, lifts and elevators keep theirs, and any existing map that already sets a move sound on a passage still plays it.
An open passage is now a doorway you walk through rather than a set of steps. A passage taller than one tile used to fill its whole height with floor when it opened, so every level of it was something you could stand on and a passage built six high opened into what felt like a ladder. Building it one tile tall dodged that but left you crawling under the wall, so there was no way to get an opening you could simply walk through. The floor now runs along the bottom and the space above it is genuinely open. This works on 2D maps as well. A passage whose direction is along the up and down axis still fills completely, since climbing it is the whole point.
Fixed updates downloading but never actually installing. The helper that swaps the new version in is meant to wait for the game to close first, since Windows will not let a running program be overwritten. It was using a command that quietly refuses to wait at all when it has no console window of its own, which is exactly the situation it runs in, so the whole five second grace period went by in about a third of a second. The game was then force-closed while it was still shutting down, and the update was unpacked over files Windows had not finished letting go of. It now waits properly, gives the game up to twenty seconds to close on its own, pauses for the system to release the files, and retries the unpacking a couple of times before giving up. If it still cannot finish, it leaves the downloaded file in place along with a note explaining how to finish by hand, and reopens the game rather than leaving you with nothing.
The New Map screen can now make 2D maps. There is a "Make this a 2D map" checkbox, and ticking it takes the Maximum Z field away rather than leaving it there asking for a number a 2D map has no use for. Until now the screen could only produce 3D maps, so a 2D one meant typing the command out by hand.
Fixed a lift built with a very low speed dragging the whole server down. A lift told the server where you were on every single movement step, so one built to move fast enough sent hundreds of position updates a second, and the server passed every one of them on to every player online. Position updates now go out on their own timer, the way doors and conveyor belts already did, and there's a final one when the lift arrives so nobody sees you short of the floor you got off at. The ride itself is unchanged. Lift speeds below 100 are also raised to 100, since a lift stepping faster than that is too quick to hear or react to and only costs performance.
Fixed sound updates being offered over and over without ever installing. Two separate things were going wrong here, and each one hid the other. The first is that the sound pack that went out was labelled with the wrong version number: a leftover file sitting in the sound folder overwrote the label the packing tool writes itself, so a pack built as version 2 went out announcing itself as version 1, and the game quite correctly went on telling you version 2 was available no matter how many times you installed it. The second is that installing it wasn't doing anything at all. An update works by merging the small download into the sounds you already have and swapping the result into place, and the game was still holding your existing sounds.dat open at the moment it tried to replace it, so the replacement quietly failed. Nothing checked whether it had worked, and the game then reopened the file it had just failed to replace, found it perfectly readable, and announced that the update was complete. It had changed nothing whatsoever. Both are fixed: a version label can no longer be overwritten by a stray file, and a swap that doesn't work now says so and leaves you with the sounds you already had rather than reporting success.
Installing a sound update now shows you how far along it is. Merging an update into your existing sounds moves around two gigabytes of audio and can take a few minutes, and it previously did all of that with no indication of progress at all, which left the game looking as though it had frozen partway through. There's now a window telling you how many files and how many megabytes have been merged out of the total, how much is still to go, and a Cancel button if you'd rather not wait. Cancelling is safe at any point: nothing touches the sounds you already have until the merge has finished, so the worst that comes of it is downloading the update again another time.
Fixed the sonar treating everything as a hazard once you jumped. 1.1 taught it to warn you about hazards below you while you're off the ground, but it counted any hazard below the scan point at all, however far down and even with solid ground in the way. On a map with hazards underneath its platforms that meant every jump reported a hazard, and it kept doing so for as long as you stayed on the map, which is why it seemed to right itself only when you left. It now only counts a hazard you could actually come down into: close enough below to matter, with nothing solid in between. Being in the air inside a tall hazard warns you properly too, which it didn't before.

1.1
This one is mostly a bug fix release. Most of what follows is things that were quietly broken rather than anything new, several of them since well before 1.0, and a few badly enough that they were spoiling whole features without it being obvious why. There are a handful of small additions mixed in, but the bulk of this update is making things work the way they were always meant to.
Fixed other people appearing frozen on 2D maps. Walking on a 2D map never told the server where you were, so while your own movement felt completely normal, to everyone else you stood still at wherever you happened to be, and they stood still to you. This is also why you couldn't hear anyone else's footsteps on a 2D map while still hearing them jump, land, turn and bike: your game only plays someone's footstep when it's told they moved, and it never was. This has been broken since 2D maps were first added rather than being anything recent, which is why converting a working 3D map to 2D appeared to break it so thoroughly.
The sonar now warns you about hazards below you while you're in the air, instead of only once you're standing in one, which was rather too late to be useful. The warning plays from underneath you so you can tell it's something you're about to land in.
In "sonar follows you" mode the sonar's sounds no longer pan around. That mode scans wherever you are, so panning a sound that is by definition at your own position only made it drift about for no reason. The directional scan still pans, since that's the entire point of it.
The game no longer nags you to redownload the sound pack every single time you start it. If your sounds.dat was made before sound versions existed it had no version stamp, and the game read that as "I have no idea what this is" and offered you a multi-gigabyte download on every launch, which declining didn't stop. A pack with no stamp is now simply understood to be the first version, which is what it is.
Redownloading sounds is also a lot safer. The old sounds.dat was deleted before the new one had even started downloading, so a cancelled or interrupted download left you with no sounds at all and a very large download ahead of you just to get back to where you started. Your existing sounds are now kept until the replacement has arrived and been checked, and if something does go wrong the game goes back to the sounds you already had instead of falling silent until you restart.
Fixed a crash on logging in that some of you have been hitting since 1.0. When you log in, the game sends a small set of details about your computer along with your username, which the server uses to catch ban evaders. One of those details is your network adapter's hardware address, and on a machine where the game can't find an Ethernet adapter, such as a laptop connected only over Wi-Fi or a machine with its wired adapter switched off, asking for that address didn't come back empty like it should have, it failed outright and took the game down with it. That's why it only affected some people and always at exactly the same moment. The game now copes with any of those details being unavailable and simply sends the ones it can get, so logging in works regardless. Apologies to anyone who's been stuck on this since 1.0 without a clear reason why.
Logging in should also be quicker and more dependable in general. Every time you logged in, created an account, requested a code or reset a password, the game first asked an outside website on the internet what your IP address was, and waited for that answer before it would talk to the game server at all. If that website was slow, blocked on your network, or simply having a bad day, your login stalled or failed for a reason that had nothing to do with Golden Crayon. It doesn't do that anymore.
Reverb has been reworked, and reverb spaces now have a Decay Time in seconds instead of a Room Size slider. Room Size was the raw knob the underlying reverb uses, and it was close to useless as a control: the first half of the slider covered barely any change at all while everything interesting was crammed into the last fraction, so moving it rarely did what you expected. Decay Time is simply how long the reverb takes to fade, in seconds, so a cave that rings for five seconds is set to five. Existing maps and the older Room Size setting still load and are converted for you, so nothing needs editing.
The reverb presets got their character back as part of this. They were originally written in real decay times, and a Cathedral, a Cavern, an Underwater Cave and a Canyon had all been squashed into the same value, which is a large part of why so many spaces sounded alike. They now carry the times they were actually written with.
Reverb is also positioned now, rather than applied in one lump to everything you can hear. A sound close to you picks up more of the room than one far across it, instead of every sound in a space getting an identical wash. Voice chat is included, so someone speaking in a large room sounds like they're in it.
Fixed reverb drowning everything and sounding much the same regardless of a map's settings. Two things were wrong at once: the reverb was passing a copy of the original sound through alongside the reverberated one, so you heard everything twice very slightly apart, and the reverb itself was running about three times louder than it was ever meant to, so it buried the actual sound underneath it. Both are fixed, and reverb now sits behind what you're listening to rather than on top of it.
Removing a vanishing platform in the builder now actually removes it, rather than appearing to do nothing until you left the map and came back. The removal was taking away the platform's tile but leaving the platform itself running, so it simply rebuilt its tile again a few seconds later.
Challenge times are now remembered if you log out partway through a run. Previously the timer started over when you logged back in, which meant you could reach the end of a challenge map, log out, log back in and walk out to record a time of almost nothing and take the top of the leaderboard. Time spent logged off doesn't count towards your run.
Creating a map with a space or a comma in its name now tells you so, instead of failing in a confusing way. A space in the name used to come back as a complaint that your Maximum X value was too small, even when it was perfectly fine, because the name and the size values are sent together and the space made the game read part of your name as the size. A comma was worse: the map was created but came out broken, with no platform sounds and movement restricted. Both are now caught before anything is sent. Names with spaces are still not possible for the moment, so an underscore or a dash is the way to go, but at least it now says so rather than leaving you guessing.
Fixed the beep that plays as you move through a buffer being wrong at the top of the list. It's meant to start low and rise as you move down, but the first item was asking for a negative speed, so instead of sounding deep it just came out wrong. On a fuller buffer this affected the first several items rather than only the first, which is why it seemed to get worse the more messages you had. The beep now sweeps properly from low at the top to high at the bottom, whatever size the buffer is.
Pressing up as soon as a menu opens now takes you to the last item. Menus are meant to work that way, up for the bottom and down for the top, but the first press was being treated as though you were already sitting on the first item and trying to go past it, so it just played the edge sound and left you where you were. Reaching the bottom of a menu meant holding down through the whole thing, or pressing End.
Wall bump sounds can now be played flat instead of panning around you. The wall you've just walked into is right next to you by definition, so panning it hard to one side put the sound somewhere you weren't, and feeling your way along a corridor made the wall seem to slide about. There's a new Gameplay setting for it, off by default so nothing changes unless you ask for it. It only affects your own bumps; other people walking into walls elsewhere on the map still sound like they're where they are.
On 2D maps the up arrow now jumps when there's nothing above you to climb onto. Up has always climbed when something solid is overhead, but with open space above it it did nothing whatsoever, so one key now means "go up" whichever kind of up happens to be available. There's a Gameplay setting to turn it off if you'd rather it stayed a climb key only.
"Sit down after falling hard" now does something when it's unchecked. Landing hard sat you down whatever the setting said, because the landing code sat you down itself on top of the part that actually checks the setting. Worse, the two disagreed: the message telling everyone else you'd sat down was only sent by the part that checks, so with the setting off you'd end up sitting on your own screen while everyone else still saw you standing, and had to stand up from a sit you never asked for.
A tile zone with its jump height set to 0 now actually stops you jumping. It was clearly meant to, but what happened instead was that the jump sound played and you entered a jump that ended on its very first moment, so you got the noise and the interruption without ever leaving the ground.
Muted buffers now stay muted between sessions. Previously every buffer came back unmuted each time you started the game, so if you kept a buffer silenced you had to silence it again every session. There's also a new Buffer Mutes item in the context menu, which lists every buffer with a checkbox so you can set them all at once instead of visiting each one. Muting from within a buffer still works exactly as before, and is remembered the same way.
Muting a buffer now also keeps its messages out of the "all" buffer. Previously a muted buffer went quiet in its own view but its messages still showed up in "all", which rather defeated the point of muting it.
Added three new buffers: connections, death messages and leaderboards.
The server can now attach a specific sound to a message it sends to a buffer, instead of every message in a buffer sounding the same. Nothing changes for messages that don't specify one, and a custom sound can't slip past a buffer you've muted: muting silences the message and its sound together, so there's no way for one of these to get through a buffer you've asked to be quiet.
Notification sounds now respect a muted buffer. The server used to send a message and its sound as two separate things, and only the message was checked against your mutes, so muting a buffer silenced the text and left the sound playing on every single one of them. If you'd muted player events and were still hearing some of them coming through, that's what was happening.
Connections and disconnections now go to the connections buffer, and leaderboard placements to the leaderboards buffer, rather than being mixed in with everything else. Leaderboard announcements in particular used to land in notifications, which can't be muted at all, so there was simply no way to turn them off. Both are ordinary buffers now and can be muted like any other.
If you've muted someone's onoffs, or turned them off altogether with /hearonoffs, you now hear the standard online or offline sound instead of nothing. When the person logging in had a custom sound uploaded, the standard one wasn't sent to anybody, so opting out of their upload left you in complete silence rather than falling back to the normal sound. Turning off custom onoffs means you'd rather not hear other people's uploads, not that you want logins to stop making a sound at all. Since that standard sound now travels with the message, muting the connections buffer silences it too.
Account names, passwords and e-mail addresses can no longer contain spaces. The game now tells you so up front rather than letting you get partway through and be rejected.
New installs now start with the classic list-style main menu and builder turned on, since people coming over from the classic version tend to want those. If you're already playing, nothing changes: your existing setting is kept either way, and both are still toggles in Settings under Interface and Builder.

1.0.1
This update changes one thing: the audio system. Nothing else has been touched, and that's deliberate. 1.0 went out and the bug reports came in, and a large share of them traced back to the sound engine the game had been rebuilt on during the release candidates. Rather than patch around it, I've moved the audio back onto the older engine the game used before, the one that ran for most of this project's life without these problems.
The big one is memory. Players were reporting the game slowly eating more and more RAM the longer they played, in one case climbing from about 3GB to nearly 6GB just from having Golden Crayon open. Here's what was happening. Every sound file in the game is stored compressed, and has to be unpacked into a much larger raw form before it can be played, roughly ten times its size on disk. To avoid doing that work over and over for sounds you hear constantly, like footsteps, the game kept each unpacked sound in memory after the first time it played. That part was intentional and is a normal thing to do. What wasn't intentional is that nothing ever cleared it out. There was a function written to free that memory, and it was never actually called from anywhere, not on leaving a map, not ever. So every distinct sound you heard for the entire time the game was open stayed unpacked in memory forever, and the number only ever went up. The longer you played and the more maps you visited, the worse it got. That's the 6GB.
The engine the audio has moved back to doesn't work that way. It releases a sound's unpacked audio on its own once nothing is using it anymore, so keeping something in memory has to be a deliberate choice rather than an accident. The one place the game does deliberately hold sounds, the preloading that keeps common sounds instant, has a hard limit and gets cleared every time you change maps. Long sounds now stream from disk instead of being unpacked into memory at all. If you were seeing the game's memory use climb, it should now stay level over a session.
While in there, I also fixed a small pop some sounds made when they started. A sound was being told to play before it had finished being prepared, so playback would begin a fraction of a second into the audio rather than at the very beginning. That missing sliver, and the abrupt jump into the middle of a waveform, is what you were hearing as a click. Sounds now finish preparing before they play. If you had turned on the preload setting to work around this, that setting still helps with map loading, but you no longer need it just to avoid the clicking.
A couple of things to be aware of. HRTF is now a single on or off switch again rather than a list of models to choose from; the new engine has one built-in implementation instead of loadable datasets, so the model list is gone but HRTF itself works exactly as before. If you had picked a specific model, it'll simply fall back to the standard one.
For map authors: the reverb and occlusion settings have gone back to the names and scales they used before the release candidates. Reverb spaces and zone reverbs use Dry, Wet, Room Size, Damp and Width again; occluded spaces use Cutoff Frequency and Resonance; acoustic materials use Cutoff Frequency and Order; and reflection settings use Reflection Cutoff. Your existing maps do not need editing, and maps written either way still load correctly, but the builder will show the older fields and save in the older format from now on. Three settings that only existed in the release candidate versions, Density, Decay HF Ratio, and the overall Gain on an occluded space, have no equivalent in this engine and have been removed rather than quietly reinterpreted as something else. If you tuned those specifically, those particular values are gone; everything else carries over. The presets and the test buttons all still work and have been converted along with everything else.
If your maps sound slightly different in places, that's expected and I'd genuinely like to hear about it, since the acoustics were rebuilt to match the old behaviour as closely as I could measure rather than by ear on every single map.

1.0
Welcome to version 1.0 everyone!
Yeah, I decided to leave the long gigantic changelog below so you guys can see the crazy progress. If you find it annoying though, I can remove it.
Before release, I made some final fixes and adjustments I noticed. Hopefully it helps, as a lot of it was involving the builder and syntax.
The Wax Template Builder, which generates entire furniture and structure templates such as tables, boxes, chairs, stairs, shelves, beds, arches, and pits from a single form, was building everything on the wrong axis on 2D maps. It had carried over the classic version's approach, where the up-and-down axis was a different one from what the rest of this version's builder uses, so on a 2D map a template came out oriented the wrong way instead of standing upright like everything else you place. Every template now builds along the same vertical axis as the rest of the builder on 2D maps, the height fields are labeled to match, and camera markers autofill them correctly, so what you build lines up with the rest of your map.
Clocks and calendars can now do a lot more than show a single fixed line of text. Their text supports substitution tokens that are replaced with the live time or date right where you put them. A clock understands %time, %hour, %minute, %second, and %ampm, and a calendar understands %date along with individual pieces like %weekday, %monthname, %month, %day, and %year. So a clock set to "On the clock, %time is displayed." reads exactly that with the current time filled in, and a calendar set to "%day %monthname %year" reads back as "15 January 2025." If you don't use any token, the time or date is simply added onto your text the way it always was, so existing clocks and calendars are unaffected. The builder now lists the available tokens right on the text field, the text limit has been raised from 100 to 1000 characters, and all of it is written up in the map syntax glossary.
Added beacon zones, for marking a place players can navigate toward without it announcing itself every time someone walks through. A beacon is a zone that still appears in the Locations menu and still pings when you arrive, but stays silent on entry instead of speaking its name. In the builder, check the new "Beacon Only" box on a zone; in map syntax, add beacon=true. It only takes effect when the zone is also set to trackable, since a silent, untrackable zone would do nothing. Adding, editing, or removing a beacon from the builder while you're already on the map updates the Locations menu right away.
Added 49 extra music tracks to kick off things.
Added 13 new fidget sounds recorded by Keri.
Please, make sure to read the files in the documentation folder. They should help in figuring out the game.
If you have a question or concern not mentioned, be sure to use Staff Outreach (ALT+F1) to get in touch with staff, or ask fellow players.
