BYOND 5.0 Version 510 Release Notes
Build 510.1347
Fixes (More Info)
Dream Seeker
- Regression: When SEE_PIXELS was used, mouse behavior could break completely. (Clusterfack)
Build 510.1346
Fixes (More Info)
Dream Daemon
- json_decode() didn't handle some strings correctly. (Somepotato)
- JPEG-based icons caused crashes in some cases. (Xirre)
- Sending objects to the webclient caused a crash in some rare cases. (Rotem12)
Dream Daemon & Dream Seeker
- CSS parsing could sometimes hang. (Devourer Of Souls)
Dream Seeker
- Defining an area or a multi-tile HUD object as a PLANE_MASTER caused slowdowns from duplicate plane masters (most of them empty) being drawn. This is a re-fix of an old bug, whose original fix culled all empty plane masters even if they weren't duplicates. (Lummox JR)
- SEE_TURFS now turns off SEE_PIXELS just like SEE_OBJS/MOBS do. Additionally, mouse behavior did not handle the dark square from SEE_PIXELS properly. (Clusterfack)
Features (More Info)
DM Language
- /image now has a default plane of FLOAT_PLANE. This is a compiler change and will not affect already-compiled code.
Webclient
- The webclient will no longer redraw the canvas when there hasn't been a map tick, which should improve performance.
Build 510.1345
Fixes (More Info)
Dream Daemon & Dream Seeker
- Extended (big-icon) turfs could be cleared away from the client and not properly restored in some cases. Additionally, the client did not properly handle images on extended turfs so that it could re-apply them if the turf reappeared. (Bravo1)
Dream Seeker
- Saving screenshots was broken. (Lige)
- Image updates didn't appear on the correct map tick, and in some environments they didn't appear until a fresh map draw. (Lige)
- Images didn't properly update their start time for icon animations when changing icons/states. (Ter13)
Features (More Info)
Dream Seeker
- PLANE_MASTER objects with no other objects on the plane are now drawn, whereas they weren't before. There are cases where this may be desirable, for instance a lighting plane when all the lights go out.
Build 510.1344
Fixes (More Info)
Dream Daemon
- Overlays loaded from a savefile did not have their plane set to FLOAT_PLANE, so a line such as overlays -= 'icon.dmi' failed to remove the loaded overlay. (Zasif)
- Logging in as a guest caused unexpected disconnects in some cases. (Ter13)
Dream Maker
- world.tick_lag will round to the nearest millisecond instead of always rounding down, which will give more accurate times when setting it via world.fps. (Ter13)
Build 510.1343
Fixes (More Info)
Dream Seeker
- Images could cause hangs on the client. (Kamuna)
Build 510.1342
Fixes (More Info)
Dream Daemon
- Using .gif files as icons directly could cause crashes in some cases. (Clusterfack)
- In rare cases, pick() could try to pull an item from an invalid list index. (GinjaNinja32)
- initial(appearance_flags) did not return the correct value. (Clusterfack)
Dream Seeker
- winget(player,null,"url") returned an incorrect port number in some cases when running in single-player mode in Dream Seeker. (Ter13)
- Maptext drew incorrectly or in the wrong position in several cases when in software rendering mode. (Lummox JR)
- The method used to upscale maps in hardware mode has been altered to work around StretchRect() bugs in stupid stupid Nvidia drivers. (Ter13)
Webclient
- A sanity check in an icon read routine was being optimized out, causing map renderer crashes in some cases. (Doohl)
Features (More Info)
DM Language
- Setting an overlay's plane to FLOAT_PLANE will make it keep the plane of its parent. When icons and icon_states are added to overlays directly, this is the plane they get.
Dream Seeker
- Dream Seeker's handling of images was poor when large numbers of them were in play. The internals have been cleaned up a little to avoid some nasty O(N^2) loops.
- Dream Seeker will now seek out AMD and Nvidia cards first, and Intel cards last, when choosing a display adapter.
- Images with the override var set will cause the atoms using them to inherit any name or suffix set by the image. If the image's name or suffix is blank, the original still takes precedence.
Build 510.1341
Fixes (More Info)
Dream Daemon
- Calling a proc on an invalid value said "Cannot execute null.[proc_name]()" even if the value wasn't null. This has been fixed in several applicable routines for better runtime error reporting. (MrStonedOne)
- The proc ID cached for world.Error() didn't reset when rebooting the world or loading a new project in the same session. (MrStonedOne)
Dream Daemon & Dream Seeker
- Image syncing was broken, and also did not work properly with screen objects. (SilkWizard)
Dream Seeker
- Maptext on an animated icon could be replaced with gibberish in some cases. (Zagros5000)
Features (More Info)
Dream Seeker
- winget(client,null,"url") will now return the URL the client is connected to, in IP:port or domain:port form. The port is 0 if Dream Seeker is running a .dmb file in single-player mode, and the value is empty if not connected.
- Images with override set will no longer reset color, alpha, transform, appearance_flags, or blend_mode. Instead they will inherit those values from the parent unless otherwise instructed via the image's own appearance_flags and blend_mode.
Webclient
- The webclient now supports 3D sounds and more SOUND_UPDATE features.
Additionally, you can create a sound with fallback files via sound(list(first_choice,second_choice,third_choice)) or sound.file = list(...). For best compatibility, it is suggested that you use an .ogg sound as the first choice, and .mp3 as the backup. Using a list of possible sounds is only supported with servers of this version or higher; Dream Seeker does not use this feature yet and will always use the first-choice sound.
Build 510.1340
Fixes (More Info)
Dream Seeker
- Images didn't always align their appearance changes with server map ticks, causing them to change, appear, or disappear out of sync if the client did a separate map tick. (Ter13)
Webclient
- Regression: Maptext without an icon caused the map renderer to skip the frame and render nothing. (Doohl)
Features (More Info)
Dream Maker
- Regular expressions can now be used for find/replace in the code editor. A "whole word" option has also been added.
- Pressing the stop button during compilation will return focus to the current tab, if it's a code editor tab.
Build 510.1339
Fixes (More Info)
Dream Daemon & Dream Seeker
- The splitting of a matrix into its component operations (scale and skew, rotation, and translation) during interpolation was done incorrectly for some matrices. (Popisfizzy)
Dream Seeker
- Changing client.mouse_pointer_icon, color, or pixel offsets on the same tick as a HUD refresh could prevent a HUD refresh for several ticks. (Silk Games)
Webclient
- Regression: PLANE_MASTER caused the map renderer to fail. (Rotem12)
Build 510.1338
Fixes (More Info)
Dream Daemon
- The client does extra view calculations on "extended" turfs, and was being told by the server to hold onto such turfs even when it no longer needed them. (Kamuna)
- json_encode() sometimes decreased the refcount of random values (junk data), potentially causing a crash. (MrStonedOne)
Dream Deploy
- The installer failed if it asked to close down a process (such as byond.exe), the process closed on its own or the user shut it down, and then the user said Yes to shut it down forcibly. (MrStonedOne)
Webclient
- Icons in controls other than the map only displayed the first icon_state in the file. (Mitchy)
Build 510.1337
Fixes (More Info)
Dream Daemon
- Throwing an exception outside of a try/catch block, when world.Error was there to catch it, did not result in the same exception being sent to world.Error(). Additionally, the actual new exception sent to world.Error() had a memory leak. (Super Saiyan X)
Dream Maker
- The throw statement was parsed incorrectly in several cases. (Super Saiyan X)
Dream Seeker
- Icon offset parameters were incorrect for objects grouped with a PLANE_MASTER, in some cases. (Zagros5000)
- Map controls sometimes ended up failing during init and falling back on software mode inappropriately. (Ter13)
Webclient
- Atoms with underlays but no overlays could cause a renderer crash when they were refreshed. (Doohl)
- Areas could be garbage collected too early, causing the server to think the client still knew about them. (Pixel Realms)
Build 510.1336
Fixes (More Info)
Webclient
- The FPS improvements in the last build didn't go quite far enough. Icons being moved around in the display order were being removed and re-added frequently during high-action game events such as battles, causing more overhead than necessary. (Pixel Realms)
Build 510.1335
Fixes (More Info)
Webclient
- Several sources of FPS drops were encountered. Chief among them was that using KEEP_TOGETHER on single-icon atoms (no overlays or underlays to speak of) caused a massive performance hit. Performance in the loop that arranged icons for display also suffered after the implementation of PLANE_MASTER. (Pixel Realms)
- Another cause of map renderer crashes was found. (Doohl)
- Certain control styles did not get set properly at the time of skin initialization. (Khyberkitsune)
Build 510.1334
Fixes (More Info)
Dream Daemon
- Turfs with big icons did not follow normal big-icon rules, thus disappearing from view too early, when they were on the map already when the world first loaded. (NSBR)
- Turfs with big "out of bounds" objects could sometimes be marked as interesting only after the object was sent, causing the client to think nothing was there and therefore not show the object. (Bravo1)
- Rebooting caused the server to think the client still knew about turfs that were relevant to displaying big icons. (Kamuna)
Dream Maker
- Errors in the instance editor could sometimes result in a crash. (Ter13)
Webclient
- The map renderer crashed in some situations. (Doohl)
- Non-out-of-bounds movables stopped showing up in the webclient. (Doohl)
Build 510.1333
Fixes (More Info)
Dream Daemon
- Maps with a large number of objs could see mild stuttering as clients moved into range of new chunks. (MrStonedOne)
Dream Seeker
- Large scaling transforms still didn't behave correctly for item visibility, causing some objects to pop out of view at the wrong time. (This issue only affects the client.) (Kamuna)
Webclient
- Objects with big icons popped in and out of view on the webclient since the map chunk change. (Lummox JR)
- Maptext on blank icons did not appear. (Doohl)
Build 510.1332
Fixes (More Info)
Dream Daemon
- Turfs that were technically "in bounds" for map chunking purposes were considered out-of-bounds in some cases, because they counted pixel_x/y offsets twice. This caused slowdowns in some rare situations. (Ishuri)
- Regular expressions with zero-width matches misbehaved in some cases. (Yota)
Dream Seeker
- Objects on "interesting" out-of-view turfs sometimes were visible even if the object itself should have been fully obscured. (MrStonedOne)
Webclient
- The output control did not set icons to 16x16 pixels by default. (Khyberkitsune)
- Changing rendering modes could sometimes crash the renderer. (Khyberkitsune)
- Maptext was not visible in some cases. (FKI)
Features (More Info)
DM Language
- A new appearance_flags value, TILE_BOUND, can turn off behavior that allows an atom to be seen even if it's far from its base tile. An atom with TILE_BOUND will act, for display purposes, as if its visible bounds are the exact tile it's on. If that tile is obscured by opacity or luminosity, so is a TILE_BOUND obj on it, even if that obj has pixel/step/transform offsets that place it well outside the bounds of that tile. TILE_BOUND is inherited by all images and overlays.
Build 510.1331
Fixes (More Info)
Dream Daemon
- Large worlds often had most of their objs invisible, due too many objects being marked as having dirty bounds. (Doohl)
Dream Seeker
- Big icons still could pop in and out of view suddenly in some cases. (NSBR)
Build 510.1330
Fixes (More Info)
Dream Daemon
- A considerable number of appearance artifacts occurred as a result of a mistake in the new map chunk system. This led to overlays not being updated, appearances looking wrong, etc. (D4RK3 54B3R)
Webclient
- Screen objects with pixel offsets did not appear correctly, due to the number before the : symbol being mistaken for a map name. (Kozuma3)
- Maptext appeared in the wrong place when the height of the icon it was attached to didn't match maptext_height. (Kozuma3)
Build 510.1329
Fixes (More Info)
Dream Daemon
- Certain games could cause stack overflows with the new map chunk code. Additionally, turfs seen by the client did not respect large client pixel offsets. (Bravo1)
- Premature initialization of map chunks caused potential crashes. (Ss4toby)
- json_decode() was subject to reference count errors when decoding object literals. (Somepotato)
Dream Seeker
- Icons that had a large scale or size sometimes disappeared suddenly when walking away from them. (Nadrew)
Build 510.1328
Fixes (More Info)
Dream Daemon
- The [^...] pattern in regular expressions did not match \n and \r when using single-line mode. In multi-line expressions, \n and \r are still not counted as matches. (Yota)
- Large, transformed, and animated objects should now behave much better when coming in and out of view. (Ganing)
Dream Seeker
- pixel_z offsets of overlays weren't respected when applied to screen objects. (Jittai)
- Transformed atoms did not interact correctly with right-click menus. (Pseudonym)
Features (More Info)
Dream Maker
- If no text is selected, using Find or Find & Replace will not fill in a word for you, except the first time you use it.
Build 510.1327
Fixes (More Info)
Webclient
- Gliding did not work correctly in some cases when client.eye was not matched to the player's mob. (Doohl)
Build 510.1326
Fixes (More Info)
Dream Seeker
- The blend mode did not reset properly after drawing icons with KEEP_TOGETHER, in some cases. (D4RK3 54B3R)
Webclient
- Regression fix: Rendering in high-quality mode didn't produce the "sharp" upscaling used by Dream Seeker, and artifacts were present when downscaling. (Lummox JR)
- The Child control has been updated to avoid moving unused panes around the document. This will help prevent browser controls in those panes from refreshing at unwanted times. (PopLava)
Features (More Info)
Webclient
- PLANE_MASTER has now been implemented in the webclient.
Build 510.1325
Fixes (More Info)
Dream Seeker
- Maptext caused drawing errors in many cases. (Metamorphman)
Webclient
- Passing null to a JavaScript funtion in a browser control via output() did not work. (PopLava)
- Mouse clicks didn't work correctly. (Doohl)
Build 510.1324
Fixes (More Info)
Dream Seeker
- Mouse hits didn't work correctly with certain transforms. (LordBistian)
- Right-click menus didn't respect the correct mouse hit rules for PLANE_MASTER and KEEP_TOGETHER. (Nadrew)
- Maptext did not work correctly with KEEP_TOGETHER. (Reformist)
Features (More Info)
Dream Seeker
- Maptext now supports full transformations via atom.transform. It also now has a virtual KEEP_TOGETHER with its parent icon.
Build 510.1323
Fixes (More Info)
Webclient
- Maptext is now cached for much better performance. (Doohl)
- A sanity check has been added to prevent client crashes when flicking an invalid icon. (Doohl)
- client.default_verb_category was not used. (Super Saiyan X)
- Animations did not handle transitions from existing animations properly. (Doohl)
Features (More Info)
DM Language
- QUAD_EASING has been added as an easing type for animate(), for gravity effects.
Webclient
- KEEP_TOGETHER has been implemented for the webclient.
Build 510.1322
Fixes (More Info)
Dream Daemon
- regex.Replace() returned a number instead of a string. (Neersighted)
Dream Seeker
- Multiple PLANE_MASTER objects interfered with one another. (Ishuri)
Features (More Info)
DM Language
- By popular demand, splittext() has been changed so that the delimiter is an exact match, rather than a set of characters to match. The delimiter is always case-sensitive.
Build 510.1321
Fixes (More Info)
DM Language
- Overlays with partial transparency did not blend correctly when used with KEEP_TOGETHER. (Reformist)
Dream Maker
- Color matrices set at compile-time could inappropriately set the alpha column when a list(color,color,color,color,color) format was used. (Metamorphman)
Dream Seeker
- client.color was not correctly applied to PLANE_MASTER objects. (It is not meant to apply to objects grouped within the plane, but was supposed to apply to the final grouped image.) (Bravo1)
- Empty PLANE_MASTER planes will no longer attempt to draw anything. (Nadrew)
- The mouse_opacity of a PLANE_MASTER object now determines how icons in the plane interact with the mouse. Additionally, mouse interaction will work correctly if the plane is transformed. (Bravo1)
- The blend_mode value was not reset properly when using KEEP_TOGETHER or KEEP_APART. (Tobba)
Build 510.1320
Fixes (More Info)
Dream Daemon
- The server ticker skipped a large number of map ticks when overloaded, instead of skipping map ticks gradually based on usage. (MrStonedOne)
- Using locate() or looping through area contents missed any movable atoms that overhung the area (i.e., big atoms or atoms with pixel offsets) but whose "true" home turf did not belong to the area. (LordAndrew)
Dream Maker
- The "invalid variable" message was sometimes suppressed during compilation when it shouldn't have been, allowing worlds to compile that should have failed. (GinjaNinja32)
Dream Seeker
- Icons in output controls often did not appear in the correct position. (IceFire2050)
Features (More Info)
DM Language
- To improve communication with browser controls and especially the webclient, JSON now has native support. The two new procs, json_encode() and json_decode(), can be used to convert between BYOND values and JSON. (Please note: Datums are not serialized with json_encode(); they are converted to their text output equivalent.)
- The savefile.Flush() proc has been added, to make sure any pending writes to a savefile are done immediately.
- The new world.tick_usage var tells what percentage of the current server tick has been used up. Except when this comes from a player command or some other kind of "instant" event, this happens before any maps are sent to the players.
- Advanced lighting and other special effects are now possible via PLANE_MASTER, a new value that can be used in appearance_flags. Create an atom with this flag and make it visible to a player (e.g., on the HUD or as an image), and then all other icons on the same plane will be drawn to a temporary surface. That temporary surface will be shown on the current scene and subject to the color, alpha, blend_mode, and transform of this master atom. (The master atom's icon itself is not drawn. This atom is just a placeholder for grouping all the others together.)
- A new appearance_flags value, KEEP_TOGETHER, allows an icon to be drawn together with all its overlays/underlays/images before being subjected to changes in color, alpha, transform, etc. With this flag, mobs that have many overlays can use the alpha value to fade out and the whole mob will fade as one unit, rather than each icon fading separately.
KEEP_APART can be used for any overlays or images that you don't want to be included in the group. Icons on other planes will automatically use KEEP_APART.
- New text handling procs have been added:
- findlasttext / findlasttextEx
- replacetext / replacetextEx
- jointext / list.Join
- splittext
- spantext
- nonspantext
These should make tasks such as parsing much easier, especially when paired with new regular expression support.
- Regular expressions are now supported with the new /regex datum and matching regex() proc.
509 Release Notes | View All