Change Log/2019/October

October 30, 2019 v408
Official Release Notes

Improvements

 * InputObject:IsModifierKeyDown tells you whether the modifier key was down for a given input event Enum.ModifierKey.[Ctrl, Alt, Shift, Meta].
 * Added attributes, which allow developers to extend instances with additional metadata and properties.
 * Add Animator:GetPlayingAnimationTracks and Animator.AnimationPlayed to Animator. Animator.AnimationPlayed is not enabled yet. Along with the model search change, this eliminates the need for an AnimationController in animated models without a Humanoid.
 * Added JointInstance.Enabled, but waiting for supported clients to take over before enabling.
 * Implemented some changes to change Animator joint search root from "my parent’s parent" to FindFirstAncestorOfClass("Model"). Also implemented scanning to find games that may be affected in advance of enabling this change.

Fixes

 * Fixed issue where plugin installation window was appearing twice.
 * Fixed the asset configuration window showing all groups instead of just those you can publish assets to.
 * Fixed brackets auto-completion inside nested function calls.
 * Fixed a crash when removing UI objects under certain circumstances.
 * Fixed several issues with ScrollingFrames.
 * Fixed a major performance regression when setting ScrollingFrame.CanvasPosition.
 * Fixed a crash on macOS 10.11 with shadowmaps.
 * Fixed graphics tearing on Google Pixelbook.

October 23, 2019 v407
Official Release Notes

Improvements

 * Plugins will now install immediately when clicking on the Install button on the web, rather than opening the web page inside Studio.
 * Refactored the avatar sound scripts.
 * Added two new Lua table functions:
 * table.create(size, [value]): creates an array-like table of size size, optionally filled with value. Note that due to Lua table length semantics, length of the result is nil if value is nil or not specified.
 * table.find(table, value, [init]): returns the numeric index of the first occurrence of value in the table, starting with init (that defaults to 1), or nil if the value isn't found. The search stops at the first hole in the array similarly to ipairs.
 * Similarly to Lua 5.2, math.log now accepts logarithm base as a second, optional, argument:
 * Fixed a bug with getfenv(0) deoptimizations.

Fixes

 * Fixed a crash while loading places that contained MeshParts with bad data.
 * Fixed a bug where trying to drag after an in-place duplicate would drop the multi-selection.
 * Fixed a bug where BorderSize would not update the padding of a GuiObject when GuiObject.BorderMode was set to Middle or Inset.
 * Fixed incorrect text rendering in the Game Settings page when Studio is set to Chinese
 * Fixed an issue where seeking would not work properly for some sound files.

Changes

 * Brackets and quotes are no longer automatically closed in comments or strings.
 * Now, Model:MoveTo will only Move the model to the given point, and not attempt to join the model to outside parts. If you want a model to join after move, call Workspace:JoinToOutsiders.
 * Removed the following from DebugSettings:
 * DebugSettings.RobloxProductName
 * DebugSettings.VideoMemory
 * DebugSettings.OsPlatformId
 * DebugSettings.OsPlatform
 * DebugSettings.OsVer
 * DebugSettings.OsIs64Bit
 * DebugSettings.SystemProductName
 * DebugSettings.GfxCard
 * DebugSettings.SIMD
 * DebugSettings.ErrorReporting
 * Removed JointType.

October 16, 2019 v406
Official Release Notes

Improvements

 * Added autocomplete information for bit32, table.pack/table.unpack, string.split.
 * Since the automatic "RecentSave" causes confusion and unexpected data losses to some users, we decided to remove this feature gradually. The first step is to stop auto-generating files into the "RecentSave" folder, but such existing files are still accessible through the "Open Recent Saves" file menu.
 * Added support for text written in Bengali, Hindi, Georgian, Khmer, Burmese, Sinhala, and Thai.
 * Dynamic Thumbstick no longer forces auto jump.
 * Added SourceGameId as a field in player join data. This will make it easier for developers to verify the origin of a teleport.
 * Made RbxThumb accept arbitrary orders of parameters.
 * Implemented coroutine.isyieldable from Lua 5.3:.

Fixes

 * Fixed a memory leak in dynamic thumbstick.
 * SpawnLocations will no longer move characters above parts that they do not collide with.
 * Fixed StarterPlayer/MinCameraZoomDistance and StarterPlayer.CameraMode not being correctly taken into account until the user zoomed their camera.
 * Fixed an error with ContextActionService:BindAction where createTouchButton = true would sometimes error when being called too early.
 * Fixed a crash in manual joint adorn rendering code when one of the parts was destroyed.

Changes

 * Now, you can call plugin:SetSetting("key", nil) to remove a setting.

October 9, 2019 v405
Official Release Notes

Improvements
Number literals now support binary literals (0b10101) and digit separators (1_000_000).
 * Added new GameIcon sizes 128x128, 256x256 and 512x512 to rbxthumb thumbnail loading.
 * String literals now support \z, \x and \u escapes from Lua 5.2.

Fixes

 * Potential fix for observed crash on Studio close.
 * Fixed gamepad navigation not working correctly when the avatar context menu is enabled.
 * Fixed a bug that would cause disabled LayerCollectors to sink PointerActions.
 * Fixed an issue causing a changed event for UIGridLayout.AbsoluteCellSize to never be fired.
 * Fixed an issue where GetStringForKeyCode was not working correctly for dead keys on Windows.
 * Fixed recently broken tick function on Windows.
 * Fixed a performance issue with the new Beta Animation Editor.

Changes

 * Now, the remote exhaustion message for the event delayed invocation queue will display less often.
 * Disabled string.dump.

October 3, 2019 v404
Official Release Notes

Improvements

 * The Quick Access Menu config now supports selecting and manipulating multiple items at once.
 * FixedRobloxPluginGuiService not showing up in the explorer when the "Show Hidden Objects in Explorer" setting was enabled, as reported in.
 * Improved package performance when user typing in a script, which is a descendant of a very large package (>10000 parts).
 * Improved mechanism interpolation on some of the more complicated mechanisms.

Fixes

 * Fixed WeldConstraint Part property replication when using TeamCreate.
 * Fixed a Studio crash that happened while trying to insert an archived mesh using the Game Explorer.
 * Luau now correctly interprets vertical tabs and form feeds as whitespace in scripts.

Changes

 * Users will be warned on opening the same place file from multiple Studio instances. Only the first Studio instance that opens the file has the file ownership (others cannot save to this file to avoid an accidental file overwrite).
 * Deprecated the legacy thumbstick touch movement mode.
 * Removed DPad and Thumbpad movement modes.
 * Deprecated GlobalDataStore:OnUpdate.
 * Added table.move from Lua 5.3:

October 3, 2019 v403
Official Release Notes

Improvements

 * Users will be warned on opening the same place file from mutiple Studio instances. Only the first Studio instance that opens the file has the file ownership (others cannot save to this file to avoid an accidental file overwrite).
 * Improved Lua interpreter dispatch performance for Windows, making Lua-heavy benchmarks ~5-6% faster in Studio.
 * Addition to Surface Changes Beta Feature - changing a part surface with the Surface tool on the Studio toolbar now correctly removes joints and joins with surface welds only. Hinge and Motor surfaces are removed from this list.

Fixes

 * Fixed bug with SetCore("AvatarContextMenuTarget") not working correctly when attempting to close the menu.
 * Mac Studio (Release 401) failed to self-update due to a bug. Please delete your Mac Studio bundle and download the latest DMG from Roblox and do a clean installation.
 * Fixed the 3-5% crash increase caused by interpolation multithreading.
 * Fixed an issue where WeldConstraint wouldn't be selectable in Studio when Constraint Details is off and Show Welds is on.
 * Fixed a bug where humanoid raycasts for standing/climbing would not ignore parts connected via NoCollisionConstraint.

Changes

 * Made explorer icon grayscaling work with all instances (previously just scripts/physics constraints).
 * Moderated Plugins will be automatically uninstalled.
 * Plugins can now call plugin:SetSetting("key", nil) to remove a setting.
 * Large Humanoid characters are now allowed to have a Humanoid.HipHeight of greater than 100 (up to 2048). So very large Humanoid characters should now get correctly placed on the ground.

October 3, 2019 v402
Official Release Notes

Improvements

 * Now, the X/Y/Z accessors for Vector2, Vector3 and CFrame are ~30% faster.
 * Improved clarity of Lua error messages, for example foo.bar now fails with attempt to index nil with 'bar' if foo is nil.

Fixes

 * Now the CursorPosition property fires changed events when typing into a textbox.
 * Fixed a crash in manual joint adorn rendering code when one of the parts was destroyed.
 * Fixed a crash in mass/inertia calculation code when welding chains of ~4K parts. We still recommend against welding things that way if it's not literally a four thousand block stack. Do whatever is natural for the construction, but everything in the assembly welded to one central part is definitely the best case for performance.

Changes

 * Brackets and quotes are no longer automatically closed in comments or strings.
 * Removed 'ExplosionType/CratersAndDebris`.
 * Removed Comma, Period, PageUp, and PageDown camera pan shortcuts.
 * Studio autocomplete now recommends using R, G, B, Lerp instead of r, g, b, lerp for Color3 objects.
 * Now scripts are allowed to write to the StarterPlayer.UserEmotesEnabled property.

October 3, 2019 v401
Official Release Notes

Improvements

 * Removed the yellow package modification banner in Studio to unblock users from saving a place with a modified package inside.
 * Now UserInputService:IsKeyDown and UserInputService:IsMouseButtonPressed work for the entire application, not just when the main viewport has focus.
 * Unblocked users from saving a place with a modified package inside.
 * New Animation Editor plugin as a Beta Feature.

Changes

 * Support for Mac OSX 10.9 and below is being sunsetted.
 * Surface join welds created with the Surface Join Change Beta Feature will now be plan Weld instances named "Weld", rather than ManualWelds with custom names.

October 3, 2019 v400
Official Release Notes

Improvements

 * Introduced the flatten terrain tool.
 * Added UDim2/fromOffset and UDim2/fromScale constructors.
 * New API Terrain:ReplaceMaterial to replace the terrain material within a region.
 * Property access and method calls are now noticeably faster for objects in deep hierarchies.
 * Added APIs to allow plugins to access the Studio Rotate Increment, Grid Size, and Local Space settings.

Fixes

 * Fixed a bug where the options in Developer Console on mobile appeared unselectable and behind the console.
 * Fixed a crash while uploading a mesh where the texture file path is missing.
 * Fixed a bug where cars would be stuck in reverse with gamepad throttle inputs.
 * Fixed several bugs with ScrollingFrames.
 * Fixed the issue described in this report:.
 * Fixed a problem where touch events were not generated for parts created too close to each other when one of the parts has CanCollide = false.
 * Fixed rigid body mass sometimes not being updated when a Massless part become its own root, causing a body to have 0 mass, instantly warp into the NaNiverse, and be destroyed. This fixes a hat dropping bug.

October 3, 2019 v399
Official Release Notes

Improvements

 * Added support for Deep Links for mobile apps using custom URL schemes "robloxmobile:" and "roblox:".
 * Now, the save as local plugin always saves using the .rbxm file format. You no longer need to make a non-script parent element to have model or GUI elements in plugins you write locally.
 * Added support for PointerActions to PlayerScripts.
 * New ContentId type to allow easy loading of thumbnails.
 * Improved interpolation on some complicated mechanisms.
 * Interpolation should now run on multiple cores.

Fixes

 * Fixed a bug that user cannot open local places that contain packages.
 * Fixed a crash in Studio when displaying tooltips on OSX.