Client Difference Log
API Changes
Added Function void GuiService:ForceTenFootInterface(bool isForced) {RobloxScriptSecurity}
Added Function void MarketplaceService:PromptPremiumPurchase(Instance player)
Added Function void MarketplaceService:SignalMockPurchasePremium() {RobloxScriptSecurity}
Added Function void MarketplaceService:SignalPromptPremiumPurchaseFinished(bool didTryPurchasing) {RobloxScriptSecurity}
Added Event MarketplaceService.PromptPremiumPurchaseFinished()
Added Event MarketplaceService.PromptPremiumPurchaseRequested(Instance player) {RobloxScriptSecurity}
Added Event Players.PlayerMembershipChanged(Instance player)
Changed the write permissions of Property GameSettings.AdditionalCoreIncludeDirs
from: {✏️None}
to: {✏️RobloxScriptSecurity}
Changed the write permissions of Property GameSettings.OverrideStarterScript
from: {✏️None}
to: {✏️RobloxScriptSecurity}
Changed the write permissions of Property Studio.OverrideCoreScripts
from: {✏️None}
to: {✏️RobloxScriptSecurity}
Changed the write permissions of Property Studio.OverrideCoreScriptsDir
from: {✏️None}
to: {✏️RobloxScriptSecurity}
Changed the security of Function DataModel:GetFastFlag
from: {RobloxScriptSecurity}
to: {LocalUserSecurity}
Changed the security of Function DataModel:GetFastInt
from: {RobloxScriptSecurity}
to: {LocalUserSecurity}
Changed the security of Function DataModel:GetFastString
from: {RobloxScriptSecurity}
to: {LocalUserSecurity}
Changed the security of Function StudioService:ConvertToPackageUpload
from: {PluginSecurity}
to: {RobloxScriptSecurity}
Removed EnumItem StudioStyleGuideColor.Merge3HighlightOriginal
Removed EnumItem StudioStyleGuideColor.Merge3HighlightMine
Removed EnumItem StudioStyleGuideColor.Merge3HighlightTheirs
(Click here for a syntax highlighted version!)
Interesting that this isn’t RobloxScriptSecurity. Curious how this will function.
Will we get a cut for if they buy it through our game? Is there a benefit to this?
We can also detect if they brought it through our game, so we can award them?
Lots of interesting possibilities on this one.
And for quality of life updates, this is pretty nice:
Now I don’t lose my 10 hours of progress!
WorldModel has a lot of handy use cases.
If you’ve ever found yourself needing to parent an object to the Workspace for it to work correctly (with the exception of physics simulation), the WorldModel class will do the trick.
You can:
- Perform raycasts that are scoped to the WorldModel’s contents.
- Find parts in regions where the parts are scoped to the WorldModel contents.
- Call Humanoid:BuildRigFromAttachments() outside of the Workspace.
- Display models in the world with no physics interaction or simulation.
- This is handy for first person models, as they can never collide with anything.
- Animate a Humanoid or AnimationController inside of the WorldModel.
- WorldModels can be parented inside of ViewportFrames to display animated previews!
The inheritance of the Workspace has been adjusted slightly.
Previously it was:
Model
Workspace
Now its:
Model
WorldRoot
Workspace
WorldModel
In turn, several functions of the Workspace have been moved to the WorldRoot
class:
Class WorldRoot : Model [NotCreatable]
Function Tuple WorldRoot:FindPartOnRay(Ray ray, Instance ignoreDescendantsInstance = nil, bool terrainCellsAreCubes = false, bool ignoreWater = false)
Function Tuple WorldRoot:FindPartOnRayWithIgnoreList(Ray ray, Objects ignoreDescendantsTable, bool terrainCellsAreCubes = false, bool ignoreWater = false)
Function Tuple WorldRoot:FindPartOnRayWithWhitelist(Ray ray, Objects whitelistDescendantsTable, bool ignoreWater = false)
Function Objects WorldRoot:FindPartsInRegion3(Region3 region, Instance ignoreDescendantsInstance = nil, int maxParts = 20)
Function Objects WorldRoot:FindPartsInRegion3WithIgnoreList(Region3 region, Objects ignoreDescendantsTable, int maxParts = 20)
Function Objects WorldRoot:FindPartsInRegion3WithWhiteList(Region3 region, Objects whitelistDescendantsTable, int maxParts = 20)
Function bool WorldRoot:IsRegion3Empty(Region3 region, Instance ignoreDescendentsInstance = nil)
Function bool WorldRoot:IsRegion3EmptyWithIgnoreList(Region3 region, Objects ignoreDescendentsTable)
Excellent, you can now do raycasts in a viewport is what you’re saying? Because that’s exactly one of the things i’ve needed!
This is what I’m wondering that they’re working towards,
Roblox knows me so well…
Jokes aside, amazing update as always. One question, though.
If I recall correctly, old plugins that have not switched to PluginGuis used the CoreGui to display UIs to the user. Will there be any sort of backwards compatibility to said plugins? Pretty sure one or two of my plugins with inactive devs still do this and it’d be irritating if they suddenly stopped working.
CoreScripts are a specific class of scripts. They’re used to run the CoreGui in-game. Not related to the CoreGui service itself.
I completely misread and thought that said CoreGui. Apologies!
Any word on when WorldModel is going to go live?
haha uhh…
Any word on when WorldModel be dropping?
attributes
Dang they’re not even on the 2020 roadmap either…
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.