Release Notes for 396

Notes for Release 396

13 Likes

Client Difference Log

API Changes

Added Property Vector2 UIGridLayout.AbsoluteCellCount [<💾> Save-only] [ReadOnly] [NotReplicated]
Added Property Vector2 UIGridLayout.AbsoluteCellSize [<💾> Save-only] [ReadOnly] [NotReplicated]

Added Function void Camera:SetImageServerView(CFrame modelCoord) {RobloxScriptSecurity}
Added Function int ContentProvider:CalculateNumTrianglesInMesh(string meshId) {RobloxScriptSecurity} [Yields]
Added Function Objects DataModel:InsertObjectsAndJoinIfLegacyAsync(Content url) {RobloxScriptSecurity} [Yields]
Added Function bool MarketplaceService:IsPlayerSubscribed(Instance player, int64 subscriptionId) [Yields]
Added Function Dictionary StudioService:GetResourceByCategory(string category) {RobloxScriptSecurity}
Added Function void StudioService:PublishAs(int64 universeId, int64 placeId) {RobloxScriptSecurity}
Added Function void StudioService:emitPlacePublishedSignal() {RobloxScriptSecurity}

Added Event DraftsService.UpdateStatusChanged(Instance script, Enum<DraftStatusCode> status) {RobloxScriptSecurity}
Added Event StudioService.GamePublishedToRoblox() {RobloxScriptSecurity}
Added Event StudioService.OnOpenConvertToPackagePlugin() {RobloxScriptSecurity}
Added Event StudioService.OnOpenManagePackagePlugin(int64 userId, int64 assetId) {RobloxScriptSecurity}

Changed the parameters of Function DraftsService:CommitEdits 
	from: (Array scriptGuids)
	  to: (Objects scripts)

Changed the parameters of Function DraftsService:DiscardEdits 
	from: (Array scriptGuids)
	  to: (Objects scripts)

Changed the parameters of Function DraftsService:OpenDrafts 
	from: (Array scriptGuids)
	  to: (Objects scripts)

Changed the parameters of Function DraftsService:ShowDiffsAgainstBase 
	from: (Array scriptGuids)
	  to: (Objects scripts)

Changed the parameters of Function DraftsService:ShowDiffsAgainstServer 
	from: (Array scriptGuids)
	  to: (Objects scripts)

Changed the parameters of Event DraftsService.CommitStatusChanged 
	from: (string scriptGuid, int commitStatus)
	  to: (Instance script, Enum<DraftStatusCode> status)

Changed the parameters of Event DraftsService.DraftAdded 
	from: (string scriptGuid, Instance script)
	  to: (Instance script)

Changed the parameters of Event DraftsService.DraftDeleted 
	from: (string scriptGuid)
	  to: (Instance script)

Changed the parameters of Event DraftsService.EditorsListChanged 
	from: (string scriptGuid)
	  to: (Instance script)

Changed the parameters of Event DraftsService.ScriptDeleted 
	from: (string scriptGuid)
	  to: (Instance script)

Changed the parameters of Event DraftsService.ScriptServerVersionChanged 
	from: (string scriptGuid)
	  to: (Instance script)

Changed the parameters and return-type of Function DraftsService:GetEditors 
	from: (string scriptGuid) Array
	  to: (Instance script) Objects

Changed the parameters and return-type of Function DraftsService:UpdateToLatestVersion 
	from: (Array scriptGuids) Dictionary
	  to: (Objects scripts) void

Changed the return-type of Function DraftsService:GetDrafts 
	from: Dictionary
	  to: Objects

Removed Property Workspace.AutoJointsMode

Removed Function MarketplaceService:GetSubscriptionStatus

Removed Enum AutoJointsMode
	Removed EnumItem AutoJointsMode.Default
	Removed EnumItem AutoJointsMode.Explicit
	Removed EnumItem AutoJointsMode.LegacyImplicit

(Click here for a syntax highlighted version!)

6 Likes

Removed Workspace.AutoJointsMode and AutoJointsMode .

What did these do? I’ve never used them before, and it looks like their dev hub pages are gone.

Joints used to be removed (and sometimes created) automatically. A few months ago Roblox decided to not do this anymore, and said that ‘Explicit’ joints are the future. This means you have to make and delete all joints by hand now, unless you enable auto joints mode in studio, which will create surface joints for you automatically.

4 Likes

This is incorrect. It just changes is how automatic joints are stored. Previously all automatically created joints would be stored in the JointsService, but now they are stored directly in the parts associated with the joint. Joints can still be created automatically in Roblox Studio, as well as the Model’s MakeJoints() function.

1 Like

Ahh bad wording. I do still think I covered some stuff you haven’t though! I had to go fix some of my old games because they relied on joints auto destroying when the Part0/Part1 were nil.

Makes sense. The joint objects should ideally be stored inside of parts associated with the joints so they get destroyed with the part.

Which creates further unpredictable behaviour, because the destruction is dependant on which of the parts get destroyed.

image

I’m curious about this.

22 Likes