Client Difference Log
API Changes
Added Class StudioTheme
Added Function DataType<Color3> StudioTheme:GetColor(Enum<StudioStyleGuideColor> styleguideitem, Enum<StudioStyleGuideModifier> modifier = Default) {PluginSecurity}
Added Function string StudioTheme:GetPath(string assetid, Enum<StudioStyleGuideModifier> modifier = Default) {PluginSecurity}
Added Property DataType<Content> ImageButton.HoverImage
Added Property DataType<Content> ImageButton.PressedImage
Added Property Class<Instance> Studio.Theme
Added Function Array Studio:GetAvailableThemes() {PluginSecurity}
Added Function Class<Instance> Studio:FindTheme(string themeName) {PluginSecurity}
Added Function Class<Instance> TeleportService:GetArrivingTeleportGui()
Added Event Studio.ThemeChanged() {PluginSecurity}
Added EnumItem StudioStyleGuideColor.BrightText
Added EnumItem StudioStyleGuideColor.CategoryItem
Added EnumItem StudioStyleGuideColor.ColorPickerFrame
Added EnumItem StudioStyleGuideColor.CurrentMarker
Added EnumItem StudioStyleGuideColor.Dark
Added EnumItem StudioStyleGuideColor.DimmedText
Added EnumItem StudioStyleGuideColor.Dropdown
Added EnumItem StudioStyleGuideColor.GameSettingsTableItem
Added EnumItem StudioStyleGuideColor.GameSettingsTooltip
Added EnumItem StudioStyleGuideColor.InputFieldBackground
Added EnumItem StudioStyleGuideColor.Light
Added EnumItem StudioStyleGuideColor.MainBackground
Added EnumItem StudioStyleGuideColor.ScriptSideWidget
Added EnumItem StudioStyleGuideColor.SubText
Added EnumItem StudioStyleGuideColor.Titlebar
Added Tag [Settings] to Class DebugSettings
Added Tag [Settings] to Class GameSettings
Added Tag [Settings] to Class LuaSettings
Added Tag [Settings] to Class PhysicsSettings
Changed the value of EnumItem StudioStyleGuideColor.Border from 19 to 25
Changed the value of EnumItem StudioStyleGuideColor.Button from 16 to 11
Changed the value of EnumItem StudioStyleGuideColor.EmulatorBar from 10 to 21
Changed the value of EnumItem StudioStyleGuideColor.EmulatorDropDown from 11 to 22
Changed the value of EnumItem StudioStyleGuideColor.ErrorText from 27 to 36
Changed the value of EnumItem StudioStyleGuideColor.InfoText from 28 to 37
Changed the value of EnumItem StudioStyleGuideColor.Item from 3 to 16
Changed the value of EnumItem StudioStyleGuideColor.LinkText from 25 to 34
Changed the value of EnumItem StudioStyleGuideColor.MainButton from 17 to 12
Changed the value of EnumItem StudioStyleGuideColor.MainText from 21 to 29
Changed the value of EnumItem StudioStyleGuideColor.Notification from 1 to 4
Changed the value of EnumItem StudioStyleGuideColor.RibbonButton from 18 to 13
Changed the value of EnumItem StudioStyleGuideColor.RibbonTab from 8 to 9
Changed the value of EnumItem StudioStyleGuideColor.RibbonTabTopBar from 9 to 10
Changed the value of EnumItem StudioStyleGuideColor.ScriptBackground from 30 to 40
Changed the value of EnumItem StudioStyleGuideColor.ScriptBuiltInFunction from 42 to 52
Changed the value of EnumItem StudioStyleGuideColor.ScriptComment from 39 to 49
Changed the value of EnumItem StudioStyleGuideColor.ScriptError from 44 to 54
Changed the value of EnumItem StudioStyleGuideColor.ScriptFindSelectionBackground from 34 to 44
Changed the value of EnumItem StudioStyleGuideColor.ScriptKeyword from 41 to 51
Changed the value of EnumItem StudioStyleGuideColor.ScriptMachtingWordSelectionBackground from 35 to 45
Changed the value of EnumItem StudioStyleGuideColor.ScriptNumber from 37 to 47
Changed the value of EnumItem StudioStyleGuideColor.ScriptOperator from 36 to 46
Changed the value of EnumItem StudioStyleGuideColor.ScriptPreprocessor from 40 to 50
Changed the value of EnumItem StudioStyleGuideColor.ScriptSelectionBackground from 33 to 43
Changed the value of EnumItem StudioStyleGuideColor.ScriptSelectionText from 32 to 42
Changed the value of EnumItem StudioStyleGuideColor.ScriptString from 38 to 48
Changed the value of EnumItem StudioStyleGuideColor.ScriptText from 31 to 41
Changed the value of EnumItem StudioStyleGuideColor.ScriptWarning from 43 to 53
Changed the value of EnumItem StudioStyleGuideColor.ScrollBar from 12 to 5
Changed the value of EnumItem StudioStyleGuideColor.ScrollBarBackground from 13 to 6
Changed the value of EnumItem StudioStyleGuideColor.SensitiveText from 29 to 38
Changed the value of EnumItem StudioStyleGuideColor.Shadow from 20 to 26
Changed the value of EnumItem StudioStyleGuideColor.Tab from 6 to 8
Changed the value of EnumItem StudioStyleGuideColor.TabBar from 5 to 7
Changed the value of EnumItem StudioStyleGuideColor.TableItem from 4 to 17
Changed the value of EnumItem StudioStyleGuideColor.TitlebarText from 22 to 31
Changed the value of EnumItem StudioStyleGuideColor.Tooltip from 2 to 3
Changed the value of EnumItem StudioStyleGuideColor.WarningText from 26 to 35
Removed Class Theme
Removed EnumItem StudioStyleGuideColor.DimmerText
Removed EnumItem StudioStyleGuideColor.HighlightText
Removed EnumItem StudioStyleGuideColor.InputField
Removed EnumItem StudioStyleGuideColor.MainSection
Removed EnumItem StudioStyleGuideColor.Menu
Removed Tag [Service] from Class DebugSettings
Removed Tag [Service] from Class GameSettings
Removed Tag [Service] from Class LuaSettings
Removed Tag [Service] from Class PhysicsSettings
The result of MarketplaceService:UserOwnsGamePassAsync will now be cached.
??? Why???
What is the new behaviour? Check once, cached for server?
This is a major regression on a highly-needed feature.
Half the complains in my games prior to this change was that users gamepasses’ would not work after they purchased them in the webpage, due to server gamepass caching.
YESSSSSSSS. Good update!
Why is this even a thing? Now if a player buys a gamepass in-game I have to store a bool value somewhere in my code indicating that they own the pass, because the API will still show that they don’t own it due to the cache.
Yeah, that’s a huge nuisance. Now when a player buys a gamepass in-game I have to store a bool value somewhere because the API will just cache that they still don’t own the pass.
What’s the point of getting the teleport gui if it is instantly removed once the client has loaded …
Oh boy. The gamepass thing is gonna be an issue. I really hope there’s some sort of hidden solution thing we don’t know about.
We’re looking into it and will get back to you shortly. Thanks for pointing it out.
Hey everyone, we hear your concerns regarding the gamepass cache.
Heres what I currently know about how it works:
- If the user owns the gamepass upon getting a live result, it will remain
true
for the full game session. - If the user does not own the gamepass, it will cache that
false
result for about 10 seconds before allowing a live result to be returned again.
So yes, there is now a slight discrepancy, but what’s important to note here is that it won’t stay false if you call it when the user doesn’t own the gamepass. If you check again shortly after, it will give you a live result again.
If you are using the API responsibly, this ideally shouldn’t cause any problems.
Everyone got to it before me, there is going to be mass outrage if that caching thing is true.
Good to hear!
It simplifies the code you need to write so that it is no longer event-based.
local gui = game:GetService("TeleportService"):GetArrivingTeleportGui()
if not gui then
gui = -- some loading GUI
end
gui.Parent = game:GetService("Players").LocalPlayer.PlayerGui
Can we get a specific figure on when the cache will set in? Does the cache clear after a certain amount of time?
Hahaha I literally got so impatient for the Studio Theme API that I hardcoded it into my plugin TWO DAYS ago! Now I gotta go change it
The Theme API is not enabled yet, so stay tuned.
Cool, any rough estimation?
I wonder what is better about returning a cached result instead of just throttling the requests?
Updated my original post with clarification on how it currently works.