BYOND Changelog

What's new in BYOND 515.1636 Beta

Apr 11, 2024
  • Dream Daemon:
  • Certain operations like flick() on a just-recycled object ID could confuse the server into not sending info that the old object had been deleted. (Vallat)
  • The server will now more aggressively prune .rsc batches it has prepared if they go unused for too long. Previously, it would leave them open which led to an overabundance of open file handles. (Azizonkg)
  • Dream Maker:
  • The parser was confused by proc return types joining two primitives, e.g. "as num|text". (WorkersOfTheWorld)
  • The world preview in the map editor was being regenerated even for scrolling and small changes. (Vallat)

New in BYOND 515.1635 Beta (Apr 4, 2024)

  • Dream Maker:
  • In projects with corrupt .rsc files that affected old-style DMI files, object tree generation could crash. (Naruto 5292)
  • Dream Seeker:
  • In certain unusual situations, images could cause an infinite loop that hung the client. (Drathek)

New in BYOND 515.1634 Beta (Mar 28, 2024)

  • Fixes:
  • Dream Daemon:
  • Blank strings were being saved in savefiles as null values. (Spevacus)
  • When an object ID was recycled, animations on the new object sometimes didn't get sent to clients that the old object still in their sent-object info. (RootAbyss)
  • time2text() showed altered behavior with the newer runtime libraries when using negative values. (KashL)
  • Dream Maker:
  • Selecting the 4th control in the Controls menu for the skin editor opened help instead. (Ter13)
  • In the map editor, when only certain layers were selectable but all layers were visible, the arrow tool could still select any type of object. (Lummox JR)
  • Clicking blank grid squares in the map editor's Variants tab rearranged the variants. (Vallat)
  • Attempting to paste a map selection too large for the current map caused a crash. (Vallat)
  • The map editor's world preview didn't update when changing the displayable layers. (Vallat)
  • In the icon editor, dragging from a movie frame to the delay row caused a crash. (NinjaPikachushka)
  • Compiling a project where the .dme was renamed to another extension could cause some files (skins, maps) not to be included correctly, and produce odd output. (Zewaka)
  • Dream Seeker:
  • Certain instances of using visual contents in images could cause client crashes. (Ter13)
  • VIS_UNDERLAY was causing positioning artifacts by inappropriately marking icons as HUD icons, and could cause crashes in some cases. (Devourer Of Souls Alter)
  • Features:
  • Dream Maker:
  • Right-clicking on the map editor will now include objects that are not strictly on that tile, but overlap from another tile. They are marked separately with their x,y,z coordinates for clarity. Additionally, turf underlays are now properly marked as underlays in the menu.
  • Map editor: Alt+click with most tools will select the clicked object so its properties can be edited.
  • Dream Seeker:
  • Now browser controls can use images with a src of ref[icon]?... where the query string can contain the following items:
  • sheet - display as a sprite sheet; without this the first matching frame is chosen
  • state=S - specific state; use url_encode on the state
  • moving=M - choose between non-moving and moving states
  • dir=D - choose a specific dir
  • frame=F - choose a specific frame (starting with 1)

New in BYOND 515.1633 Beta (Mar 7, 2024)

  • Dream Daemon:
  • Regression: An attempt to fix an issue with complex icon operations caused simpler operations to fail when they shouldn't have. (Niezan)
  • Dream Maker:
  • Changing pixel offsets in Classic map editor mode could cause pixel offsets to change on other objects of the same instance. (RootAbyss)
  • Map editor: Making a new selection with the select tool after pasting a previous selection didn't update the undo stack properly, making it impossible to undo the paste. (Randy Sandy)

New in BYOND 515.1633 Beta (Mar 6, 2024)

  • Dream Daemon
  • Regression: An attempt to fix an issue with complex icon operations caused simpler operations to fail when they shouldn't have. (Niezan)
  • Dream Maker
  • Changing pixel offsets in Classic map editor mode could cause pixel offsets to change on other objects of the same instance. (RootAbyss)
  • Map editor: Making a new selection with the select tool after pasting a previous selection didn't update the undo stack properly, making it impossible to undo the paste. (Randy Sandy)

New in BYOND 515.1632 Beta (Mar 3, 2024)

  • Dream Daemon:
  • In some rare cases, resolving icon operations on the server (which itself usually requires a large sequence of operations) could cause reentry into a routine that wasn't allowing it and keep trying to load a component icon repeatedly in an infinite loop. (Kapu1178)
  • Dream Maker:
  • When editing an icon's pixels and then backing out and going to edit a different state's pixels, the wrong icon was highlighted in the movie section of the editor. This caused edits made to the frame to affect the wrong frame, and those edits wouldn't appear until selecting a different frame. This may have led to some crashes as well. (Jeannn)
  • Dream Seeker:
  • browse_rsc() was failing to write extracted icon files properly. (Vladisvell)
  • render_target slate sizes were calculated incorrectly for plane masters. (LemonInTheDark)

New in BYOND 515.1631 Beta (Feb 23, 2024)

  • Fixes:
  • Dream Daemon:
  • Reusing mutable_appearance could sometimes result in certain appearances being deallocated early, leading to a crash. (WorkersOfTheWorld)
  • When world.movement_mode was set to a value besides LEGACY_MOVEMENT_MODE, a false result from turf.Enter() could result in Bump(null) if the turf and its contents were non-dense. (F0lak)
  • datum.vars wasn't counted as a valid reference in Byondapi, resulting in bogus results from functions that interacted with the list. (Y0SH1_M4S73R)
  • At some point, a change in the C libraries caused text2num() to parse "NaN", which was a change from previous versions. This has been deemed undesirable behavior, so text2num() will no longer parse NaN or infinity; it will return null in those cases like it used to. (Drathek)
  • Certain events related to client initialization, like sending the client appearance (and therefore client verbs) did not trigger until client/New() ended. This has been changed so that now as soon as the default client/New() ends, that behavior is triggered even if more code has been added to a client/New() override after the default call. (Albro1)
  • Dream Maker:
  • Setting an active object (opening properties pane) in the map editor while another map editor tab already had an active object caused corruption. Now the active object is deselected whenever the tab is changed. (Pixel Realms)
  • Compiling while an object was selected in the map editor, and then a different tab was active, caused a crash after switching back to the map. (InsidPro)
  • The "no parent call" warning for ..() was inappropriately generated for operator overloads. This has been changed for all overloads, although currently it only really matters for the << and >> operators. (Aregrued)
  • Dream Seeker:
  • MouseMove macros were firing even when over empty space, contrary to specified behavior. Additionally, several parsing problems with explicit null reference arguments have been fixed. (Ter13)
  • Using ref to view atom or appearance icons in a browser caused a file handle leak that eventually prevented icons from being shown that way at all. (Vallat)
  • Map position was incorrect in isometric mode with SOUTH and WEST client.dir. (Tony WK)
  • Text-mode map displays were vertically flipped. (Inuyashaisbest)
  • Macro changes resulted in the Any macro for the `/~ key to report as ~ instead of ` as it used to. (General Do-Nothing)
  • Features:
  • Dream Seeker:
  • Multiple skin parameters have been added for windows: inner-pos, outer-pos, screen-pos, screen-size, and is-fullscreen.
  • A new "as raw" format has been added for embedded wingets. This will not add any additional escaping or quotes, assuming the value is correct as-is for parsing.

New in BYOND 515.1630 Beta (Jan 24, 2024)

  • Dream Seeker:
  • Regression: Macros defined for character keys were taking precedence even when an input control was focused. (MrStonedOne)

New in BYOND 515.1629 Beta (Jan 24, 2024)

  • Dream Seeker:
  • Regression: The Any key macro now reported A as lowercase, which caused problems for some games. (MrStonedOne)

New in BYOND 515.1627 Beta (Jan 18, 2024)

  • Dream Seeker:
  • The client could send some messages while still negotiating the connection, which resulted in the connection failing. (MrStonedOne)
  • Changing the view size or scrolling offsets (as in changes to client pixel offsets) could cause an intermittent crash depending on the verbs available. (Drathek)
  • Features (More Info):
  • Dream Seeker:
  • Instant verbs will no longer get stuck in a queue behind non-instant ones.

New in BYOND 515.1626 Beta (Jan 12, 2024)

  • Dream Daemon:
  • Regression: Proc calls with underscores were broken. (MrStonedOne)
  • Dream Seeker:
  • Some changes to SIDE_MAP sorting in an earlier build resulted in some incorrect sorts in some cases. (Kumorii)

New in BYOND =515.1625 Beta (Jan 10, 2024)

  • Dream Seeker:
  • Regression: Areas with multiple icons often caused an infinite loop on the client. (MrStonedOne)

New in BYOND 515.1624 Beta (Jan 10, 2024)

  • Fixes (More Info):
  • Dream Daemon:
  • World initialization of proc lists for each prototype got considerably slower and used more memory in 515.1611, which mainly impacted large projects. This process has been streamlined, and should now be an improvement in both memory and speed over even the earlier versions. (MrStonedOne)
  • splittext() was handling its Start and End parameters incorrectly. The intention was that splits should only count between Start and End, but it was trimming the string also, and when splitting by regular expressions it trimmed incorrectly. Going forward, splittext() does not trim the string, and the documentation has been clarified. If you want to trim a string before splitting it, call copytext() with the Start and End parameters and you can send that to splittext(). (Amylizzlep)
  • Dream Maker:
  • The map editor's selection tool once again allows using Ctrl+click to choose the far corner of a selection rectangle after clicking the first corner. (James)
  • The :: operator, when used in var overrides, could produce an "expected a constant expression" error even when the definition being referenced was in fact constant, especially in the case of deeply nested type trees. (Drathek)
  • Dream Seeker:
  • Mouse drags would sometimes produce a MouseDrop() call even when dropping over the same object as when the drag began, which was incorrect. This happened subsequent to other drags where the MouseDrop() was correctly treated as a Click() instead. (Meme01)
  • Non-square client.view behaved incorrectly with sideways client.dir values. (Taitz)
  • Features (More Info):
  • Dream Maker:
  • The properties pane now allows you to sort vars alphabetically again with a new toggle.

New in BYOND 515.1623 Beta (Dec 25, 2023)

  • Dream Seeker:
  • Quick fix: A typo in some otherwise minor changes caused major view issues in some projects. (General Do-Nothing)

New in BYOND 515.1622 Beta (Dec 21, 2023)

  • Dream Seeker:
  • Particles did not work correctly on objects using VIS_INHERIT_ID, since the wrong object was being looked up for the particle stream info. (Maxsc)
  • Sending output to a browser control via output() was broken. (Albro1)
  • Particles with negative growth would continue to grow into the negatives and flip their icons. Now they will disappear when their scale reaches zero on either axis. (Cadis E. Di Raizel)
  • The old "tree root hack" altering physical bounds for display purposes in SIDE_MAP has been removed. It was causing problems for sorting and was no longer relevant since the topological sort was added. Further issues with SIDE_MAP sorting remain and will be addressed in the next major version. (Ter13)
  • Using an object with a render_target that had a filter with the same render_source caused a crash. (Ter13)

New in BYOND 515.1621 Beta (Dec 14, 2023)

  • Dream Daemon:
  • Byondapi: Temporary references created for calls from other threads expired too quickly. (Absolucy)
  • Byondapi: ByondValue_IsTrue() wasn't exported properly. (A-112)
  • Dream Daemon & Dream Seeker
  • client.pixel_w was handled incorrectly on both the client and server. (RencaJuniorOwnsLibtards2018)
  • Dream Maker:
  • In some large projects, when a map tab was the last selected tab from a previous session, opening the project again caused the object tree to display a message that there were errors in the compilation. This was due to a race condition where the .dme file was being altered by the interface while the "update" compilation was underway. (Lummox JR)
  • Saving in the map editor semi-cleared the current selection, leaving the selection rectangle visible but clearing the properties pane. The properties pane will now remain active, like it's supposed to. (Randy Sandy)
  • Certain expressions with the :: operator didn't compile correctly as constants. (Kapu1178)
  • Windows was incorrectly applying case-sensitive behavior to detecting relative file paths, which was exacerbated when mixing slashes and backslashes in the DME path. (MrStonedOne)
  • Typing in a hex color in the color selection dialog didn't update the color preview. (Inuyashaisbest)
  • The find and replace dialog in the map editor didn't correctly delete turfs or areas. (FKI)
  • Trying to compile type::var caused an infinite recursion. (LemonInTheDark)
  • Dream Seeker:
  • Attempting to load a nonexistent client-side savefile caused a crash on the client. (FKI)
  • Visual contents with icon/state inheritance did not inherit the last-changed time from the parent atom, resulting in incorrect timing for looped icon states. (ForwardslashN)
  • Using edge-relative screen_loc values like BOTTOM and LEFT interacted incorrectly with render_target in certain situations. This was caused by the fix to id:2829744 which dealt with a similar issue. (Anturke)
  • When popup browsers were closed, the default browser's on-show command was inappropriately triggered. (General Do-Nothing)
  • Features:
  • Dream Daemon:
  • Byondapi: Byond_ReadListAssoc() has been added for reading associative lists as key,value pairs, avoiding the need to make individual Byond_ReadListIndex() calls.

New in BYOND 515.1620 Beta (Nov 8, 2023)

  • Fixes:
  • Dream Maker:
  • Double-clicking in the output pane after a Find All when the line in the source code was very long could cause a crash. (Aregrued)
  • Features:
  • Dream Daemon:
  • Breaking change: Byondapi has been overhauled significantly prior to 515 moving to the stable channel. The quick version of this is:
  • CByondValue is now a POD (plain old data) struct; it never contains a copy of string data and therefore doesn't need init/free/copy/move routines, which have been removed. This significantly simplifies working with data values to avoid a lot of problems, and also avoids costly conversions when they aren't needed.
  • Byond_GetStr() has been removed in favor of Byond_ToString(), since string data is no longer directly in CByondValue. ByondValue_SetStr() still works, although it's mostly an alias for the new Byond_AddGetStrId().
  • CByondValueList has been removed.
  • For reading list and string data, allocations for the copied data are handled by the end user. See the byondapi.h header for details.
  • A few new functions have been added, most notably ByondValue_IsTrue() and Byond_ThreadSync().
  • C++ wrappers have been similarly updated, and there's some support for using STL strings and vectors for ease of use.
  • The byondapi.h header has new Doxygen-style comments for all its functions and structures.
  • Byondapi projects that don't manipulate strings or lists might not actually need to change their code at all for the new API, but it's assumed most will be affected in some way.

New in BYOND 515.1619 Beta (Oct 17, 2023)

  • Fixes Dream Daemon:
  • Regression: get_dist() was broken, returning infinity when it should have returned a positive number. (General Do-Nothing)

New in BYOND 515.1618 Beta (Oct 16, 2023)

  • Fixes:
  • Dream Daemon:
  • The server could crash on reboot or shutdown in some cases. (General Do-Nothing)
  • Procs defined under world didn't operate correctly due to a broken lookup. (General Do-Nothing)
  • Dream Maker:
  • The warning for no parent call on ..() appeared incorrectly in cases where the proc's definition appeared later in the source. (General Do-Nothing)

New in BYOND 515.1617 Beta (Oct 12, 2023)

  • Fixes:
  • Dream Daemon:
  • Byondapi: Byond_New() double-decref'd its arguments, resulting in runtime errors. (Absolucy)
  • Dream Maker:
  • Releasing the middle button in the map editor didn't work correctly. (Marekssj3)
  • Dream Seeker:
  • There was no obvious way to turn off the global sound environment once it was set. Now setting environment to a number below -1 will turn it off. (Kumorii)
  • Nested uses of VIS_UNDERLAY didn't work correctly. (Ter13)
  • Changing an object's plane while it was animating did not show the plane change. A few other appearance vars were affected as well. (General Do-Nothing)
  • Using the RESET_ALPHA flag but not RESET_COLOR when inheriting a color matrix caused junk data to be used instead. (Cadis E. Di Raizel)
  • Features:
  • Dream Daemon:
  • Byondapi: Byond_CallGlobalProc and Byond_CallGlobalProcByStrId have been added.
  • get_dist() can now return values over 127. If one or both atoms isn't on the map, infinity is returned instead.
  • Note that the maximum distance allowed for verbs' "set src" and for verb arguments is still shy of 127.
  • Dream Maker:
  • Calling ..() when there's no supercall available now produces a compiler warning. This has been added in advance of a planned new feature in BYOND 516 to optimize ..() calls.

New in BYOND 515.1616 Beta (Oct 1, 2023)

  • Dream Daemon:
  • Calling overlays.Cut() resulted in an incorrect "index out of bounds" runtime error. (Aregrued)
  • Dream Maker:
  • Regression: Including a .dms file from within a library generated a compiler error. (Zagros5000)
  • Dream Seeker:
  • Dream Seeker crashed when entering software rendering mode. (General Do-Nothing)

New in BYOND 515.1615 Beta (Sep 28, 2023)

  • Fixes:
  • Dream Daemon:
  • The new block() syntax was incorrectly handling values at the upper bounds of the map, cutting off at maxx+1 instead of at maxx, and likewise for maxy and maxz. (Luber)
  • Calling world.Export() to contact a server that did not respond never returned. (FKI)
  • Overlays and underlays lists didn't respect the numeric indexes supplied in Cut(), choosing to remove items from the end of the array. (Pali6)
  • The server didn't send appearance updates for objects in visual contents whose VIS_HIDE flag was turned on. (Cadis E. Di Raizel)
  • Dream Maker:
  • Using #include to add a skin/script/map file to the project within a .dm file in a subdirectory could confuse the compiler into thinking the included file wasn't present. (Ter13)
  • Copying and pasting a selection of turfs in the map editor could cause weird duplication of movables in certain cases, and interacted strangely with the right-click menu. (Inuyashaisbest)
  • Using "Replace All" on multiple code files caused only the first character of the first file to appear in the output pane (due to incorrectly mixing UTF-8 and Unicode). (Aregrued)
  • Icon editor main page context menus were broken, causing a crash. (Kumorii)
  • The map editor reset to a default scroll position after compiling. (Kumorii)
  • Debug information was incorrect for the last line of files that didn't end with a line break. (Kumorii)
  • Dream Seeker:
  • Deleting a client-side savefile didn't work if it had already been read in the same session. (SandPoot)
  • OpenType files weren't recognized as fonts on the client to be automatically loaded. (Multiverse7)
  • Positioning of render_source plane masters was incorrect in some cases. (Ter13)
  • The client wasn't properly requesting atoms it hadn't seen when they were used in a ref macro. (James)
  • Sending an img tag to output with a ref macro as the src could cause a crash. (James)
  • Creating skin controls at runtime via the JavaScript winset caused a spurious error message in Options & Messages about the control.id parameter not being found. (Luber)
  • Features:
  • Dream Maker:
  • The tile under the mouse in the map editor now shows an outline.

New in BYOND 515.1614 Beta (Aug 30, 2023)

  • Fixes:
  • Dream Daemon:
  • world.cache_lifespan is no longer included as a hard var in the world.vars list, since it can't be read at runtime. Its inclusion in the list was leading to runtime errors when trying to output world.vars or use it in json_encode(). (Inuyashaisbest)
  • Map sending was recursing too much into visual contents even when VIS_HIDE was set. (Taitz)
  • Dream Maker:
  • Changing the palette in the icon editor could cause future drawing not to appear on the canvas. (Inuyashaisbest)
  • Dream Seeker:
  • Mouse hit detection was wrong in text mode. (Higoten)
  • Maptext with embedded images didn't behave correctly after a reconnect or reboot. (NinjaPikachushka)

New in BYOND 515.1613 Beta (Aug 15, 2023)

  • Dream Daemon:
  • Recursion protection for vis_contents didn't take VIS_HIDE into account. (Taitz)
  • Dream Maker:
  • Trying to replace an atom on the map with nothing (empty "Replace With" field) did not delete the atom. (Kumorii)
  • Dream Seeker:
  • vis-y mouse coordinates were incorrect for screen objects anchored to the map edge via TOP or BOTTOM. (Ter13)
  • Another cause of icons not resetting properly on reconnect, resulting in wrong icons being displayed, was discovered. (InsidPro)
  • Prompts (input, alert, etc.) didn't reset correctly during some reboots/reconnects, causing new prompts not to appear. (Ter13)

New in BYOND 515.1612 Beta (Aug 11, 2023)

  • Dream Maker:
  • Regression: Code editor selections in reverse order displayed incorrectly. (Aregrued)

New in BYOND 515.1610 Beta (Jul 26, 2023)

  • Dream Daemon:
  • Byondapi: Byond_ReadPointer() and Byond_WritePointer() didn't function as intended. (Tigercat2000)
  • turn() didn't work correctly with generator objects. (Chaoko99)
  • call_ext() with older-style string-only calls was passing null pointers to the external library in some cases instead of blank strings, which caused problems for libraries that expected non-blank strings. (MrStonedOne)
  • Dream Maker:
  • Compilation could screw up icon display in the map editor. (Ter13)
  • Map editor palette behavior was badly broken and could result in crashes in some situations after a compile. (Ter13)
  • Using a null color in an outline filter at compile time crashed the compiler. (Niezan)
  • Copying a selection in the map editor with the area layer disabled could cause a ghost "default" area to be pasted that wasn't editable. (Randy Sandy)
  • Defloating selections in the map editor could corrupt the undo stack, leading to crashes and other odd behavior. (Randy Sandy)
  • Dream Seeker:
  • Map controls turned black and stayed that way on reboot/reconnect. (Taitz)

New in BYOND 515.1609 Beta (Jul 19, 2023)

  • Dream Daemon:
  • When the :: operator was used with a built-in var that hadn't been overridden (e.g., parent_type::appearance_flags), it didn't compile as a constant value. This has been corrected wherever feasible. (Kaiochao)
  • list.RemoveAll() didn't remove associated values. (Kaiochao)
  • RenderIcon() handled /image objects incorrectly on the server, causing a crash. (HindyMinte)
  • fcopy() crashed when copying a nonexistent file in Linux. (LT3)
  • Dream Maker:
  • Packaging source files did not work correctly, even after a compile. (Kaiochao)
  • In a switch() block, a single-line statement after an else (on the same level of indentation as the else) could compile incorrectly without producing any compiler error. (Ter13)
  • (/datum)::parent_type compiled incorrectly, resulting in runtime errors that could crash the server. (Null-FFFFFF)
  • Expressions such as var1::var2 were being compiled as if var1 were its type instead of as initial(var1.var2). (Luber)
  • Dream Seeker:
  • The position of the displacement filter was wrong when using a render source for the displacement. (F0lak)
  • Secondary map controls didn't have the right internal size info when they were re-created after previously being used, and would stay broken until something caused a HUD update. (Itsmeowdev)
  • Features (More Info):
  • DM Language:
  • Byondapi is now available. This is a set of structures and functions, that can be extended in the future, for greatly improved communication with native code in external libraries. call_ext() can call functions in the new format by prefacing their name with "byond:", which means no more having to convert everything to and from strings. Byondapi is capable of operations like reading and writing vars, calling procs, and more. An example project for your own external libraries is included in the BYOND distribution.
  • Dream Daemon:
  • Multi-threaded map sending has been enabled again after a long absence. The default number of threads can be set with the map-threads value in cfg/daemon.txt, or as a command line option for Dream Daemon.
  • Dream Seeker:
  • You can now clear a control on the client side using the .output command followed by the control name and no text.

New in BYOND 515.1608 Beta (Jun 1, 2023)

  • Dream Maker:
  • Mixing embedded strings and the deprecated text() proc could cause a compiler crash. Best practice is to use embedded strings entirely and never use text() explicitly (embedded strings compile as the text() proc anyway), but the crash has still been fixed. (MrStonedOne)

New in BYOND 515.1607 Beta (May 31, 2023)

  • Dream Maker:
  • Using #undef right after a string that used embedded expressions with a #define macro could cause the macro not to be processed properly. (GinjaNinja32)
  • Dream Seeker:
  • Changing the count for particles with gradients could cause a client crash. (Sovexe)
  • Features (More Info):
  • DM Language:
  • A new __IMPLIED_TYPE__ pseudomacro has been added. This can be used in situations similar to those the new() and locate() procs use.
  • Dream Daemon:
  • The interactive console in dd.exe and Linux DreamDaemon now has to be explicitly enabled with the -console option. This is because there was no reliable way to tell if the Linux version was started in daemon mode where the console was not relevant.
  • Dream Maker:
  • The compiler will now include relative path info in the __FILE__ macro and debugging information.

New in BYOND 515.1606 Beta (Apr 30, 2023)

  • Dream Daemon:
  • Servers could sometimes crash during the new loop intended to fix the area appearance issue (id:2842865). (Lummox JR)

New in BYOND 515.1605 Beta (Apr 28, 2023)

  • Dream Daemon:
  • Visually updating areas that were in view didn't necessarily update them on the client until their mob moved over the area. This was a problem with the server not properly sending the changes. (Higoten)
  • Features (More Info):
  • Dream Daemon:
  • The dd.exe console will now output memory stats to the console when the "memory" console command is used, instead of sending it to world.log.

New in BYOND 515.1604 Beta (Apr 28, 2023)

  • Dream Daemon:
  • Internal view() flags didn't reset correctly in some cases, resulting in incorrect view/hearers/etc. lists. (Itsmeowdev)
  • Input command expansion could hang if the list of potential arguments was too huge. (Crossedfall)
  • Dream Maker:
  • The command-line version of Dream Maker (also used by Linux) could cause strange results with very large maps (over 6.5M turfs), placing objects in the wrong position. (James)
  • Dream Seeker:
  • A race condition in the threading implementation, which was rare enough that it mostly occurred on systems where hyperthreading was disabled, caused intermittent crashes when threads were applied to hashing icon frames. That threading was introduced in a recent build. (Lummox JR)
  • Parallel animations of color matrices could jump to the end of the matrix animation in some cases. (Mr. Moriarty)
  • Statpanels and grid controls were not respecting line break characters or wrapping text naturally. (LeonAsakura)

New in BYOND 515.1603 Beta (Mar 30, 2023)

  • Fixes:
  • Dream Daemon:
  • The result of json_encode() had too high a reference count, resulting in memory leaks. (MrStonedOne)
  • Dream Maker:
  • Bogus type paths could be accessed by the parser under some circumstances, including an internal variable. (Kapu1178)
  • Using __TYPE__ in a global proc didn't correctly compile as null, but caused the compiler to pass out. (Ike709)
  • Dream Seeker:
  • RenderIcon() incorectly included extra HUD tiles in its size calculations. (HindyMinte)
  • Applying two filters successively could sometimes cause them to fail to render. (LemonInTheDark)
  • Certain malformed DM-CSS could crash the engine. (Devourer Of Souls)
  • Several icon operations were altering frames in the original icon they weren't supposed to touch. (S34N_W)
  • Features:
  • Dream Daemon:
  • Creation of a ref() string (not including string tree lookup) is an order of magnitude faster than before.

New in BYOND 515.1602 Beta (Mar 9, 2023)

  • Fixes (More Info):
  • Dream Maker:
  • The compiler wasn't throwing duplicate definition errors for duplicated var names. (Spevacus)
  • Dream Seeker:
  • Embedded wingets didn't work correctly with command prefixes in input controls. (Ter13)
  • Features (More Info):
  • DM Language:
  • fexists() can now be used inside of an #if preprocessor conditional expression.
  • Individual compiler warnings can be suppressed, or elevated to errors, through the use of new #pragma directives as well as command-line switches.
  • A new preprocessor directive, #pragma multiple, will allow a file to be included more than once.
  • Two new pseudo-macros, __TYPE__ and __PROC__, have been added. __TYPE__ compiles as the current type path, or as null within a global proc. __PROC__ compiles as a reference to the current proc, which will pair well with nameof().
  • Dream Daemon:
  • When calling new() with an instantiated object instead of a type path, the error message was confusing because it printed out the type path of the object. The error message has been improved for these cases.
  • Dream Maker:
  • The default compiler error limit has been increased from a paltry 100 to 10K.

New in BYOND 515.1601 Beta (Feb 22, 2023)

  • Fixes:
  • Dream Maker:
  • Segments in the map editor weren't respecting their minimum sizes, which was causing the world preview to turn black if it got too small. (Khunkurisu)
  • The first time Dream Maker was opened, the map editor's layout was proportioned incorrectly with most controls at a zero size. (Khunkurisu)
  • Features:
  • Dream Seeker:
  • The client could stutter when loading icons with a large number of frames. This has been improved (but not eliminated) by adding threading support.

New in BYOND 515.1600 Beta (Feb 10, 2023)

  • Dream Daemon:
  • json_decode() was allocating way too much space for strings, which was more apparent with large files. (AffectedArc07)
  • Dream Maker:
  • The map editor would crash when in classic instance editing mode, if you selected a turf type that existed twice in the same tile anywhere on the map. (Higoten)
  • Expanding the map in the editor didn't set the default turfs/areas properly so they were not selectable. (Higoten)
  • When the map editor's properties pane was hidden by default, clicking an atom could cause the map to shift because of the pane briefly appearing. (Higoten)
  • Positioning the map editor toolbar in certain places could cause most editor elements not to be redrawn properly. (Higoten)
  • In classic instance editing mode, selecting a different turf with the same instance as one that's already selected would do nothing. (Higoten)
  • Range cases in switch() didn't throw a compiler error when given non-constant or non-numeric values. (Ike709)

New in BYOND 515.1599 Beta (Feb 7, 2023)

  • Dream Daemon:
  • Internal savefile indices were thought to still exist in some cases where they didn't, causing read/write failures. (Depressedmistake)
  • The -trusted flag didn't work with the Windows command-line version of Dream Daemon (dd.exe). (AffectedArc07)
  • Dream Maker:
  • The map editor didn't visually update immediately when deleting atoms. (Vallat)
  • Nudging an atom on the map with the arrow keys didn't visually update immediately. (Penot1971)
  • The nameof() operator didn't work correctly for vars that weren't built in. (WorkersOfTheWorld)
  • Dream Seeker:
  • Several longstanding causes of poor statpanel performance have been addressed and improved. (Luber)
  • Certain maps could cause the topological sort in SIDE_MAP mode to go berserk, resulting in an out-of-memory condition. This occurred in the new map editor as well. (Khunkurisu)
  • Some text in statpanels wrapped onto two lines when it shouldn't have. (Lummox JR)
  • On the default BYOND game skin, the browser pane appeared by default and covered up most of the buttons. This was due to a problem with conditional winset interpretation. (Depressedmistake)
  • Features (More Info):
  • Dream Maker:
  • The map editor has a new layout mode where you can rearrange major parts of the interface, as well as the ability to hide the world preview and auto-hide the properties pane.

New in BYOND 515.1598 Beta (Jan 18, 2023)

  • Dream Daemon:
  • The world.Profile() proc was not behaving correctly, resulting in runtime errors. (Jaredfogle)
  • In certain types of assign-with-side-effect operations, the chained dot and null-conditional dot operators would result in the wrong values being accessed. (Amylizzlep)
  • Dream Maker:
  • The object palette in the map editor didn't update its icons after recompiling. (Ter13)
  • Atoms' physical bounds were not set correctly in the map editor, resulting in major sorting errors that made certain icons disappear. (Magicbeast20)
  • When an atom used an icon that had no default state, and did not define an icon_state of its own, the map editor fell back on displaying the first state in the file rather than showing nothing. (Higoten)
  • Dream Seeker:
  • The [[x]] and [[y]] embedded wingets for GamepadLeftAnalog and GamepadRightAnalog macros were not correctly marked as numbers, impacting how they were expanded in the command by default. (Ter13)
  • Physical bounds for objects on the client were not properly set when they were outside the normal map area, confusing the sort for SIDE_MAP and ISOMETRIC_MAP. (NSBR)
  • Links in maptext were not working. (James)
  • Closing popup browser windows with the "window" parameter in browse() could accidentally also close the default browser control in the skin. (Comicao1)
  • Maptext whose atom had a color value would swap red and blue channels in certain situations. (Rotem12)
  • Particles only displayed on every other frame. (Cadis E. Di Raizel)
  • Features:
  • Dream Daemon:
  • A command-line version of Dream Daemon is now available for Windows. This includes a limited console where some commands can be entered (e.g., to get a memory report or reboot). In the future the console's capabilities will be expanded.
  • Dream Maker:
  • The first iteration of the map editor overhaul was helpful in some ways to some users, but detrimental in others. Multiple changes have been made so far to address those shortcomings.
  • There is a new menu option for classic editing where altering an instance alters all copies of that instance.
  • The first tab in the palette control is a Variants tab for known variations on the selected type (e.g., other icon states).
  • Palette autofill has been removed.
  • Palette tabs have been changed from primitive types to customizable.
  • The pop palette is global across all map windows and persists between sessions. It is saved in a human-readable .dmm-pal file.
  • Drawing movable atoms will continue painting more of them unless you use a modifier key such as Shift or Ctrl to place it in an exact spot.
  • The map can be zoomed with Ctrl+wheel.

New in BYOND 515.1597 Beta (Dec 15, 2022)

  • Dream Daemon:
  • rgb2num() did not allow null to be used as a color, even though that may be returned by atom.color. (Pali6)
  • The server was not sending missile messages correctly in most cases. (Higoten)
  • Non-zero blend_mode values couldn't be changed. (Exxion)
  • Dream Maker:
  • Changing an atom's icon, icon_state or other appearance-impacting vars in the properties pane of the map editor did not necessarily show the change right away on the map. (Lummox JR)
  • Atoms' icon var couldn't be changed to null in the map editor. (Higoten)
  • Trying to load a map with invalid variables would result in a crash. (Higoten)
  • Mouse coordinates were not properly sanitized to stay within the map editor's bounds if the map was wider than it was tall, resulting in really strange bugs with the rectangular selection tool. (Higoten)
  • Changing type paths of movables on the map could cause the map editor to crash after making post-compile corrections. (Higoten)
  • The auto-scroll behavior when a partially visible tile was clicked was too aggressive, resulting in unintended dragging of turfs. (Higoten)
  • When turfs were made invisible via the Layers menu of the map editor, underlays still appeared. (Higoten)
  • Using the Find and Replace dialog in the map editor and clicking Find Next did not find any instances beyond the first two matches. (Higoten)
  • The "Add to Palette" option in the right-click popup for the map editor has been removed, and "Make Active Object" now selects the atom in the palette. (Zagros5000)
  • Dream Seeker:
  • Images added to areas before the areas were known to the client never properly resolved. (Higoten)
  • Plane masters interacted weirdly with RenderIcon(). (Exxion)
  • Features (More Info):
  • Dream Maker:
  • The command-line compiler now has a -D switch to inline #define, as -DMYDEFINE or -DMYDEFINE=MYVAL.

New in BYOND 515.1596 Beta (Nov 23, 2022)

  • Dream Maker:
  • The grid space allotted for text in the properties pane was incorrect for some values. (Ter13)
  • The "delete topmost turf" option in the map editor caused a hang. (Higoten)
  • When a turf replaced another turf in the map editor, the undo action was sometimes incorrect, restoring the default world.turf instead. (Higoten)
  • Find and replace didn't work corectly in some cases when using the single Replace instead of Replace All option. (Higoten)
  • Rectangular selections that were deleted set the area and turf info in the old region incorrectly, which resulted in weird behavior when adding turfs over that region. (Higoten)
  • Pasting a rectangular selection in the map editor couldn't be undone. (Higoten)
  • Compiling while a turf or area was open for editing in the map editor's properties pane could cause a crash when selecting a tile after compilation. (Higoten)
  • Doing a Find All in the map editor on any scope broader than the current file would hang Dream Maker. (Higoten)
  • The compiler sometimes compiled with a minimum world version that was incorrect if it also did not require that client version. (Anturke)
  • Attempting to reconcile path changes to a map after a compilation with errors brought up the "Pending Map Errors" dialog could cause a crash. (Higoten)
  • Changing a movable's pixel or step offsets in the properties pane of the map editor offset it by the new value instead of using that value directly. (Depressedmistake)
  • The eraser tool didn't work on movables in the map editor. (Higoten)
  • Find and replace didn't work correctly for movables in the map editor. (Higoten)
  • Adding movables to the map could give them incorrect pixel/step offsets, and outright crash if clicking on a part of the map where only the background shows through. (Higoten)
  • Dream Seeker:
  • Objects with big icons would sometimes disappear if the turf they were on was only just barely out of view to the north or east. (Zagros5000)
  • The black tiles for SEE_PIXELS and SEE_BLACKNESS were on the wrong plane and at the wrong position. (Exxion)

New in BYOND 515.1595 Beta (Nov 23, 2022)

  • Fixes:
  • Dream Daemon:
  • The built-in pathfinding had some strange behavior directly next to the target, which wasn't apparent until get_steps_to() was added. (Kozuma3)
  • Dream Maker:
  • New optimizations for for(atom in range()) and similar procs were compiling incorrectly. (Anturke)
  • Deleting a rectangular selection and then compiling caused a crash. (Higoten)
  • Using find and replace in the map editor could sometimes cause a hang. (Higoten)
  • Dream Seeker:
  • Text-mode map display was messed up. (Kozuma3)
  • Trying to use RenderIcon() or its related features with mapless interfaces caused a crash. (Kozuma3)

New in BYOND 515.1594 Beta (Nov 23, 2022)

  • Fixes:
  • Dream Daemon:
  • Turf changes on the eastern or northern edges of a player's turf view range did not send any appearance changes to the client. (Taitz)
  • Calling gradient(list, index) with a non-constant list as the first argument resulted in a "bad gradient" runtime error. (Lummox JR)
  • Gradients in hue-based color spaces were calculated incorrectly. (Redmooogle)
  • The server did not properly recognize when an object ID had been reused in RenderIcon(), causing old information to be used in some cases. (Kozuma3)
  • Dream Maker:
  • Find and replace could hang or crash the map editor. (RootAbyss)
  • Features:
  • DM Language:
  • A new nameof() proc, operating only at compile-time, can be used to convert a proc reference into the name of the proc, solving a dilemma faced by multiple Space Station 13 codebases.

New in BYOND 515.1593 Beta (Nov 1, 2022)

  • Dream Daemon:
  • Another hang issue similar to the one fixed in the last build occurred when a movable overlapped the east edge of the map, instead of the north edge. (RootAbyss)
  • Dream Maker:
  • An expression *varname could compile incorrectly in certain cases, causing an implied src prefix before the var to be lost and resulting in runtime errors. (Niezan)
  • Deleting a rectangular selection did not create a correct undo action. Additionally, dragging a turf that was not previously selected did not create an undo action. (RootAbyss)
  • Compiling while an object was selected in the map editor's palette could cause a crash. (RootAbyss)
  • Actions that caused the DirectX device to be lost, such as hitting Ctrl+Alt+Del, would prevent the world preview in the map editor from redrawing correctly. (RootAbyss)
  • Dream Seeker:
  • Atoms drawn to a render target drew in an incorrect position within the slate if they had a screen_loc with one of the screen-edge keywords (e.g. LEFT, BOTTOM). (Ter13)
  • RenderIcon() kept the results of previous renders visible instead of clearing them, causing transparent pixels in the second image to show the previous image. (Anturke)

New in BYOND 515.1592 Beta (Oct 27, 2022)

  • Dream Daemon:
  • Movable atoms with icons bigger than the world tile size could hang the server when their top edge overhung the northern edge of the map. (Lummox JR)
  • Trying to read from a prototype's vars list caused a crash instead of a runtime error or null. (Luber)
  • Bounding box calculations for the turf map were incorrect near the north and east edges of the map. (RootAbyss)
  • Dream Maker:
  • Undo levels in the map editor were being cleared by compiling. (Lummox JR)
  • Resizing the map could crash the editor. (RootAbyss)
  • Sometimes icons in the icon editor did not show their changes visually until leaving the pixel editor screen or doing some operations such as deleting a pixel with the select tool. (RootAbyss)
  • Deleting atoms from the map and then re-compiling did not remove them. (RootAbyss)
  • Dream Seeker:
  • Stopping a sound on a channel that wasn't playing anything crashed the client. (S34N_W)

New in BYOND 515.1591 Beta (Oct 27, 2022)

  • Dream Maker:
  • The Undo command in the map editor didn't repaint correctly after fully replacing turfs. (Lummox JR)
  • Trying to generate instances from an icon states or directions in the map editor from an object without an icon could cause a crash. (Rickoshay)
  • Implicit return types in procs such as operator+= could be incorrect in some situations, intermittently spitting out errors about undefined vars. (Niezan)
  • Map files were being read with underlay turfs displaying in the reverse order, and saving also reversed the order of underlay turfs. (Hydrugen)
  • After a failed compilation, checking or unchecking files in the file tree didn't update the .dme file on subsequent compilations. (Niezan)
  • Mouse wheel events weren't handled properly in the map editor. (Francinum)
  • Dream Seeker:
  • Flicked icons could appear in the wrong place if they weren't the same size as the default. (RootAbyss)
  • Replacing reference strings with images in browser and output controls was done too aggressively, mangling some attributes like links. (Exxion)
  • Browser handling of CSS files was incorrect, causing CSS not to load in some situations. (Anturke)
  • mouse_opacity was incorrectly set for objects in visual contents outside of a KEEP_TOGETHER group. (Kozuma3)
  • A change to the pre-render step messed up some map gliding calculations. (Hydrugen)

New in BYOND 514.1589 (Oct 7, 2022)

  • Dream Daemon:
  • Calling an external library would not decrease the refcount of the arguments that were sent, except when the call()() used an arglist. (Luber)
  • The server could hang if it received a profile request from Dream Seeker (only using the profiler window, not the browser-based version), if the server had more than 64K procs defined. (GoldenAlpharex)
  • Dream Maker:
  • /image in lists defined at compile time for vars could cause a crash in the map editor. (Bravo1)
  • Dream Seeker:
  • Turfs in images' visual contents on a different Z level showed a turf from the player's current Z level at the same XY coordinates. (LemonInTheDark)

New in BYOND 514.1588 (Sep 9, 2022)

  • The use of multiple ?. or ?: operators on the left-hand side of an assignment, or with any other side-effect operator like ++, did not compile correctly and caused the null check not to work as it should. This was caused by a fix to an earlier bug but was still being masked by old code that should have been removed. The problem appeared in build 514.1586 when the old cruft masking the issue was taken out. (LemonInTheDark)

New in BYOND 514.1587 (Sep 8, 2022)

  • Fixes (More Info)
  • Dream Maker:
  • Gradient() could compile incorrectly when given a bad set of arguments, resulting in proc stack underflow at runtime. (Redmooogle)
  • Dividing a matrix by a numerical constant at compile time compiled the result incorrectly as the number 0. (AffectedArc07)
  • Dream Seeker:
  • Regression: Plane masters with blend modes other than the default did not display correctly. (Anturke)

New in BYOND 514.1586 (Sep 8, 2022)

  • Dream Daemon:
  • Saving a filter that used aliases for some of its var names caused a crash. (Luber)
  • Some memory leaks were discovered with the handling of filters, especially in mutable appearances and animation. (Luber)
  • Dream Maker:
  • The use of . in expressions in a return statement could sometimes cause the entire return to be optimized out. (Lumipharon)
  • Dream Seeker:
  • When drawing a plane master to a render source, if the blend_mode was not BLEND_OVERLAY and there was some visual aspect of the plane requiring a temporary surface (alpha, filter, etc.), the blend mode was inappropriately applied to the render_target slate. (LemonInTheDark)Features (More Info)
  • Dream Maker:
  • Some compiler speedups intended for BYOND 515 got backported to 514 in the process of solving some bugs, so large projects can reap some of those benefits early. Even more speedups appear in 515.

New in BYOND 514.1584 (May 26, 2022)

  • Dream Daemon:
  • In some situations, a client might try to use verbs before it had received them and couldn't parse them correctly. In the particular case tested, the client was aware of the existence of a verb but did not have its name and parsing data. The server now keeps track of which verbs a client knows and sends their info to the client without the client having to request them. (Ter13)
  • In some complex cases where a turf was included in visual contents, adding another object to the same visual contents list could result in an infinite recursion and crash. (JohnWildkins)
  • Procs used in regex replacements didn't have usr set. (James)
  • Dream Maker:
  • The recently used fonts dropdown in the skin editor's font selection button had stopped working as expected after the skin editor was updated in BYOND 513. (Dayoak)
  • Expressions such as istype(a?.b) did not correctly infer the var type. (Asche)
  • Dream Seeker:
  • Embedded winsets didn't work in winsets initiated by JavaScript. (Ter13)
  • Setting the command parameter of an input control to ".output" or ".output control" did not work as expected. (Ter13)
  • The decision to turn off a movement state when done gliding/stepping was based on the old tick-based method of calculating glides, and could result in a movement state staying on long after the movement ended if the client ticks bogged down. (Kaiochao)
  • In situations where appearances were recycled frequently, their reuse could screw up animations and other situations that used them. (Azrun)
  • Multiple issues with mouse macros were fixed, including: mouse move being called within the same (upscaled) pixel, wrong screen coordinates, wrong coordinates in drag operations. (Kaiochao)

New in BYOND 514.1583 (Mar 25, 2022)

  • Dream Daemon:
  • Regression: Case-insensitive regular expression matches were broken. (Jaredfogle)
  • Dream Seeker:
  • input() lists did not show characters such as Cyrillic properly. (Valldimus)

New in BYOND 514.1582 (Mar 17, 2022)

  • Fixes:
  • Dream Daemon:
  • Replacetext() sometimes doubled up the first character in the replacement text when it was supposed to capitalize that character instead. (Luduk)
  • Unicode handling has been improved across the board. In particular, the Unicode replacement character � is used now in situations where text2ascii(), copytext(), or splicetext() encounter bogus encoding. (Alexkar598)
  • Dream Seeker:
  • Special handling for some upper-range Unicode characters in the output control was much slower than it should have been. (Ondrej008)
  • Parallel animations didn't handle dir changes properly in many cases. This also would have applied to other copy-only changes like icon_state. (Azrun)

New in BYOND 514.1581 (Feb 24, 2022)

  • Fixes:
  • Dream Daemon:
  • Text handling was working incorrectly when trying to determine if a word was a proper or improper noun, when the word used non-English letters. (Lummox JR)
  • Dream Daemon was sometimes crashing on reboot, or on a second startup after not closing the application. (Vallat)

New in BYOND 514.1580 (Feb 23, 2022)

  • Fixes:
  • Dream Daemon:
  • The typesof() change had an issue in certain cases that wasn't immediately obvious in testing. (Aregrued)

New in BYOND 514.1579 (Feb 23, 2022)

  • Dream Maker:
  • Setting luminosity over a value of 7 at compile-time could cause an overflow into other appearance bitflags. (Willox)
  • Dream Seeker:
  • Using an embedded winget in the form [[parent.control.parameter]] didn't work correctly and would especially fail in cloned windows. (Ter13)
  • Embedded wingets in macros were causing crashes or hangs. (Ter13)
  • Dream Daemon:
  • istype() lookups and generation of typesof() lists have been optimized to use O(1) lookup time instead of O(depth). The only exception is that typesof() for mob types work the old way.

New in BYOND 514.1578 (Jan 24, 2022)

  • Fixes:
  • Dream Daemon:
  • Code relying on flist() was acting inappropriately in Windows. (LeahTheTech)
  • Dream Maker:
  • Regression in 514.1576: the spantext() family of procs all compiled incorrectly. (Willox)
  • Regression in 514.1576: Compilation sometimes failed in Linux due to an incorrect method for checking filename matches that sometimes got caught on directories with names too similar to other files. (Lavenblade)
  • Dream Seeker:
  • Using a screen_loc on a plane master with one of the edge keywords (TOP/BOTTOM/LEFT?RIGHT) caused incorrect mouse hits for objects on the plane. (Tacurumin)

New in BYOND 514.1577 (Jan 21, 2022)

  • Dream Maker:
  • Regression: Static vars defined in procs didn't compile correctly if their default value was a string. (KylerAce)

New in BYOND 514.1576 (Jan 20, 2022)

  • Dream Maker:
  • Projects with a lot of resource files could compile very slowly, especially with automatic FILE_DIR entries and a very large number of resources in the same directory. (Lummox JR)
  • The compiler sometimes crashed in rare situations involving operations done on string literals. (Lucine)
  • Dream Seeker:
  • The vis-x and vis-y params in mouse handling were wrong for some transformed atoms. (Fikou)

New in BYOND 514.1575 (Dec 23, 2021)

  • Dream Seeker:
  • In some games, the timer changes in 514.1573 and frame skips caused a lot more jitter than before. That wasn't the case for all games, but the timer has now been adjusted to use something closer to 1572's behavior with some of the new stuff as a fallback for high-stress scenarios. (Vallat)

New in BYOND 514.1574 (Dec 22, 2021)

  • Fixes:
  • Dream Seeker:
  • Regression: One of the memory leak fixes wasn't quite right, but the problem only showed up in certain situations, resulting in a crash. (Kumorii)

New in BYOND 514.1573 (Dec 22, 2021)

  • Fixes:
  • Dream Daemon:
  • Outputting a color generator as a string produced incorrect results. (Sovexe)
  • Dream Maker:
  • In some cases, loading an environment and interacting with it in any way (e.g. selecting text) then compiling, then doing the same with a different environment in the same session, could cause a crash. (Kumorii)
  • Dream Seeker:
  • The high-precision timer behavior has been improved a little more to deal with situations where the client undergoes too much stress. (Lummox JR)
  • Memory leaks were discovered with visual bounds calculations and filter animations. (Lummox JR)

New in BYOND 514.1572 (Dec 16, 2021)

  • Dream Daemon:
  • Using a generator to get a color value on the server produced bogus text. (Sovexe)
  • When a matrix was used for particles.transform, it was sent to the client transposed, producing incorrect results. (Pali6)
  • When converting a generator() to a string, sometimes the resulting text was wrong. (Pali6)
  • Dream Maker:
  • Error and warning messages sometimes spit out garbage data where type paths were supposed to be. (KubeRoot)
  • Dream Seeker:
  • The renderer for icon-based particles was not handling Z ordering correctly. (Pali6)
  • Particles were drawn to the wrong position when KEEP_TOGETHER was on and an object had any overlays, causing them to get cut off. (Sovexe)
  • Decreasing particles.count had no effect. (Sovexe)

New in BYOND 514.1571 (Nov 23, 2021)

  • Fixes:
  • Dream Daemon:
  • A fix to turf and area appearance changes not always showing up on the client caused a nasty crash when changing an area's appearance while hosting. (Vallat)

New in BYOND 514.1570 (Nov 23, 2021)

  • Dream Daemon:
  • When a turf that was out of bounds but otherwise visible, e.g. with a big icon, changed appearances in such a way as to not impact is visual bounds, that update was sometimes not sent to the client. (Lummox JR)
  • Tile movers were not properly blocked by objects not aligned to the tile grid when moving west or south. (Exxion)
  • Client animation messages were sent in advance of map updates in some cases, which caused "jumping" when animating client pixel offsets. In addition, the server calculated "spillover" bounds for the viewport incorrectly in cases where client pixel offsets were animated, resulting in some tiles disappearing prematurely. (Marekssj3)
  • Dream Maker:
  • glide_size could not be overridden as 0 at compile-time. (NataKilar)
  • Dream Seeker:
  • When movable atoms were continually moving, entries built up in a client-side list of movers, causing major progressive slowdowns even with just a few objects. Normally this was not visible because most objects stop moving at some point. This issue is very old and probably had a small but occasionally noticeable impact on many games. (Zamujasa)
  • The previous build's maptext fix caused smaller line-height values than default to stop working correctly in maptext. (Repo82)

New in BYOND 514.1569 (Oct 19, 2021)

  • Dream Daemon:
  • When moving a movable object from a turf into another movable, sometimes the old bounds weren't detected correctly, causing Uncrossed() to often not be called or possibly be called for multiple unrelated turfs. (Mport2004)
  • The eye sync information used for recent gliding fixes was not set correctly in cases when client.edge_limit was used. (Marekssj3)
  • Setting a particle set's icon value to a list produced no icons at all in most cases. (Gomble)
  • animate() wasn't working correctly for pixel offsets with /client. This issue was on the server side. (Comicao1)
  • Dream Seeker:
  • Maptext miscalculated line height in some cases, causing the last line to be cut off in certain situations. (Rotem12)
  • The red and blue channels of atom.color were sometimes swapped when the color was applied to maptext, in specific situations. (James)
  • Transformed plane masters did not set their visual bounds correctly, which caused items to get cut off. (Mport2004)
  • The motion blur filter sometimes caused objects to disappear. (Albro1)
  • DM Language:
  • Implied types for new() and locate() can be used alongside all assignment operators now, not just the = operator. Therefore, A ||= new is a perfectly valid statement if A has a defined type.

New in BYOND 514.1568 (Sep 24, 2021)

  • Dream Daemon:
  • Regression: A reorg to some of the internal structures accidentally removed initialization of atom/movable/particles, causing junk IDs to be used and bogus calls to DecRefCount(). This in turn caused some datums to deallocate prematurely, which was more likely to occur in bigger projects. (Lummox JR)

New in BYOND 514.1567 (Sep 23, 2021)

  • Dream Daemon:
  • Changing an appearance's internal bits (e.g. changing density, gender, etc.) could accidentally remove newer high-order flags like TILE_MOVER. (Exxion)
  • Adding an object to all turfs' visual contents and then later setting its vis_locs to null caused a massive slowdown, which was bigger on larger maps. While there is still a bit of unavoidable grind involved in removing the same object from the visual contents of every turf on the map, the speed of the process has been greatly improved. (James)
  • Dream Maker:
  • Certain complex expressions with the null conditional operators didn't compile correctly. (DamianQ)
  • Using a raw string with the long-form delimiter @(...) could cause a hang in the compiler when it occurred within an #if preprocessor block that got skipped. (Lummox JR)
  • Dream Seeker:
  • Generators with the "box" type produced the same random number for Y as for X, instead of giving them independent values. (Gomble)
  • The JSON output for debugging mapicons was malformed for some projects. (Shifty_rail)
  • When using screen_loc with the edge keywords TOP, BOTTOM, LEFT, or RIGHT, or any combination thereof, the coordinates could be wrong if other HUD elements stretched the map (e.g., an item at "-1,-2") or when using a secondary map control. (Lummox JR)
  • Animations on an image object or client, which send messages differently, were misbehaving in newer versions. (Jaredfogle)
  • The "sin timer" designed to deal with situations where mouse/keyboard input was getting buried in the queue by an aggressive high-res timer, was itself too aggressive. This resulted in unnecessary stuttering when it would have been easier to give the queue a chance to catch up on its own. A new balance has been struck to avoid this problem. (RootAbyss)

New in BYOND 514.1566 (Aug 30, 2021)

  • Dream Daemon:
  • Using animate() on world start with time=0 could cause the server to hang. (Kumorii)
  • Dream Seeker:
  • Recently expired animations were not fully purged, causing odd behavior in some cases. (RootAbyss)
  • Starting in 514.1562, clients were misreading animation messages from older 514 servers. This could result in crashes and broken animations. (Sovexe)

New in BYOND 514.1565 (Aug 28, 2021)

  • Dream Daemon:
  • Animate() was causing heap corruption in rare intermittent cases, resulting in a server crash. (Zewaka)

New in BYOND 514.1564 (Aug 27, 2021)

  • Dream Daemon:
  • Appearance references were getting mangled by the new server-side animation code, causing visual glitches and sometimes crashes. (Kumorii)
  • Dream Seeker:
  • Added filters didn't appear until previous animations were finished, if ever. Additionally filter animation in general was incorrect with the new animation system. (Repo82)

New in BYOND 514.1563 (Aug 26, 2021)

  • Dream Daemon:
  • Regression: Multiple new issues with animate() with appeared on the server end. (RootAbyss)
  • Dream Seeker:
  • Some animations were broken on the client. (RootAbyss)

New in BYOND 514.1562 (Aug 26, 2021)

  • Dream Daemon:
  • An earlier fix to TILE_MOVEMENT_MODE and TILE_MOVER that prevented incorrect sliding behavior also accidentally caused all moves over 1 tile to be jumps for tile movers, even if that move was within step_size. (Exxion)
  • Dream Daemon & Dream Seeker:
  • Creating multiple animations in rapid succession could cause problems with the transitioning between them. This was an issue on both the client and server ends. (NSBR)
  • Dream Maker:
  • The transparency option for label elements had been removed from the skin editor, when it should have been removed from button elements instead. (NSBR)
  • The compiler did not produce an error when trying to use the particles var for image objects. (TiviPlus)
  • Button controls in skins have an undocumented stretch parameter that doesn't actually do anything. It has been removed from the skin editor as a result. (NSBR)
  • The "Size to image" option for windows and panes in the skin editor caused the window to expand to fill the screen (usually) when no image was selected. (NSBR)
  • Dream Seeker:
  • The previous fix for high-resolution timers was at best only partially effective, and didn't solve the problem properly, so there could still be lag for mouse and UI input. (Somepan)
  • atom.step_size was still limited to integers at compile-time, even though at runtime it can take decimal values now. (Ter13)

New in BYOND 514.1560 Beta (Jul 23, 2021)

  • Fixes:
  • The url_encode() improvements actually messed up some URLs in a way that didn't get noticed in testing. This appears to have impacted not just the server, but also the pager and its ability to connect to the hub. (Zewaka)

New in BYOND 514.1559 Beta (Jul 22, 2021)

  • Fixes:
  • Dream Seeker:
  • Clicks were being lost when right-click context menus were open. (Vallat)
  • A previous fix to the alpha mask filter caused a regression for cases where the mask was an icon rather than a render source, resulting in a crash. (RootAbyss)

New in BYOND 514.1558 Beta (Jul 21, 2021)

  • Fixes:
  • Dream Daemon:
  • When TILE_MOVMENT_MODE was used, movable movement was always treated as a slide, instead of treating it as a jump when the distance exceeded step_size. (Dayoak)
  • Changes to particle datums didn't cause the objects that used them to send updates to the client, requiring that the objects had some other change such as appearance or location first. (Vallat)
  • When client.eye is inside a movable, the topmost movable should be treated as the eye instead for gliding purposes. This is a server-side fix. (Exxion)
  • Dream Seeker:
  • Changing a sound's frequency caused future frequencies on the same channel to be incorrect if the sound remained playing. (Bravo1)
  • If an object was transformed using anything but translation matrices, and then used as a render source for an alpha mask filter, the filter positioned the mask incorrectly. (Y0SH1_M4S73R)
  • More gliding issues were discovered. As before, there is a server component as well so the server also needs to be updated. (RootAbyss)
  • Alpha masking didn't correctly cut off the mask on some sides, if the mask was based on an icon rather than a render source. (RootAbyss)
  • The alpha mask filter with the MASK_SWAP flag caused a crash when given a bogus render source. (Ninjanomnom)
  • High-precision timers could cause major issues for input handling, which were even worse on clients connected to remote servers, if the client lagged behind due to an overloaded map. (F0lak)
  • Features:
  • All:
  • BYOND is now compiled as large address aware, so it can in theory use closer to 4 GB than being limited to just under 2 GB as before.
  • Dream Daemon:
  • Various text routines like url_encode() have been improved considerably and should perform much better than before.

New in BYOND 514.1557 Beta (Jul 21, 2021)

  • Dream Daemon:
  • json_decode() would create multiple list entries when given a technically malformed JSON object with duplicate keys. (Alexkar598)
  • Regression in 514.1555: Clearing a movable's vis_contents didn't update the object visually. (Sovexe)
  • Rebooting Dream Daemon didn't clear out SendMaps profile data. This diminished the usefulness of data over time in long-lived processes. (Zewaka)
  • The savefile parser could fail in some cases where the data was a file not in the world's cache, due to improper parsing of base64 encoding. (Pali6)
  • Dream Maker:
  • The DM parser choked after reaching too many unique symbols, causing wraparound of outdated 2-byte values and subsequently a crash. (Funce)
  • Dream Seeker:
  • The new browse_rsc() enhancements had a bug where after a small number of waiting files in a row, new files weren't added to the waiting list and therefore weren't requested by the client. (Exxion)
  • Gliding speed was incorrect in games using tile movement when the player's mob had a different object as the eye and no glide_size was assigned. There is also a server component to this bug in which servers did not send the correct eye information (for the new data sent from 514.1553 onward), so the server will need to be updated as well. (Deity Link)
  • Alpha mask filters behaved incorrectly in several cases, especially when using MASK_SWAP. (RootAbyss)
  • The new client eye syncing behaved incorrectly in certain cases. This is actually two bugs, one of which is on the client and the other on the server. For a complete fix the server must also be updated. (RootAbyss)

New in BYOND 514.1556 Beta (Jun 4, 2021)

  • Dream Daemon:
  • Regression in 514.1553: In some worlds that used a different client.eye besides the player mob, the mob info message was sent incorrectly and therefore the client got garbage data, which could cause crashes on the client. (Devourer Of Souls)
  • Changing only the dir of a movable atom didn't update it visually on the client. (Johan411)
  • Dream Seeker:
  • Accessing .x and .y of a size or pos value (etc.) in embedded wingets didn't properly change the value to a number format, which caused the various formatting types like "as arg" and "as escaped" to produce incorrect results. (Ter13)
  • Atom visual bounds were transformed incorrectly (mostly on the client) when transform was applied, resulting in mouse hit problems. (Sovexe)

New in BYOND 514.1555 Beta (May 28, 2021)

  • Fixes (More Info):
  • Dream Daemon:
  • A typo existed in the results of world.Profile() for SendMaps in JSON format. (Zewaka)
  • Dream Maker:
  • Changing src in a proc by assigning a new value could cause some subsequent var accesses from src to happen incorrectly, by the compiler assuming src hadn't changed. (RootAbyss)
  • Dream Seeker:
  • input() as password didn't work correctly when given a blank password, causing future inputs to fail. (Dajinomight)
  • Mouse hit detection was incorrect for overlays of objects within plane masters. (BurgerBB)
  • Features (More Info):
  • Dream Daemon:
  • Various operations related to the internal SendMaps() function have been optimized based on profiling data.
  • Dream Seeker:
  • Client profiling is more accurate, and the improved data has been used to make further optimizations to the pre-render process.

New in BYOND 514.1554 Beta (Apr 23, 2021)

  • Dream Maker:
  • Regression: the ?. operator stopped working correctly with lists, throwing a bogus compiler error. (Zewaka)
  • Features:
  • DM Language:
  • The new SendMaps profiling can be accessed from world.Profile() as: world.Profile(command, type="sendmaps", format=...)

New in BYOND 514.1553 Beta (Apr 20, 2021)

  • Fixes:
  • Dream Maker:
  • Using an expression like ++a?.b on a line by itself threw a "statement has no effect" warning incorrectly. (Spevacus)
  • The ?: operator could sometimes get confused and call a global proc with the same name as a datum proc, and so could ?. when given a var with no type. (Willox)
  • Dream Seeker:
  • Unicode characters in URLs were mangled in link(). (NSBR)
  • Embedded wingets such as [[*]] parsed incorrectly in certain cases when surrounded by quotation marks and when no format was explicitly specified. (Ter13)
  • Images in maptext could cause crashes in some situations. (F0lak)
  • Gliding has been improved on the client to keep the mob and eye in better sync. This requires an updated server as well, which will send additional information used for the sync. (FKI)
  • Features:
  • Dream Daemon:
  • The time spent in SendMaps() can now be profiled roughly, using an old-style topic URL such as ?debug=profile&type=sendmaps with an optional output or window parameter. A better interface will be added in the future.

New in BYOND 514.1552 Beta (Mar 28, 2021)

  • Dream Maker:
  • The null-conditional ?. ?: and ?[] operators compiled incorrectly as of build 514.1550 in a way that caused major problems at runtime with some cases, and some really esoteric cases were incorrect or inefficient before that. The operators now have the correct precedence and association to behave as expected. (Zewaka)

New in BYOND 514.1551 Beta (Mar 20, 2021)

  • Dream Daemon:
  • Limited-time animations of a client or image could crash the server. (F0lak)
  • Non-ASCII strings in the compilation could cause a world not to load. (TXTi)
  • Dream Seeker:
  • Blur filters didn't expand their drawing box enough and could get cut off. (F0lak)

New in BYOND 514.1542 (Mar 20, 2021)

  • Dream Daemon:
  • Multiple bugs existed when specifying start and end positions in findtext() and replacetext(), especially with regular expressions. (GinjaNinja32)
  • Dream Maker:
  • Icons were still editable in read-only mode. (Nadrew)

New in BYOND 514.1550 Beta (Mar 20, 2021)

  • BYOND Pager:
  • Local database creation by the pager was being handled incorrectly. (Bobbahbrown)
  • Dream Daemon:
  • rgb2num() failed with alternate color spaces in cases where the hue was ambiguous. (Taitz)
  • The null-conditional operator could cause the proc stack to grow if it caught a null and was used in a right-hand-side expression, e.g. calling a?.b() without assigning the result to a var. (Pali6)
  • Dream Maker:
  • sha1() with a constant string compiled incorrectly. (GinjaNinja32)
  • The ?[] operator didn't chain correctly with the [] operator in all cases, resulting in code failing to compile. (TiviPlus)
  • Compiling rgb2num() with a non-string constant for the color could cause a crash. (Spookerton)
  • The chaining dot/colon operators and the [] and ?[] operators didn't play together nicely, owing to the chaining operators having a lower precedence. They actually should have the same precedence, and now they do. (TiviPlus)
  • Dream Seeker:
  • Starting a parallel animation stage for images or clients with time=0 could cause the new stage to end prematurely and also break already-running animations. (This fix impacts the server as well.) (The peoples republic of china)
  • The displacement filter didn't work when the displacement mask was an icon instead of a render source. (Repo82)

New in BYOND 514.1549 Beta (Mar 20, 2021)

  • Dream Maker:
  • rgb2num() could crash the compiler in some cases. (Taitz)
  • Dream Seeker:
  • Filters with color matrices did not animate them correctly. (Qustinnus)
  • Alpha premultiplication was done incorrectly for some situations like drawing maptext or anything with KEEP_TOGETHER, which especially caused problems for fade effects. (Vallat)
  • Features:
  • DM Language:
  • client.GetAPI() and client.SetAPI() have been added to improve Steam integration support, and CheckPassport() can now handle Steam DLC (in theory). This applies only to games built with the proper Steam credentials via BYONDexe.
  • Windows and panes now have an on-status event so you can implement a custom statusbar or simply respond to status text changes

New in BYOND 514.1548 Beta (Mar 20, 2021)

  • FIXES:
  • Dream Daemon:
  • Movables with fractional step offsets sometimes failed to handle collisions properly. (Linkenclick)
  • Calling rgb() with non-constant values for non-RGB color spaces caused a proc stack underflow and often a crash. (Taitz)
  • The server calculated visual bounds of some objects incorrectly in some cases. Mainly this was when a turf was in visual contents. (Lummox JR)
  • Dream Maker:
  • The ?. operator when used on the left-hand-side and before a list index, e.g. a?.b[c] = d, did not compile correctly. (Vallat)
  • Dream Seeker:
  • The client was reading animation messages incorrectly, which resulted in errors that appeared and disappeared in waves as more animations were created. (Vallat)
  • The threads used for particle effects had a small memory leak. (Lummox JR)
  • When particles spawn count and lifespan was so high that there was no more room to spawn new particles, the count of pending particles to spawn would keep rising. Now the pending count resets to under 1 if there is no more room for new particles. (F0lak)
  • An object with no icon, even if it had maptext or KEEP_TOGETHER visual contents, was not recognized as having extended visual bounds. (Lummox JR)
  • Uppercase U was sometimes mistaken for a whitespace character in maptext wrapping. (Azrun)
  • FEATURES:
  • Dream Seeker:
  • Rendering performance has been slightly improved.
  • The performance of multiple particle calculation threads in the pre-render stage has been dramatically improved. Additionally, there is also client profiling information available for particle performance in the pre-renderer.

New in BYOND 514.1547 Beta (Mar 20, 2021)

  • Fixes:
  • Dream Seeker:
  • Client ticks were less precise when Dream Seeker was connected to a remote server, unless it was first started as a server itself and then later link()ed to the server. (The peoples republic of china)
  • Mouse operations on grid controls mistakenly copied the grid cell into the "control" argument. This also impacted new mouse macros. (Klirix)
  • Using plane masters caused non-HUD objects not to clip when outside the normal map area. (The peoples republic of china)
  • Particles with icons appeared behind of the sprite belonging to their parent object, instead of in front. (Lummox JR)
  • When no other icons on the screen were animating, deleting a particle set or detaching it from an object was not enough to make the map draw a new frame, resulting in apparently frozen particles until the next update (such as an object moving). (Lummox JR)
  • Creating a new skin control at runtime but giving the winset() call a fully decorated name (e.g. winset(usr,"window.thing","...;parent=window")) caused the control to be created incorrectly by including the window name twice. (Crazah)
  • Because new particles reused empty slots in the array left behind from dead particles, they could draw out of sequence. (The peoples republic of china)
  • The "unlit sprite" used for SEE_BLACKNESS and SEE_PIXELS didn't load correctly. (Ter13)
  • Objects that used a render_source from a plane master were positioned incorrectly relative to their parent object. (The peoples republic of china)
  • Objects in visual contents should have inherited the micro-layer of their parent if they used FLOAT_LAYER. (They did correctly inherit if using the VIS_INHERIT_ID or VIS_INHERIT_LAYER flags.) (Ter13)
  • Icon particles were drawn at incorrect positions, causing artifacting at their edges. (The peoples republic of china)
  • Features:
  • DM Language:
  • Particle values were inconsistently based on either client ticks or BYOND standard ticks. All of the timing has been adjusted to use BYOND standard ticks. This will impact any particle effects you already have: spawn count should be divided by tick_lag for instance, and friction and drift in particular may need to be updated (which in turn would affect gravity).
  • A grow var has been added to particles to change their scale over time.
  • The value of particles.spawning can now be fractional, allowing finer control over spawn rate.

New in BYOND 514.1546 Beta (Mar 20, 2021)

  • Fixes:
  • Dream Daemon & Dreem Seeker:
  • Eye gliding was broken in newer movement modes. (F0lak)
  • A new 514 feature intended to make animation transitions easier to detect was implemented incompletely, resulting in some failed transitions. (Bravo1)
  • Dream Seeker:
  • Icons could become corrupted after garbage collection due to problems with texture atlas handling. (Anturke)
  • Alpha masks using an icon instead of a render source failed in most cases. (The peoples republic of china)
  • Browser controls with on-show commands didn't work correctly, causing a problem with non-popup browse() commands applied to the default skin. (LordAndrew)
  • The "measurement" phase of the bloom filter was handled incorrectly, resulting in very strangely broken results for some cases. (Crazah)
  • A display flag indicating an icon had a particle set attached stayed active in any of the atom's overlays or image objects, resulting in more pixels being drawn. (Vallat)
  • Features:
  • Dream Daemon:
  • Limitations in the timers used to measure tick usage meant that world.cpu, world.tick_usage, and world.map_cpu weren't very precise. These have been updated to be much more precise.

New in BYOND 514.1545 Beta (Mar 20, 2021)

  • Fixes (More Info):
  • Dream Maker:
  • The TILE_MOVER flag did not save when set at compile-time.
  • Note: This fix changes the .dmb format for projects built with BYOND 514. (Exxion)
  • When using the spin arrows in the color selection dialog, the new color preview below did not update. (F0lak)
  • Dream Seeker:
  • Dream Seeker could crash in some cases when trying to fill a texture atlas. (Vallat)
  • The alpha mask filter could cause Dream Seeker to crash when it didn't have an icon or render source. (F0lak)
  • Features (More Info):
  • Dream Maker:
  • The spin-arrow buttons for hue in the color selection dialog now allow movement past 0 or 360.

New in BYOND 514.1544 Beta (Mar 20, 2021)

  • Dream Maker:
  • NORMAL_RAND was mistakenly still called GAUSS_RAND (an earlier name for it) in the stddef.dm file, in conflict with the documentation. (Vallat)
  • The particles var could not be assigned a value at compile time. (Zewaka)
  • Generators could not be assigned to particle datums at compile-time. (Zewaka)
  • JUMP_EASING was defined incorrectly in stddef.dm. (Zewaka)
  • Dream Seeker:
  • Particle effects didn't cause the map to redraw if no other icon animations or changes were in use. (Klirix)
  • Alpha mask filters were broken. (Vallat)

New in BYOND 514.1543 Beta (Mar 20, 2021)

  • DM Language:
  • The new gradient() proc can blend between colors.
  • animate() can now interpolate between colors using color spaces other than RGB. (Note that this does not currently apply to color matrices.)
  • rgb() now allows you to specify a color space, so it can be used to create colors from HSL, HSV, and HCY numbers. There is also a new rgb2num() proc that will reverse the process, producing a list of numbers.
  • A new filter type, "bloom", causes halo effects on all pixels above a certain RGB threshold.
  • A new proc called load_resource() has been added, to make it possible to preload an icon/sound asset and change how long to it stays loaded.
  • splicetext() and list.Splice() have been added, which do a cut and an insertion at the same time. For instance, splicetext("banana", 3, 6, "laclav") becomes "balaclava". For text in particular this should be a benefit since it avoids multiple changes to the string tree (using the old method of copytext() + string + copytext()) in favor of a single change.
  • browse_rsc() behavior has been improved so that files can be sent through the regular resource download system, which can 1) check for whether the client already has a file, and 2) batch-send any needed files. The old approach was not scalable and resulted in delays in some games.
  • time2text() now takes another argument for the time zone. Additionally, client.timezone and world.timezone vars have been added.
  • and &&= shortcut operators have been added.
  • BYOND now supports better control over the use of tile or pixel movement with world.movement_mode, and a new appearance flag called TILE_MOVER. This controls the behavior of things like turf.Enter() and can be used to sidestep old legacy behavior, impacts gliding, and objects in TILE_MOVEMENT_MODE or with the TILE_MOVER flag are locked to the tile grid.
  • A new "assign-into" operator := has been added, which can be overloaded. This allows more flexibility in advanced datum types.
  • List access now has a ?[] operator. If the list is null, the list access will do nothing and fail without an error.
  • world.map_cpu has been added to help track CPU usage for map-send operations. This is not a full profiler but it should help some games gauge how server performance is impacted by map complexity and player load.
  • Client-side particle effects have been added! The particle system allows for a massive amount of flexibility with special effects (which is likely to be expanded in future builds). These effects are purely visual, run on the client, and should not impact server performance.
  • Dream Seeker:
  • Embedded winget syntax [[...]] used in client macros and client-side commands such as .winset, has been greatly improved. Now all embedded winget parameters can have the parameter name followed by a format type, for instance [[map.size as json]], to make it easier to include this info in various command formats.
  • Client macros can now be bound to mouse actions, and provide data to the attached server verb via a [[...]] syntax similar to embedded wingets.

New in BYOND 513.1541 (Jan 26, 2021)

  • Dream Seeker:
  • Regression: Maptext wrapping was broken, causing the last line to appear incorrectly. (Vallat)
  • An atom that was animating a color matrix could sometimes have incorrect interpolation between colors when other parts of its appearance (like dir) changed after the call to animate(). (Pali6)

New in BYOND 513.1540 (Jan 25, 2021)

  • Dream Daemon:
  • Json_decode() wasn't handling Unicode characters properly. (Quardbreak)
  • Replacetext() produced incorrect results when the needle string was blank. Correct behavior is to match in between characters of the haystack string. (NSBR)
  • Values in a client.verbs list could not be read by their index. (Vallat)
  • Calling replacetext() with a starting position greater than the length of the text could cause a crash. (NSBR)
  • Vis_flags, render_source, and render_target did not work with initial(). (TemporalOroboros)
  • Looping through a list with the "as anything" clause didn't work as expected, nor did things like "as color" work as "as text".
  • Note: Some games used "as color" or "as command_text" as a workaround to the fact that "as anything" was handled incorrectly, but since those too have changed, anyone relying on the old buggy behavior of the as clause should update their code. (Zewaka)
  • Dream Maker:
  • In some cases, use of the null-conditional ?. operator could cause the wrong object to be accessed in a subsequent var read/write or proc call. (Zewaka)
  • Clearing an icon's width or height value and clicking out of the edit field resulted in error messages that would not go away without force-closing the editor. (KuroChi)
  • Dream Seeker:
  • Long unbroken words sometimes did not wrap correctly in maptext. (NSBR)
  • The method used to determine exact pixel position of the mouse over a map control was incorrect, causing inaccuracies at high zoom levels. (Flick)
  • MeasureText() got incorrect measurements in some cases where a space between wrapped lines of text was counted toward the width, even if it exceeded the available width. (Hinashou)
  • Dream Daemon:
  • The appearance var is now treated as a /tmp, as it should be.
  • Replacetext() can now allow negative index values for the start position.

New in BYOND 513.1539 (Dec 18, 2020)

  • Fixes:
  • Dream Maker:
  • The ?. and ?: operators were compiled incorrectly when used in left-hand-side expressions, which resulted in weird errors at runtime. (Pali6)
  • Escaped line breaks in #define macro arguments were handled incorrectly. (Adhara in space)
  • #define macros that used strings with embedded expressions were parsed incorrectly when the substitution was made. (Cerid)
  • Dream Seeker:
  • Maptext underlines appeared in the wrong position when the map drawing area was bigger than the control itself, e.g. when the letterbox parameter was false. (F0lak)

New in BYOND 513.1538 (Dec 14, 2020)

  • Dream Maker:
  • A fix for the ?. operator caused problems when it was used in certain expressions. (Zewaka)

New in BYOND 513.1537 (Dec 10, 2020)

  • Dream Daemon:
  • Flist() failed in Windows on directories with trans-ASCII characters in their names. (Felix Rose)
  • When reading the length of client.verbs directly, a value of 0 was returned. (PowerfulBacon)
  • Dream Maker:
  • Including a raw string (any format starting with @) in a block of code skipped by a preprocessor directive would cause compilation to proceed incorrectly. (Lummox JR)
  • The compiler allowed vis_locs and vis_flags to be defined under /image; these vars are only relevant to turfs and movable atoms. (Andrew Fall)
  • The ?. operator on the left-hand side of an assignment operator worked incorrectly in certain cases when adding/assigning some constant values such as negative numbers. (Willox)
  • Dream Seeker:
  • Applying a color to an atom with maptext did not necessarily apply the color to the maptext also, if the color was opaque. (RootAbyss)
  • A second animate() call with the parallel animation flag could sometimes temporarily show out-of-sync results, such as the new animation appearing to be at its endpoint for a single frame before running the rest of the animation normally. (Nadrew)
  • Turfs in visual contents of objects did not properly mark when they were no longer in use (on the client) as a result of the obj or mob being deleted. (Andrew Fall)

New in BYOND 513.1536 (Oct 15, 2020)

  • Dream Seeker:
  • VIS_UNDERLAY could sometimes propagate further than intended. (Ter13)
  • Another aspect of the link() fix was apparently incompatible with multiple websites. (Kyet)

New in BYOND 513.1535 (Oct 14, 2020)

  • Dream Maker:
  • Raw strings did not get parsed correctly when included in macro arguments. (SpaceManiac)
  • Dream Seeker:
  • The fix for launching links in the default browser had a bug for certain links. (Thepotato97)

New in BYOND 513.1534 (Oct 12, 2020)

  • Dream Daemon
  • Json_decode() could crash for some inputs. (Monster860)
  • Dream Seeker
  • Microsoft made a stupid, stupid change to command line parsing that impacted link() and caused incorrect results on many systems where the default browser was Chromium-based. The behavior of link() has been adjusted to account for this stupid, stupid change. (Nadrew)
  • The & character could cause problems in alert() boxes and some input() boxes due to the way Windows uses it as an escape in displayed text. For worlds compiled in 513 or newer, this will now be escaped properly. (Inuyashaisbest)

New in BYOND 513.1533 (Oct 1, 2020)

  • Fixes:
  • Dream Daemon:
  • Images in the visual contents of their container could cause a recursion that crashed the server. (FKI)
  • Dream Seeker:
  • Looping animations could sometimes get confused if the server re-sent them as a result of an update on the object they belonged to. (PopLava)

New in BYOND 513.1532 (Sep 7, 2020)

  • A bug in an experimental compiler change managed to elude testing. (Tigercat2000)

New in BYOND 513.1530 (Aug 28, 2020)

  • Dream Seeker:
  • Changes to maptext handling caused a regression where certain maptext could crash the client. (Nadrew)

New in BYOND 513.1529 (Aug 26, 2020)

  • Fixes:
  • Dream Daemon:
  • view() and similar procs could include turfs and possibly their contents multiple times when the perspective object (e.g. a player mob) straddled multiple turfs. (Coul)
  • Dream Maker:
  • The skin editor incorrectly left the is-transparent checkbox available for button controls. (NSBR)
  • Changing a map control's zoom level in the skin editor to or from 0 didn't toggle the checkbox for the letterbox option to appear until the edit field for map.zoom lost focus (NSBR)
  • Dream Seeker:
  • Map zoom was being set incorrectly on world startup. (Ter13)
  • Side-view and isometric map modes did not respect order-of-appearance when two different objects had the exact same physical bounds, plane, and layer. (Ter13)
  • Mouse movement didn't register after releasing a drag if you had pressed and held a different mouse button in the meantime. (Magicsofa)
  • Dream Daemon:
  • Savefile errors will now be a bit more detailed.

New in BYOND 513.1528 (Jul 23, 2020)

  • Fixes:
  • Dream Daemon
  • Failing to open a file sent by browse_rsc(), etc. printed a "File not found" error message that could be incorrect or misleading. Additionally, file errors occurring during savefile usage did not print correctly either. (Slurm)
  • Dream Maker
  • Commands in the skin editor, such as for buttons, got doubly escaped and un-escaped which caused some of them to get mangled. (Ter13)
  • Multiline editing fields in the skin editor, such as output.style, did not have scrollbars, which made editing more difficult. (PopLava)
  • Dream Seeker
  • The map.view-size parameter was poorly documented and the values it produced were too complex to be usable. The parameter has been updated to behave more consistently and is now documented better. (Ter13)
  • Input controls couldn't be created with text already in the control. (Ter13)
  • Maptext wrapping sometimes was incorrect with Unicode characters, and could mangle them in some cases. (Mloc)
  • Maptext considered a change of styles to be a potential break point for wrapping text, which was incorrect. (Kaiochao)
  • Features:
  • Dream Seeker
  • New keyboard macros are now recognized for media-capable keyboards: VolumeMute, VolumeUp, VolumeDown, MediaPlayPause, MediaStop, MediaNext, MediaPrev.

New in BYOND 513.1527 (Jul 8, 2020)

  • Dream Daemon:
  • Several internal lists couldn't be located based on their ref() values. (Kevinz000)
  • Error messages from external DLL calls were cut off after the first character in Windows. (SpaceManiac)
  • Dream Maker:
  • The error message regarding exceeding the maximum number of internal arrays, thought fixed in the previous version, had a different cause that still remained undetected. This has been fixed. (Kmc2000)
  • In a very old bug, the compiler handled the continue statement wrong when used with a labeled outer loop. (Anturke)
  • Addition of two constant strings at compile-time was broken. (BurgerBB)
  • Dream Seeker:
  • Improperly formatted DM-CSS could cause a hang in some cases. (Devourer Of Souls)

New in BYOND 513.1526 (Jun 19, 2020)

  • Fixes:
  • BYONDexe
  • Login form CSS was broken. (Nadrew)
  • Dream Daemon:
  • There were multiple situations where Uncross() wasn't called during Move(). (Nadrew)
  • Visual contents seen by clients could cause a memory leak on the server. (MrStonedOne)
  • Regular expressions struggled with some UTF-8 cases. (Exxion)
  • Initial() for any of the bound vars on an object returned the same value as initial(bounds) instead of the correct var. (Kaiochao)
  • The client.bound vars were limited to a -32K to 32K range, which was inappropriate for large maps and icons. (Kaiochao)
  • Dream Maker:
  • In some complex projects, a weird error message could appear about exceeding the old 64K limit maximum number of internal arrays, even though that limit has been long gone and the projects in question were already over the limit. (MrStonedOne)
  • Adding constant numbers and strings at compile-time did not compile correctly, resulting in weird outcomes at runtime. (Mloc)
  • Using a small transparency checker size along with an extremely high zoom level, which for instance could happen in a 1x1 icon, could cause a crash due to way too many of the checkers being mistakenly drawn. (Kozuma3)
  • Icons with huge numbers of states didn't display correctly in the icon editor, which failed to display later states entirely and also had problems with the scrollbar. (Zewaka)
  • Dream Seeker:
  • The first stage of topological sorting in isometric mode didn't handle topdown icons such as HUDs properly. (Crazah)
  • Using too many ripple filters could cause a crash in some cases. (Nadrew)
  • Right-click verb menus accidentally went back to being slow in some situations. (Pali6)
  • Features:
  • Dream Daemon:
  • Setting certain built-in lists like overlays, underlays, filters, verbs, etc. by assigning a list to them would clear them out and add an item at a time, which was often inefficient and resulted in appearance churn. This has been optimized internally to avoid churn, improving performance.
  • Dream Maker:
  • Several true/false condition checks used in situations like for, while, etc. have been updated in the compiler to improve performance.

New in BYOND 513.1490 Beta (Oct 16, 2019)

  • Fixes:
  • Dream Maker:
  • Using certain var names that coincide with built-in procs, e.g. block, could result in compilation errors. Many cases of this have been fixed. (Lummox JR)
  • Features:
  • DM Language:
  • atom.plane, previously only explicitly supporting values from -100 to 100 and FLOAT_PLANE, has been expanded. Now you can use planes from -10000 to 10000, and FLOAT_PLANE can have an offset added to it.
  • Many new filter effects have been added:
  • Ripple: Similar to the wave filter, this creates a ripple-like distortion.
  • Alpha mask: Use the alpha channel from another icon or render_source as a mask to cut out parts of this image.
  • Displacement map: Use the red and green channels from another icon or render_source to warp this image.
  • Color matrix: Apply a color matrix, which can also use other color spaces like HSV, HSL, and HCY.
  • Radial blur: Blur outward from a center point, increasing the blur amount with distance.
  • Angular blur: Adds a rotational blur to this image.
  • Rays: Random rays of light emit from a center point.
  • Layer: Composites two images together, allowing color, transform, and blend_mode to be applied.
  • sha1() will return the results of an SHA1 hash on a string
  • clamp(a,b,c) returns the value of a (a number), limited to the numerical range between b and c. This is very similar to max(a,min(b,c)) but quicker, and it can adapt to cases where b>c. If a is a list, any numbers or null values in the list will all be clamped between b and c
  • The new ismovable() proc acts like isobj() and ismob() but for either objs or mobs
  • Atoms now have two new vars: render_target and render_source. This can be used to reuse a rendered object multiple times in the render pipeline, or create input for certain filters. The value of these vars is a name of your choosing; if it starts with an asterisk, the object will not appear on the map directly. An object with a render_target must be within the visible map or HUD in order to be usable as a render_source on that same map control
  • Animation now supports a new easing value called JUMP_EASING which can perform a sudden transition instead of a gradual one
  • atom.vis_flags has been added to allow more fine-grained control over how visual contents are rendered. You can make an atom in visual contents inherit the parent object's plane, layer, direction, icon, icon_state, or even identity (e.g., it can act like a regular overlay)
  • islist() is now, finally, a built-in proc
  • BYOND now supports Unicode. Internally, character encoding uses UTF-8
  • Of special note: While emojis are supported, they are not rendered in color at this time by most controls. The current browser control will render them if you include a @font-face declaration covering the relevant character ranges that displays a color emoji font such as Segoe UI Emoji.
  • There is now a built-in ref() proc. This acts as syntactic sugar for "ref[object]".
  • The new client.MeasureText() proc can be used to determine the dimensions of maptext on a client. (This is a client proc because the server has no way of measuring maptext itself.) This can be used to either find the full width required to display text without wrapping, or the height of the text. Because this involves a client query it will sleep the current proc until a response is received.
  • atom.maptext can now include links. Links support the title attribute, and you can use the :hover CSS pseudo-class. (Please note :hover can only change the text color at this time.)
  • client.SoundQuery() can be used to ask the client for information about what sounds are currently playing.
  • tan() and arctan() procs have been added. arctan() can either be called with a single value, or with x,y. (Note: Many languages handle the two-argument form of arctan() by using y,x order, but we're not doing that because it's stupid and nobody should have done it in the first place.)
  • DM Reference:
  • The DM reference has been improved, now including the skin reference.
  • Dream Daemon:
  • The animate() proc can now be called with an associative list of appearance vars to change, instead of using the var1=value1, var2=value2 syntax. You can also use an appearance or mutable appearance. (Using a filter as an argument to animate a filter isn't yet handled.)

New in BYOND 512.1485 (Sep 19, 2019)

  • Dream Seeker:
  • The options string in browse() was not parsed like a URL-encoded parameter string (as in list2params), which prevented special characters from being escaped. Now it's parsed the same way, except that for legacy reasons a comma is still allowed as a delimiter between items in the list. (MrStonedOne)
  • When a turf in visual contents also had another turf in visual contents, moving away from and then back to its Z level in a different place could cause the inner visual contents to shift over. (HindyMinte)
  • Dream Daemon:
  • The way certain special internal objects (regex, database, icon math) are handled internally has been refactored to improve server stability.

New in BYOND 512.1484 (Sep 15, 2019)

  • A further possible source of server instability was fixed. (Lummox JR)

New in BYOND 512.1479 (Aug 28, 2019)

  • Dream Daemon:
  • Turfs and movable objects did not properly calculate visual bounds on the server side for visual contents, if the turf/movable had no attached images or animation. (Nadrew)
  • Dream Seeker:
  • Some kinds of filter animations were broken in a previous build, resulting in wrong values. (Claed)

New in BYOND 512.1478 (Aug 21, 2019)

  • Fixes:
  • Dream Daemon:
  • Setting world.fps or client.fps at runtime could sometimes cause messages to be sent to newly connecting clients before the client was ready to handle them, causing it to disconnect. This especially happened if such changes were done often. (Lummox JR)
  • Procs that ended because their src was deleted generated errors in world/Error() and were caught in try/catch, which they shouldn't have been. (Nadrew)
  • client.view wasn't respected when set at compile time. This has been changed for all projects compiled in 512 or later. (Lige)
  • Old code altering client.lazy_eye automatically when the world size was small resulted in some unexpected/annoying behavior, so it has been disabled for projects compiled in 512 or higher. Also, lazy_eye and EDGE_PERSPECTIVE interacted catastrophically in certain situations, causing a constant jump back and forth on each frame. (Lige)
  • Dream Maker:
  • The icon editor was still limited to loading only 512 states, even though the reason for that restriction (the old icon editor) no longer exists. (DistantWorld101)
  • Dream Seeker:
  • Parallel animations on the same filter didn't work as expected, causing the later animations to basically cancel out the earlier ones even if they applied to different parameters. (Lummox JR)
  • The output control didn't always show a scrollbar, once the scrollbar was needed, until the place it was supposed to be was clicked or the user scrolled up. This has been fixed after exhaustive, painstaking testing. (Lummox JR)
  • Features:
  • Dream Maker:
  • The hotspot indicator in the icon editor now correctly contrasts with a transparent background in dark mode.

New in BYOND 512.1477 (Aug 8, 2019)

  • Dream Seeker:
  • Regression: Statpanels got messed up by the grid formatting fix. (Laser50)

New in BYOND 512.1476 (Aug 8, 2019)

  • Dream Daemon:
  • Temporary mutable appearances used in animate() didn't clean up properly, resulting in an appearance leak. (S10Games)
  • output() to a specific control wasn't working right when the

New in BYOND 512.1475 (Jul 29, 2019)

  • Dream Daemon:
  • Reading initial() failed for some vars, resulting in major runtime errors. (Afterthought)
  • Dream Maker:
  • Step offsets, pixel offsets, and bounds were not always set properly in the map editor. (Vicacrov)

New in BYOND 512.1474 (Jul 25, 2019)

  • Regression: Non-zero map zooms were broken. (NSBR)

New in BYOND 512.1472 (Jul 3, 2019)

  • Fixes:
  • Dream Daemon:
  • Filter list access for animations, setting vars, etc. sometimes resulted in spurious "index out of bounds" errors. (Lummox JR)
  • The server did not send sound information properly, which prevented sound.environment from accepting 0 to reset the environment. (VolAs)
  • MouseEntered() is now called right after MouseDrop() in response to the fact that the object under the cursor has changed. This call is generated on the server instead of the client. (Ter13)
  • Case insensitivity was not properly handled in some complex regular expressions. (Altoids0)
  • Dream Maker:
  • Several issues regarding global color changes in an icon have been fixed. (NSBR)
  • The backspace key didn't work correctly in the loop count edit box of the icon pixmap editor. (Nadrew)
  • The map editor suffered reduced performance. (Ter13)
  • Dream Seeker:
  • Visual contents of objs and mobs did not reset in some cases when they were removed from the map and later re-added, but not deleted in the interim. (Mport2004)
  • Features:
  • Dream Maker:
  • In the pixmap editor's movie area, you can now insert or delete entire columns. Using a regular delete when a column is selected will ask if you'd rather shift the other columns over. The new insert-columns and delete-columns commands have keyboard shortcuts Shift+Ins and Shift+Del, respectively.

New in BYOND 512.1471 (Jun 14, 2019)

  • Dream Daemon:
  • In some cases, the server did not properly send map chunk information that was necessary to handle big icons. (The peoples republic of china)
  • Some proc calls using the call() proc were misinterpreted, causing named arguments not to work correctly when calling those procs with an arglist(). (4DPlanner)
  • Dream Maker:
  • The map editor has had some updates to improve its ability to handle certain conditions like the use of BACKGROUND_LAYER. (Ter13)
  • The compiler did not include some vars in turf underlays that impacted their appearance, when those underlays used modified types (vars set in the map editor). This very old bug, which can be traced back to BYOND 324 because it impacted pixel offsets too, has been corrected. (Ter13)
  • Setting parent_type in a way that created a circular reference caused the compiler to hang or crash. (PJB3005)
  • Dream Seeker:
  • Color matrices and certain situations applying alpha values did not mix properly, resulting in incorrect color matrix calculations. (The peoples republic of china)
  • alert() couldn't use buttons starting with a period, which resulted in some broken behavior. (SeymourG)
  • blend_mode was not applied properly in icons using flick(). (DarkNinjaNaut)

New in BYOND 512.1470 (May 27, 2019)

  • Fixes:
  • Dream Seeker:
  • Another regression in 512.1468 involved the screen-loc mouse parameter: the X pixel offset and Y tile values were accidentally switched. (Anturke)

New in BYOND 512.1468 (May 23, 2019)

  • Fixes (More Info):
  • Dream Daemon:
  • Empty filters lists got saved along with objects. (Kaiochao)
  • Dream Seeker
  • A very large number of objects on a turf, especially objects with large bounds covering multiple turfs, was worse for client performance than it needed to be due to some scalability issues. Although this is obviously still a terrible idea, the scalability problems have been addressed. (Ter13)
  • When using an <img> tag in maptext, the alignment of the text's baseline to image bottom caused the text to be incorrectly positioned in some cases, causing the text to be culled. (Kamakiri)
  • Mouse hit detection has been substantially reworked to fix some bugs. In particular, when the mouse is over an object in vis_contents it should not treat the parent as the main icon, which it used to do, causing the icon-x/y offsets to be wrong. (Ter13)
  • PIXEL_SCALE was inherited by overlays. While this was originally intentional, there are situations where it is not desirable, and most of the situations where it would have been wanted are already handled by KEEP_TOGETHER. So, this flag is no longer inherited. (Ter13)
  • Using alpha on an atom with KEEP_TOGETHER rendered the color incorrectly. (Kaiochao)
  • Features (More Info)
  • DM Language:
  • New mouse params, vis-x and vis-y, have been added. These represent the offset in screen coordinates from where the icon's lower left corner gets rendered. Although this is a language feature, it requires the client to use 512.1468 or higher.

New in BYOND 512.1467 (Apr 19, 2019)

  • Dream Daemon:
  • Setting an atom's mouse pointer vars to one of the built-in values did not work at runtime. (SpaceManiac)
  • jointext() behaved wrongly when given a start argument greater than 1 and a default end argument of 0. (Mport2004)
  • Large numbers of turf changes in a short time, especially involving changes to their overlays/underlays, could sometimes cause appearances to be prematurely deleted or rendered invalid, which could cause crashes. This was an intermittent issue brought on by high-stress situations. (NGGJamie)
  • Dream Maker:
  • When world.icon_size was not 32, maptext_width and maptext_height could be wrong for some objects on the map. This has been corrected at the compiler level, so worlds with this issue can be recompiled to fix it. (The peoples republic of china)
  • Certain complex do-while loop cases could behave incorrectly in the while() condition, as a result of the way they were compiled. (SpaceManiac)
  • Dream Seeker:
  • The key-repeat flag has been removed from the screenshot and Options & Messages macros in the default skin. (LordAndrew)
  • The client garbage collector has been improved to deal with games that use a lot of large icons, encouraging them to let go of unused icons sooner as memory use goes up. (DragonDesend)

New in BYOND 512.1466 (Mar 29, 2019)

  • Dream Daemon:
  • Worlds using turfs with visual contents could experience crashes after reboot, caused by bogus appearance references being retained by each client which then caused appearances to be destroyed prematurely when those references were later cleared.
  • Dream Seeker:
  • The overtime column of the profiler didn't clear properly when reading data from servers before 512.1465, so it showed junk data instead of the expected 0.

New in BYOND 512.1465 (Mar 29, 2019)

  • Fixes:
  • Changing screen size with an out of bounds screen_loc displays KEEP_TOGETHER atoms incorrectly.
  • vis_contents: client screen edition
  • vis_contents: client offset edition
  • Accessing overlays on appearance causes runtimes
  • Icon editor's preview window not updating rewind option
  • The maptext hitbox is offset by world view instead of being relative to obj
  • Having more than 65536 map lines in a map file causes DM to give up
  • Dream Daemon:
  • Visual contents were not being cleared in some cases such as extreme changes to client pixel offsets. (Mport2004)
  • The overlays, underlays, and verbs lists were not readable from a true appearance value, only from a mutable appearance. (Monster860)
  • Dream Daemon & Dream Seeker:
  • Visual contents could mistakenly not get used when removing an object from the visible map and adding it to client.screen at the same time. Conversely, visual contents would not reset when adding an object to the visible map and removing it from client.screen at the same time. (The fix for this issue impacts both client and server.) (Mport2004)
  • Dream Maker:
  • Pressing the rewind checkbox in the icon editor did not update a currently-animating icon. (Magus8)
  • Map files were restricted to 64K rows in the file, preventing extended one-tile-per-row formats from working properly. (Monster860)
  • Dream Seeker:
  • For non-transformed atoms, the hit detection for their maptext was incorrect. (PopLava)
  • KEEP_TOGETHER groups could be rendered in an incorrect position in certain unusual cases. (Bovine_Buddy)
  • Features:
  • Tick overrun profile info
  • Dream Daemon:
  • Server profiling now includes an "Overtime" column for the self-CPU time spent in a proc when the proc ends, or calls out to another proc, once world.tick_usage is over 100.

New in BYOND 512.1464 (Feb 13, 2019)

  • Fixes:
  • Icon editor UI issue when accessing large icon
  • Dreammaker's mask affecting not fully opaque colors
  • Icon Editor crashes DreamMaker when deleting selection
  • PLANE_MASTER, blend_mode, map_format
  • Dreammaker's canvas problem
  • Dream Maker:
  • Huge icon sizes caused the pixel editing page to open up with controls in odd positions in some cases. (Mport2004)
  • Using the selection tool in the icon editor, beginning a selection from outside of the icon could cause crashes. (Crazah)
  • Translucent pixels didn't blend properly over translucent/transparent ones, which manifested in weird results when dragging selections in the icon editor. (Magus8)
  • Scrollbars in the pixmap editor didn't go all the way to the right of the enlarged image like they were supposed to. (Magus8)
  • Dream Seeker:
  • In SIDE_MAP and ISOMETRIC_MAP formats, plane masters were sorted incorrectly. (Marekssj3)
  • Features:
  • Client performance for special turfs
  • Dream Seeker:
  • In games with a large number of turfs marked as special (needing extra processing on the client), performance has been improved for cases where the number of special turfs experiences huge fluctuation while moving.

New in BYOND 512.1463 (Jan 17, 2019)

  • Dream Maker
  • The ?. operator did not do proper type checking for procs when it was able to. (Memeopolis)
  • The global swap-color operation did not affect translucent colors. (AkaneLeone)
  • Dream Seeker
  • Animations on big-icon turfs stopped whenever the player moved far enough out of range. (Zasif)
  • When told to forget about an obj or mob, the client would sometimes incorrectly hold onto its list of visual contents. This tended to happen in situations where the object was moved out of view rather than deleted outright. (Mport2004)

New in BYOND 512.1462 (Dec 24, 2018)

  • Dream Maker:
  • Expanding the movie size (more frames or more directions) and then undoing while a frame in the expanded area was still selected could result in errors. (NSBR)
  • Translucent pixels were not copied into the selection area when using the select tool. (Orange55)
  • Dream Seeker:
  • A number of issues appeared in the software-mode renderer. This affected Dream Maker as well. (Memeopolis)

New in BYOND 512.1460 (Dec 15, 2018)

  • Fixes:
  • Wrong icon zoom
  • Dream Maker:
  • For icons larger than 32x32, the icon list did not display correctly because the zoom level was wrong. (Lummox JR)

New in BYOND 512.1459 (Dec 14, 2018)

  • Fixes:
  • Undo never worked right with selections
  • Ctrl+Z changes the frame on the icon editor
  • CTR+A doesn't work on file/obj-tree search bar
  • Find Instance works incorrectly with Zoom
  • Turn clockwise or counter-clockwise blurs icon
  • SOUND_UPDATE behavior
  • Dream Maker:
  • The undo/redo feature in the pixmap editor now properly handles regions selected via the Select tool. (Lummox JR)
  • When an area being rotated in an icon had an odd width and even height or vice-versa, rotations always caused antialiasing (when antialiasing was enabled) because of the rotation center being at the side of a pixel instead of a pixel center or corner. In these cases, now the center of rotation will be adjusted to avoid the problem. (NSBR)
  • In the pixmap/movie editor, when undoing an action that impacted only a single frame of an icon, the selection is no longer changed if the previous action impacted a different frame. (NSBR)
  • Switching between find and find-replace dialogs while in the map editor could cause the find text not to reset properly. (Repo82)
  • When zoomed in on the map editor, finding an instance on the map would not scroll to the correct position. (Repo82)
  • Hitting Ctrl+A in the search box underneath the file or object tree did not select all text. (NSBR)
  • Dream Seeker:
  • The SOUND_UPDATE flag did not behave in a logical manner; if a sound was not playing it would be ignored unless it applied to all channels, and when a channel was specified but that channel was not playing, the sound would begin.
  • The new behavior is that SOUND_UPDATE always takes priority over other considerations, and when it is present the file value of the /sound datum is ignored. A new sound will not start playing if the specified channel is currently not in use. (VolAs)
  • Features:
  • Pressing a key to move to name of states no longer works
  • Dream Daemon:
  • Using alphanumeric keys to type in a name used to navigate to a matching state in the old list control. This functionality has been added to the new control.

New in BYOND 512.1458 Beta (Dec 6, 2018)

  • Fixes:
  • Creating DMI files doesn't work
  • Pressing DEL in DMI overview crashes DM
  • Dream Maker:
  • Mousing over the icon sheet could cause "Encountered an improper argument" errors in some cases. (Hiead)
  • Deleting/cutting an icon from the icon list could result in a crash. (Sabira)
  • Features:
  • More icon editor upgrades
  • Dream Maker:
  • The icon editor has had more updates:
  • The icon list page has multi-level undo now.
  • A toggle between light and dark backgrounds has been added to both the icon list and pixmap editor pages.
  • A new Select All (Ctrl+A) option has been added to both pages
  • Switch frames easily in the pixmap editor by using the , and . to move forward or back in the animation, and < and > to change direction.
  • Toggles have been added for the pixmap grid, and for antialiasing done when rotating.
  • The icon list control lets you easily split or combine icons when bringing up a menu via right-click.

New in BYOND 512.1457 Beta (Dec 4, 2018)

  • Fixes:
  • Zoom feature on icon editor causes inaccurate pixel placement
  • Re: Scrollwheel doesn't work on frame area
  • Colors - Edit, doesn't swap the colors
  • Dream Maker hang and occasional crash (Icon Editor)
  • Can't delete multiple frames at the same time
  • Multiple frames to paste popup
  • Selecting a different frame counting as modification
  • Export palette button opens import palette menu
  • Dream Maker:
  • Zooming in on some large icons caused incorrect image placement within the drawing canvas. (Orange55)
  • Using shift+drag or ctrl+drag to swap or copy multiple selections could fail in some cases. (NSBR)
  • Changing icon frames resulted in the modify flag being set incorrectly, so closing the file would prompt to save it or abandon changes even though no changes were made. (NSBR)
  • The delete command wasn't hooked up to multiple selection in the icon editor. (NSBR)
  • Pasting a single frame incorrectly acted like pasting multiple frames, which resulted in bogus warnings and also incorrect pasting behavior. (NSBR)
  • The global color editing dialog no longer actually changed the icon. (NSBR)
  • Editing some larger-sized icons caused hangs in some cases. (Claed)
  • The Export Palette menu option opened the Import tool instead. (Sabira)
  • Features:
  • More icon editor changes
  • Dream Maker:
  • The main icon list control of the icon editor has been replaced in this release. Bad flickering behavior, seen when handling icons with a large number of states, should no longer occur. With the new control, hovering over an icon will show its animation and will also cycle through directions.
  • Further refinements of this section are still planned, including improved undo/redo behavior which currently is still limited.

New in BYOND 512.1456 Beta (Nov 24, 2018)

  • Fixes:
  • Cannot interact with icon editor state panel
  • Dream Maker:
  • Clicking in the new movie control failed, because of an issue that didn't appear during testing. (Sabira)

New in BYOND 512.1454 Beta (Oct 19, 2018)

  • Fixes:
  • Client crashes trying to connect to server
  • Big icons disappearing again
  • Image duplicates of objs being created
  • Adding new area type only visible after rebooting Dream Maker
  • Vis_contents problem
  • Crashing on startup on Linux
  • client.color not changing more than once
  • Dream Daemon:
  • Objects that were hard-deleted did not always correctly remove themselves from vis_contents lists. (NSBR)
  • In some rare cases, creation of temp files could cause a crash. (Kokutou)
  • Dream Maker:
  • Branches of the object tree didn't update properly after changes. (Laser50)
  • Dream Seeker:
  • Big icons in visual contents could disappear prematurely in some cases when given a transform and/or pixel offsets. (NSBR)
  • Malformed preload_rsc URLs could cause crashes. (DamianQ)
  • Client color matrices did not reset properly. (NSBR)
  • The lack of micro-layering in visual contents meant that some projects had large icons not display properly when included in vis_contents. Now these use micro-layering just like regular icons. (Travylleb)

New in BYOND 512.1453 Beta (Oct 15, 2018)

  • otrs 9
  • Fixes:
  • DreamDaemon crashing due to improper sequence number
  • Bad icon operation
  • Proc-level static vars misbehave with inheritance
  • Dream Daemon:
  • Another casualty of the refactor was found: Loading an /icon datum from a file() failed intermittently. (AlcaroIsAFrick)
  • Animating filters could, in some rare cases, cause a crash. (KokoroWatari)
  • Dream Maker:
  • Static vars in procs were being inherited by subtypes, which wasn't the case before. (Exxion)
  • Features:
  • Silence parsing including messages
  • Faster object tree
  • Dream Maker:
  • Generating the object tree was slower than it needed to be. Optimizations have improved the speed significantly.
  • A new -verbose flag has been added to the command-line compiler to show the new output such as "including [file]". These messages will no longer be output by default. There is no equivalent flag in the IDE version of Dream Maker yet but it may be considered for a future enhancement upon request.

New in BYOND 512.1452 Beta (Oct 10, 2018)

  • Features:
  • Better compiler performance
  • Dream Maker:
  • Compiler speed has been greatly improved for large projects. Additionally, the compilation process outputs more info than before, especially during the parsing process when including files.

New in BYOND 512.1451 Beta (Oct 3, 2018)

  • Fixes:
  • CLI Linux compiler breaks on absolute paths.
  • Dream Maker:
  • Path handling was incorrect in some situations on Linux. (PJB3005)

New in BYOND 512.1450 Beta (Oct 3, 2018)

  • Fixes:
  • Screen frozen up, while only the chat's active
  • DreamDaemon crashes on 1449
  • Dream Daemon:
  • Crashes could occur on some internal string operations. (Memeopolis)
  • Dream Seeker:
  • Client ticks could lock up due to a problem with the animation of text mode "movies", even when not in text mode. (Yuliy)

New in BYOND 512.1449 Beta (Oct 3, 2018)

  • Fixes:
  • using fdel() on world.log can permanently delete an entire project
  • Dream Daemon:
  • Because reading the value of world.log returns file("") instead of a real filename, fdel(world.log) tried to delete the entire contents of the world's directory. I can see no legitimate reason to do this, and therefore fdel("") is ignored now. (Memeopolis)
  • Dream Seeker:
  • Client garbage collection could sometimes claim objects newly re-registered for a vis_contents list before said vis_contents list was actually received to protect them from recycling. (SpaceManiac)
  • MouseDrag() calls didn't fire in cases where an extreme scaling transform was used, because the cursor was technically still over the same pixel of the dragged object. The logic has been changed to fire the message for any cursor move while a button is held. (Deviant Coder)
  • Features:
  • Improve memory reporting
  • String refactor (stage 1)
  • Dream Daemon:
  • Memory usage reporting has been improved for greater accuracy:
  • The associative portions of list memory were not counted.
  • The main array of values for various types (objs, mobs, etc.), although not a large contributor to memory usage, was not previously counted.
  • The memory used for image lists attached to objects, mob.group, vis_contents and vis_locs, and animations is now counted.
  • Appearance memory was counted inaccurately, resulting in a slightly lower value than it should. This has been fixed.(Some minor data like color matrix usage still isn't counted.)
  • Filter memory is now included.
  • Dream Daemon & Dream Seeker:
  • A major refactor has been done to move away from using static variables in favor of a new shared-memory string class in many places. Please note this change may break other behaviors unexpectedly. Report any bugs encountered to the Beta Bugs forum.

New in BYOND 512.1448 Beta (Aug 28, 2018)

  • Fixes:
  • Slowdown/hang
  • parallel animations resulting in bad positions
  • Identical strings with different IDs
  • Movement regression causes locs to be invalid until movement
  • Edge tiles hidden too early
  • Dream Daemon:
  • The locs value was incorrect in cases where an atom's step offsets had not yet been "normalized". (Nadrew)
  • min(item) and max(item) returned null if the item was not a list, when they should have returned the item instead. (Super Saiyan X)
  • Dream Maker:
  • The compiler was mangling the string tree in some cases, which could result in duplicate string IDs. This could literally cause a situation where "my string" did not equal "my string" at runtime. It also meant that associative list lookups could fail, because list["item"] might not match list["item"] due to the two item strings having different IDs. (Wirewraith)
  • Dream Seeker:
  • An error in the group-handling code for client visual bounds caused slowdowns or sometimes even hangs in certain cases. (Nadrew)
  • Parallel animations broke under some circumstances, especially when animating pixel offsets. (Ter13)
  • Regression: Starting in 512.1443, transforms on plane masters started culling objects incorrectly. (Bravo1)

New in BYOND 512.1447 Beta (Aug 24, 2018)

  • Fixes:
  • Dot chaining with list vars
  • Native sub-pixel movement fails when moving faster than mover's size
  • Client visual bounds acting up
  • Dream Daemon closes during an "in world" loop
  • client.pixel_x and pixel_y arent working
  • SIDE_MAP gets jumpy vertical tile movement for non-square icon_size
  • Matrix scale bug with mouse calls
  • Dream Daemon:
  • An issue was discovered in the handling of the unique map cell list, in which the NONE value could be assigned incorrectly to a turf. (DamianQ)
  • Movement sometimes ended too early when moving by more than step_size and using non-integer steps. (Kaiochao)
  • Dream Maker:
  • Using the new chaining dot operator, accessing list vars resulted in a compiler error. (Lummox JR)
  • Dream Seeker:
  • Client visual bounds were incorrect in some cases involving KEEP_APART and/or transforms. This caused some icons to disappear from view prematurely. (Nadrew)
  • input() in list handled some characters badly. (SpaceManiac)
  • Double-clicking did not initiate mouse drag logic, which in turn meant MouseMove and similar events were bypassed in some situations. (Kaiochao)
  • Client pixel offsets set at compile-time didn't appear correctly. (This bug has a server component as well.) (AlcaroIsAFrick)
  • Map scrolling was scaled incorrectly for Y when in the SIDE_MAP format. (Kaiochao)
  • Mouse hit tests were rounding to the nearest pixel instead of staying within current pixel bounds, causing some incorrect hits in some extreme scaling cases. (Deviant Coder)
  • Features:
  • Constant while condition
  • Make winset accept a list
  • Give the pre-preprocessor some love
  • DM Language:
  • winset() now allows an associative list to be supplied directly instead of having to use a text string or list2params(). The list will be sent to list2params() internally.
  • Dream Maker:
  • while() and do-while() have been optimized in cases where the condition is a constant.
  • The const vars in stddef.dm have been changed to #define statements.

New in BYOND 512.1446 Beta (Aug 14, 2018)

  • Fixes:
  • Raw strings in embedded text
  • Objects with large visual bounds are dropping
  • Transformed objects can be culled/moused incorrectly
  • Turfs in visual contents drop off map
  • Strange behavior on maptext
  • vis_contents bug
  • Dream Maker:
  • Using a constant raw string as the first argument in an embedded text expression caused the entire expression to be replaced with the raw string alone. (Lummox JR)
  • Dream Seeker:
  • Visual bounds of off-map objects were calculated incorrectly in cases like using KEEP_TOGETHER and vis_contents together. This algorithm has been reworked for better accuracy and efficiency. (Nadrew)
  • Transformed objects sometimes got culled from the rendering list and also had messed-up mouse bounds. (Lummox JR)
  • Turfs that are on the map and added to visual contents of another object don't stick around as you move around the map. (Lummox JR)
  • Maptext bounds were not set correctly in cases where a virtual KEEP_TOGETHER was applied (e.g., alpha, color matrix, or filter). (Eternal_Memories)
  • Images did not sync visual contents like they do with appearances, causing glitches in some cases. There is a server component to this issue as well. (Eternal_Memories)

New in BYOND 512.1445 Beta (Aug 9, 2018)

  • Fixes:
  • Wrong color matrix calculation
  • DM confuses top-level vars with the vars of instances if they are not typecasted.
  • Using 'continue' in do-while does not check condition
  • Color in Maptext is wrong with animate
  • Dream Maker:
  • Very old bug: The continue keyword in a do-while loop skipped the condition. (SpaceManiac)
  • From the primordial swamp: a reference like foo:bar, where bar is both an object var and a global var and foo is an untyped local var, was misread by the compiler as global.bar. (Multiverse7)
  • #define macro arguments with a trailing slash didn't compile correctly. (Memeopolis)
  • Dream Seeker:
  • When an icon with filtered maptext was displayed, sometimes the icon displayed next was kicked into the wrong upscaling format. (Lummox JR)
  • Using a color matrix on an atom with KEEP_TOGETHER or maptext, followed by a simpler atom with the same color matrix, caused incorrect results for translucent pixels. (Lummox JR)
  • Color was applied incorrectly to maptext in cases where maptext did not have an explicit or implied KEEP_TOGETHER. (Baellow3)
  • Regression: Maptext appeared in the wrong Y position in some complex cases. (Lummox JR)
  • Features:
  • maptext line-height css property support
  • Maptext outline
  • DM Language:
  • Maptext now supports a new CSS property: -dm-text-outline. The syntax for this is:
  • -dm-text-outline: <width> <color>
  • Outlines will be applied before shadows, if both are used:
  • Maptext and output controls now support the line-height CSS property. (Output controls currently have limited support, not allowing values below the default 1.2.) Additionally, line-height can be specified as part of the CSS font property.

New in BYOND 512.1444 Beta (Aug 6, 2018)

  • Fixes:
  • Compile errors when passing expressions to macros
  • Dream Maker:
  • Regression: #define macros didn't work right with some replacement expressions. (SpaceManiac)

New in BYOND 512.1443 Beta (Aug 3, 2018)

  • Fixes:
  • Raw string in #define is interpreted wrong
  • Dream Maker:
  • Using a raw string in #define statement did not substitute the original code correctly when the macro was used. (Lummox JR)
  • Using raw strings or comments in macro arguments did not compile correctly. (McBawbaggings)
  • Dream Seeker:
  • Rounding errors in the mouse hit routines (due to a point structure based on integers) caused some objects to register mouse hits just outside of their actual bounds. The internal routines have been switched to use floating point for more accuracy. (Ter13)
  • Layering has been improved in SIDE_MAP and ISOMETRIC_MAP modes, and in both modes a problem was found where TOPDOWN_LAYER items were positioned incorrectly. (F0lak)
  • Features;
  • 'Open Dream Daemon Here' command to Dream Maker
  • Floating point steps
  • Provide a define for the minor build
  • DM Language:
  • The step_x, step_y, and step_size vars now accept non-integer values. This only has an impact on the server end.
  • Dream Maker:
  • "Host" and "Compile and Host" options have been added to the Build menu.
  • A new macro, DM_BUILD, has been added to the compiler to specify the minor build version.

New in BYOND 512.1442 Beta (Jul 25, 2018)

  • Fixes:
  • Animations playing on Areas can break when modifying client pixel_x/y
  • Bounds() with numbers failing
  • Movement Errors in Runt
  • Dream Daemon:
  • Certain pixel movements or client pixel offsets could cause area animations to reset inappropriately. (Bravo1)
  • Calling bounds() with all numeric arguments produced incorrect results, and in some cases could even hang. (Bravo1)
  • The default Exited() and Entered() handlers for turf and area weren't registering as valid for pre-512 worlds. (U_CANT_C_ME1)
  • Features:
  • Exact font size in output control
  • DM Language:
  • A new skin parameter output.legacy-size, gives you control over the way the output control scales fonts. In the past, the output control always used a different metric for sizing fonts than other controls; setting this new parameter to false will make the output control behave like the others.

New in BYOND 512.1441 Beta (Jul 23, 2018)

  • Fixes:
  • Broken bumps
  • Dream Daemon:
  • Bump() was called with the wrong argument or not at all when movement was blocked by turf.Enter(). (Ter13

New in BYOND 512.1440 Beta (Jul 20, 2018)

  • Fixes:
  • Collision causes Dreamseeker to freeze
  • Dream Daemon:
  • Tough pixel movement cases caused the server to enter an infinite loop. (Ter13)

New in BYOND 512.1438 Beta (Jul 16, 2018)

  • Fixes:
  • Turf image hang
  • Move() is broken
  • Dream Daemon:
  • Enter() and Entered() did not work correctly for areas in all cases. Additionally, when an area was "bumped", the argument to the non-area Bump call was not the turf in that area that actually triggered the bump. (S10Games)
  • Dream Seeker:
  • Hanging with turf-based images was still a problem, but was made easier to reproduce by sanity checks added to recent builds. The nature of this fix makes it highly unlikely the hang issue will recur in the future. (S10Games)
  • Features:
  • Cross()/Uncross()/Crossed()/Uncrossed() should be atom procs
  • DM Language:
  • In stage 2 of the movement overhaul, the Cross/Uncross/Crossed/Uncrossed procs now are used by all atoms, not just movables.
  • By default, turf.Enter() will call turf.Cross() instead of checking turf density, before calling Cross() for any tile-based contents. This should allow for cleaner implementations by overriding Cross() instead of Enter().
  • Likewise, the default turf.Exit() will now call turf.Uncross() and then try its tile-based contents.
  • And of course, turf.Entered() will call turf.Crossed() by default, and likewise for Exited/Uncrossed.

New in BYOND 512.1437 Beta (Jul 13, 2018)

  • Fixes:
  • Adding a constant and a comparison produces wrong result
  • Dream Maker:
  • Changes to the way the + operator optimized expressions that included constants resulted in bad code output in some cases. (SpaceManiac)

New in BYOND 512.1436 Beta (Jul 13, 2018)

  • Fixes:
  • Attempting to call a string literal as a proc crashes the compiler
  • Brackets in a+(b+c) and a*(b*c) ignored
  • Pixel collision is broken
  • Dream Daemon:
  • A rare bug was found with pixel movement, that could cause a mover to overlap dense turfs/objects if it was stopped short by another bump. (Additionally, an error in the code for cutting movement short in the event of a bump incorrectly allowed some rare diagonal moves to go through.) The built-in Move() proc has been redesigned to address these issues and should also now avoid calling Cross(), Enter(), etc. more than once for the same object. (Ter13)
  • Dream Maker:
  • The compiler made assumptions about optimizing certain expressions such as a + (b + c) that weren't necessarily correct.
  • Additionally, some operators like + * | & ^ pre-celculated the constant parts of their results, but it cannot be assumed that 1 + a + 2 is the same as a + 3 because of type mixing and operator overloading. The pre-calculation done by these operators has been improved to reflect this. (GinjaNinja32)
  • A very ancient syntax for filling in string literals could cause the compiler to crash in all 512 versions up to now. (Exxion)
  • Dream Seeker:
  • Turf images and vis_contents didn't always get preserved after a Z-level jump. (SpaceManiac)

New in BYOND 512.1435 Beta (Jul 9, 2018)

  • Fixes:
  • Syntax highlighting: multiline raw strings with blank lines
  • Turf vis_contents failing to appear under stress
  • Turf images no longer update on moving
  • screen_loc BOTTOM still broken
  • Reading /static vars with .vars only returns the initial value
  • Dream Daemon:
  • Accessing a static var on a datum through its vars list, instead of by name, did not read the correct value. (Cyberboss)
  • Dream Maker:
  • Including a multiline raw string with a blank line caused the syntax highlighting to reset after the blank line. (Lummox JR)
  • Dream Seeker:
  • A case of occasional heap corruption was found when moving around a map with turf vis_contents. (SpaceManiac)
  • Turf images weren't reapplied properly when moving around the map. (SpaceManiac)
  • Mapping of gamepad axes was done using incorrect math, resulting in a much wider dead zone and maximum extents of 0.375. Raw values were correct. (Ter13)
  • Y positioning of overlays/vis_contents for edge-relative HUD icons (e.g., BOTTOM) was incorrect. In addition, the position of edge-relative icons broke completely during animate(). (Ter13)

New in BYOND 512.1434 Beta (Jul 4, 2018)

  • Fixes:
  • Everything works until it doesn't
  • Initialization of default arguments
  • Proc chaining bug again
  • Dream Daemon:
  • During analysis of init procs to consolidate them, objects could be created that were sometimes not let go of properly or worse, called the soft Del() proc. Now init procs will no longer create atoms, images, or hard datums during anaylysis. (MrStonedOne)
  • Dream Maker:
  • A change to the compiler altered the way proc arguments with default values were initialized, and did so incorrectly. You will need to recompile code from previous 512 builds. (MrStonedOne)
  • A new cause of proc chaining issues was found in complex expressions, but this time the fix should hold. Projects should be recompiled with this new version. (Deviant Coder)

New in BYOND 512.1433 Beta (Jul 2, 2018)

  • Fixes:
  • . and : chaining bug with proc returns
  • vis_contents don't obey parent's invisibility
  • Dream Maker:
  • Another problem with the dot-chain and conditional dot operators was revealed--actually an old problem that partially resurfaced. Projects that make use of these operators should recompile. (Deviant Coder)
  • Dream Seeker:
  • Visual contents followed the visibility rules for images, which ignore invisibility, rather than the rules for regular objects. As a result, setting invisibility for a parent would still display its visual contents instead of leaving the whole "tree" invisible. (Ter13)

New in BYOND 512.1429 Beta (Jun 23, 2018)

  • Fixes:
  • Right-click menu shows every verb on every atom
  • Dream Seeker:
  • A problem with the parser fix from build 1428 caused major issues with right-click menus. (SpaceManiac)

New in BYOND 512.1427 Beta (Jun 13, 2018)

  • Fixes:
  • Dream Seeker keeps crashing
  • Equivalence operators don't like equal objects
  • drop_shadow and outline filters conflict. If you put both an outline and a drop shadow on an object, it gets really messed up.
  • Multiple filter animations (parallel)
  • Filters causing crashes on reboot
  • screen_loc BOTTOM broken again.
  • Icon operation crashes
  • Awkward status bar message when autocompleting verbs
  • Dream Daemon:
  • Datums that exactly matched did not handle the equivalence ~= and ~! operators correctly. (Kaiochao)
  • Sometimes "bad filter" runtime errors, or crashes, could occur when creating filters after a reboot. (Lummox JR)
  • Dream Maker:
  • Malformed for() statements could cause a compiler crash. (Kisioj)
  • An expression with side effects surrounded by parentheses produced a compiler warning, in situations where the same expression without parentheses didn't. (Ninjanomnom)
  • Dream Seeker:
  • Hovering over an empty Child control could cause a crash. (Lyntonx2)
  • Animating filters in parallel caused animations to freeze and other unpredictable results. (Lummox JR)
  • BOTTOM didn't work correctly for screen_loc in some cases, showing the icon in the wrong location. (Ter13)
  • Setting client.pixel_w shifted the map in the wrong direction. (Lummox JR)
  • Isometric rendering now separates pixel offsets from map offsets for calculating screen position, to avoid jitters. (Crazah)
  • Some filter combos could cause an image to appear out of place the first time certain filters were used, which would self-correct in a future frame of the screen. (Zewaka)
  • As a result of the new icon frame-sharing code, in some rare cases client-side icon operations could cause a crash. (Nadrew)
  • Nonsensical status text appeared when using arrow keys to navigate the list of autocomplete choices for a command. (SpaceManiac)
  • Features:
  • New filters. A new filter called "wave" has been added. This creates a repeating distortion wave, which can be animated; animating multiple waves can produce a nice water effect, and the shader stacks up to 10 waves in a single call for efficiency. To use this games must be compiled in the new version and (during beta at least) must require clients to use build 1427 or higher. Applies to DM Language.
  • Allow bitwise operations up to 16777215. Bitwise operations now work with 24 bits instead of 16. Applies to DM Language
  • Move rendering code to byondwin. Internal change: The rendering code has been moved from Dream Seeker to byondwin.dll so it can be used by Dream Maker in the future.
  • DM Language:
  • Bitwise operations now work with 24 bits instead of 16.
  • A new filter called "wave" has been added. This creates a repeating distortion wave, which can be animated; animating multiple waves can produce a nice water effect, and the shader stacks up to 10 waves in a single call for efficiency.
  • To use this games must be compiled in the new version and (during beta at least) must require clients to use build 1427 or higher.
  • Dream Seeker:
  • Internal change: The rendering code has been moved from Dream Seeker to byondwin.dll so it can be used by Dream Maker in the future.

New in BYOND 512.1426 Beta (Jun 4, 2018)

  • Fixes:
  • Recursive mutable_appearances crash Dream Daemon
  • Dream Daemon:
  • Including a mutable appearance in its own overlays/underlays caused a crash when trying to resolve it into an immutable appearance. (Exxion)
  • The new ID array bag could cause crashes on world reboot because it wasn't being cleared properly. (MrStonedOne)
  • Dream Seeker:
  • Layering interactions with big icons screwed up in some cases like when using visual contents. (Ter13)

New in BYOND 512.1424 Beta (May 12, 2018)

  • Features:
  • Client optimizations
  • Dream Seeker:
  • Client pre-rendering has been vastly improved, with improvements to view calculations, creating icons from objects, sorting, and more, for speed gains in high-performance games.

New in BYOND 512.1423 Beta (Apr 30, 2018)

  • Fixes:
  • PIXEL_SCALE not showing sometimes
  • Cursor flickering over interface elements
  • Dream Seeker:
  • PIXEL_SCALE wasn't applied properly in some cases when a mix of color matrix effects and filters were on the screen, and possibly in some other fringe cases. (Yut Put)
  • A drop shadow filter applied to a transformed icon could push the icon out of position. (Lummox JR)
  • Cursor flickering has been vastly improved. (Xerif)
  • Features:
  • Find common texts up
  • Dream Maker:
  • Dream Maker now has a "Find Previous" option in the code editor.

New in BYOND 512.1422 Beta (Apr 22, 2018)

  • Fixes:
  • Ban system stability
  • Dream Daemon:
  • Several issues related to stability/security of the host ban system have been fixed. (MrStonedOne)
  • Features:
  • Non-modal find
  • Dream Maker:
  • The Find box used in the code and map editors has been changed to use the non-modal Find/Replace box instead, but with replacement options hidden when using find only. Because the Find/Replace box is non-modal, this is easier to work with.

New in BYOND 512.1421 Beta (Apr 14, 2018)

  • Fixes:
  • Calling html_encode with non-text poisons the return value
  • Dream Daemon:
  • A minor fix to html_encode() behavior for non-strings also rather badly broke it, producing incorrect results. (SpaceManiac)
  • Features:
  • Info about drag state in other mouse procs
  • Allow access to hidden status report feature in Dream Daemon
  • Dream Daemon:
  • A previously hidden feature that provided a status report to Dream Seeker via the browser showed info about connections, world running time, and any sleeping procs. This info is too useful, so an option has been added to Dream Daemon to access it via a new option in the World menu, which will print results in the output window. A similar shortcut option, not using the browser control either, will be added to Dream Seeker in a future build.
  • Dream Seeker:
  • A new "drag" parameter has been added to mouse parameters when up/down info is generated by pressing a button other than the one used for dragging. The value of the parameter is the name of the mouse button being held down for the drag.

New in BYOND 512.1420 Beta (Apr 11, 2018)

  • Fixes:
  • url_encode leaks byond's internal macro representation
  • Dream Daemon:
  • url_encode() was not properly removing internal macros like a. (Naksuasdf)
  • Dream Seeker:
  • Visual contents of turfs weren't properly preserved in some cases on the client, resulting in cases where the visual contents no longer showed up after changing Z levels. (Deathride58)

New in BYOND 512.1419 Beta (Apr 3, 2018)

  • Fixes:
  • Defines no longer override
  • dm.exe -full-paths inconsistent indentation
  • Dream Maker:
  • #define overrides stopped working correctly. (MrStonedOne)
  • Some error messages still did not output full path names for their files when using the -full_paths option. (Murrawhip)
  • Features:
  • Option to always compile before Run
  • Dream Maker:
  • Because changing icon files does not trigger the compiler to ask if you want to compile again when using the Run command, a new "Compile and Run" option has been added that will always compile first. Additionally, this option and Clean Compile now have keyboard shortcuts.

New in BYOND 512.1417 Beta (Mar 30, 2018)

  • Fixes:
  • Can't pass current argument along to procs.
  • Dream Daemon:
  • An obscure feature in the parser, allowing a potential argument to be validated by passing it to a proc, was broken way back in version 306. (AlexandraErin)
  • Dream Seeker:
  • The parser stumbled on verbs that started with the same word. (SpaceManiac)
  • Client-side icon operations could cause crashes under rare circumstances. (Arokha)
  • Command expansion with multiple arguments broke after the recent change that fixed expansion with one argument. (AlexandraErin)
  • Images that didn't explicitly override dir did not inherit their parent object's dir. (Hydrugen)
  • Features:
  • dm.exe full path output
  • Dream Maker:
  • dm.exe now has a -full_paths option to output the full path of any file that has an error or warning, rather than the relative path.

New in BYOND 512.1416 Beta (Mar 22, 2018)

  • Fixes:
  • Appearance flags do not update until something else does
  • Layer flickering in SIDE_MAP
  • First argument being parsed as an unrecognized verb when using a default command.
  • "Expanding" argument for args is 0 before any text entered.
  • Dream Daemon:
  • Argument filter procs making use of the "expanding" var didn't receive the correct value for the expanding flag when first called. (AlexandraErin)
  • Dream Maker:
  • A few more issues persisted in the icon editor, from the earlier icon change. (Verkister)
  • Dream Seeker:
  • If the only change on the map was to an icon's NO_CLIENT_COLOR flag, the map didn't redraw. (SpaceManiac)
  • A layering issue appeared in projects using SIDE_MAP when mobs had multiple layers and did not conform to world.icon_size. This may have repercussions for other SIDE_MAP games. Eventually a topological sort will be desired to properly handle all layering issues. (S10Games)
  • The choice popup for the input control didn't respond correctly in cases where the input had a built-in command. (AlexandraErin)

New in BYOND 512.1415 Beta (Mar 21, 2018)

  • Fixes:
  • Dream Maker drawing tool previews and undo malfunction
  • Dream Maker:
  • Several drawing tools in the icon editor were broken as a result of the internal icon format change. (Pixeluptas)

New in BYOND 512.1413 Beta (Mar 6, 2018)

  • Fixes:
  • Stuff appears all over the screen using random icons
  • Animated Filters Crash
  • Dream Daemon:
  • Attempting to animate a bogus object, or an abstract filter() not attached to an object, did not result in a runtime error. It could however result in a crash in some cases. (Dajinomight)
  • Dream Seeker:
  • Images with RESET_TRANSFORM could cause crashes in some cases, and likely led to other weird behavior. (Yut Put)
  • Features:
  • Including libraries should not enable debug mode.
  • Background/highlight specific text in output and other text elements.
  • Dream Maker:
  • Libraries compiled in debug mode are no longer able to force the main project to also use debug mode. In brief, #define DEBUG is internally wrapped in an #ifdef __MAIN__ ... #endif construct.
  • Dream Seeker:
  • Independent background color for portions of text is now supported in maptext and in output controls.

New in BYOND 512.1412 Beta (Feb 28, 2018)

  • Fixes:
  • Cursor-related crashes
  • Performing some operations on MAs causes unhandled exceptions
  • Dream Daemon:
  • Mutable appearances did not handle certain list read conditions properly, resulting in bad refs. (Arokha)
  • The internal value used to store the last src for animate() is cleared after a batch of procs is finished, and also during del() for objs, mobs, areas, and images. Previously this reference could cause a movable atom to stick around much longer than intended. (Lige)
  • Dream Seeker:
  • Cursors were not spared from client-side garbage collection, resulting in potential crashes and misbehavior. (Yut Put)
  • When a HUD object has multiple icons that aren't grouped together, their positions could be incorrect when using screen-edge coordinates such as LEFT, BOTTOM, etc. (Ter13)

New in BYOND 512.1411 Beta (Feb 26, 2018)

  • Fixes:
  • Rare but still existing image hang
  • vis_locs Doesn't Work
  • vis_contents Slowdown
  • Dream Daemon:
  • Certain operations with vis_locs, such as reading its length, did not work correctly. (Reformist)
  • Changing visual contents for a screen object did not necessarily cause them to visually update immediately. (Reformist)
  • Dream Seeker:
  • FLOAT_LAYER was often not resolved properly in cases involving screen objects. Also, the routine used to resolve float layers didn't handle layer 0 correctly. (Ter13)
  • Another cause of image-related hanging was found, this time related to images on turfs from different Z levels. (FKI)

New in BYOND 512.1410 Beta (Feb 22, 2018)

  • Fixes:
  • Images are still causing client hangs
  • Dream Seeker:
  • One more cause of turf image corruption and hangs was discovered. This ought to be the last of them. (MrStonedOne)

New in BYOND 512.1409 Beta (Feb 15, 2018)

  • Fixes:
  • Images not being shown
  • Dream Seeker:
  • Images were not being shown in many cases where the object they belonged to was out of view and not known to the client at the time the image was sent. (Laser50)

New in BYOND 512.1408 Beta (Feb 13, 2018)

  • Fixes:
  • New image hang
  • Dream Seeker:
  • Image hanging got worse in some cases and disappeared in others. The cause was certain image data not being cleared correctly due to calling the wrong function. (MrStonedOne)

New in BYOND 512.1407 Beta (Feb 12, 2018)

  • Fixes:
  • Animated Image randomly crashing dreamseeker
  • Dream Seeker:
  • Yet another cause of image hanging was identified. (Inutaishos)

New in BYOND 512.1406 Beta (Feb 1, 2018)

  • Fixes:
  • Server crash on world start
  • Dream Daemon:
  • More regular expression trouble was resulting in a crash for certain kinds of expressions. (MrStonedOne)

New in BYOND 512.1401 Beta (Dec 24, 2017)

  • Dream Seeker:
  • An earlier change to the way turfs in visual contents are offset has been reverted. They have gone back to using pixel offsets instead of transforms. The reason for this is that in isometric mode, pixel offsets are required to change the logical coordinates used for determining drawing order. (Lummox JR)
  • Fixes:
  • Visual contents turf offsets don't work right in isometric mode
  • Dream Daemon:
  • In response to soft-hanging issues affecting SS13 servers since 512.1396, most likely related to the new binary insertion proc queue introduced in 512.1396, the queue has been reverted to its old form so the issue can be narrowed down.
  • Features:
  • Revert the binary proc queue

New in BYOND 512.1400 Beta (Dec 19, 2017)

  • Dream Daemon:
  • The |= and ^= operators did not handle null correctly, so an existing numeric value would be cleared when ORed or XORed with null when instead they should have been left alone. (Ninjanomnom)
  • Dream Seeker:
  • Certain operations like grabbing drag/drop pointers could result in a crash. (Nadrew)
  • When the map was cleared in certain cases, like an eye moving to nowhere, some info on the client did not reset resulting in phantom objects and in some cases unnecessary glides from the old position. (Mystery16)
  • Fixes:
  • x |= y acts differently than x = x | y

New in BYOND 512.1399 Beta (Dec 15, 2017)

  • Dream Daemon:
  • Multiple reboots caused crashing. (MrStonedOne)
  • del(image) did not call the image's Del() proc. (FKI)
  • Overloading the ** operator did not work correctly. (Popisfizzy)
  • Overloading the % operator did not work correctly. (Popisfizzy)
  • Dream Seeker:
  • Plane master transforms could cause the Y drawing position to be incorrect in some cases. (Crazah)
  • Fixes:
  • Random world.Reboot() time crashes and hangs that MIGHT be sleep related.
  • Matrices incorrectly scaling
  • operator%() method will result in a "divide by zero" exception no matter what
  • operator**() method broken
  • Features:
  • Allow us to see more than 100 errors
  • Dream Maker:
  • A new option has been added to the command-line compiler to change and/or remove the error cap.

New in BYOND 512.1398 Beta (Dec 9, 2017)

  • Fixes:
  • Assigning a value to a mobs (c)key that already has a client causes logout to not be called.
  • Dream Daemon:
  • Logout() was not called when a mob's key change caused a client to disconnect. (MrStonedOne)
  • Dream Seeker:
  • Filters that created "overflow" effects like blurs and drop shadows were not taken into account when figuring out bounds, thus causing the objects to appear or disappear prematurely once their unfiltered bounds were out of view. (Lummox JR)
  • Features:
  • Client performance
  • Make plane_masters aware of their transformed culling boundaries.
  • Dream Seeker:
  • Multiple routines related to map assembly (pre-drawing) have been optimized to remove redundancies and in some cases obsolete calls. This should improve client performance across the board.
  • Objects drawn within transformed plane masters obeyed the original map bounds rather than taking the plane transform into account, which resulted in unwanted clipping. The plane transformation is now obeyed, which allows for more effects.

New in BYOND 512.1397 Beta (Dec 6, 2017)

  • Dream Maker:
  • A change to the compilation of various arithmetic operators turned out to be broken, so it has been reverted. (MrStonedOne)
  • Fixes:
  • Major unknown issue with dmbs compiled with 1396

New in BYOND 512.1396 Beta (Dec 5, 2017)

  • Dream Daemon:
  • The world.vars and global.vars lists did not behave like proper lists. (MrStonedOne)
  • Images with pixel offsets did not apply those offsets when determining visual bounds. (Lummox JR)
  • Setting a movable's bounds so that they overhung the edge of the map would allow movement beyond the map. (Mystery16)
  • Many hard-coded procs such as Move() did not handle arglist calls gracefully. This has been rectified for movement-related procs but still needs changing for some other built-in object procs. (FKI)
  • Dream Seeker:
  • Prompts for missing verb arguments could cause problems with macros, especially the Any and Any+UP macros. These macros, and any macros fired when "unsticking" keys, will no longer prompt for missing arguments but will simply fail silently in those cases. (Ninjanomnom)
  • When the server told the client that turfs with visual contents were no longer needed, the client misinterpreted the message, causing visual glitches. (Tigercat2000)
  • Fixes:
  • The new global and world vars lists are a little too "special"
  • Inconsistent bugs with vis_contents
  • Features:
  • Switch scheduler insertions to a vector and use binary insertion sort
  • Dream Deamon:
  • The proc scheduler has been updated to improve response times for various cases arising in complex games. Also, a number of experimental changes have been made under the hood to improve server performance.

New in BYOND 512.1395 Beta (Nov 12, 2017)

  • Dream Seeker:
  • Image flicks were based on the old appearance when an updated appearance was pending. (FKI)
  • Some values of motion blur still caused crashes. (FKI)
  • Dream Seeker:
  • Maptext now supports a limited version of the CSS text-shadow property. The limit is that only one shadow is currently allowed.

New in BYOND 512.1394 Beta (Nov 9, 2017)

  • Dream Daemon & Dream Seeker:
  • Visual contents did not update properly for screen objects. (CipherWing)
  • Dream Maker:
  • Compiled code for the new "chaining" dot operator, and the conditional dot operators, behaved incorrectly in some complex cases. To alleviate this problem, they now compile with new instructions.
  • Please note: Projects compiled from this version of 512 forward that use any of these operators won't work properly in earlier 512 versions; likewise conditional dot operators compiled in earlier 512 versions will not work correctly in the new version. It is important to recompile any 512-specific code you are using to host in the 512 beta. (Mightymo)
  • Dream Seeker:
  • Large values for the motion blur filter could result in hanging because of an error in the way the engine tried to break the blur down into multiple passes. (FKI)
  • The outline filter had unwanted clamping behavior. This has been eliminated by a refactor, which also speeds up processing of large outlines. (FKI)
  • Build 512.1393

New in BYOND 511.1385 (Nov 9, 2017)

  • Dream Seeker:
  • Maptext was cached incorrectly, causing it to apply atom.color to the cached text.
  • (Reformist)
  • Webclient:
  • Animating between a degenerate matrix and any other matrix often failed. (Lummox JR)
  • Multiple issues with plane masters were discovered. (Unwanted4Murder)
  • Webclient:
  • Downloaded fonts now function correctly. For best compatibility, it is wise to also include .woff or .woff2 conversions in your resource file, in case the user's browser has trouble with a .ttf or .otf you may be using.