Client Difference Log
API Changes
Added Property bool NetworkSettings.PrintJoinSizeBreakdown
Added Property Enum<StudioDataModelType> Plugin.HostDataModelType {RobloxScriptSecurity} [ReadOnly] [NotReplicated]
Added Property Enum<TextInputType> TextBox.TextInputType {RobloxScriptSecurity} [<đ> Load-only] [NotReplicated]
Added Function Array ContentProvider:GetFailedRequests() {RobloxScriptSecurity}
Added Function bool GuiService:GetGameplayPausedNotificationEnabled()
Added Function void GuiService:SetGameplayPausedNotificationEnabled(bool enabled)
Added Function void MemStorageService:Fire(string key, string value = "") {RobloxScriptSecurity}
Added Function Instance Plugin:Bind(string key, Function callback) {RobloxScriptSecurity}
Added Function Instance Plugin:BindAndFire(string key, Function callback) {RobloxScriptSecurity}
Added Function void Plugin:Fire(string key, string value = "") {RobloxScriptSecurity}
Added Function string Plugin:GetItem(string key, string defaultValue = "") {RobloxScriptSecurity}
Added Function bool Plugin:HasItem(string key) {RobloxScriptSecurity}
Added Function bool Plugin:RemoveItem(string key) {RobloxScriptSecurity}
Added Function void Plugin:SetItem(string key, string value = "") {RobloxScriptSecurity}
Added Function bool StudioService:IsPluginInstalled(int64 assetId) {RobloxScriptSecurity}
Added Function bool StudioService:IsPluginUpToDate(int64 assetId, int64 currentAssetVersion) {RobloxScriptSecurity}
Added Function void StudioService:TryInstallPlugin(int64 assetId, int64 assetVersionId) {RobloxScriptSecurity} [Yields]
Added Event DraftsService.DraftOutdatedStateChanged(Instance script, bool outdated) {RobloxScriptSecurity}
Added Event GuiService.NetworkPausedEnabledChanged(bool enabled) {RobloxScriptSecurity}
Added Event UserInputService.PointerAction(float wheel, Vector2 pan, float pinch, bool gameProcessedEvent)
Added Enum StudioDataModelType
Added EnumItem StudioDataModelType.Edit : 0
Added EnumItem StudioDataModelType.PlayClient : 2
Added EnumItem StudioDataModelType.PlayServer : 3
Added EnumItem StudioDataModelType.RobloxPlugin : 4
Added EnumItem StudioDataModelType.UserPlugin : 5
Added EnumItem StudioDataModelType.Null : 6
Added Enum TextInputType
Added EnumItem TextInputType.Default : 0
Added EnumItem TextInputType.NoSuggestions : 1
Added EnumItem TextInputType.Number : 2
Added EnumItem TextInputType.Email : 3
Added EnumItem TextInputType.Phone : 4
Changed the security of Function MemStorageConnection:Disconnect
from: {RobloxScriptSecurity}
to: {PluginSecurity}
Changed the security and serialization of Property TriangleMeshPart.CollisionFidelity
from: {NotAccessibleSecurity} [<đ> Runtime-only]
to: {âď¸PluginSecurity} [<đ> Load-only]
Removed Function DraftsService:OpenDrafts
Removed Event DraftsService.ScriptRemoved
Removed Event DraftsService.ScriptServerVersionChanged
Removed Tag [NotScriptable] from Property TriangleMeshPart.CollisionFidelity
(Click here for a syntax highlighted version!)
Thatâs a loaded update.
Whatâs this about?
I thought this has always been scriptable in the Studio Command Line? I know that Iâve changed the CollisionFidelity of parts before when I wanted to change a group of them by a certain condition.
But not scopes being opened in comments altogether?
Any specification as to what was fixed?
So, does this mean that we can create our own, custom pause menus?
If not, is this method only for CoreGuis?
Is this that first class support that was talked about a while ago?
Additionally, are there plans to extend these sorts of optimizations to other built-in libraries as well? Iâm thinking explicitly the string
library, though Iâm not sure how practical it is outside of things like string.byte
.
Five or six loosely-related issues were fixed here; I made some significant improvements to how scrolling frames lay themselves out - they should be more robust now. One issue that I fixed is where the scrollbar isnât attached to the scrolling frame until you mouse over it in some cases; scrollbars should now be anchored to their scrolling frame.
For once, the fix may be to not comment your code.
I was having this exact issue - I was planning to go all the way back to 2013 and LoadLibrary a fix, so Iâm glad that this was resolved!
âAdded EnumItem TextInputType.Email : 3
Added EnumItem TextInputType.Phone : 4â
Thatâs strange. I canât imagine that prompting a user for an email address or phone number would be allowed (it definitely isnât). Itâs nice to have TextInputTypeâs, but I canât really think of any scenarios where these two would really be of any practical use while also following filtering rules. Anyone able to clarify this for me?
The TextBox property that is using these (TextBox.TextInputType
) has a {RobloxScriptSecurity}
tag, so this is likely an internal feature intended for the mobile apps.
This hasnât been elaborated on much, but it has to do with Robloxâs new streaming API. Iâll try to summarize what Iâve been able to piece together about the system.
The green sphere represents the client and its minimum streaming radius. If the minimum radius interlaps with any space that hasnât loaded a chunk from the server yet, then the game will pause and this UI is shown on screen:
The pink sphere represents the server and its target streaming radius. Anytime a chunk intersects this radius for the first time, it will be streamed to the client. The radius must overlap the center of each chunk in order to allow the player to move in it. Otherwise the gameplay paused UI will show again.
To the point: The new API that was mentioned in these release notes allow you to disable this default message from appearing on screen:
Added Function bool GuiService:GetGameplayPausedNotificationEnabled()
Added Function void GuiService:SetGameplayPausedNotificationEnabled(bool enabled)
Added Event GuiService.NetworkPausedEnabledChanged(bool enabled) {RobloxScriptSecurity}
Personally I donât like the use of get/set functions like this when they could just simply add a property like: bool GuiService.GameplayPausedNotificationEnabled
instead, but whatever.
Yes, although itâs just going to be a few functions here and there - math
, bit32
and assert
represent the vast majority of functions where these optimizations make sense.
That seems like absolutely horrible user experience. Who wants the game to randomly pause like that?
It shouldnât really happen unless the user has a slow connection, or the minimum radius is too close to the target radius.
In the screenshots I shared above, I used a really small target radius.
We also just turned on a number of Output improvements!
- When you clear the output, it now resets the duplicate counter (before if you had a loop that printed out âtestâ 100 times and cleared it half way, the next log would be test (x51) )
- Every time a duplicate message was logged, it would snap the scrollbar to the bottom of the widget. Now, the output will only autoscroll if you are already at the bottom and not in the process of selecting text
- Previously, trying to select text in the output while something was being printed would result in the selection cursor snapping to the bottom of the widget. Now, you can select text while messages are being logged to the output without it interfering with your selection
Trackpad gesture support. Pinch, 2-finger pan, scroll. Announcement soon.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.