Release Notes for 540

Notes for Release 540


Client Difference Log

API Changes

Added Class SurfaceGuiBase : LayerCollector [NotCreatable]

Added Class AdGui : SurfaceGuiBase [NotCreatable]
	Added Property Enum.AdShape AdGui.AdShape

Added Property Vector2 ChatInputBarConfiguration.AbsolutePosition [ReadOnly] {🧬Unsafe}
Added Property Vector2 ChatInputBarConfiguration.AbsolutePositionWrite {RobloxScriptSecurity} [Hidden]
Added Property Vector2 ChatInputBarConfiguration.AbsoluteSize [ReadOnly] {🧬Unsafe}
Added Property Vector2 ChatInputBarConfiguration.AbsoluteSizeWrite {RobloxScriptSecurity} [Hidden]
Added Property Vector2 ChatWindowConfiguration.AbsolutePosition [ReadOnly] {🧬Unsafe}
Added Property Vector2 ChatWindowConfiguration.AbsolutePositionWrite {RobloxScriptSecurity} [Hidden]
Added Property Vector2 ChatWindowConfiguration.AbsoluteSize [ReadOnly] {🧬Unsafe}
Added Property Vector2 ChatWindowConfiguration.AbsoluteSizeWrite {RobloxScriptSecurity} [Hidden]
Added Property bool ImporterMeshSettings.NoOuterCageFarExtendedFromMesh [ReadOnly]
Added Property bool ImporterMeshSettings.OuterCageFarExtendedFromMeshPreview
Added Property Enum.LoadDynamicHeads StarterPlayer.EnableDynamicHeads [NotScriptable]
Added Property bool ViewportFrame.IsMirrored {RobloxScriptSecurity} [Hidden] [NotReplicated]

Added Function Array Animator:GetPlayingAnimationTracksCoreScript() {RobloxScriptSecurity}
Added Function AnimationTrack Animator:LoadAnimationCoreScript(Animation animation) {RobloxScriptSecurity}
Added Function void Players:ReportAbuseV3(Player player, string jsonTags) {RobloxScriptSecurity}
Added Function Tuple ScriptDocument:ForceSetSelectionAsync(int cursorLine, int cursorCharacter, int? anchorLine = nil, int? anchorCharacter = nil) {PluginSecurity} [Yields]
Added Function Tuple ScriptDocument:RequestSetSelectionAsync(int cursorLine, int cursorCharacter, int? anchorLine = nil, int? anchorCharacter = nil) {PluginSecurity} [Yields]
Added Function void StudioAssetService:ConvertToPackageUpload(string uploadUrl, Objects cloneInstances, Objects originalInstances) {RobloxScriptSecurity}
Added Function bool StudioDeviceEmulatorService:GetTouchInBounds(int index) {RobloxScriptSecurity}

Added Event Animator.AnimationPlayedCoreScript(AnimationTrack animationTrack) {RobloxScriptSecurity}
Added Event FaceAnimatorService.TrackerError(Enum.TrackerError error) {RobloxScriptSecurity}
Added Event StudioAssetService.OnConvertToPackageResult(bool isSuccessful, string errorMessage) {RobloxScriptSecurity}
Added Event StudioDeviceEmulatorService.TouchInBoundsChanged() {RobloxScriptSecurity}
Added Event VideoCaptureService.DevicesChanged() {RobloxScriptSecurity}
Added Event VideoCaptureService.Error(string cameraid, string errorcode) {RobloxScriptSecurity}
Added Event VideoCaptureService.Started(string cameraid) {RobloxScriptSecurity}
Added Event VideoCaptureService.Stopped(string cameraid) {RobloxScriptSecurity}

Added Enum LoadDynamicHeads
	Added EnumItem LoadDynamicHeads.Default : 0
	Added EnumItem LoadDynamicHeads.Disabled : 1
	Added EnumItem LoadDynamicHeads.Enabled : 2

Added Enum TrackerError
	Added EnumItem TrackerError.Ok : 0
	Added EnumItem TrackerError.NoService : 1
	Added EnumItem TrackerError.InitFailed : 2
	Added EnumItem TrackerError.NoVideo : 3
	Added EnumItem TrackerError.VideoError : 4
	Added EnumItem TrackerError.CameraPermission : 5
	Added EnumItem TrackerError.NoAudio : 6
	Added EnumItem TrackerError.AudioError : 7
	Added EnumItem TrackerError.MicPermission : 8

Added LegacyName "Exclude" to EnumItem RaycastFilterType.Blacklist
Added LegacyName "Include" to EnumItem RaycastFilterType.Whitelist

Added Tag [NotReplicated] to Class PlayerEmulatorService
	Added Tag [NotReplicated] to Property PlayerEmulatorService.CustomPoliciesEnabled
	Added Tag [NotReplicated] to Property PlayerEmulatorService.EmulatedCountryCode
	Added Tag [NotReplicated] to Property PlayerEmulatorService.EmulatedGameLocale
	Added Tag [NotReplicated] to Property PlayerEmulatorService.PlayerEmulationEnabled
	Added Tag [NotReplicated] to Property PlayerEmulatorService.SerializedEmulatedPolicyInfo

Changed the superclass of Class SurfaceGui 
	from: "LayerCollector"
	  to: "SurfaceGuiBase"

Changed the serialization of Property ImporterMaterialSettings.DiffuseFilePath 
	from: [<💾> SaveOnly]
	  to: [<💾|📁> Saves|Loads]

Changed the serialization of Property ImporterMaterialSettings.MetalnessFilePath 
	from: [<💾> SaveOnly]
	  to: [<💾|📁> Saves|Loads]

Changed the serialization of Property ImporterMaterialSettings.NormalFilePath 
	from: [<💾> SaveOnly]
	  to: [<💾|📁> Saves|Loads]

Changed the serialization of Property ImporterMaterialSettings.RoughnessFilePath 
	from: [<💾> SaveOnly]
	  to: [<💾|📁> Saves|Loads]

Changed the value of EnumItem LSPMethodType.TextDocument_publishDiagnostics from 19 to 20
Changed the value of EnumItem LSPMethodType.Window_showMessage from 20 to 21
Changed the value of EnumItem LSPMethodType.Window_showMessageRequest from 21 to 22
Changed the value of EnumItem LSPMethodType.Roblox_registerSyntaxCategories from 22 to 23
Changed the value of EnumItem LSPMethodType.Roblox_signalQuiescence from 23 to 24
Changed the value of EnumItem LSPMethodType.Roblox_syntaxHighlight from 24 to 25
Changed the value of EnumItem LSPMethodType.Roblox_suggestExtraSelections from 25 to 26
Changed the value of EnumItem LSPMethodType.Roblox_findExecutablePosition from 26 to 27
Changed the value of EnumItem LSPMethodType.Roblox_findColor3 from 27 to 28
Changed the value of EnumItem LSPMethodType.Roblox_patchSnippetData from 28 to 29

Moved Property Active
	from: Class SurfaceGui
	  to: Class SurfaceGuiBase

Moved Property Adornee
	from: Class SurfaceGui
	  to: Class SurfaceGuiBase

Moved Property Face
	from: Class SurfaceGui
	  to: Class SurfaceGuiBase

Removed Function AssetImportService:Cancel
Removed Function AssetImportService:GetCurrentImportMap
Removed Function AssetImportService:ImportMesh
Removed Function AssetImportService:ImportMeshWithPrompt
Removed Function AssetImportService:IsAvatar
Removed Function AssetImportService:Upload

Removed Event AssetImportService.ProgressUpdate
Removed Event AssetImportService.UploadFinished

Removed Tag [ReadOnly] from Property ImporterMaterialSettings.DiffuseFilePath
Removed Tag [ReadOnly] from Property ImporterMaterialSettings.MetalnessFilePath
Removed Tag [ReadOnly] from Property ImporterMaterialSettings.NormalFilePath
Removed Tag [ReadOnly] from Property ImporterMaterialSettings.RoughnessFilePath

(Click here for a syntax highlighted version!)



Curious to see what exactly AdGuis are used for.


In experience advertising, this was announced by David Bazook in an exclusive recent Bloomberg interview.


This was pretty inevitable especially after Roblox went public. As a developer, the extra monetization option sounds potentially interesting, but as a player, I’m absolutely dreading this change. The last thing I want is my PC games to be littered with ads like mobile games have been, but unfortunately this seems like a trend that the wider industry (cough EA) is headed towards…

I’m also scared by what he could mean by ads that are “fun”. Does this mean we’re gonna have interactive advertisements that try to get you to play some crappy mobile game?


Were there changes to how much force is exerted by BodyForce/VectorForce objects in this update?

In our soccer game we have a BodyForce object in the ball which applies some upwards vertical force to reduce the ball’s gravity.
Players have just now started reporting that the ball’s gravity has suddenly been reduced even more - I checked and there is indeed a small but noticeable change to the ball’s physics.


Actually it seems like the performance of some Roblox servers has just tanked, causing server-side physics to run in slow-mo. When I test in studio, everything is normal. But then some live game servers are slow-mo, while others are fine. I’m really not sure what’s going on here. I know the servers have had their share of issues, but I’ve never seen it lead to simplistic physics running entirely in slow-mo.

Studio (normal):

Live game (slow-mo):


I remember there used to be ads for mobile? (There was a dedicated service for it) though it got deprecated/removed pretty much. Guess they’re bringing it back differently?

Hopefully theres a limit to how many ads you can place in the game before I make a game that spams 500 ads around the player lol

(…maybe it also advertises roblox games (the advertising system for developers at the moment but another option for ingame ads?)


I wonder what the difference is here


Weird. AdService was removed for good reason and now they’re looking to go back to it?

It will hopefully be different than just watching mobile ads like he said in the video.

1 Like

It’s hard to say given what we know publicly, but David did speak further on the topic in the recent Q2 earning report saying

The vision of immersive advertising has been around for a long time, and this is both performance as well as brand advertising.

We are going to be rolling out tests ultimately along both of these lines. It’s the notion that in an immersive 3D space, it’s a lot less—there’s a lot less friction when we see appropriate advertising, just like we would in the real world.

A billboard ad, for example, which we can scale across all the experiences on Roblox.

But we’re also optimistic now that we’ve seen many brands establishing a presence in Roblox, that some of these brands will also want performance marketing, which is a way in the appropriate case for people to be able to go to one of our brand partners directly from someone else’s 3D experience.


I was also noticing lots of physics lag in the game I’ve been working on, and a friend was also noticing lots of physics lag as well.

It seemed like maybe from the server sided microprofiler dumps I was taking, physics was doing 15 steps per frame as opposed to the normal 4 steps, and this was actually sometimes occurring even with adaptive physics on. If that’s accurate, that’s 900hz physics, which is pretty insane! I was confused that the server was running relatively smoothly at all especially because my game is heavily physics based, with potentially hundreds of parts all flying around.

I’m speculating here but if it actually is running at 15 steps per frame I’m going to take a guess that it’s some kind of A/B testing or something,. But I also literally have no other information either so :person_shrugging:

P.s. I was able to get a decent bit better overall performance with adaptive physics enabled so see if that helps. The friend I mentioned said unfortunately it was resulting in a lot of physics jitter for them though.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.