From 71096691b5404986eeab49fdfbfd1b08c18c3f8f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 24 Mar 2025 19:16:18 +0000 Subject: [PATCH 01/95] Remove testez Signed-off-by: GitHub --- wally.lock | 7 +------ wally.toml | 3 --- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/wally.lock b/wally.lock index eea11bd9..ac5f8b37 100644 --- a/wally.lock +++ b/wally.lock @@ -7,12 +7,7 @@ name = "legitatx/topbarplus" version = "3.0.5" dependencies = [] -[[package]] -name = "roblox/testez" -version = "0.4.1" -dependencies = [] - [[package]] name = "ryanlua/satchel" version = "1.3.1" -dependencies = [["topbarplus", "legitatx/topbarplus@3.0.5"], ["testez", "roblox/testez@0.4.1"]] +dependencies = [["topbarplus", "legitatx/topbarplus@3.0.5"]] diff --git a/wally.toml b/wally.toml index 7bbb7d43..4f277cce 100644 --- a/wally.toml +++ b/wally.toml @@ -11,6 +11,3 @@ include = ["src", "src/*", "default.project.json", "wally.lock", "wally.toml"] [dependencies] topbarplus = "legitatx/topbarplus@3.0.5" - -[dev-dependencies] -testez = "roblox/testez@0.4.1" From 2c9ba575418a5ed00c928b612200ccc44351551d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 24 Mar 2025 19:17:03 +0000 Subject: [PATCH 02/95] Delete spec Signed-off-by: GitHub --- src/init.spec.luau | 44 -------------------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 src/init.spec.luau diff --git a/src/init.spec.luau b/src/init.spec.luau deleted file mode 100644 index 91b8a20f..00000000 --- a/src/init.spec.luau +++ /dev/null @@ -1,44 +0,0 @@ -return function() - local Satchel = require(script.Parent) - - it("SetBackpackEnabled(false)", function() - Satchel:SetBackpackEnabled(false) - expect(Satchel:GetBackpackEnabled()).to.equal(false) - end) - it("SetBackpackEnabled(true)", function() - Satchel:SetBackpackEnabled(true) - expect(Satchel:GetBackpackEnabled()).to.equal(true) - end) - it("GetBackpackEnabled", function() - local getBackpackEnabled = Satchel:GetBackpackEnabled() - expect(getBackpackEnabled).to.be.a("boolean") - end) - it("IsOpened", function() - local isOpened = Satchel:IsOpened() - expect(isOpened).to.be.a("boolean") - end) - it("GetStateChangedEvent", function() - local getStateChangedEvent = Satchel:GetStateChangedEvent() - expect(getStateChangedEvent).to.be.a("userdata") - end) - it("OpenClose", function() - local openClose = Satchel.OpenClose - expect(openClose).to.be.a("function") - end) - it("StateChanged", function() - local stateChanged = Satchel.StateChanged - expect(stateChanged).to.be.a("userdata") - end) - it("BackpackEmpty", function() - local backpackEmpty = Satchel.BackpackEmpty - expect(backpackEmpty).to.be.a("userdata") - end) - it("BackpackItemAdded", function() - local backpackItemAdded = Satchel.BackpackItemAdded - expect(backpackItemAdded).to.be.a("userdata") - end) - it("BackpackItemRemoved", function() - local backpackItemRemoved = Satchel.BackpackItemRemoved - expect(backpackItemRemoved).to.be.a("userdata") - end) -end From 79381f5013600fa056be1ac02c75d9087045dcc4 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 24 Mar 2025 20:01:27 +0000 Subject: [PATCH 03/95] Add react Signed-off-by: GitHub --- wally.lock | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++- wally.toml | 5 +++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/wally.lock b/wally.lock index ac5f8b37..4c543043 100644 --- a/wally.lock +++ b/wally.lock @@ -2,6 +2,71 @@ # It is not intended for manual editing. registry = "test" +[[package]] +name = "jsdotlua/boolean" +version = "1.2.7" +dependencies = [["number", "jsdotlua/number@1.2.7"]] + +[[package]] +name = "jsdotlua/collections" +version = "1.2.7" +dependencies = [["es7-types", "jsdotlua/es7-types@1.2.7"], ["instance-of", "jsdotlua/instance-of@1.2.7"]] + +[[package]] +name = "jsdotlua/console" +version = "1.2.7" +dependencies = [["collections", "jsdotlua/collections@1.2.7"]] + +[[package]] +name = "jsdotlua/es7-types" +version = "1.2.7" +dependencies = [] + +[[package]] +name = "jsdotlua/instance-of" +version = "1.2.7" +dependencies = [] + +[[package]] +name = "jsdotlua/luau-polyfill" +version = "1.2.7" +dependencies = [["boolean", "jsdotlua/boolean@1.2.7"], ["collections", "jsdotlua/collections@1.2.7"], ["console", "jsdotlua/console@1.2.7"], ["es7-types", "jsdotlua/es7-types@1.2.7"], ["instance-of", "jsdotlua/instance-of@1.2.7"], ["math", "jsdotlua/math@1.2.7"], ["number", "jsdotlua/number@1.2.7"], ["string", "jsdotlua/string@1.2.7"], ["symbol-luau", "jsdotlua/symbol-luau@1.0.1"], ["timers", "jsdotlua/timers@1.2.7"]] + +[[package]] +name = "jsdotlua/math" +version = "1.2.7" +dependencies = [] + +[[package]] +name = "jsdotlua/number" +version = "1.2.7" +dependencies = [] + +[[package]] +name = "jsdotlua/react" +version = "17.2.1" +dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"], ["shared", "jsdotlua/shared@17.2.1"]] + +[[package]] +name = "jsdotlua/shared" +version = "17.2.1" +dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"]] + +[[package]] +name = "jsdotlua/string" +version = "1.2.7" +dependencies = [["es7-types", "jsdotlua/es7-types@1.2.7"], ["number", "jsdotlua/number@1.2.7"]] + +[[package]] +name = "jsdotlua/symbol-luau" +version = "1.0.1" +dependencies = [] + +[[package]] +name = "jsdotlua/timers" +version = "1.2.7" +dependencies = [["collections", "jsdotlua/collections@1.2.7"]] + [[package]] name = "legitatx/topbarplus" version = "3.0.5" @@ -10,4 +75,4 @@ dependencies = [] [[package]] name = "ryanlua/satchel" version = "1.3.1" -dependencies = [["topbarplus", "legitatx/topbarplus@3.0.5"]] +dependencies = [["React", "jsdotlua/react@17.2.1"], ["TopbarPlus", "legitatx/topbarplus@3.0.5"]] diff --git a/wally.toml b/wally.toml index 4f277cce..1e82d009 100644 --- a/wally.toml +++ b/wally.toml @@ -6,8 +6,11 @@ license = "MPL-2.0" authors = ["Ryan Luu "] realm = "shared" registry = "https://github.com/UpliftGames/wally-index" +homepage = "https://satchel.ryanluu.dev/" +repository = "https://github.com/RyanLua/Satchel" exclude = ["**"] include = ["src", "src/*", "default.project.json", "wally.lock", "wally.toml"] [dependencies] -topbarplus = "legitatx/topbarplus@3.0.5" +React = "jsdotlua/react@17.2.1" +TopbarPlus = "legitatx/topbarplus@3.0.5" From cb72219a64b10f685f123d39c9c6459c9bb1d220 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 24 Mar 2025 22:56:01 +0000 Subject: [PATCH 04/95] Delete tests Signed-off-by: GitHub --- tests/Test.client.luau | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 tests/Test.client.luau diff --git a/tests/Test.client.luau b/tests/Test.client.luau deleted file mode 100644 index e114f9c0..00000000 --- a/tests/Test.client.luau +++ /dev/null @@ -1,17 +0,0 @@ ---[[ - Name: Satchel - Description: Loads the Satchel backpack system. - DevForum: https://devforum.roblox.com/t/2451549 -]] - ---[[ - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at Mozilla Public License Version 2.0. -]] - -local Satchel = script:WaitForChild("Satchel") -local TestEZ = require(Satchel.DevPackages:WaitForChild("testez")) - -require(Satchel) -- Initialize Satchel -TestEZ.TestBootstrap:run({ Satchel }) -- Run Tests From 32ffd94b70c8209d22177a0c7076fe53351627b8 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 01:11:57 +0000 Subject: [PATCH 05/95] Remove test project Signed-off-by: GitHub --- test.project.json | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 test.project.json diff --git a/test.project.json b/test.project.json deleted file mode 100644 index 820f360a..00000000 --- a/test.project.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "Test Satchel", - "servePort": 34872, - "tree": { - "$className": "DataModel", - - "StarterPlayer": { - "$className": "StarterPlayer", - - "StarterPlayerScripts": { - "$className": "StarterPlayerScripts", - - "Test": { - "$path": "tests/Test.client.luau", - - "Satchel": { - "$path": "src", - - "Packages": { - "$path": "Packages" - }, - - "DevPackages": { - "$path": "DevPackages" - } - } - } - } - } - } -} \ No newline at end of file From 49e343dcdefd6ae8191a987febc0361483224a3b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 01:53:52 +0000 Subject: [PATCH 06/95] Add model project Signed-off-by: GitHub --- default.project.json | 24 +++++++++++++++++------- model.project.json | 12 ++++++++++++ models/README/init.client.luau | 15 +++++++++++++++ models/README/init.meta.json | 5 +++++ models/ThumbnailCamera.model.json | 28 ++++++++++++++++++++++++++++ src/Loader.client.luau | 15 +++++++++++++++ 6 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 model.project.json create mode 100644 models/README/init.client.luau create mode 100644 models/README/init.meta.json create mode 100644 models/ThumbnailCamera.model.json create mode 100644 src/Loader.client.luau diff --git a/default.project.json b/default.project.json index 9f829efc..4bf00e46 100644 --- a/default.project.json +++ b/default.project.json @@ -1,12 +1,22 @@ { - "name": "satchel", - "servePort": 34872, - "globIgnorePaths": ["**/*.spec.luau"], + "name": "Satchel", "tree": { - "$path": "src", + "$className": "DataModel", - "Packages": { - "$path": "Packages" + "StarterPlayer": { + "$className": "StarterPlayer", + + "StarterPlayerScripts": { + "$className": "StarterPlayerScripts", + + "Satchel": { + "$path": "src", + + "Packages": { + "$path": "Packages" + } + } + } } } -} +} \ No newline at end of file diff --git a/model.project.json b/model.project.json new file mode 100644 index 00000000..1ce901a1 --- /dev/null +++ b/model.project.json @@ -0,0 +1,12 @@ +{ + "name": "Satchel", + "tree": { + "$path": "models", + "Satchel": { + "$path": "src", + "Packages": { + "$path": "Packages" + } + } + } +} \ No newline at end of file diff --git a/models/README/init.client.luau b/models/README/init.client.luau new file mode 100644 index 00000000..60f90d6b --- /dev/null +++ b/models/README/init.client.luau @@ -0,0 +1,15 @@ +--[[ + 💖 Thanks for using Satchel 💖 + + Satchel is a modern open-source alternative to Roblox's default backpack 🎒 + + 🛝 Playground: https://www.roblox.com/games/13592168150 + 📰 DevForum: https://devforum.roblox.com/t/2451549 + 📂 GitHub: https://github.com/RyanLua/Satchel + + 🔧 Installation: + 1. Move the Satchel module script into StarterPlayerScripts + 2. Enable AutoUpdate in the Satchel module script package link + 3. Edit the Satchel module script attributes to customize the UI + 4. Read the documentation to learn how to use Satchel using the above links +]] diff --git a/models/README/init.meta.json b/models/README/init.meta.json new file mode 100644 index 00000000..54f46925 --- /dev/null +++ b/models/README/init.meta.json @@ -0,0 +1,5 @@ +{ + "properties": { + "Disabled": true + } +} \ No newline at end of file diff --git a/models/ThumbnailCamera.model.json b/models/ThumbnailCamera.model.json new file mode 100644 index 00000000..f7d235a5 --- /dev/null +++ b/models/ThumbnailCamera.model.json @@ -0,0 +1,28 @@ +{ + "ClassName": "Camera", + "Properties": { + "CFrame": [ + 0, 3, 0, + -1, 1.50995803e-07, 6.60023616e-15, + 0, -4.37113883e-08, 1, + 1.50995803e-07, 1, 4.37113883e-08 + ] + }, + "Children": [ + { + "ClassName": "Part", + "Properties": { + "Size": [4, 1, 4] + }, + "Children": [ + { + "ClassName": "Decal", + "Properties": { + "Face": "Top", + "Texture": "rbxassetid://18139994576" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/Loader.client.luau b/src/Loader.client.luau new file mode 100644 index 00000000..2d9fa125 --- /dev/null +++ b/src/Loader.client.luau @@ -0,0 +1,15 @@ +--!strict + +--[[ + Name: Satchel + Description: Loads the Satchel backpack system. + DevForum: https://devforum.roblox.com/t/2451549 +]] + +--[[ + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at Mozilla Public License Version 2.0. +]] + +require(script.Parent) -- Run Satchel \ No newline at end of file From 4af3616118aadc42122e6350a3e898fac993e0e2 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 02:25:38 +0000 Subject: [PATCH 07/95] Format model project Signed-off-by: GitHub --- model.project.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/model.project.json b/model.project.json index 1ce901a1..241e0825 100644 --- a/model.project.json +++ b/model.project.json @@ -2,8 +2,10 @@ "name": "Satchel", "tree": { "$path": "models", + "Satchel": { "$path": "src", + "Packages": { "$path": "Packages" } From 082d9299fc9c4b1c6ba6d3d4dc36ef83ee6a26f9 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 02:35:46 +0000 Subject: [PATCH 08/95] Fix require Signed-off-by: GitHub --- src/init.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/init.luau b/src/init.luau index e20d0aad..6488fcfa 100644 --- a/src/init.luau +++ b/src/init.luau @@ -154,7 +154,7 @@ local GAMEPAD_INPUT_TYPES: { [Enum.UserInputType]: boolean } = -- Topbar logic local BackpackEnabled: boolean = true -local Icon: any = require(script.Packages:WaitForChild("topbarplus")) +local Icon: any = require(script.Packages:WaitForChild("TopbarPlus")) local inventoryIcon: any = Icon.new() :setName("Inventory") From 7fd98e45064eacb2daec387c9615e034b1030cf0 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 02:47:18 +0000 Subject: [PATCH 09/95] Use RunContext for scripts Signed-off-by: GitHub --- default.project.json | 3 ++- model.project.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/default.project.json b/default.project.json index 4bf00e46..0dee56fe 100644 --- a/default.project.json +++ b/default.project.json @@ -18,5 +18,6 @@ } } } - } + }, + "emitLegacyScripts": false } \ No newline at end of file diff --git a/model.project.json b/model.project.json index 241e0825..f4ed174e 100644 --- a/model.project.json +++ b/model.project.json @@ -10,5 +10,6 @@ "$path": "Packages" } } - } + }, + "emitLegacyScripts": false } \ No newline at end of file From 3e7a0fa664a40a8688a29bd2d03c0f77e64946a4 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 02:48:44 +0000 Subject: [PATCH 10/95] Ignore rojo files Signed-off-by: GitHub --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 44e3044f..6ab79f2d 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,10 @@ site*/ # Rojo sourcemap.json +*.rbxl +*.rbxlx +*.rbxm +*.rbxmx # Workflow builds builds/ From 6c17f50d41f04b62e4366bcd470d9a000d91d29b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 25 Mar 2025 02:59:28 +0000 Subject: [PATCH 11/95] Remove extra files Signed-off-by: GitHub --- .editorconfig | 5 - .gitattributes | 2 - .luaurc | 3 - roblox.yml | 18889 ----------------------------------------------- 4 files changed, 18899 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .gitattributes delete mode 100644 .luaurc delete mode 100644 roblox.yml diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 7ec5119d..00000000 --- a/.editorconfig +++ /dev/null @@ -1,5 +0,0 @@ -[*.luau] -indent_style = tab -indent_size = 4 -charset = utf-8 -trim_trailing_whitespace = true diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index dfe07704..00000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto diff --git a/.luaurc b/.luaurc deleted file mode 100644 index 4614cc83..00000000 --- a/.luaurc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "languageMode": "strict" -} \ No newline at end of file diff --git a/roblox.yml b/roblox.yml deleted file mode 100644 index 7a066853..00000000 --- a/roblox.yml +++ /dev/null @@ -1,18889 +0,0 @@ -# This file was @generated by generate-roblox-std at 2024-01-20 16:53:31.251240100 -08:00 -base: luau -name: roblox -globals: - Axes.new: - args: - - type: '...' - must_use: true - BrickColor.Black: - args: [] - must_use: true - BrickColor.Blue: - args: [] - must_use: true - BrickColor.DarkGray: - args: [] - must_use: true - BrickColor.Gray: - args: [] - must_use: true - BrickColor.Green: - args: [] - must_use: true - BrickColor.Red: - args: [] - must_use: true - BrickColor.White: - args: [] - must_use: true - BrickColor.Yellow: - args: [] - must_use: true - BrickColor.new: - args: - - type: any - - required: false - type: number - - required: false - type: number - must_use: true - BrickColor.palette: - args: - - type: number - must_use: true - BrickColor.random: - args: [] - must_use: true - CFrame.Angles: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - CFrame.fromAxisAngle: - args: - - type: - display: Vector3 - - type: number - must_use: true - CFrame.fromEulerAngles: - args: - - type: number - - type: number - - type: number - - required: false - type: - display: RotationOrder - must_use: true - CFrame.fromEulerAnglesXYZ: - args: - - type: number - - type: number - - type: number - must_use: true - CFrame.fromEulerAnglesYXZ: - args: - - type: number - - type: number - - type: number - must_use: true - CFrame.fromMatrix: - args: - - type: - display: Vector3 - - type: - display: Vector3 - - type: - display: Vector3 - - required: false - type: - display: Vector3 - must_use: true - CFrame.fromOrientation: - args: - - type: number - - type: number - - type: number - must_use: true - CFrame.identity: - property: read-only - CFrame.lookAt: - args: - - type: - display: Vector3 - - type: - display: Vector3 - - required: false - type: - display: Vector3 - must_use: true - CFrame.new: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - CatalogSearchParams.new: - args: [] - must_use: true - Color3.fromHSV: - args: - - type: number - - type: number - - type: number - must_use: true - Color3.fromHex: - args: - - type: string - must_use: true - Color3.fromRGB: - args: - - type: number - - type: number - - type: number - must_use: true - Color3.new: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - Color3.toHSV: - args: - - type: - display: Color3 - must_use: true - ColorSequence.new: - args: - - type: any - - required: false - type: - display: Color3 - must_use: true - ColorSequenceKeypoint.new: - args: - - type: number - - type: - display: Color3 - must_use: true - DateTime.fromIsoDate: - args: - - type: string - must_use: true - DateTime.fromLocalTime: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - DateTime.fromUniversalTime: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - DateTime.fromUnixTimestamp: - args: - - type: number - must_use: true - DateTime.fromUnixTimestampMillis: - args: - - type: number - must_use: true - DateTime.now: - args: [] - must_use: true - DebuggerManager: - args: [] - must_use: true - DockWidgetPluginGuiInfo.new: - args: - - required: false - type: - display: InitialDockState - - required: false - type: bool - - required: false - type: bool - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - Enum.AccessModifierType.Allow: - struct: EnumItem - Enum.AccessModifierType.Deny: - struct: EnumItem - Enum.AccessModifierType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AccessoryType.Back: - struct: EnumItem - Enum.AccessoryType.DressSkirt: - struct: EnumItem - Enum.AccessoryType.Eyebrow: - struct: EnumItem - Enum.AccessoryType.Eyelash: - struct: EnumItem - Enum.AccessoryType.Face: - struct: EnumItem - Enum.AccessoryType.Front: - struct: EnumItem - Enum.AccessoryType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AccessoryType.Hair: - struct: EnumItem - Enum.AccessoryType.Hat: - struct: EnumItem - Enum.AccessoryType.Jacket: - struct: EnumItem - Enum.AccessoryType.LeftShoe: - struct: EnumItem - Enum.AccessoryType.Neck: - struct: EnumItem - Enum.AccessoryType.Pants: - struct: EnumItem - Enum.AccessoryType.RightShoe: - struct: EnumItem - Enum.AccessoryType.Shirt: - struct: EnumItem - Enum.AccessoryType.Shorts: - struct: EnumItem - Enum.AccessoryType.Shoulder: - struct: EnumItem - Enum.AccessoryType.Sweater: - struct: EnumItem - Enum.AccessoryType.TShirt: - struct: EnumItem - Enum.AccessoryType.TeeShirt: - struct: EnumItem - deprecated: - message: Enum.AccessoryType.TeeShirt was replaced with Enum.AccessoryType.TShirt - replace: - - Enum.AccessoryType.TShirt - Enum.AccessoryType.Unknown: - struct: EnumItem - Enum.AccessoryType.Waist: - struct: EnumItem - Enum.ActionType.Draw: - struct: EnumItem - Enum.ActionType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ActionType.Lose: - struct: EnumItem - Enum.ActionType.Nothing: - struct: EnumItem - Enum.ActionType.Pause: - struct: EnumItem - Enum.ActionType.Win: - struct: EnumItem - Enum.ActuatorRelativeTo.Attachment0: - struct: EnumItem - Enum.ActuatorRelativeTo.Attachment1: - struct: EnumItem - Enum.ActuatorRelativeTo.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ActuatorRelativeTo.World: - struct: EnumItem - Enum.ActuatorType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ActuatorType.Motor: - struct: EnumItem - Enum.ActuatorType.None: - struct: EnumItem - Enum.ActuatorType.Servo: - struct: EnumItem - Enum.AdEventType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AdEventType.UserCompletedVideo: - struct: EnumItem - Enum.AdEventType.VideoLoaded: - struct: EnumItem - Enum.AdEventType.VideoRemoved: - struct: EnumItem - Enum.AdShape.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AdShape.HorizontalRectangle: - struct: EnumItem - Enum.AdTeleportMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AdTeleportMethod.InGameMenuBackButton: - struct: EnumItem - Enum.AdTeleportMethod.PortalForward: - struct: EnumItem - Enum.AdTeleportMethod.UIBackButton: - struct: EnumItem - Enum.AdTeleportMethod.Undefined: - struct: EnumItem - Enum.AdUnitStatus.Active: - struct: EnumItem - Enum.AdUnitStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AdUnitStatus.Inactive: - struct: EnumItem - Enum.AdornCullingMode.Automatic: - struct: EnumItem - Enum.AdornCullingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AdornCullingMode.Never: - struct: EnumItem - Enum.AlignType.AllAxes: - struct: EnumItem - Enum.AlignType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AlignType.Parallel: - struct: EnumItem - Enum.AlignType.Perpendicular: - struct: EnumItem - Enum.AlignType.PrimaryAxisLookAt: - struct: EnumItem - Enum.AlignType.PrimaryAxisParallel: - struct: EnumItem - Enum.AlignType.PrimaryAxisPerpendicular: - struct: EnumItem - Enum.AlphaMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AlphaMode.Overlay: - struct: EnumItem - Enum.AlphaMode.Transparency: - struct: EnumItem - Enum.AnalyticsEconomyAction.Acquire: - struct: EnumItem - Enum.AnalyticsEconomyAction.Default: - struct: EnumItem - Enum.AnalyticsEconomyAction.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AnalyticsEconomyAction.Spend: - struct: EnumItem - Enum.AnalyticsLogLevel.Debug: - struct: EnumItem - Enum.AnalyticsLogLevel.Error: - struct: EnumItem - Enum.AnalyticsLogLevel.Fatal: - struct: EnumItem - Enum.AnalyticsLogLevel.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AnalyticsLogLevel.Information: - struct: EnumItem - Enum.AnalyticsLogLevel.Trace: - struct: EnumItem - Enum.AnalyticsLogLevel.Warning: - struct: EnumItem - Enum.AnalyticsProgressionStatus.Abandon: - struct: EnumItem - Enum.AnalyticsProgressionStatus.Begin: - struct: EnumItem - Enum.AnalyticsProgressionStatus.Complete: - struct: EnumItem - Enum.AnalyticsProgressionStatus.Default: - struct: EnumItem - Enum.AnalyticsProgressionStatus.Fail: - struct: EnumItem - Enum.AnalyticsProgressionStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AnimationClipFromVideoStatus.Cancelled: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorGeneric: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorMultiplePeople: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorNoPersonDetected: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorUploadingVideo: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorVideoTooLong: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.ErrorVideoUnstable: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AnimationClipFromVideoStatus.Initializing: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.Pending: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.Processing: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.Success: - struct: EnumItem - Enum.AnimationClipFromVideoStatus.Timeout: - struct: EnumItem - Enum.AnimationPriority.Action: - struct: EnumItem - Enum.AnimationPriority.Action2: - struct: EnumItem - Enum.AnimationPriority.Action3: - struct: EnumItem - Enum.AnimationPriority.Action4: - struct: EnumItem - Enum.AnimationPriority.Core: - struct: EnumItem - Enum.AnimationPriority.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AnimationPriority.Idle: - struct: EnumItem - Enum.AnimationPriority.Movement: - struct: EnumItem - Enum.AnimatorRetargetingMode.Default: - struct: EnumItem - Enum.AnimatorRetargetingMode.Disabled: - struct: EnumItem - Enum.AnimatorRetargetingMode.Enabled: - struct: EnumItem - Enum.AnimatorRetargetingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AppShellActionType.AvatarEditorPageLoaded: - struct: EnumItem - Enum.AppShellActionType.GamePageLoaded: - struct: EnumItem - Enum.AppShellActionType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AppShellActionType.HomePageLoaded: - struct: EnumItem - Enum.AppShellActionType.None: - struct: EnumItem - Enum.AppShellActionType.OpenApp: - struct: EnumItem - Enum.AppShellActionType.ReadConversation: - struct: EnumItem - Enum.AppShellActionType.TapAvatarTab: - struct: EnumItem - Enum.AppShellActionType.TapChatTab: - struct: EnumItem - Enum.AppShellActionType.TapConversationEntry: - struct: EnumItem - Enum.AppShellActionType.TapGamePageTab: - struct: EnumItem - Enum.AppShellActionType.TapHomePageTab: - struct: EnumItem - Enum.AppShellFeature.AvatarEditor: - struct: EnumItem - Enum.AppShellFeature.Chat: - struct: EnumItem - Enum.AppShellFeature.GamePage: - struct: EnumItem - Enum.AppShellFeature.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AppShellFeature.HomePage: - struct: EnumItem - Enum.AppShellFeature.Landing: - struct: EnumItem - Enum.AppShellFeature.More: - struct: EnumItem - Enum.AppShellFeature.None: - struct: EnumItem - Enum.AppUpdateStatus.Available: - struct: EnumItem - Enum.AppUpdateStatus.Failed: - struct: EnumItem - Enum.AppUpdateStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AppUpdateStatus.NotAvailable: - struct: EnumItem - Enum.AppUpdateStatus.NotSupported: - struct: EnumItem - Enum.AppUpdateStatus.Unknown: - struct: EnumItem - Enum.ApplyStrokeMode.Border: - struct: EnumItem - Enum.ApplyStrokeMode.Contextual: - struct: EnumItem - Enum.ApplyStrokeMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AspectType.FitWithinMaxSize: - struct: EnumItem - Enum.AspectType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AspectType.ScaleWithParentSize: - struct: EnumItem - Enum.AssetCreatorType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AssetCreatorType.Group: - struct: EnumItem - Enum.AssetCreatorType.User: - struct: EnumItem - Enum.AssetFetchStatus.Failure: - struct: EnumItem - Enum.AssetFetchStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AssetFetchStatus.Loading: - struct: EnumItem - Enum.AssetFetchStatus.None: - struct: EnumItem - Enum.AssetFetchStatus.Success: - struct: EnumItem - Enum.AssetFetchStatus.TimedOut: - struct: EnumItem - Enum.AssetType.Animation: - struct: EnumItem - Enum.AssetType.Audio: - struct: EnumItem - Enum.AssetType.BackAccessory: - struct: EnumItem - Enum.AssetType.Badge: - struct: EnumItem - Enum.AssetType.ClimbAnimation: - struct: EnumItem - Enum.AssetType.DeathAnimation: - struct: EnumItem - Enum.AssetType.Decal: - struct: EnumItem - Enum.AssetType.DressSkirtAccessory: - struct: EnumItem - Enum.AssetType.DynamicHead: - struct: EnumItem - Enum.AssetType.EarAccessory: - struct: EnumItem - Enum.AssetType.EmoteAnimation: - struct: EnumItem - Enum.AssetType.EyeAccessory: - struct: EnumItem - Enum.AssetType.EyebrowAccessory: - struct: EnumItem - Enum.AssetType.EyelashAccessory: - struct: EnumItem - Enum.AssetType.Face: - struct: EnumItem - Enum.AssetType.FaceAccessory: - struct: EnumItem - Enum.AssetType.FallAnimation: - struct: EnumItem - Enum.AssetType.FontFamily: - struct: EnumItem - Enum.AssetType.FrontAccessory: - struct: EnumItem - Enum.AssetType.GamePass: - struct: EnumItem - Enum.AssetType.Gear: - struct: EnumItem - Enum.AssetType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AssetType.HairAccessory: - struct: EnumItem - Enum.AssetType.Hat: - struct: EnumItem - Enum.AssetType.Head: - struct: EnumItem - Enum.AssetType.IdleAnimation: - struct: EnumItem - Enum.AssetType.Image: - struct: EnumItem - Enum.AssetType.JacketAccessory: - struct: EnumItem - Enum.AssetType.JumpAnimation: - struct: EnumItem - Enum.AssetType.LeftArm: - struct: EnumItem - Enum.AssetType.LeftLeg: - struct: EnumItem - Enum.AssetType.LeftShoeAccessory: - struct: EnumItem - Enum.AssetType.Lua: - struct: EnumItem - Enum.AssetType.Mesh: - struct: EnumItem - Enum.AssetType.MeshPart: - struct: EnumItem - Enum.AssetType.Model: - struct: EnumItem - Enum.AssetType.MoodAnimation: - struct: EnumItem - Enum.AssetType.NeckAccessory: - struct: EnumItem - Enum.AssetType.Package: - struct: EnumItem - Enum.AssetType.Pants: - struct: EnumItem - Enum.AssetType.PantsAccessory: - struct: EnumItem - Enum.AssetType.Place: - struct: EnumItem - Enum.AssetType.Plugin: - struct: EnumItem - Enum.AssetType.PoseAnimation: - struct: EnumItem - Enum.AssetType.RightArm: - struct: EnumItem - Enum.AssetType.RightLeg: - struct: EnumItem - Enum.AssetType.RightShoeAccessory: - struct: EnumItem - Enum.AssetType.RunAnimation: - struct: EnumItem - Enum.AssetType.Shirt: - struct: EnumItem - Enum.AssetType.ShirtAccessory: - struct: EnumItem - Enum.AssetType.ShortsAccessory: - struct: EnumItem - Enum.AssetType.ShoulderAccessory: - struct: EnumItem - Enum.AssetType.SweaterAccessory: - struct: EnumItem - Enum.AssetType.SwimAnimation: - struct: EnumItem - Enum.AssetType.TShirt: - struct: EnumItem - Enum.AssetType.TShirtAccessory: - struct: EnumItem - Enum.AssetType.TeeShirt: - struct: EnumItem - deprecated: - message: Enum.AssetType.TeeShirt was replaced with Enum.AssetType.TShirt - replace: - - Enum.AssetType.TShirt - Enum.AssetType.TeeShirtAccessory: - struct: EnumItem - deprecated: - message: Enum.AssetType.TeeShirtAccessory was replaced with Enum.AssetType.TShirtAccessory - replace: - - Enum.AssetType.TShirtAccessory - Enum.AssetType.Torso: - struct: EnumItem - Enum.AssetType.Video: - struct: EnumItem - Enum.AssetType.WaistAccessory: - struct: EnumItem - Enum.AssetType.WalkAnimation: - struct: EnumItem - Enum.AssetTypeVerification.Always: - struct: EnumItem - Enum.AssetTypeVerification.ClientOnly: - struct: EnumItem - Enum.AssetTypeVerification.Default: - struct: EnumItem - Enum.AssetTypeVerification.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AudioApiRollout.Automatic: - struct: EnumItem - Enum.AudioApiRollout.Disabled: - struct: EnumItem - Enum.AudioApiRollout.Enabled: - struct: EnumItem - Enum.AudioApiRollout.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AudioSubType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AudioSubType.Music: - struct: EnumItem - Enum.AudioSubType.SoundEffect: - struct: EnumItem - Enum.AudioWindowSize.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AudioWindowSize.Large: - struct: EnumItem - Enum.AudioWindowSize.Medium: - struct: EnumItem - Enum.AudioWindowSize.Small: - struct: EnumItem - Enum.AutoIndentRule.Absolute: - struct: EnumItem - Enum.AutoIndentRule.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AutoIndentRule.Off: - struct: EnumItem - Enum.AutoIndentRule.Relative: - struct: EnumItem - Enum.AutomaticSize.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AutomaticSize.None: - struct: EnumItem - Enum.AutomaticSize.X: - struct: EnumItem - Enum.AutomaticSize.XY: - struct: EnumItem - Enum.AutomaticSize.Y: - struct: EnumItem - Enum.AvatarAssetType.BackAccessory: - struct: EnumItem - Enum.AvatarAssetType.ClimbAnimation: - struct: EnumItem - Enum.AvatarAssetType.DressSkirtAccessory: - struct: EnumItem - Enum.AvatarAssetType.DynamicHead: - struct: EnumItem - Enum.AvatarAssetType.EmoteAnimation: - struct: EnumItem - Enum.AvatarAssetType.EyebrowAccessory: - struct: EnumItem - Enum.AvatarAssetType.EyelashAccessory: - struct: EnumItem - Enum.AvatarAssetType.Face: - struct: EnumItem - Enum.AvatarAssetType.FaceAccessory: - struct: EnumItem - Enum.AvatarAssetType.FallAnimation: - struct: EnumItem - Enum.AvatarAssetType.FrontAccessory: - struct: EnumItem - Enum.AvatarAssetType.Gear: - struct: EnumItem - Enum.AvatarAssetType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarAssetType.HairAccessory: - struct: EnumItem - Enum.AvatarAssetType.Hat: - struct: EnumItem - Enum.AvatarAssetType.Head: - struct: EnumItem - Enum.AvatarAssetType.IdleAnimation: - struct: EnumItem - Enum.AvatarAssetType.JacketAccessory: - struct: EnumItem - Enum.AvatarAssetType.JumpAnimation: - struct: EnumItem - Enum.AvatarAssetType.LeftArm: - struct: EnumItem - Enum.AvatarAssetType.LeftLeg: - struct: EnumItem - Enum.AvatarAssetType.LeftShoeAccessory: - struct: EnumItem - Enum.AvatarAssetType.MoodAnimation: - struct: EnumItem - Enum.AvatarAssetType.NeckAccessory: - struct: EnumItem - Enum.AvatarAssetType.Pants: - struct: EnumItem - Enum.AvatarAssetType.PantsAccessory: - struct: EnumItem - Enum.AvatarAssetType.RightArm: - struct: EnumItem - Enum.AvatarAssetType.RightLeg: - struct: EnumItem - Enum.AvatarAssetType.RightShoeAccessory: - struct: EnumItem - Enum.AvatarAssetType.RunAnimation: - struct: EnumItem - Enum.AvatarAssetType.Shirt: - struct: EnumItem - Enum.AvatarAssetType.ShirtAccessory: - struct: EnumItem - Enum.AvatarAssetType.ShortsAccessory: - struct: EnumItem - Enum.AvatarAssetType.ShoulderAccessory: - struct: EnumItem - Enum.AvatarAssetType.SweaterAccessory: - struct: EnumItem - Enum.AvatarAssetType.SwimAnimation: - struct: EnumItem - Enum.AvatarAssetType.TShirt: - struct: EnumItem - Enum.AvatarAssetType.TShirtAccessory: - struct: EnumItem - Enum.AvatarAssetType.TeeShirtAccessory: - struct: EnumItem - deprecated: - message: Enum.AvatarAssetType.TeeShirtAccessory was replaced with Enum.AvatarAssetType.TShirtAccessory - replace: - - Enum.AvatarAssetType.TShirtAccessory - Enum.AvatarAssetType.Torso: - struct: EnumItem - Enum.AvatarAssetType.WaistAccessory: - struct: EnumItem - Enum.AvatarAssetType.WalkAnimation: - struct: EnumItem - Enum.AvatarChatServiceFeature.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarChatServiceFeature.None: - struct: EnumItem - Enum.AvatarChatServiceFeature.PlaceAudio: - struct: EnumItem - Enum.AvatarChatServiceFeature.PlaceVideo: - struct: EnumItem - Enum.AvatarChatServiceFeature.UniverseAudio: - struct: EnumItem - Enum.AvatarChatServiceFeature.UniverseVideo: - struct: EnumItem - Enum.AvatarChatServiceFeature.UserAudio: - struct: EnumItem - Enum.AvatarChatServiceFeature.UserAudioEligible: - struct: EnumItem - Enum.AvatarChatServiceFeature.UserBanned: - struct: EnumItem - Enum.AvatarChatServiceFeature.UserVideo: - struct: EnumItem - Enum.AvatarChatServiceFeature.UserVideoEligible: - struct: EnumItem - Enum.AvatarContextMenuOption.Chat: - struct: EnumItem - Enum.AvatarContextMenuOption.Emote: - struct: EnumItem - Enum.AvatarContextMenuOption.Friend: - struct: EnumItem - Enum.AvatarContextMenuOption.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarContextMenuOption.InspectMenu: - struct: EnumItem - Enum.AvatarItemType.Asset: - struct: EnumItem - Enum.AvatarItemType.Bundle: - struct: EnumItem - Enum.AvatarItemType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarJointUpgrade.Default: - struct: EnumItem - Enum.AvatarJointUpgrade.Disabled: - struct: EnumItem - Enum.AvatarJointUpgrade.Enabled: - struct: EnumItem - Enum.AvatarJointUpgrade.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarPromptResult.Failed: - struct: EnumItem - Enum.AvatarPromptResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarPromptResult.PermissionDenied: - struct: EnumItem - Enum.AvatarPromptResult.Success: - struct: EnumItem - Enum.AvatarThumbnailCustomizationType.Closeup: - struct: EnumItem - Enum.AvatarThumbnailCustomizationType.FullBody: - struct: EnumItem - Enum.AvatarThumbnailCustomizationType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.AvatarUnificationMode.Default: - struct: EnumItem - Enum.AvatarUnificationMode.Disabled: - struct: EnumItem - Enum.AvatarUnificationMode.Enabled: - struct: EnumItem - Enum.AvatarUnificationMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Axis.Back: - struct: EnumItem - deprecated: - message: Enum.Axis.Back was replaced with Enum.Axis.Z - replace: - - Enum.Axis.Z - Enum.Axis.Bottom: - struct: EnumItem - deprecated: - message: Enum.Axis.Bottom was replaced with Enum.Axis.Y - replace: - - Enum.Axis.Y - Enum.Axis.Front: - struct: EnumItem - deprecated: - message: Enum.Axis.Front was replaced with Enum.Axis.Z - replace: - - Enum.Axis.Z - Enum.Axis.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Axis.Left: - struct: EnumItem - deprecated: - message: Enum.Axis.Left was replaced with Enum.Axis.X - replace: - - Enum.Axis.X - Enum.Axis.Right: - struct: EnumItem - deprecated: - message: Enum.Axis.Right was replaced with Enum.Axis.X - replace: - - Enum.Axis.X - Enum.Axis.Top: - struct: EnumItem - deprecated: - message: Enum.Axis.Top was replaced with Enum.Axis.Y - replace: - - Enum.Axis.Y - Enum.Axis.X: - struct: EnumItem - Enum.Axis.Y: - struct: EnumItem - Enum.Axis.Z: - struct: EnumItem - Enum.BinType.Clone: - struct: EnumItem - Enum.BinType.GameTool: - struct: EnumItem - Enum.BinType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BinType.Grab: - struct: EnumItem - Enum.BinType.Hammer: - struct: EnumItem - Enum.BinType.Laser: - struct: EnumItem - deprecated: - message: Enum.BinType.Laser was replaced with Enum.BinType.Script - replace: - - Enum.BinType.Script - Enum.BinType.Rocket: - struct: EnumItem - deprecated: - message: Enum.BinType.Rocket was replaced with Enum.BinType.Script - replace: - - Enum.BinType.Script - Enum.BinType.Script: - struct: EnumItem - Enum.BinType.Slingshot: - struct: EnumItem - deprecated: - message: Enum.BinType.Slingshot was replaced with Enum.BinType.Script - replace: - - Enum.BinType.Script - Enum.BodyPart.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BodyPart.Head: - struct: EnumItem - Enum.BodyPart.LeftArm: - struct: EnumItem - Enum.BodyPart.LeftLeg: - struct: EnumItem - Enum.BodyPart.RightArm: - struct: EnumItem - Enum.BodyPart.RightLeg: - struct: EnumItem - Enum.BodyPart.Torso: - struct: EnumItem - Enum.BodyPartR15.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BodyPartR15.Head: - struct: EnumItem - Enum.BodyPartR15.LeftFoot: - struct: EnumItem - Enum.BodyPartR15.LeftHand: - struct: EnumItem - Enum.BodyPartR15.LeftLowerArm: - struct: EnumItem - Enum.BodyPartR15.LeftLowerLeg: - struct: EnumItem - Enum.BodyPartR15.LeftUpperArm: - struct: EnumItem - Enum.BodyPartR15.LeftUpperLeg: - struct: EnumItem - Enum.BodyPartR15.LowerTorso: - struct: EnumItem - Enum.BodyPartR15.RightFoot: - struct: EnumItem - Enum.BodyPartR15.RightHand: - struct: EnumItem - Enum.BodyPartR15.RightLowerArm: - struct: EnumItem - Enum.BodyPartR15.RightLowerLeg: - struct: EnumItem - Enum.BodyPartR15.RightUpperArm: - struct: EnumItem - Enum.BodyPartR15.RightUpperLeg: - struct: EnumItem - Enum.BodyPartR15.RootPart: - struct: EnumItem - Enum.BodyPartR15.Unknown: - struct: EnumItem - Enum.BodyPartR15.UpperTorso: - struct: EnumItem - Enum.BorderMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BorderMode.Inset: - struct: EnumItem - Enum.BorderMode.Middle: - struct: EnumItem - Enum.BorderMode.Outline: - struct: EnumItem - Enum.BreakReason.Error: - struct: EnumItem - Enum.BreakReason.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BreakReason.Other: - struct: EnumItem - Enum.BreakReason.SpecialBreakpoint: - struct: EnumItem - Enum.BreakReason.UserBreakpoint: - struct: EnumItem - Enum.BreakpointRemoveReason.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BreakpointRemoveReason.Requested: - struct: EnumItem - Enum.BreakpointRemoveReason.ScriptChanged: - struct: EnumItem - Enum.BreakpointRemoveReason.ScriptRemoved: - struct: EnumItem - Enum.BulkMoveMode.FireAllEvents: - struct: EnumItem - Enum.BulkMoveMode.FireCFrameChanged: - struct: EnumItem - Enum.BulkMoveMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BundleType.Animations: - struct: EnumItem - Enum.BundleType.BodyParts: - struct: EnumItem - Enum.BundleType.DynamicHead: - struct: EnumItem - Enum.BundleType.DynamicHeadAvatar: - struct: EnumItem - Enum.BundleType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.BundleType.Shoes: - struct: EnumItem - Enum.Button.Dismount: - struct: EnumItem - Enum.Button.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Button.Jump: - struct: EnumItem - Enum.ButtonStyle.Custom: - struct: EnumItem - Enum.ButtonStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ButtonStyle.RobloxButton: - struct: EnumItem - Enum.ButtonStyle.RobloxButtonDefault: - struct: EnumItem - Enum.ButtonStyle.RobloxRoundButton: - struct: EnumItem - Enum.ButtonStyle.RobloxRoundDefaultButton: - struct: EnumItem - Enum.ButtonStyle.RobloxRoundDropdownButton: - struct: EnumItem - Enum.CageType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CageType.Inner: - struct: EnumItem - Enum.CageType.Outer: - struct: EnumItem - Enum.CameraMode.Classic: - struct: EnumItem - Enum.CameraMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CameraMode.LockFirstPerson: - struct: EnumItem - Enum.CameraPanMode.Classic: - struct: EnumItem - Enum.CameraPanMode.EdgeBump: - struct: EnumItem - Enum.CameraPanMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CameraSpeedAdjustBinding.AltScroll: - struct: EnumItem - Enum.CameraSpeedAdjustBinding.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CameraSpeedAdjustBinding.None: - struct: EnumItem - Enum.CameraSpeedAdjustBinding.RmbScroll: - struct: EnumItem - Enum.CameraType.Attach: - struct: EnumItem - Enum.CameraType.Custom: - struct: EnumItem - Enum.CameraType.Fixed: - struct: EnumItem - Enum.CameraType.Follow: - struct: EnumItem - Enum.CameraType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CameraType.Orbital: - struct: EnumItem - Enum.CameraType.Scriptable: - struct: EnumItem - Enum.CameraType.Track: - struct: EnumItem - Enum.CameraType.Watch: - struct: EnumItem - Enum.CatalogCategoryFilter.Collectibles: - struct: EnumItem - Enum.CatalogCategoryFilter.CommunityCreations: - struct: EnumItem - Enum.CatalogCategoryFilter.Featured: - struct: EnumItem - Enum.CatalogCategoryFilter.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CatalogCategoryFilter.None: - struct: EnumItem - Enum.CatalogCategoryFilter.Premium: - struct: EnumItem - Enum.CatalogCategoryFilter.Recommended: - struct: EnumItem - Enum.CatalogSortAggregation.AllTime: - struct: EnumItem - Enum.CatalogSortAggregation.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CatalogSortAggregation.Past12Hours: - struct: EnumItem - Enum.CatalogSortAggregation.Past3Days: - struct: EnumItem - Enum.CatalogSortAggregation.PastDay: - struct: EnumItem - Enum.CatalogSortAggregation.PastMonth: - struct: EnumItem - Enum.CatalogSortAggregation.PastWeek: - struct: EnumItem - Enum.CatalogSortType.Bestselling: - struct: EnumItem - Enum.CatalogSortType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CatalogSortType.MostFavorited: - struct: EnumItem - Enum.CatalogSortType.PriceHighToLow: - struct: EnumItem - Enum.CatalogSortType.PriceLowToHigh: - struct: EnumItem - Enum.CatalogSortType.RecentlyCreated: - struct: EnumItem - Enum.CatalogSortType.RecentlyUpdated: - struct: EnumItem - deprecated: - message: Enum.CatalogSortType.RecentlyUpdated was replaced with Enum.CatalogSortType.RecentlyCreated - replace: - - Enum.CatalogSortType.RecentlyCreated - Enum.CatalogSortType.Relevance: - struct: EnumItem - Enum.CellBlock.CornerWedge: - struct: EnumItem - Enum.CellBlock.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CellBlock.HorizontalWedge: - struct: EnumItem - Enum.CellBlock.InverseCornerWedge: - struct: EnumItem - Enum.CellBlock.Solid: - struct: EnumItem - Enum.CellBlock.VerticalWedge: - struct: EnumItem - Enum.CellMaterial.Aluminum: - struct: EnumItem - Enum.CellMaterial.Asphalt: - struct: EnumItem - Enum.CellMaterial.BluePlastic: - struct: EnumItem - Enum.CellMaterial.Brick: - struct: EnumItem - Enum.CellMaterial.Cement: - struct: EnumItem - Enum.CellMaterial.CinderBlock: - struct: EnumItem - Enum.CellMaterial.Empty: - struct: EnumItem - Enum.CellMaterial.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CellMaterial.Gold: - struct: EnumItem - Enum.CellMaterial.Granite: - struct: EnumItem - Enum.CellMaterial.Grass: - struct: EnumItem - Enum.CellMaterial.Gravel: - struct: EnumItem - Enum.CellMaterial.Iron: - struct: EnumItem - Enum.CellMaterial.MossyStone: - struct: EnumItem - Enum.CellMaterial.RedPlastic: - struct: EnumItem - Enum.CellMaterial.Sand: - struct: EnumItem - Enum.CellMaterial.Water: - struct: EnumItem - Enum.CellMaterial.WoodLog: - struct: EnumItem - Enum.CellMaterial.WoodPlank: - struct: EnumItem - Enum.CellOrientation.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CellOrientation.NegX: - struct: EnumItem - Enum.CellOrientation.NegZ: - struct: EnumItem - Enum.CellOrientation.X: - struct: EnumItem - Enum.CellOrientation.Z: - struct: EnumItem - Enum.CenterDialogType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CenterDialogType.ModalDialog: - struct: EnumItem - Enum.CenterDialogType.PlayerInitiatedDialog: - struct: EnumItem - Enum.CenterDialogType.QuitDialog: - struct: EnumItem - Enum.CenterDialogType.UnsolicitedDialog: - struct: EnumItem - Enum.CharacterControlMode.Default: - struct: EnumItem - Enum.CharacterControlMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CharacterControlMode.Legacy: - struct: EnumItem - Enum.CharacterControlMode.LuaCharacterController: - struct: EnumItem - Enum.CharacterControlMode.NoCharacterController: - struct: EnumItem - Enum.ChatCallbackType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatCallbackType.OnClientFormattingMessage: - struct: EnumItem - Enum.ChatCallbackType.OnClientSendingMessage: - struct: EnumItem - Enum.ChatCallbackType.OnCreatingChatWindow: - struct: EnumItem - Enum.ChatCallbackType.OnServerReceivingMessage: - struct: EnumItem - Enum.ChatColor.Blue: - struct: EnumItem - Enum.ChatColor.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatColor.Green: - struct: EnumItem - Enum.ChatColor.Red: - struct: EnumItem - Enum.ChatColor.White: - struct: EnumItem - Enum.ChatMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatMode.Menu: - struct: EnumItem - Enum.ChatMode.TextAndMenu: - struct: EnumItem - Enum.ChatPrivacyMode.AllUsers: - struct: EnumItem - Enum.ChatPrivacyMode.Friends: - struct: EnumItem - Enum.ChatPrivacyMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatPrivacyMode.NoOne: - struct: EnumItem - Enum.ChatStyle.Bubble: - struct: EnumItem - Enum.ChatStyle.Classic: - struct: EnumItem - Enum.ChatStyle.ClassicAndBubble: - struct: EnumItem - Enum.ChatStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatVersion.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ChatVersion.LegacyChatService: - struct: EnumItem - Enum.ChatVersion.TextChatService: - struct: EnumItem - Enum.ClientAnimatorThrottlingMode.Default: - struct: EnumItem - Enum.ClientAnimatorThrottlingMode.Disabled: - struct: EnumItem - Enum.ClientAnimatorThrottlingMode.Enabled: - struct: EnumItem - Enum.ClientAnimatorThrottlingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CollaboratorStatus.Editing3D: - struct: EnumItem - Enum.CollaboratorStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CollaboratorStatus.None: - struct: EnumItem - Enum.CollaboratorStatus.PrivateScripting: - struct: EnumItem - Enum.CollaboratorStatus.Scripting: - struct: EnumItem - Enum.CollisionFidelity.Box: - struct: EnumItem - Enum.CollisionFidelity.Default: - struct: EnumItem - Enum.CollisionFidelity.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CollisionFidelity.Hull: - struct: EnumItem - Enum.CollisionFidelity.PreciseConvexDecomposition: - struct: EnumItem - Enum.CommandPermission.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CommandPermission.LocalUser: - struct: EnumItem - Enum.CommandPermission.Plugin: - struct: EnumItem - Enum.CompileTarget.Client: - struct: EnumItem - Enum.CompileTarget.CoreScript: - struct: EnumItem - Enum.CompileTarget.CoreScriptRaw: - struct: EnumItem - Enum.CompileTarget.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CompileTarget.Studio: - struct: EnumItem - Enum.CompletionItemKind.Class: - struct: EnumItem - Enum.CompletionItemKind.Color: - struct: EnumItem - Enum.CompletionItemKind.Constant: - struct: EnumItem - Enum.CompletionItemKind.Constructor: - struct: EnumItem - Enum.CompletionItemKind.Enum: - struct: EnumItem - Enum.CompletionItemKind.EnumMember: - struct: EnumItem - Enum.CompletionItemKind.Event: - struct: EnumItem - Enum.CompletionItemKind.Field: - struct: EnumItem - Enum.CompletionItemKind.File: - struct: EnumItem - Enum.CompletionItemKind.Folder: - struct: EnumItem - Enum.CompletionItemKind.Function: - struct: EnumItem - Enum.CompletionItemKind.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CompletionItemKind.Interface: - struct: EnumItem - Enum.CompletionItemKind.Keyword: - struct: EnumItem - Enum.CompletionItemKind.Method: - struct: EnumItem - Enum.CompletionItemKind.Module: - struct: EnumItem - Enum.CompletionItemKind.Operator: - struct: EnumItem - Enum.CompletionItemKind.Property: - struct: EnumItem - Enum.CompletionItemKind.Reference: - struct: EnumItem - Enum.CompletionItemKind.Snippet: - struct: EnumItem - Enum.CompletionItemKind.Struct: - struct: EnumItem - Enum.CompletionItemKind.Text: - struct: EnumItem - Enum.CompletionItemKind.TypeParameter: - struct: EnumItem - Enum.CompletionItemKind.Unit: - struct: EnumItem - Enum.CompletionItemKind.Value: - struct: EnumItem - Enum.CompletionItemKind.Variable: - struct: EnumItem - Enum.CompletionItemTag.AddParens: - struct: EnumItem - Enum.CompletionItemTag.ClientServerBoundaryViolation: - struct: EnumItem - Enum.CompletionItemTag.CommandLinePermissions: - struct: EnumItem - Enum.CompletionItemTag.Deprecated: - struct: EnumItem - Enum.CompletionItemTag.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CompletionItemTag.IncorrectIndexType: - struct: EnumItem - Enum.CompletionItemTag.Invalidated: - struct: EnumItem - Enum.CompletionItemTag.PluginPermissions: - struct: EnumItem - Enum.CompletionItemTag.PutCursorBeforeEnd: - struct: EnumItem - Enum.CompletionItemTag.PutCursorInParens: - struct: EnumItem - Enum.CompletionItemTag.RobloxPermissions: - struct: EnumItem - Enum.CompletionItemTag.TypeCorrect: - struct: EnumItem - Enum.CompletionTriggerKind.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CompletionTriggerKind.Invoked: - struct: EnumItem - Enum.CompletionTriggerKind.TriggerCharacter: - struct: EnumItem - Enum.CompletionTriggerKind.TriggerForIncompleteCompletions: - struct: EnumItem - Enum.ComputerCameraMovementMode.CameraToggle: - struct: EnumItem - Enum.ComputerCameraMovementMode.Classic: - struct: EnumItem - Enum.ComputerCameraMovementMode.Default: - struct: EnumItem - Enum.ComputerCameraMovementMode.Follow: - struct: EnumItem - Enum.ComputerCameraMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ComputerCameraMovementMode.Orbital: - struct: EnumItem - Enum.ComputerMovementMode.ClickToMove: - struct: EnumItem - Enum.ComputerMovementMode.Default: - struct: EnumItem - Enum.ComputerMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ComputerMovementMode.KeyboardMouse: - struct: EnumItem - Enum.ConnectionError.DisconnectBadhash: - struct: EnumItem - Enum.ConnectionError.DisconnectBlockedIP: - struct: EnumItem - Enum.ConnectionError.DisconnectBySecurityPolicy: - struct: EnumItem - Enum.ConnectionError.DisconnectClientFailure: - struct: EnumItem - Enum.ConnectionError.DisconnectClientRequest: - struct: EnumItem - Enum.ConnectionError.DisconnectCloudEditKick: - struct: EnumItem - Enum.ConnectionError.DisconnectCollaboratorPermissionRevoked: - struct: EnumItem - Enum.ConnectionError.DisconnectCollaboratorUnderage: - struct: EnumItem - Enum.ConnectionError.DisconnectConnectionLost: - struct: EnumItem - Enum.ConnectionError.DisconnectDevMaintenance: - struct: EnumItem - Enum.ConnectionError.DisconnectDuplicatePlayer: - struct: EnumItem - Enum.ConnectionError.DisconnectDuplicateTicket: - struct: EnumItem - Enum.ConnectionError.DisconnectErrors: - struct: EnumItem - Enum.ConnectionError.DisconnectEvicted: - struct: EnumItem - Enum.ConnectionError.DisconnectHashTimeout: - struct: EnumItem - Enum.ConnectionError.DisconnectIdle: - struct: EnumItem - Enum.ConnectionError.DisconnectIllegalTeleport: - struct: EnumItem - Enum.ConnectionError.DisconnectLuaKick: - struct: EnumItem - Enum.ConnectionError.DisconnectModeratedGame: - struct: EnumItem - Enum.ConnectionError.DisconnectNewSecurityKeyMismatch: - struct: EnumItem - Enum.ConnectionError.DisconnectOnRemoteSysStats: - struct: EnumItem - Enum.ConnectionError.DisconnectOutOfMemoryKeepPlayingLeave: - struct: EnumItem - Enum.ConnectionError.DisconnectPlayerless: - struct: EnumItem - Enum.ConnectionError.DisconnectPrivateServerKickout: - struct: EnumItem - Enum.ConnectionError.DisconnectProtocolMismatch: - struct: EnumItem - Enum.ConnectionError.DisconnectRaknetErrors: - struct: EnumItem - Enum.ConnectionError.DisconnectReceivePacketError: - struct: EnumItem - Enum.ConnectionError.DisconnectReceivePacketStreamError: - struct: EnumItem - Enum.ConnectionError.DisconnectRejoin: - struct: EnumItem - Enum.ConnectionError.DisconnectRobloxMaintenance: - struct: EnumItem - Enum.ConnectionError.DisconnectRomarkEndOfTest: - struct: EnumItem - Enum.ConnectionError.DisconnectSecurityKeyMismatch: - struct: EnumItem - Enum.ConnectionError.DisconnectSendPacketError: - struct: EnumItem - Enum.ConnectionError.DisconnectTimeout: - struct: EnumItem - Enum.ConnectionError.DisconnectWrongVersion: - struct: EnumItem - Enum.ConnectionError.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ConnectionError.NetworkInternal: - struct: EnumItem - Enum.ConnectionError.NetworkMisbehavior: - struct: EnumItem - Enum.ConnectionError.NetworkSecurity: - struct: EnumItem - Enum.ConnectionError.NetworkSend: - struct: EnumItem - Enum.ConnectionError.NetworkTimeout: - struct: EnumItem - Enum.ConnectionError.OK: - struct: EnumItem - Enum.ConnectionError.PlacelaunchCustomMessage: - struct: EnumItem - Enum.ConnectionError.PlacelaunchDisabled: - struct: EnumItem - Enum.ConnectionError.PlacelaunchError: - struct: EnumItem - Enum.ConnectionError.PlacelaunchErrors: - struct: EnumItem - Enum.ConnectionError.PlacelaunchFlooded: - struct: EnumItem - Enum.ConnectionError.PlacelaunchGameEnded: - struct: EnumItem - Enum.ConnectionError.PlacelaunchGameFull: - struct: EnumItem - Enum.ConnectionError.PlacelaunchHashException: - struct: EnumItem - Enum.ConnectionError.PlacelaunchHashExpired: - struct: EnumItem - Enum.ConnectionError.PlacelaunchHttpError: - struct: EnumItem - Enum.ConnectionError.PlacelaunchOtherError: - struct: EnumItem - Enum.ConnectionError.PlacelaunchPartyCannotFit: - struct: EnumItem - Enum.ConnectionError.PlacelaunchRestricted: - struct: EnumItem - Enum.ConnectionError.PlacelaunchUnauthorized: - struct: EnumItem - Enum.ConnectionError.PlacelaunchUserLeft: - struct: EnumItem - Enum.ConnectionError.PlacelaunchUserPrivacyUnauthorized: - struct: EnumItem - Enum.ConnectionError.PlayerRemoved: - struct: EnumItem - Enum.ConnectionError.ReplacementReady: - struct: EnumItem - Enum.ConnectionError.ReplicatorTimeout: - struct: EnumItem - Enum.ConnectionError.ServerShutdown: - struct: EnumItem - Enum.ConnectionError.TeleportErrors: - struct: EnumItem - Enum.ConnectionError.TeleportFailure: - struct: EnumItem - Enum.ConnectionError.TeleportFlooded: - struct: EnumItem - Enum.ConnectionError.TeleportGameEnded: - struct: EnumItem - Enum.ConnectionError.TeleportGameFull: - struct: EnumItem - Enum.ConnectionError.TeleportGameNotFound: - struct: EnumItem - Enum.ConnectionError.TeleportIsTeleporting: - struct: EnumItem - Enum.ConnectionError.TeleportUnauthorized: - struct: EnumItem - Enum.ConnectionError.Unknown: - struct: EnumItem - Enum.ConnectionState.Connected: - struct: EnumItem - Enum.ConnectionState.Disconnected: - struct: EnumItem - Enum.ConnectionState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ContextActionPriority.Default: - struct: EnumItem - deprecated: - message: Enum.ContextActionPriority.Default was replaced with Enum.ContextActionPriority.Medium - replace: - - Enum.ContextActionPriority.Medium - Enum.ContextActionPriority.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ContextActionPriority.High: - struct: EnumItem - Enum.ContextActionPriority.Low: - struct: EnumItem - Enum.ContextActionPriority.Medium: - struct: EnumItem - Enum.ContextActionResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ContextActionResult.Pass: - struct: EnumItem - Enum.ContextActionResult.Sink: - struct: EnumItem - Enum.ControlMode.Classic: - struct: EnumItem - Enum.ControlMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ControlMode.Mouse Lock Switch: - struct: EnumItem - deprecated: - message: Enum.ControlMode.Mouse Lock Switch was replaced with Enum.ControlMode.MouseLockSwitch - replace: - - Enum.ControlMode.MouseLockSwitch - Enum.ControlMode.MouseLockSwitch: - struct: EnumItem - Enum.CoreGuiType.All: - struct: EnumItem - Enum.CoreGuiType.Backpack: - struct: EnumItem - Enum.CoreGuiType.Captures: - struct: EnumItem - Enum.CoreGuiType.Chat: - struct: EnumItem - Enum.CoreGuiType.EmotesMenu: - struct: EnumItem - Enum.CoreGuiType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CoreGuiType.Health: - struct: EnumItem - Enum.CoreGuiType.PlayerList: - struct: EnumItem - Enum.CoreGuiType.SelfView: - struct: EnumItem - Enum.CreateOutfitFailure.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CreateOutfitFailure.InvalidName: - struct: EnumItem - Enum.CreateOutfitFailure.Other: - struct: EnumItem - Enum.CreateOutfitFailure.OutfitLimitReached: - struct: EnumItem - Enum.CreatorType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CreatorType.Group: - struct: EnumItem - Enum.CreatorType.User: - struct: EnumItem - Enum.CreatorTypeFilter.All: - struct: EnumItem - Enum.CreatorTypeFilter.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CreatorTypeFilter.Group: - struct: EnumItem - Enum.CreatorTypeFilter.User: - struct: EnumItem - Enum.CurrencyType.Default: - struct: EnumItem - Enum.CurrencyType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.CurrencyType.Robux: - struct: EnumItem - Enum.CurrencyType.Tix: - struct: EnumItem - Enum.CustomCameraMode.Classic: - struct: EnumItem - Enum.CustomCameraMode.Default: - struct: EnumItem - Enum.CustomCameraMode.Follow: - struct: EnumItem - Enum.CustomCameraMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DataStoreRequestType.GetAsync: - struct: EnumItem - Enum.DataStoreRequestType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DataStoreRequestType.GetSortedAsync: - struct: EnumItem - Enum.DataStoreRequestType.GetVersionAsync: - struct: EnumItem - Enum.DataStoreRequestType.ListAsync: - struct: EnumItem - Enum.DataStoreRequestType.OnUpdate: - struct: EnumItem - Enum.DataStoreRequestType.RemoveVersionAsync: - struct: EnumItem - Enum.DataStoreRequestType.SetIncrementAsync: - struct: EnumItem - Enum.DataStoreRequestType.SetIncrementSortedAsync: - struct: EnumItem - Enum.DataStoreRequestType.UpdateAsync: - struct: EnumItem - Enum.DeathStyle.ClassicBreakApart: - struct: EnumItem - Enum.DeathStyle.Default: - struct: EnumItem - Enum.DeathStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DeathStyle.NonGraphic: - struct: EnumItem - Enum.DeathStyle.Scriptable: - struct: EnumItem - Enum.DebuggerEndReason.ClientRequest: - struct: EnumItem - Enum.DebuggerEndReason.ConfigurationFailed: - struct: EnumItem - Enum.DebuggerEndReason.Disconnected: - struct: EnumItem - Enum.DebuggerEndReason.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DebuggerEndReason.InvalidHost: - struct: EnumItem - Enum.DebuggerEndReason.RpcError: - struct: EnumItem - Enum.DebuggerEndReason.ServerProtocolMismatch: - struct: EnumItem - Enum.DebuggerEndReason.ServerShutdown: - struct: EnumItem - Enum.DebuggerEndReason.Timeout: - struct: EnumItem - Enum.DebuggerExceptionBreakMode.Always: - struct: EnumItem - Enum.DebuggerExceptionBreakMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DebuggerExceptionBreakMode.Never: - struct: EnumItem - Enum.DebuggerExceptionBreakMode.Unhandled: - struct: EnumItem - Enum.DebuggerFrameType.C: - struct: EnumItem - Enum.DebuggerFrameType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DebuggerFrameType.Lua: - struct: EnumItem - Enum.DebuggerPauseReason.Breakpoint: - struct: EnumItem - Enum.DebuggerPauseReason.Entrypoint: - struct: EnumItem - Enum.DebuggerPauseReason.Exception: - struct: EnumItem - Enum.DebuggerPauseReason.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DebuggerPauseReason.Requested: - struct: EnumItem - Enum.DebuggerPauseReason.SingleStep: - struct: EnumItem - Enum.DebuggerPauseReason.Unknown: - struct: EnumItem - Enum.DebuggerStatus.ConnectionClosed: - struct: EnumItem - Enum.DebuggerStatus.ConnectionLost: - struct: EnumItem - Enum.DebuggerStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DebuggerStatus.InternalError: - struct: EnumItem - Enum.DebuggerStatus.InvalidArgument: - struct: EnumItem - Enum.DebuggerStatus.InvalidResponse: - struct: EnumItem - Enum.DebuggerStatus.InvalidState: - struct: EnumItem - Enum.DebuggerStatus.RpcError: - struct: EnumItem - Enum.DebuggerStatus.Success: - struct: EnumItem - Enum.DebuggerStatus.Timeout: - struct: EnumItem - Enum.DevCameraOcclusionMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DevCameraOcclusionMode.Invisicam: - struct: EnumItem - Enum.DevCameraOcclusionMode.Zoom: - struct: EnumItem - Enum.DevComputerCameraMovementMode.CameraToggle: - struct: EnumItem - Enum.DevComputerCameraMovementMode.Classic: - struct: EnumItem - Enum.DevComputerCameraMovementMode.Follow: - struct: EnumItem - Enum.DevComputerCameraMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DevComputerCameraMovementMode.Orbital: - struct: EnumItem - Enum.DevComputerCameraMovementMode.UserChoice: - struct: EnumItem - Enum.DevComputerMovementMode.ClickToMove: - struct: EnumItem - Enum.DevComputerMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DevComputerMovementMode.KeyboardMouse: - struct: EnumItem - Enum.DevComputerMovementMode.Scriptable: - struct: EnumItem - Enum.DevComputerMovementMode.UserChoice: - struct: EnumItem - Enum.DevTouchCameraMovementMode.Classic: - struct: EnumItem - Enum.DevTouchCameraMovementMode.Follow: - struct: EnumItem - Enum.DevTouchCameraMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DevTouchCameraMovementMode.Orbital: - struct: EnumItem - Enum.DevTouchCameraMovementMode.UserChoice: - struct: EnumItem - Enum.DevTouchMovementMode.ClickToMove: - struct: EnumItem - Enum.DevTouchMovementMode.DPad: - struct: EnumItem - Enum.DevTouchMovementMode.DynamicThumbstick: - struct: EnumItem - Enum.DevTouchMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DevTouchMovementMode.Scriptable: - struct: EnumItem - Enum.DevTouchMovementMode.Thumbpad: - struct: EnumItem - Enum.DevTouchMovementMode.Thumbstick: - struct: EnumItem - Enum.DevTouchMovementMode.UserChoice: - struct: EnumItem - Enum.DeveloperMemoryTag.Animation: - struct: EnumItem - Enum.DeveloperMemoryTag.GeometryCSG: - struct: EnumItem - Enum.DeveloperMemoryTag.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DeveloperMemoryTag.GraphicsMeshParts: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsParticles: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsParts: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsSolidModels: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsSpatialHash: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsTerrain: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsTexture: - struct: EnumItem - Enum.DeveloperMemoryTag.GraphicsTextureCharacter: - struct: EnumItem - Enum.DeveloperMemoryTag.Gui: - struct: EnumItem - Enum.DeveloperMemoryTag.HttpCache: - struct: EnumItem - Enum.DeveloperMemoryTag.Instances: - struct: EnumItem - Enum.DeveloperMemoryTag.Internal: - struct: EnumItem - Enum.DeveloperMemoryTag.LuaHeap: - struct: EnumItem - Enum.DeveloperMemoryTag.Navigation: - struct: EnumItem - Enum.DeveloperMemoryTag.PhysicsCollision: - struct: EnumItem - Enum.DeveloperMemoryTag.PhysicsParts: - struct: EnumItem - Enum.DeveloperMemoryTag.Script: - struct: EnumItem - Enum.DeveloperMemoryTag.Signals: - struct: EnumItem - Enum.DeveloperMemoryTag.Sounds: - struct: EnumItem - Enum.DeveloperMemoryTag.StreamingSounds: - struct: EnumItem - Enum.DeveloperMemoryTag.TerrainVoxels: - struct: EnumItem - Enum.DeviceType.Desktop: - struct: EnumItem - Enum.DeviceType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DeviceType.Phone: - struct: EnumItem - Enum.DeviceType.Tablet: - struct: EnumItem - Enum.DeviceType.Unknown: - struct: EnumItem - Enum.DialogBehaviorType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DialogBehaviorType.MultiplePlayers: - struct: EnumItem - Enum.DialogBehaviorType.SinglePlayer: - struct: EnumItem - Enum.DialogPurpose.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DialogPurpose.Help: - struct: EnumItem - Enum.DialogPurpose.Quest: - struct: EnumItem - Enum.DialogPurpose.Shop: - struct: EnumItem - Enum.DialogTone.Enemy: - struct: EnumItem - Enum.DialogTone.Friendly: - struct: EnumItem - Enum.DialogTone.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DialogTone.Neutral: - struct: EnumItem - Enum.DominantAxis.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DominantAxis.Height: - struct: EnumItem - Enum.DominantAxis.Width: - struct: EnumItem - Enum.DraftStatusCode.DraftCommitted: - struct: EnumItem - Enum.DraftStatusCode.DraftOutdated: - struct: EnumItem - Enum.DraftStatusCode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DraftStatusCode.OK: - struct: EnumItem - Enum.DraftStatusCode.ScriptRemoved: - struct: EnumItem - Enum.DragDetectorDragStyle.BestForDevice: - struct: EnumItem - Enum.DragDetectorDragStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DragDetectorDragStyle.RotateAxis: - struct: EnumItem - Enum.DragDetectorDragStyle.RotateTrackball: - struct: EnumItem - Enum.DragDetectorDragStyle.Scriptable: - struct: EnumItem - Enum.DragDetectorDragStyle.TranslateLine: - struct: EnumItem - Enum.DragDetectorDragStyle.TranslateLineOrPlane: - struct: EnumItem - Enum.DragDetectorDragStyle.TranslatePlane: - struct: EnumItem - Enum.DragDetectorDragStyle.TranslatePlaneOrLine: - struct: EnumItem - Enum.DragDetectorDragStyle.TranslateViewPlane: - struct: EnumItem - Enum.DragDetectorResponseStyle.Custom: - struct: EnumItem - Enum.DragDetectorResponseStyle.Geometric: - struct: EnumItem - Enum.DragDetectorResponseStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DragDetectorResponseStyle.Physical: - struct: EnumItem - Enum.DraggerCoordinateSpace.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DraggerCoordinateSpace.Object: - struct: EnumItem - Enum.DraggerCoordinateSpace.World: - struct: EnumItem - Enum.DraggerMovementMode.Geometric: - struct: EnumItem - Enum.DraggerMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.DraggerMovementMode.Physical: - struct: EnumItem - Enum.EasingDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.EasingDirection.In: - struct: EnumItem - Enum.EasingDirection.InOut: - struct: EnumItem - Enum.EasingDirection.Out: - struct: EnumItem - Enum.EasingStyle.Back: - struct: EnumItem - Enum.EasingStyle.Bounce: - struct: EnumItem - Enum.EasingStyle.Circular: - struct: EnumItem - Enum.EasingStyle.Cubic: - struct: EnumItem - Enum.EasingStyle.Elastic: - struct: EnumItem - Enum.EasingStyle.Exponential: - struct: EnumItem - Enum.EasingStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.EasingStyle.Linear: - struct: EnumItem - Enum.EasingStyle.Quad: - struct: EnumItem - Enum.EasingStyle.Quart: - struct: EnumItem - Enum.EasingStyle.Quint: - struct: EnumItem - Enum.EasingStyle.Sine: - struct: EnumItem - Enum.EditorLiveScripting.Default: - struct: EnumItem - Enum.EditorLiveScripting.Disabled: - struct: EnumItem - Enum.EditorLiveScripting.Enabled: - struct: EnumItem - Enum.EditorLiveScripting.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ElasticBehavior.Always: - struct: EnumItem - Enum.ElasticBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ElasticBehavior.Never: - struct: EnumItem - Enum.ElasticBehavior.WhenScrollable: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.Always: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.DefaultAuto: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.Disabled: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.EnviromentalPhysicsThrottle.Skip16: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.Skip2: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.Skip4: - struct: EnumItem - Enum.EnviromentalPhysicsThrottle.Skip8: - struct: EnumItem - Enum.ExperienceAuthScope.CreatorAssetsCreate: - struct: EnumItem - Enum.ExperienceAuthScope.DefaultScope: - struct: EnumItem - Enum.ExperienceAuthScope.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ExplosionType.Craters: - struct: EnumItem - Enum.ExplosionType.CratersAndDebris: - struct: EnumItem - deprecated: - message: Enum.ExplosionType.CratersAndDebris was replaced with Enum.ExplosionType.Craters - replace: - - Enum.ExplosionType.Craters - Enum.ExplosionType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ExplosionType.NoCraters: - struct: EnumItem - Enum.FACSDataLod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FACSDataLod.LOD0: - struct: EnumItem - Enum.FACSDataLod.LOD1: - struct: EnumItem - Enum.FACSDataLod.LODCount: - struct: EnumItem - Enum.FacialAnimationStreamingState.Audio: - struct: EnumItem - Enum.FacialAnimationStreamingState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FacialAnimationStreamingState.None: - struct: EnumItem - Enum.FacialAnimationStreamingState.Place: - struct: EnumItem - Enum.FacialAnimationStreamingState.Server: - struct: EnumItem - Enum.FacialAnimationStreamingState.Video: - struct: EnumItem - Enum.FieldOfViewMode.Diagonal: - struct: EnumItem - Enum.FieldOfViewMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FieldOfViewMode.MaxAxis: - struct: EnumItem - Enum.FieldOfViewMode.Vertical: - struct: EnumItem - Enum.FillDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FillDirection.Horizontal: - struct: EnumItem - Enum.FillDirection.Vertical: - struct: EnumItem - Enum.FilterResult.Accepted: - struct: EnumItem - Enum.FilterResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FilterResult.Rejected: - struct: EnumItem - Enum.FinishRecordingOperation.Append: - struct: EnumItem - Enum.FinishRecordingOperation.Cancel: - struct: EnumItem - Enum.FinishRecordingOperation.Commit: - struct: EnumItem - Enum.FinishRecordingOperation.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FluidFidelity.Automatic: - struct: EnumItem - Enum.FluidFidelity.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FluidFidelity.UseCollisionGeometry: - struct: EnumItem - Enum.FluidFidelity.UsePreciseGeometry: - struct: EnumItem - Enum.FluidForces.Default: - struct: EnumItem - Enum.FluidForces.Experimental: - struct: EnumItem - Enum.FluidForces.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Font.AmaticSC: - struct: EnumItem - Enum.Font.Antique: - struct: EnumItem - Enum.Font.Arcade: - struct: EnumItem - Enum.Font.Arial: - struct: EnumItem - Enum.Font.ArialBold: - struct: EnumItem - Enum.Font.Bangers: - struct: EnumItem - Enum.Font.Bodoni: - struct: EnumItem - Enum.Font.Cartoon: - struct: EnumItem - Enum.Font.Code: - struct: EnumItem - Enum.Font.Creepster: - struct: EnumItem - Enum.Font.DenkOne: - struct: EnumItem - Enum.Font.Fantasy: - struct: EnumItem - Enum.Font.Fondamento: - struct: EnumItem - Enum.Font.FredokaOne: - struct: EnumItem - Enum.Font.Garamond: - struct: EnumItem - Enum.Font.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Font.Gotham: - struct: EnumItem - Enum.Font.GothamBlack: - struct: EnumItem - Enum.Font.GothamBold: - struct: EnumItem - Enum.Font.GothamMedium: - struct: EnumItem - Enum.Font.GothamSemibold: - struct: EnumItem - deprecated: - message: Enum.Font.GothamSemibold was replaced with Enum.Font.GothamMedium - replace: - - Enum.Font.GothamMedium - Enum.Font.GrenzeGotisch: - struct: EnumItem - Enum.Font.Highway: - struct: EnumItem - Enum.Font.IndieFlower: - struct: EnumItem - Enum.Font.JosefinSans: - struct: EnumItem - Enum.Font.Jura: - struct: EnumItem - Enum.Font.Kalam: - struct: EnumItem - Enum.Font.Legacy: - struct: EnumItem - Enum.Font.LuckiestGuy: - struct: EnumItem - Enum.Font.Merriweather: - struct: EnumItem - Enum.Font.Michroma: - struct: EnumItem - Enum.Font.Montserrat: - struct: EnumItem - deprecated: - message: Enum.Font.Montserrat was replaced with Enum.Font.Gotham - replace: - - Enum.Font.Gotham - Enum.Font.MontserratBlack: - struct: EnumItem - deprecated: - message: Enum.Font.MontserratBlack was replaced with Enum.Font.GothamBlack - replace: - - Enum.Font.GothamBlack - Enum.Font.MontserratBold: - struct: EnumItem - deprecated: - message: Enum.Font.MontserratBold was replaced with Enum.Font.GothamBold - replace: - - Enum.Font.GothamBold - Enum.Font.MontserratMedium: - struct: EnumItem - deprecated: - message: Enum.Font.MontserratMedium was replaced with Enum.Font.GothamMedium - replace: - - Enum.Font.GothamMedium - Enum.Font.Nunito: - struct: EnumItem - Enum.Font.Oswald: - struct: EnumItem - Enum.Font.PatrickHand: - struct: EnumItem - Enum.Font.PermanentMarker: - struct: EnumItem - Enum.Font.Roboto: - struct: EnumItem - Enum.Font.RobotoCondensed: - struct: EnumItem - Enum.Font.RobotoMono: - struct: EnumItem - Enum.Font.Sarpanch: - struct: EnumItem - Enum.Font.SciFi: - struct: EnumItem - Enum.Font.SourceSans: - struct: EnumItem - Enum.Font.SourceSansBold: - struct: EnumItem - Enum.Font.SourceSansItalic: - struct: EnumItem - Enum.Font.SourceSansLight: - struct: EnumItem - Enum.Font.SourceSansSemibold: - struct: EnumItem - Enum.Font.SpecialElite: - struct: EnumItem - Enum.Font.TitilliumWeb: - struct: EnumItem - Enum.Font.Ubuntu: - struct: EnumItem - Enum.Font.Unknown: - struct: EnumItem - Enum.FontSize.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FontSize.Size10: - struct: EnumItem - Enum.FontSize.Size11: - struct: EnumItem - Enum.FontSize.Size12: - struct: EnumItem - Enum.FontSize.Size14: - struct: EnumItem - Enum.FontSize.Size18: - struct: EnumItem - Enum.FontSize.Size24: - struct: EnumItem - Enum.FontSize.Size28: - struct: EnumItem - Enum.FontSize.Size32: - struct: EnumItem - Enum.FontSize.Size36: - struct: EnumItem - Enum.FontSize.Size42: - struct: EnumItem - Enum.FontSize.Size48: - struct: EnumItem - Enum.FontSize.Size60: - struct: EnumItem - Enum.FontSize.Size8: - struct: EnumItem - Enum.FontSize.Size9: - struct: EnumItem - Enum.FontSize.Size96: - struct: EnumItem - Enum.FontStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FontStyle.Italic: - struct: EnumItem - Enum.FontStyle.Normal: - struct: EnumItem - Enum.FontWeight.Bold: - struct: EnumItem - Enum.FontWeight.ExtraBold: - struct: EnumItem - Enum.FontWeight.ExtraLight: - struct: EnumItem - Enum.FontWeight.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FontWeight.Heavy: - struct: EnumItem - Enum.FontWeight.Light: - struct: EnumItem - Enum.FontWeight.Medium: - struct: EnumItem - Enum.FontWeight.Regular: - struct: EnumItem - Enum.FontWeight.SemiBold: - struct: EnumItem - Enum.FontWeight.Thin: - struct: EnumItem - Enum.ForceLimitMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ForceLimitMode.Magnitude: - struct: EnumItem - Enum.ForceLimitMode.PerAxis: - struct: EnumItem - Enum.FormFactor.Block: - struct: EnumItem - deprecated: - message: Enum.FormFactor.Block was replaced with Enum.FormFactor.Brick - replace: - - Enum.FormFactor.Brick - Enum.FormFactor.Brick: - struct: EnumItem - Enum.FormFactor.Custom: - struct: EnumItem - Enum.FormFactor.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FormFactor.Plate: - struct: EnumItem - Enum.FormFactor.Symmetric: - struct: EnumItem - Enum.FrameStyle.ChatBlue: - struct: EnumItem - Enum.FrameStyle.ChatGreen: - struct: EnumItem - Enum.FrameStyle.ChatRed: - struct: EnumItem - Enum.FrameStyle.Custom: - struct: EnumItem - Enum.FrameStyle.DropShadow: - struct: EnumItem - Enum.FrameStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FrameStyle.RobloxRound: - struct: EnumItem - Enum.FrameStyle.RobloxSquare: - struct: EnumItem - Enum.FramerateManagerMode.Automatic: - struct: EnumItem - Enum.FramerateManagerMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FramerateManagerMode.Off: - struct: EnumItem - Enum.FramerateManagerMode.On: - struct: EnumItem - Enum.FriendRequestEvent.Accept: - struct: EnumItem - Enum.FriendRequestEvent.Deny: - struct: EnumItem - Enum.FriendRequestEvent.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FriendRequestEvent.Issue: - struct: EnumItem - Enum.FriendRequestEvent.Revoke: - struct: EnumItem - Enum.FriendStatus.Friend: - struct: EnumItem - Enum.FriendStatus.FriendRequestReceived: - struct: EnumItem - Enum.FriendStatus.FriendRequestSent: - struct: EnumItem - Enum.FriendStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FriendStatus.NotFriend: - struct: EnumItem - Enum.FriendStatus.Unknown: - struct: EnumItem - Enum.FunctionalTestResult.Error: - struct: EnumItem - Enum.FunctionalTestResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.FunctionalTestResult.Passed: - struct: EnumItem - Enum.FunctionalTestResult.Warning: - struct: EnumItem - Enum.GameAvatarType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GameAvatarType.PlayerChoice: - struct: EnumItem - Enum.GameAvatarType.R15: - struct: EnumItem - Enum.GameAvatarType.R6: - struct: EnumItem - Enum.GearGenreSetting.AllGenres: - struct: EnumItem - Enum.GearGenreSetting.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GearGenreSetting.MatchingGenreOnly: - struct: EnumItem - Enum.GearType.BuildingTools: - struct: EnumItem - Enum.GearType.Explosives: - struct: EnumItem - Enum.GearType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GearType.MeleeWeapons: - struct: EnumItem - Enum.GearType.MusicalInstruments: - struct: EnumItem - Enum.GearType.NavigationEnhancers: - struct: EnumItem - Enum.GearType.PowerUps: - struct: EnumItem - Enum.GearType.RangedWeapons: - struct: EnumItem - Enum.GearType.SocialItems: - struct: EnumItem - Enum.GearType.Transport: - struct: EnumItem - Enum.Genre.Adventure: - struct: EnumItem - Enum.Genre.All: - struct: EnumItem - Enum.Genre.Fantasy: - struct: EnumItem - Enum.Genre.Funny: - struct: EnumItem - Enum.Genre.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Genre.Ninja: - struct: EnumItem - Enum.Genre.Pirate: - struct: EnumItem - Enum.Genre.Scary: - struct: EnumItem - Enum.Genre.SciFi: - struct: EnumItem - Enum.Genre.SkatePark: - struct: EnumItem - Enum.Genre.Sports: - struct: EnumItem - Enum.Genre.TownAndCity: - struct: EnumItem - Enum.Genre.Tutorial: - struct: EnumItem - Enum.Genre.War: - struct: EnumItem - Enum.Genre.WildWest: - struct: EnumItem - Enum.GetEnums: - args: [] - method: true - must_use: true - Enum.GraphicsMode.Automatic: - struct: EnumItem - Enum.GraphicsMode.Direct3D11: - struct: EnumItem - Enum.GraphicsMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GraphicsMode.Metal: - struct: EnumItem - Enum.GraphicsMode.NoGraphics: - struct: EnumItem - Enum.GraphicsMode.OpenGL: - struct: EnumItem - Enum.GraphicsMode.Vulkan: - struct: EnumItem - Enum.GuiState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GuiState.Hover: - struct: EnumItem - Enum.GuiState.Idle: - struct: EnumItem - Enum.GuiState.NonInteractable: - struct: EnumItem - Enum.GuiState.Press: - struct: EnumItem - Enum.GuiType.Core: - struct: EnumItem - Enum.GuiType.Custom: - struct: EnumItem - Enum.GuiType.CustomBillboards: - struct: EnumItem - Enum.GuiType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.GuiType.PlayerNameplates: - struct: EnumItem - Enum.HandlesStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HandlesStyle.Movement: - struct: EnumItem - Enum.HandlesStyle.Resize: - struct: EnumItem - Enum.HighlightDepthMode.AlwaysOnTop: - struct: EnumItem - Enum.HighlightDepthMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HighlightDepthMode.Occluded: - struct: EnumItem - Enum.HorizontalAlignment.Center: - struct: EnumItem - Enum.HorizontalAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HorizontalAlignment.Left: - struct: EnumItem - Enum.HorizontalAlignment.Right: - struct: EnumItem - Enum.HoverAnimateSpeed.Fast: - struct: EnumItem - Enum.HoverAnimateSpeed.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HoverAnimateSpeed.Medium: - struct: EnumItem - Enum.HoverAnimateSpeed.Slow: - struct: EnumItem - Enum.HoverAnimateSpeed.VeryFast: - struct: EnumItem - Enum.HoverAnimateSpeed.VerySlow: - struct: EnumItem - Enum.HttpCachePolicy.DataOnly: - struct: EnumItem - Enum.HttpCachePolicy.Default: - struct: EnumItem - Enum.HttpCachePolicy.Full: - struct: EnumItem - Enum.HttpCachePolicy.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HttpCachePolicy.InternalRedirectRefresh: - struct: EnumItem - Enum.HttpCachePolicy.None: - struct: EnumItem - Enum.HttpCompression.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HttpCompression.Gzip: - struct: EnumItem - Enum.HttpCompression.None: - struct: EnumItem - Enum.HttpContentType.ApplicationJson: - struct: EnumItem - Enum.HttpContentType.ApplicationUrlEncoded: - struct: EnumItem - Enum.HttpContentType.ApplicationXml: - struct: EnumItem - Enum.HttpContentType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HttpContentType.TextPlain: - struct: EnumItem - Enum.HttpContentType.TextXml: - struct: EnumItem - Enum.HttpError.Aborted: - struct: EnumItem - Enum.HttpError.ConnectFail: - struct: EnumItem - Enum.HttpError.DnsResolve: - struct: EnumItem - Enum.HttpError.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HttpError.InvalidRedirect: - struct: EnumItem - Enum.HttpError.InvalidUrl: - struct: EnumItem - Enum.HttpError.NetFail: - struct: EnumItem - Enum.HttpError.OK: - struct: EnumItem - Enum.HttpError.OutOfMemory: - struct: EnumItem - Enum.HttpError.SslConnectFail: - struct: EnumItem - Enum.HttpError.SslVerificationFail: - struct: EnumItem - Enum.HttpError.TimedOut: - struct: EnumItem - Enum.HttpError.TooManyRedirects: - struct: EnumItem - Enum.HttpError.Unknown: - struct: EnumItem - Enum.HttpRequestType.Analytics: - struct: EnumItem - Enum.HttpRequestType.Avatar: - struct: EnumItem - Enum.HttpRequestType.Chat: - struct: EnumItem - Enum.HttpRequestType.Default: - struct: EnumItem - Enum.HttpRequestType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HttpRequestType.Localization: - struct: EnumItem - Enum.HttpRequestType.MarketplaceService: - struct: EnumItem - Enum.HttpRequestType.Players: - struct: EnumItem - Enum.HumanoidCollisionType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HumanoidCollisionType.InnerBox: - struct: EnumItem - Enum.HumanoidCollisionType.OuterBox: - struct: EnumItem - Enum.HumanoidDisplayDistanceType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HumanoidDisplayDistanceType.None: - struct: EnumItem - Enum.HumanoidDisplayDistanceType.Subject: - struct: EnumItem - Enum.HumanoidDisplayDistanceType.Viewer: - struct: EnumItem - Enum.HumanoidHealthDisplayType.AlwaysOff: - struct: EnumItem - Enum.HumanoidHealthDisplayType.AlwaysOn: - struct: EnumItem - Enum.HumanoidHealthDisplayType.DisplayWhenDamaged: - struct: EnumItem - Enum.HumanoidHealthDisplayType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HumanoidRigType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HumanoidRigType.R15: - struct: EnumItem - Enum.HumanoidRigType.R6: - struct: EnumItem - Enum.HumanoidStateType.Climbing: - struct: EnumItem - Enum.HumanoidStateType.Dead: - struct: EnumItem - Enum.HumanoidStateType.FallingDown: - struct: EnumItem - Enum.HumanoidStateType.Flying: - struct: EnumItem - Enum.HumanoidStateType.Freefall: - struct: EnumItem - Enum.HumanoidStateType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.HumanoidStateType.GettingUp: - struct: EnumItem - Enum.HumanoidStateType.Jumping: - struct: EnumItem - Enum.HumanoidStateType.Landed: - struct: EnumItem - Enum.HumanoidStateType.None: - struct: EnumItem - Enum.HumanoidStateType.Physics: - struct: EnumItem - Enum.HumanoidStateType.PlatformStanding: - struct: EnumItem - Enum.HumanoidStateType.Ragdoll: - struct: EnumItem - Enum.HumanoidStateType.Running: - struct: EnumItem - Enum.HumanoidStateType.RunningNoPhysics: - struct: EnumItem - Enum.HumanoidStateType.Seated: - struct: EnumItem - Enum.HumanoidStateType.StrafingNoPhysics: - struct: EnumItem - Enum.HumanoidStateType.Swimming: - struct: EnumItem - Enum.IKCollisionsMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.IKCollisionsMode.IncludeContactedMechanisms: - struct: EnumItem - Enum.IKCollisionsMode.NoCollisions: - struct: EnumItem - Enum.IKCollisionsMode.OtherMechanismsAnchored: - struct: EnumItem - Enum.IKControlConstraintSupport.Default: - struct: EnumItem - Enum.IKControlConstraintSupport.Disabled: - struct: EnumItem - Enum.IKControlConstraintSupport.Enabled: - struct: EnumItem - Enum.IKControlConstraintSupport.GetEnumItems: - args: [] - method: true - must_use: true - Enum.IKControlType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.IKControlType.LookAt: - struct: EnumItem - Enum.IKControlType.Position: - struct: EnumItem - Enum.IKControlType.Rotation: - struct: EnumItem - Enum.IKControlType.Transform: - struct: EnumItem - Enum.IXPLoadingStatus.ErrorConnection: - struct: EnumItem - Enum.IXPLoadingStatus.ErrorInvalidUser: - struct: EnumItem - Enum.IXPLoadingStatus.ErrorJsonParse: - struct: EnumItem - Enum.IXPLoadingStatus.ErrorTimedOut: - struct: EnumItem - Enum.IXPLoadingStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.IXPLoadingStatus.Initialized: - struct: EnumItem - Enum.IXPLoadingStatus.None: - struct: EnumItem - Enum.IXPLoadingStatus.Pending: - struct: EnumItem - Enum.ImageCombineType.BlendSourceOver: - struct: EnumItem - Enum.ImageCombineType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ImageCombineType.Overwrite: - struct: EnumItem - Enum.InOut.Center: - struct: EnumItem - Enum.InOut.Edge: - struct: EnumItem - Enum.InOut.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InOut.Inset: - struct: EnumItem - Enum.InfoType.Asset: - struct: EnumItem - Enum.InfoType.Bundle: - struct: EnumItem - Enum.InfoType.GamePass: - struct: EnumItem - Enum.InfoType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InfoType.Product: - struct: EnumItem - Enum.InfoType.Subscription: - struct: EnumItem - Enum.InitialDockState.Bottom: - struct: EnumItem - Enum.InitialDockState.Float: - struct: EnumItem - Enum.InitialDockState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InitialDockState.Left: - struct: EnumItem - Enum.InitialDockState.Right: - struct: EnumItem - Enum.InitialDockState.Top: - struct: EnumItem - Enum.InputType.Action1: - struct: EnumItem - deprecated: - message: Enum.InputType.Action1 was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Action2: - struct: EnumItem - deprecated: - message: Enum.InputType.Action2 was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Action3: - struct: EnumItem - deprecated: - message: Enum.InputType.Action3 was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Action4: - struct: EnumItem - deprecated: - message: Enum.InputType.Action4 was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Action5: - struct: EnumItem - deprecated: - message: Enum.InputType.Action5 was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Constant: - struct: EnumItem - Enum.InputType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InputType.LeftTread: - struct: EnumItem - deprecated: - message: Enum.InputType.LeftTread was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.NoInput: - struct: EnumItem - Enum.InputType.RightTread: - struct: EnumItem - deprecated: - message: Enum.InputType.RightTread was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Sin: - struct: EnumItem - Enum.InputType.Steer: - struct: EnumItem - deprecated: - message: Enum.InputType.Steer was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Throtle: - struct: EnumItem - deprecated: - message: Enum.InputType.Throtle was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.Throttle: - struct: EnumItem - deprecated: - message: Enum.InputType.Throttle was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InputType.UpDown: - struct: EnumItem - deprecated: - message: Enum.InputType.UpDown was replaced with Enum.InputType.NoInput - replace: - - Enum.InputType.NoInput - Enum.InterpolationThrottlingMode.Default: - struct: EnumItem - Enum.InterpolationThrottlingMode.Disabled: - struct: EnumItem - Enum.InterpolationThrottlingMode.Enabled: - struct: EnumItem - Enum.InterpolationThrottlingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InviteState.Accepted: - struct: EnumItem - Enum.InviteState.Declined: - struct: EnumItem - Enum.InviteState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.InviteState.Missed: - struct: EnumItem - Enum.InviteState.Placed: - struct: EnumItem - Enum.ItemLineAlignment.Automatic: - struct: EnumItem - Enum.ItemLineAlignment.Center: - struct: EnumItem - Enum.ItemLineAlignment.End: - struct: EnumItem - Enum.ItemLineAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ItemLineAlignment.Start: - struct: EnumItem - Enum.ItemLineAlignment.Stretch: - struct: EnumItem - Enum.JointCreationMode.All: - struct: EnumItem - Enum.JointCreationMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.JointCreationMode.None: - struct: EnumItem - Enum.JointCreationMode.Surface: - struct: EnumItem - Enum.KeyCode.A: - struct: EnumItem - Enum.KeyCode.Ampersand: - struct: EnumItem - Enum.KeyCode.Asterisk: - struct: EnumItem - Enum.KeyCode.At: - struct: EnumItem - Enum.KeyCode.B: - struct: EnumItem - Enum.KeyCode.BackSlash: - struct: EnumItem - Enum.KeyCode.Backquote: - struct: EnumItem - Enum.KeyCode.Backspace: - struct: EnumItem - Enum.KeyCode.Break: - struct: EnumItem - Enum.KeyCode.ButtonA: - struct: EnumItem - Enum.KeyCode.ButtonB: - struct: EnumItem - Enum.KeyCode.ButtonL1: - struct: EnumItem - Enum.KeyCode.ButtonL2: - struct: EnumItem - Enum.KeyCode.ButtonL3: - struct: EnumItem - Enum.KeyCode.ButtonR1: - struct: EnumItem - Enum.KeyCode.ButtonR2: - struct: EnumItem - Enum.KeyCode.ButtonR3: - struct: EnumItem - Enum.KeyCode.ButtonSelect: - struct: EnumItem - Enum.KeyCode.ButtonStart: - struct: EnumItem - Enum.KeyCode.ButtonX: - struct: EnumItem - Enum.KeyCode.ButtonY: - struct: EnumItem - Enum.KeyCode.C: - struct: EnumItem - Enum.KeyCode.CapsLock: - struct: EnumItem - Enum.KeyCode.Caret: - struct: EnumItem - Enum.KeyCode.Clear: - struct: EnumItem - Enum.KeyCode.Colon: - struct: EnumItem - Enum.KeyCode.Comma: - struct: EnumItem - Enum.KeyCode.Compose: - struct: EnumItem - Enum.KeyCode.D: - struct: EnumItem - Enum.KeyCode.DPadDown: - struct: EnumItem - Enum.KeyCode.DPadLeft: - struct: EnumItem - Enum.KeyCode.DPadRight: - struct: EnumItem - Enum.KeyCode.DPadUp: - struct: EnumItem - Enum.KeyCode.Delete: - struct: EnumItem - Enum.KeyCode.Dollar: - struct: EnumItem - Enum.KeyCode.Down: - struct: EnumItem - Enum.KeyCode.E: - struct: EnumItem - Enum.KeyCode.Eight: - struct: EnumItem - Enum.KeyCode.End: - struct: EnumItem - Enum.KeyCode.Equals: - struct: EnumItem - Enum.KeyCode.Escape: - struct: EnumItem - Enum.KeyCode.Euro: - struct: EnumItem - Enum.KeyCode.F: - struct: EnumItem - Enum.KeyCode.F1: - struct: EnumItem - Enum.KeyCode.F10: - struct: EnumItem - Enum.KeyCode.F11: - struct: EnumItem - Enum.KeyCode.F12: - struct: EnumItem - Enum.KeyCode.F13: - struct: EnumItem - Enum.KeyCode.F14: - struct: EnumItem - Enum.KeyCode.F15: - struct: EnumItem - Enum.KeyCode.F2: - struct: EnumItem - Enum.KeyCode.F3: - struct: EnumItem - Enum.KeyCode.F4: - struct: EnumItem - Enum.KeyCode.F5: - struct: EnumItem - Enum.KeyCode.F6: - struct: EnumItem - Enum.KeyCode.F7: - struct: EnumItem - Enum.KeyCode.F8: - struct: EnumItem - Enum.KeyCode.F9: - struct: EnumItem - Enum.KeyCode.Five: - struct: EnumItem - Enum.KeyCode.Four: - struct: EnumItem - Enum.KeyCode.G: - struct: EnumItem - Enum.KeyCode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.KeyCode.GreaterThan: - struct: EnumItem - Enum.KeyCode.H: - struct: EnumItem - Enum.KeyCode.Hash: - struct: EnumItem - Enum.KeyCode.Help: - struct: EnumItem - Enum.KeyCode.Home: - struct: EnumItem - Enum.KeyCode.I: - struct: EnumItem - Enum.KeyCode.Insert: - struct: EnumItem - Enum.KeyCode.J: - struct: EnumItem - Enum.KeyCode.K: - struct: EnumItem - Enum.KeyCode.KeypadDivide: - struct: EnumItem - Enum.KeyCode.KeypadEight: - struct: EnumItem - Enum.KeyCode.KeypadEnter: - struct: EnumItem - Enum.KeyCode.KeypadEquals: - struct: EnumItem - Enum.KeyCode.KeypadFive: - struct: EnumItem - Enum.KeyCode.KeypadFour: - struct: EnumItem - Enum.KeyCode.KeypadMinus: - struct: EnumItem - Enum.KeyCode.KeypadMultiply: - struct: EnumItem - Enum.KeyCode.KeypadNine: - struct: EnumItem - Enum.KeyCode.KeypadOne: - struct: EnumItem - Enum.KeyCode.KeypadPeriod: - struct: EnumItem - Enum.KeyCode.KeypadPlus: - struct: EnumItem - Enum.KeyCode.KeypadSeven: - struct: EnumItem - Enum.KeyCode.KeypadSix: - struct: EnumItem - Enum.KeyCode.KeypadThree: - struct: EnumItem - Enum.KeyCode.KeypadTwo: - struct: EnumItem - Enum.KeyCode.KeypadZero: - struct: EnumItem - Enum.KeyCode.L: - struct: EnumItem - Enum.KeyCode.Left: - struct: EnumItem - Enum.KeyCode.LeftAlt: - struct: EnumItem - Enum.KeyCode.LeftBracket: - struct: EnumItem - Enum.KeyCode.LeftControl: - struct: EnumItem - Enum.KeyCode.LeftCurly: - struct: EnumItem - Enum.KeyCode.LeftMeta: - struct: EnumItem - Enum.KeyCode.LeftParenthesis: - struct: EnumItem - Enum.KeyCode.LeftShift: - struct: EnumItem - Enum.KeyCode.LeftSuper: - struct: EnumItem - Enum.KeyCode.LessThan: - struct: EnumItem - Enum.KeyCode.M: - struct: EnumItem - Enum.KeyCode.Menu: - struct: EnumItem - Enum.KeyCode.Minus: - struct: EnumItem - Enum.KeyCode.Mode: - struct: EnumItem - Enum.KeyCode.N: - struct: EnumItem - Enum.KeyCode.Nine: - struct: EnumItem - Enum.KeyCode.NumLock: - struct: EnumItem - Enum.KeyCode.O: - struct: EnumItem - Enum.KeyCode.One: - struct: EnumItem - Enum.KeyCode.P: - struct: EnumItem - Enum.KeyCode.PageDown: - struct: EnumItem - Enum.KeyCode.PageUp: - struct: EnumItem - Enum.KeyCode.Pause: - struct: EnumItem - Enum.KeyCode.Percent: - struct: EnumItem - Enum.KeyCode.Period: - struct: EnumItem - Enum.KeyCode.Pipe: - struct: EnumItem - Enum.KeyCode.Plus: - struct: EnumItem - Enum.KeyCode.Power: - struct: EnumItem - Enum.KeyCode.Print: - struct: EnumItem - Enum.KeyCode.Q: - struct: EnumItem - Enum.KeyCode.Question: - struct: EnumItem - Enum.KeyCode.Quote: - struct: EnumItem - Enum.KeyCode.QuotedDouble: - struct: EnumItem - Enum.KeyCode.R: - struct: EnumItem - Enum.KeyCode.Return: - struct: EnumItem - Enum.KeyCode.Right: - struct: EnumItem - Enum.KeyCode.RightAlt: - struct: EnumItem - Enum.KeyCode.RightBracket: - struct: EnumItem - Enum.KeyCode.RightControl: - struct: EnumItem - Enum.KeyCode.RightCurly: - struct: EnumItem - Enum.KeyCode.RightMeta: - struct: EnumItem - Enum.KeyCode.RightParenthesis: - struct: EnumItem - Enum.KeyCode.RightShift: - struct: EnumItem - Enum.KeyCode.RightSuper: - struct: EnumItem - Enum.KeyCode.S: - struct: EnumItem - Enum.KeyCode.ScrollLock: - struct: EnumItem - Enum.KeyCode.Semicolon: - struct: EnumItem - Enum.KeyCode.Seven: - struct: EnumItem - Enum.KeyCode.Six: - struct: EnumItem - Enum.KeyCode.Slash: - struct: EnumItem - Enum.KeyCode.Space: - struct: EnumItem - Enum.KeyCode.SysReq: - struct: EnumItem - Enum.KeyCode.T: - struct: EnumItem - Enum.KeyCode.Tab: - struct: EnumItem - Enum.KeyCode.Three: - struct: EnumItem - Enum.KeyCode.Thumbstick1: - struct: EnumItem - Enum.KeyCode.Thumbstick2: - struct: EnumItem - Enum.KeyCode.Tilde: - struct: EnumItem - Enum.KeyCode.Two: - struct: EnumItem - Enum.KeyCode.U: - struct: EnumItem - Enum.KeyCode.Underscore: - struct: EnumItem - Enum.KeyCode.Undo: - struct: EnumItem - Enum.KeyCode.Unknown: - struct: EnumItem - Enum.KeyCode.Up: - struct: EnumItem - Enum.KeyCode.V: - struct: EnumItem - Enum.KeyCode.W: - struct: EnumItem - Enum.KeyCode.World0: - struct: EnumItem - Enum.KeyCode.World1: - struct: EnumItem - Enum.KeyCode.World10: - struct: EnumItem - Enum.KeyCode.World11: - struct: EnumItem - Enum.KeyCode.World12: - struct: EnumItem - Enum.KeyCode.World13: - struct: EnumItem - Enum.KeyCode.World14: - struct: EnumItem - Enum.KeyCode.World15: - struct: EnumItem - Enum.KeyCode.World16: - struct: EnumItem - Enum.KeyCode.World17: - struct: EnumItem - Enum.KeyCode.World18: - struct: EnumItem - Enum.KeyCode.World19: - struct: EnumItem - Enum.KeyCode.World2: - struct: EnumItem - Enum.KeyCode.World20: - struct: EnumItem - Enum.KeyCode.World21: - struct: EnumItem - Enum.KeyCode.World22: - struct: EnumItem - Enum.KeyCode.World23: - struct: EnumItem - Enum.KeyCode.World24: - struct: EnumItem - Enum.KeyCode.World25: - struct: EnumItem - Enum.KeyCode.World26: - struct: EnumItem - Enum.KeyCode.World27: - struct: EnumItem - Enum.KeyCode.World28: - struct: EnumItem - Enum.KeyCode.World29: - struct: EnumItem - Enum.KeyCode.World3: - struct: EnumItem - Enum.KeyCode.World30: - struct: EnumItem - Enum.KeyCode.World31: - struct: EnumItem - Enum.KeyCode.World32: - struct: EnumItem - Enum.KeyCode.World33: - struct: EnumItem - Enum.KeyCode.World34: - struct: EnumItem - Enum.KeyCode.World35: - struct: EnumItem - Enum.KeyCode.World36: - struct: EnumItem - Enum.KeyCode.World37: - struct: EnumItem - Enum.KeyCode.World38: - struct: EnumItem - Enum.KeyCode.World39: - struct: EnumItem - Enum.KeyCode.World4: - struct: EnumItem - Enum.KeyCode.World40: - struct: EnumItem - Enum.KeyCode.World41: - struct: EnumItem - Enum.KeyCode.World42: - struct: EnumItem - Enum.KeyCode.World43: - struct: EnumItem - Enum.KeyCode.World44: - struct: EnumItem - Enum.KeyCode.World45: - struct: EnumItem - Enum.KeyCode.World46: - struct: EnumItem - Enum.KeyCode.World47: - struct: EnumItem - Enum.KeyCode.World48: - struct: EnumItem - Enum.KeyCode.World49: - struct: EnumItem - Enum.KeyCode.World5: - struct: EnumItem - Enum.KeyCode.World50: - struct: EnumItem - Enum.KeyCode.World51: - struct: EnumItem - Enum.KeyCode.World52: - struct: EnumItem - Enum.KeyCode.World53: - struct: EnumItem - Enum.KeyCode.World54: - struct: EnumItem - Enum.KeyCode.World55: - struct: EnumItem - Enum.KeyCode.World56: - struct: EnumItem - Enum.KeyCode.World57: - struct: EnumItem - Enum.KeyCode.World58: - struct: EnumItem - Enum.KeyCode.World59: - struct: EnumItem - Enum.KeyCode.World6: - struct: EnumItem - Enum.KeyCode.World60: - struct: EnumItem - Enum.KeyCode.World61: - struct: EnumItem - Enum.KeyCode.World62: - struct: EnumItem - Enum.KeyCode.World63: - struct: EnumItem - Enum.KeyCode.World64: - struct: EnumItem - Enum.KeyCode.World65: - struct: EnumItem - Enum.KeyCode.World66: - struct: EnumItem - Enum.KeyCode.World67: - struct: EnumItem - Enum.KeyCode.World68: - struct: EnumItem - Enum.KeyCode.World69: - struct: EnumItem - Enum.KeyCode.World7: - struct: EnumItem - Enum.KeyCode.World70: - struct: EnumItem - Enum.KeyCode.World71: - struct: EnumItem - Enum.KeyCode.World72: - struct: EnumItem - Enum.KeyCode.World73: - struct: EnumItem - Enum.KeyCode.World74: - struct: EnumItem - Enum.KeyCode.World75: - struct: EnumItem - Enum.KeyCode.World76: - struct: EnumItem - Enum.KeyCode.World77: - struct: EnumItem - Enum.KeyCode.World78: - struct: EnumItem - Enum.KeyCode.World79: - struct: EnumItem - Enum.KeyCode.World8: - struct: EnumItem - Enum.KeyCode.World80: - struct: EnumItem - Enum.KeyCode.World81: - struct: EnumItem - Enum.KeyCode.World82: - struct: EnumItem - Enum.KeyCode.World83: - struct: EnumItem - Enum.KeyCode.World84: - struct: EnumItem - Enum.KeyCode.World85: - struct: EnumItem - Enum.KeyCode.World86: - struct: EnumItem - Enum.KeyCode.World87: - struct: EnumItem - Enum.KeyCode.World88: - struct: EnumItem - Enum.KeyCode.World89: - struct: EnumItem - Enum.KeyCode.World9: - struct: EnumItem - Enum.KeyCode.World90: - struct: EnumItem - Enum.KeyCode.World91: - struct: EnumItem - Enum.KeyCode.World92: - struct: EnumItem - Enum.KeyCode.World93: - struct: EnumItem - Enum.KeyCode.World94: - struct: EnumItem - Enum.KeyCode.World95: - struct: EnumItem - Enum.KeyCode.X: - struct: EnumItem - Enum.KeyCode.Y: - struct: EnumItem - Enum.KeyCode.Z: - struct: EnumItem - Enum.KeyCode.Zero: - struct: EnumItem - Enum.KeyInterpolationMode.Constant: - struct: EnumItem - Enum.KeyInterpolationMode.Cubic: - struct: EnumItem - Enum.KeyInterpolationMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.KeyInterpolationMode.Linear: - struct: EnumItem - Enum.KeywordFilterType.Exclude: - struct: EnumItem - Enum.KeywordFilterType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.KeywordFilterType.Include: - struct: EnumItem - Enum.Language.Default: - struct: EnumItem - Enum.Language.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LeftRight.Center: - struct: EnumItem - Enum.LeftRight.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LeftRight.Left: - struct: EnumItem - Enum.LeftRight.Right: - struct: EnumItem - Enum.Limb.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Limb.Head: - struct: EnumItem - Enum.Limb.LeftArm: - struct: EnumItem - Enum.Limb.LeftLeg: - struct: EnumItem - Enum.Limb.RightArm: - struct: EnumItem - Enum.Limb.RightLeg: - struct: EnumItem - Enum.Limb.Torso: - struct: EnumItem - Enum.Limb.Unknown: - struct: EnumItem - Enum.LineJoinMode.Bevel: - struct: EnumItem - Enum.LineJoinMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LineJoinMode.Miter: - struct: EnumItem - Enum.LineJoinMode.Round: - struct: EnumItem - Enum.ListDisplayMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ListDisplayMode.Horizontal: - struct: EnumItem - Enum.ListDisplayMode.Vertical: - struct: EnumItem - Enum.ListenerType.CFrame: - struct: EnumItem - Enum.ListenerType.Camera: - struct: EnumItem - Enum.ListenerType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ListenerType.ObjectCFrame: - struct: EnumItem - Enum.ListenerType.ObjectPosition: - struct: EnumItem - Enum.LiveEditingAtomicUpdateResponse.FailureGuidNotFound: - struct: EnumItem - Enum.LiveEditingAtomicUpdateResponse.FailureHashMismatch: - struct: EnumItem - Enum.LiveEditingAtomicUpdateResponse.FailureOperationIllegal: - struct: EnumItem - Enum.LiveEditingAtomicUpdateResponse.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LiveEditingAtomicUpdateResponse.Success: - struct: EnumItem - Enum.LiveEditingBroadcastMessageType.Error: - struct: EnumItem - Enum.LiveEditingBroadcastMessageType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LiveEditingBroadcastMessageType.Normal: - struct: EnumItem - Enum.LiveEditingBroadcastMessageType.Warning: - struct: EnumItem - Enum.LoadCharacterLayeredClothing.Default: - struct: EnumItem - Enum.LoadCharacterLayeredClothing.Disabled: - struct: EnumItem - Enum.LoadCharacterLayeredClothing.Enabled: - struct: EnumItem - Enum.LoadCharacterLayeredClothing.GetEnumItems: - args: [] - method: true - must_use: true - Enum.LoadDynamicHeads.Default: - struct: EnumItem - Enum.LoadDynamicHeads.Disabled: - struct: EnumItem - Enum.LoadDynamicHeads.Enabled: - struct: EnumItem - Enum.LoadDynamicHeads.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MarkupKind.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MarkupKind.Markdown: - struct: EnumItem - Enum.MarkupKind.PlainText: - struct: EnumItem - Enum.Material.Air: - struct: EnumItem - Enum.Material.Aluminum: - struct: EnumItem - deprecated: - message: Enum.Material.Aluminum was replaced with Enum.Material.Foil - replace: - - Enum.Material.Foil - Enum.Material.Asphalt: - struct: EnumItem - Enum.Material.Basalt: - struct: EnumItem - Enum.Material.Brick: - struct: EnumItem - Enum.Material.Cardboard: - struct: EnumItem - Enum.Material.Carpet: - struct: EnumItem - Enum.Material.CeramicTiles: - struct: EnumItem - Enum.Material.ClayRoofTiles: - struct: EnumItem - Enum.Material.Cobblestone: - struct: EnumItem - Enum.Material.Concrete: - struct: EnumItem - Enum.Material.Corroded Metal: - struct: EnumItem - deprecated: - message: Enum.Material.Corroded Metal was replaced with Enum.Material.CorrodedMetal - replace: - - Enum.Material.CorrodedMetal - Enum.Material.CorrodedMetal: - struct: EnumItem - Enum.Material.CrackedLava: - struct: EnumItem - Enum.Material.DiamondPlate: - struct: EnumItem - Enum.Material.Fabric: - struct: EnumItem - Enum.Material.Foil: - struct: EnumItem - Enum.Material.ForceField: - struct: EnumItem - Enum.Material.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Material.Glacier: - struct: EnumItem - Enum.Material.Glass: - struct: EnumItem - Enum.Material.Granite: - struct: EnumItem - Enum.Material.Grass: - struct: EnumItem - Enum.Material.Ground: - struct: EnumItem - Enum.Material.Ice: - struct: EnumItem - Enum.Material.LeafyGrass: - struct: EnumItem - Enum.Material.Leather: - struct: EnumItem - Enum.Material.Limestone: - struct: EnumItem - Enum.Material.Marble: - struct: EnumItem - Enum.Material.Metal: - struct: EnumItem - Enum.Material.Mud: - struct: EnumItem - Enum.Material.Neon: - struct: EnumItem - Enum.Material.Pavement: - struct: EnumItem - Enum.Material.Pebble: - struct: EnumItem - Enum.Material.Plaster: - struct: EnumItem - Enum.Material.Plastic: - struct: EnumItem - Enum.Material.Rock: - struct: EnumItem - Enum.Material.RoofShingles: - struct: EnumItem - Enum.Material.Rubber: - struct: EnumItem - Enum.Material.Salt: - struct: EnumItem - Enum.Material.Sand: - struct: EnumItem - Enum.Material.Sandstone: - struct: EnumItem - Enum.Material.Slate: - struct: EnumItem - Enum.Material.SmoothPlastic: - struct: EnumItem - Enum.Material.Snow: - struct: EnumItem - Enum.Material.Water: - struct: EnumItem - Enum.Material.Wood: - struct: EnumItem - Enum.Material.WoodPlanks: - struct: EnumItem - Enum.MaterialPattern.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MaterialPattern.Organic: - struct: EnumItem - Enum.MaterialPattern.Regular: - struct: EnumItem - Enum.MembershipType.BuildersClub: - struct: EnumItem - Enum.MembershipType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MembershipType.None: - struct: EnumItem - Enum.MembershipType.OutrageousBuildersClub: - struct: EnumItem - Enum.MembershipType.Premium: - struct: EnumItem - Enum.MembershipType.TurboBuildersClub: - struct: EnumItem - Enum.MeshPartDetailLevel.DistanceBased: - struct: EnumItem - Enum.MeshPartDetailLevel.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MeshPartDetailLevel.Level00: - struct: EnumItem - Enum.MeshPartDetailLevel.Level01: - struct: EnumItem - Enum.MeshPartDetailLevel.Level02: - struct: EnumItem - Enum.MeshPartDetailLevel.Level03: - struct: EnumItem - Enum.MeshPartDetailLevel.Level04: - struct: EnumItem - Enum.MeshPartHeadsAndAccessories.Default: - struct: EnumItem - Enum.MeshPartHeadsAndAccessories.Disabled: - struct: EnumItem - Enum.MeshPartHeadsAndAccessories.Enabled: - struct: EnumItem - Enum.MeshPartHeadsAndAccessories.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MeshScaleUnit.CM: - struct: EnumItem - Enum.MeshScaleUnit.Foot: - struct: EnumItem - Enum.MeshScaleUnit.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MeshScaleUnit.Inch: - struct: EnumItem - Enum.MeshScaleUnit.MM: - struct: EnumItem - Enum.MeshScaleUnit.Meter: - struct: EnumItem - Enum.MeshScaleUnit.Stud: - struct: EnumItem - Enum.MeshType.Brick: - struct: EnumItem - Enum.MeshType.CornerWedge: - struct: EnumItem - Enum.MeshType.Cylinder: - struct: EnumItem - Enum.MeshType.FileMesh: - struct: EnumItem - Enum.MeshType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MeshType.Head: - struct: EnumItem - Enum.MeshType.ParallelRamp: - struct: EnumItem - Enum.MeshType.Prism: - struct: EnumItem - Enum.MeshType.Pyramid: - struct: EnumItem - Enum.MeshType.RightAngleRamp: - struct: EnumItem - Enum.MeshType.Sphere: - struct: EnumItem - Enum.MeshType.Torso: - struct: EnumItem - Enum.MeshType.Wedge: - struct: EnumItem - Enum.MessageType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MessageType.MessageError: - struct: EnumItem - Enum.MessageType.MessageInfo: - struct: EnumItem - Enum.MessageType.MessageOutput: - struct: EnumItem - Enum.MessageType.MessageWarning: - struct: EnumItem - Enum.ModelLevelOfDetail.Automatic: - struct: EnumItem - Enum.ModelLevelOfDetail.Disabled: - struct: EnumItem - Enum.ModelLevelOfDetail.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ModelLevelOfDetail.StreamingMesh: - struct: EnumItem - Enum.ModelStreamingBehavior.Default: - struct: EnumItem - Enum.ModelStreamingBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ModelStreamingBehavior.Improved: - struct: EnumItem - Enum.ModelStreamingBehavior.Legacy: - struct: EnumItem - Enum.ModelStreamingMode.Atomic: - struct: EnumItem - Enum.ModelStreamingMode.Default: - struct: EnumItem - Enum.ModelStreamingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ModelStreamingMode.Nonatomic: - struct: EnumItem - Enum.ModelStreamingMode.Persistent: - struct: EnumItem - Enum.ModelStreamingMode.PersistentPerPlayer: - struct: EnumItem - Enum.ModifierKey.Alt: - struct: EnumItem - Enum.ModifierKey.Ctrl: - struct: EnumItem - Enum.ModifierKey.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ModifierKey.Meta: - struct: EnumItem - Enum.ModifierKey.Shift: - struct: EnumItem - Enum.MouseBehavior.Default: - struct: EnumItem - Enum.MouseBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MouseBehavior.LockCenter: - struct: EnumItem - Enum.MouseBehavior.LockCurrentPosition: - struct: EnumItem - Enum.MoveState.AirFree: - struct: EnumItem - Enum.MoveState.Coasting: - struct: EnumItem - Enum.MoveState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MoveState.Pushing: - struct: EnumItem - Enum.MoveState.Stopped: - struct: EnumItem - Enum.MoveState.Stopping: - struct: EnumItem - Enum.MuteState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.MuteState.Muted: - struct: EnumItem - Enum.MuteState.Unmuted: - struct: EnumItem - Enum.NameOcclusion.EnemyOcclusion: - struct: EnumItem - Enum.NameOcclusion.GetEnumItems: - args: [] - method: true - must_use: true - Enum.NameOcclusion.NoOcclusion: - struct: EnumItem - Enum.NameOcclusion.OccludeAll: - struct: EnumItem - Enum.NetworkOwnership.Automatic: - struct: EnumItem - Enum.NetworkOwnership.GetEnumItems: - args: [] - method: true - must_use: true - Enum.NetworkOwnership.Manual: - struct: EnumItem - Enum.NetworkOwnership.OnContact: - struct: EnumItem - Enum.NetworkStatus.Connected: - struct: EnumItem - Enum.NetworkStatus.Disconnected: - struct: EnumItem - Enum.NetworkStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.NetworkStatus.Unknown: - struct: EnumItem - Enum.NormalId.Back: - struct: EnumItem - Enum.NormalId.Bottom: - struct: EnumItem - Enum.NormalId.Front: - struct: EnumItem - Enum.NormalId.GetEnumItems: - args: [] - method: true - must_use: true - Enum.NormalId.Left: - struct: EnumItem - Enum.NormalId.Right: - struct: EnumItem - Enum.NormalId.Top: - struct: EnumItem - Enum.OperationType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OperationType.Intersection: - struct: EnumItem - Enum.OperationType.Null: - struct: EnumItem - Enum.OperationType.Primitive: - struct: EnumItem - Enum.OperationType.Subtraction: - struct: EnumItem - Enum.OperationType.Union: - struct: EnumItem - Enum.OrientationAlignmentMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OrientationAlignmentMode.OneAttachment: - struct: EnumItem - Enum.OrientationAlignmentMode.TwoAttachment: - struct: EnumItem - Enum.OutfitSource.All: - struct: EnumItem - Enum.OutfitSource.Created: - struct: EnumItem - Enum.OutfitSource.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OutfitSource.Purchased: - struct: EnumItem - Enum.OutfitType.All: - struct: EnumItem - Enum.OutfitType.Avatar: - struct: EnumItem - Enum.OutfitType.DynamicHead: - struct: EnumItem - Enum.OutfitType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OutputLayoutMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OutputLayoutMode.Horizontal: - struct: EnumItem - Enum.OutputLayoutMode.Vertical: - struct: EnumItem - Enum.OverrideMouseIconBehavior.ForceHide: - struct: EnumItem - Enum.OverrideMouseIconBehavior.ForceShow: - struct: EnumItem - Enum.OverrideMouseIconBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.OverrideMouseIconBehavior.None: - struct: EnumItem - Enum.PackagePermission.Edit: - struct: EnumItem - Enum.PackagePermission.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PackagePermission.NoAccess: - struct: EnumItem - Enum.PackagePermission.None: - struct: EnumItem - Enum.PackagePermission.Own: - struct: EnumItem - Enum.PackagePermission.Revoked: - struct: EnumItem - Enum.PackagePermission.UseView: - struct: EnumItem - Enum.PartType.Ball: - struct: EnumItem - Enum.PartType.Block: - struct: EnumItem - Enum.PartType.CornerWedge: - struct: EnumItem - Enum.PartType.Cylinder: - struct: EnumItem - Enum.PartType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PartType.Wedge: - struct: EnumItem - Enum.ParticleEmitterShape.Box: - struct: EnumItem - Enum.ParticleEmitterShape.Cylinder: - struct: EnumItem - Enum.ParticleEmitterShape.Disc: - struct: EnumItem - Enum.ParticleEmitterShape.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleEmitterShape.Sphere: - struct: EnumItem - Enum.ParticleEmitterShapeInOut.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleEmitterShapeInOut.InAndOut: - struct: EnumItem - Enum.ParticleEmitterShapeInOut.Inward: - struct: EnumItem - Enum.ParticleEmitterShapeInOut.Outward: - struct: EnumItem - Enum.ParticleEmitterShapeStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleEmitterShapeStyle.Surface: - struct: EnumItem - Enum.ParticleEmitterShapeStyle.Volume: - struct: EnumItem - Enum.ParticleFlipbookLayout.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleFlipbookLayout.Grid2x2: - struct: EnumItem - Enum.ParticleFlipbookLayout.Grid4x4: - struct: EnumItem - Enum.ParticleFlipbookLayout.Grid8x8: - struct: EnumItem - Enum.ParticleFlipbookLayout.None: - struct: EnumItem - Enum.ParticleFlipbookMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleFlipbookMode.Loop: - struct: EnumItem - Enum.ParticleFlipbookMode.OneShot: - struct: EnumItem - Enum.ParticleFlipbookMode.PingPong: - struct: EnumItem - Enum.ParticleFlipbookMode.Random: - struct: EnumItem - Enum.ParticleFlipbookTextureCompatible.Compatible: - struct: EnumItem - Enum.ParticleFlipbookTextureCompatible.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleFlipbookTextureCompatible.NotCompatible: - struct: EnumItem - Enum.ParticleFlipbookTextureCompatible.Unknown: - struct: EnumItem - Enum.ParticleOrientation.FacingCamera: - struct: EnumItem - Enum.ParticleOrientation.FacingCameraWorldUp: - struct: EnumItem - Enum.ParticleOrientation.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ParticleOrientation.VelocityParallel: - struct: EnumItem - Enum.ParticleOrientation.VelocityPerpendicular: - struct: EnumItem - Enum.PathStatus.ClosestNoPath: - struct: EnumItem - Enum.PathStatus.ClosestOutOfRange: - struct: EnumItem - Enum.PathStatus.FailFinishNotEmpty: - struct: EnumItem - Enum.PathStatus.FailStartNotEmpty: - struct: EnumItem - Enum.PathStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PathStatus.NoPath: - struct: EnumItem - Enum.PathStatus.Success: - struct: EnumItem - Enum.PathWaypointAction.Custom: - struct: EnumItem - Enum.PathWaypointAction.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PathWaypointAction.Jump: - struct: EnumItem - Enum.PathWaypointAction.Walk: - struct: EnumItem - Enum.PermissionLevelShown.Game: - struct: EnumItem - Enum.PermissionLevelShown.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PermissionLevelShown.Roblox: - struct: EnumItem - Enum.PermissionLevelShown.RobloxGame: - struct: EnumItem - Enum.PermissionLevelShown.RobloxScript: - struct: EnumItem - Enum.PermissionLevelShown.Studio: - struct: EnumItem - Enum.PhysicsSimulationRate.Fixed120Hz: - struct: EnumItem - Enum.PhysicsSimulationRate.Fixed240Hz: - struct: EnumItem - Enum.PhysicsSimulationRate.Fixed60Hz: - struct: EnumItem - Enum.PhysicsSimulationRate.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PhysicsSteppingMethod.Adaptive: - struct: EnumItem - Enum.PhysicsSteppingMethod.Default: - struct: EnumItem - Enum.PhysicsSteppingMethod.Fixed: - struct: EnumItem - Enum.PhysicsSteppingMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Platform.Android: - struct: EnumItem - Enum.Platform.AndroidTV: - struct: EnumItem - Enum.Platform.BeOS: - struct: EnumItem - Enum.Platform.Chromecast: - struct: EnumItem - Enum.Platform.DOS: - struct: EnumItem - Enum.Platform.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Platform.IOS: - struct: EnumItem - Enum.Platform.Linux: - struct: EnumItem - Enum.Platform.NX: - struct: EnumItem - Enum.Platform.None: - struct: EnumItem - Enum.Platform.OSX: - struct: EnumItem - Enum.Platform.Ouya: - struct: EnumItem - Enum.Platform.PS3: - struct: EnumItem - Enum.Platform.PS4: - struct: EnumItem - Enum.Platform.PS5: - struct: EnumItem - Enum.Platform.SteamOS: - struct: EnumItem - Enum.Platform.UWP: - struct: EnumItem - Enum.Platform.WebOS: - struct: EnumItem - Enum.Platform.WiiU: - struct: EnumItem - Enum.Platform.Windows: - struct: EnumItem - Enum.Platform.XBox360: - struct: EnumItem - Enum.Platform.XBoxOne: - struct: EnumItem - Enum.PlaybackState.Begin: - struct: EnumItem - Enum.PlaybackState.Cancelled: - struct: EnumItem - Enum.PlaybackState.Completed: - struct: EnumItem - Enum.PlaybackState.Delayed: - struct: EnumItem - Enum.PlaybackState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PlaybackState.Paused: - struct: EnumItem - Enum.PlaybackState.Playing: - struct: EnumItem - Enum.PlayerActions.CharacterBackward: - struct: EnumItem - Enum.PlayerActions.CharacterForward: - struct: EnumItem - Enum.PlayerActions.CharacterJump: - struct: EnumItem - Enum.PlayerActions.CharacterLeft: - struct: EnumItem - Enum.PlayerActions.CharacterRight: - struct: EnumItem - Enum.PlayerActions.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PlayerCharacterDestroyBehavior.Default: - struct: EnumItem - Enum.PlayerCharacterDestroyBehavior.Disabled: - struct: EnumItem - Enum.PlayerCharacterDestroyBehavior.Enabled: - struct: EnumItem - Enum.PlayerCharacterDestroyBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PlayerChatType.All: - struct: EnumItem - Enum.PlayerChatType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PlayerChatType.Team: - struct: EnumItem - Enum.PlayerChatType.Whisper: - struct: EnumItem - Enum.PoseEasingDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PoseEasingDirection.In: - struct: EnumItem - Enum.PoseEasingDirection.InOut: - struct: EnumItem - Enum.PoseEasingDirection.Out: - struct: EnumItem - Enum.PoseEasingStyle.Bounce: - struct: EnumItem - Enum.PoseEasingStyle.Constant: - struct: EnumItem - Enum.PoseEasingStyle.Cubic: - struct: EnumItem - Enum.PoseEasingStyle.Elastic: - struct: EnumItem - Enum.PoseEasingStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PoseEasingStyle.Linear: - struct: EnumItem - Enum.PositionAlignmentMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PositionAlignmentMode.OneAttachment: - struct: EnumItem - Enum.PositionAlignmentMode.TwoAttachment: - struct: EnumItem - Enum.PrimalPhysicsSolver.Default: - struct: EnumItem - Enum.PrimalPhysicsSolver.Disabled: - struct: EnumItem - Enum.PrimalPhysicsSolver.Experimental: - struct: EnumItem - Enum.PrimalPhysicsSolver.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PrimitiveType.Ball: - struct: EnumItem - Enum.PrimitiveType.Block: - struct: EnumItem - Enum.PrimitiveType.CornerWedge: - struct: EnumItem - Enum.PrimitiveType.Cylinder: - struct: EnumItem - Enum.PrimitiveType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PrimitiveType.Null: - struct: EnumItem - Enum.PrimitiveType.Wedge: - struct: EnumItem - Enum.PrivilegeType.Admin: - struct: EnumItem - Enum.PrivilegeType.Banned: - struct: EnumItem - Enum.PrivilegeType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PrivilegeType.Member: - struct: EnumItem - Enum.PrivilegeType.Owner: - struct: EnumItem - Enum.PrivilegeType.Visitor: - struct: EnumItem - Enum.ProductLocationRestriction.AllGames: - struct: EnumItem - Enum.ProductLocationRestriction.AllowedGames: - struct: EnumItem - Enum.ProductLocationRestriction.AvatarShop: - struct: EnumItem - Enum.ProductLocationRestriction.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ProductPurchaseDecision.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ProductPurchaseDecision.NotProcessedYet: - struct: EnumItem - Enum.ProductPurchaseDecision.PurchaseGranted: - struct: EnumItem - Enum.PromptCreateAssetResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PromptCreateAssetResult.NoUserInput: - struct: EnumItem - Enum.PromptCreateAssetResult.PermissionDenied: - struct: EnumItem - Enum.PromptCreateAssetResult.Success: - struct: EnumItem - Enum.PromptCreateAssetResult.Timeout: - struct: EnumItem - Enum.PromptCreateAssetResult.UnknownFailure: - struct: EnumItem - Enum.PromptCreateAssetResult.UploadFailed: - struct: EnumItem - Enum.PromptCreateAvatarResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PromptCreateAvatarResult.InvalidHumanoidDescription: - struct: EnumItem - Enum.PromptCreateAvatarResult.MaxOutfits: - struct: EnumItem - Enum.PromptCreateAvatarResult.ModeratedName: - struct: EnumItem - Enum.PromptCreateAvatarResult.NoUserInput: - struct: EnumItem - Enum.PromptCreateAvatarResult.PermissionDenied: - struct: EnumItem - Enum.PromptCreateAvatarResult.Success: - struct: EnumItem - Enum.PromptCreateAvatarResult.Timeout: - struct: EnumItem - Enum.PromptCreateAvatarResult.UGCValidationFailed: - struct: EnumItem - Enum.PromptCreateAvatarResult.UnknownFailure: - struct: EnumItem - Enum.PromptCreateAvatarResult.UploadFailed: - struct: EnumItem - Enum.PromptPublishAssetResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PromptPublishAssetResult.NoUserInput: - struct: EnumItem - Enum.PromptPublishAssetResult.PermissionDenied: - struct: EnumItem - Enum.PromptPublishAssetResult.Success: - struct: EnumItem - Enum.PromptPublishAssetResult.Timeout: - struct: EnumItem - Enum.PromptPublishAssetResult.UnknownFailure: - struct: EnumItem - Enum.PromptPublishAssetResult.UploadFailed: - struct: EnumItem - Enum.PropertyStatus.Error: - struct: EnumItem - Enum.PropertyStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.PropertyStatus.Ok: - struct: EnumItem - Enum.PropertyStatus.Warning: - struct: EnumItem - Enum.ProximityPromptExclusivity.AlwaysShow: - struct: EnumItem - Enum.ProximityPromptExclusivity.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ProximityPromptExclusivity.OneGlobally: - struct: EnumItem - Enum.ProximityPromptExclusivity.OnePerButton: - struct: EnumItem - Enum.ProximityPromptInputType.Gamepad: - struct: EnumItem - Enum.ProximityPromptInputType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ProximityPromptInputType.Keyboard: - struct: EnumItem - Enum.ProximityPromptInputType.Touch: - struct: EnumItem - Enum.ProximityPromptStyle.Custom: - struct: EnumItem - Enum.ProximityPromptStyle.Default: - struct: EnumItem - Enum.ProximityPromptStyle.GetEnumItems: - args: [] - method: true - must_use: true - Enum.QualityLevel.Automatic: - struct: EnumItem - Enum.QualityLevel.GetEnumItems: - args: [] - method: true - must_use: true - Enum.QualityLevel.Level 1: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 1 was replaced with Enum.QualityLevel.Level01 - replace: - - Enum.QualityLevel.Level01 - Enum.QualityLevel.Level 2: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 2 was replaced with Enum.QualityLevel.Level02 - replace: - - Enum.QualityLevel.Level02 - Enum.QualityLevel.Level 3: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 3 was replaced with Enum.QualityLevel.Level03 - replace: - - Enum.QualityLevel.Level03 - Enum.QualityLevel.Level 4: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 4 was replaced with Enum.QualityLevel.Level04 - replace: - - Enum.QualityLevel.Level04 - Enum.QualityLevel.Level 5: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 5 was replaced with Enum.QualityLevel.Level05 - replace: - - Enum.QualityLevel.Level05 - Enum.QualityLevel.Level 6: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 6 was replaced with Enum.QualityLevel.Level06 - replace: - - Enum.QualityLevel.Level06 - Enum.QualityLevel.Level 7: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 7 was replaced with Enum.QualityLevel.Level07 - replace: - - Enum.QualityLevel.Level07 - Enum.QualityLevel.Level 8: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 8 was replaced with Enum.QualityLevel.Level08 - replace: - - Enum.QualityLevel.Level08 - Enum.QualityLevel.Level 9: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 9 was replaced with Enum.QualityLevel.Level09 - replace: - - Enum.QualityLevel.Level09 - Enum.QualityLevel.Level 10: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 10 was replaced with Enum.QualityLevel.Level10 - replace: - - Enum.QualityLevel.Level10 - Enum.QualityLevel.Level 11: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 11 was replaced with Enum.QualityLevel.Level11 - replace: - - Enum.QualityLevel.Level11 - Enum.QualityLevel.Level 12: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 12 was replaced with Enum.QualityLevel.Level12 - replace: - - Enum.QualityLevel.Level12 - Enum.QualityLevel.Level 13: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 13 was replaced with Enum.QualityLevel.Level13 - replace: - - Enum.QualityLevel.Level13 - Enum.QualityLevel.Level 14: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 14 was replaced with Enum.QualityLevel.Level14 - replace: - - Enum.QualityLevel.Level14 - Enum.QualityLevel.Level 15: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 15 was replaced with Enum.QualityLevel.Level15 - replace: - - Enum.QualityLevel.Level15 - Enum.QualityLevel.Level 16: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 16 was replaced with Enum.QualityLevel.Level16 - replace: - - Enum.QualityLevel.Level16 - Enum.QualityLevel.Level 17: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 17 was replaced with Enum.QualityLevel.Level17 - replace: - - Enum.QualityLevel.Level17 - Enum.QualityLevel.Level 18: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 18 was replaced with Enum.QualityLevel.Level18 - replace: - - Enum.QualityLevel.Level18 - Enum.QualityLevel.Level 19: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 19 was replaced with Enum.QualityLevel.Level19 - replace: - - Enum.QualityLevel.Level19 - Enum.QualityLevel.Level 20: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 20 was replaced with Enum.QualityLevel.Level20 - replace: - - Enum.QualityLevel.Level20 - Enum.QualityLevel.Level 21: - struct: EnumItem - deprecated: - message: Enum.QualityLevel.Level 21 was replaced with Enum.QualityLevel.Level21 - replace: - - Enum.QualityLevel.Level21 - Enum.QualityLevel.Level01: - struct: EnumItem - Enum.QualityLevel.Level02: - struct: EnumItem - Enum.QualityLevel.Level03: - struct: EnumItem - Enum.QualityLevel.Level04: - struct: EnumItem - Enum.QualityLevel.Level05: - struct: EnumItem - Enum.QualityLevel.Level06: - struct: EnumItem - Enum.QualityLevel.Level07: - struct: EnumItem - Enum.QualityLevel.Level08: - struct: EnumItem - Enum.QualityLevel.Level09: - struct: EnumItem - Enum.QualityLevel.Level10: - struct: EnumItem - Enum.QualityLevel.Level11: - struct: EnumItem - Enum.QualityLevel.Level12: - struct: EnumItem - Enum.QualityLevel.Level13: - struct: EnumItem - Enum.QualityLevel.Level14: - struct: EnumItem - Enum.QualityLevel.Level15: - struct: EnumItem - Enum.QualityLevel.Level16: - struct: EnumItem - Enum.QualityLevel.Level17: - struct: EnumItem - Enum.QualityLevel.Level18: - struct: EnumItem - Enum.QualityLevel.Level19: - struct: EnumItem - Enum.QualityLevel.Level20: - struct: EnumItem - Enum.QualityLevel.Level21: - struct: EnumItem - Enum.R15CollisionType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.R15CollisionType.InnerBox: - struct: EnumItem - Enum.R15CollisionType.OuterBox: - struct: EnumItem - Enum.RaycastFilterType.Blacklist: - struct: EnumItem - deprecated: - message: Enum.RaycastFilterType.Blacklist was replaced with Enum.RaycastFilterType.Exclude - replace: - - Enum.RaycastFilterType.Exclude - Enum.RaycastFilterType.Exclude: - struct: EnumItem - Enum.RaycastFilterType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RaycastFilterType.Include: - struct: EnumItem - Enum.RaycastFilterType.Whitelist: - struct: EnumItem - deprecated: - message: Enum.RaycastFilterType.Whitelist was replaced with Enum.RaycastFilterType.Include - replace: - - Enum.RaycastFilterType.Include - Enum.RejectCharacterDeletions.Default: - struct: EnumItem - Enum.RejectCharacterDeletions.Disabled: - struct: EnumItem - Enum.RejectCharacterDeletions.Enabled: - struct: EnumItem - Enum.RejectCharacterDeletions.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RenderFidelity.Automatic: - struct: EnumItem - Enum.RenderFidelity.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RenderFidelity.Performance: - struct: EnumItem - Enum.RenderFidelity.Precise: - struct: EnumItem - Enum.RenderPriority.Camera: - struct: EnumItem - Enum.RenderPriority.Character: - struct: EnumItem - Enum.RenderPriority.First: - struct: EnumItem - Enum.RenderPriority.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RenderPriority.Input: - struct: EnumItem - Enum.RenderPriority.Last: - struct: EnumItem - Enum.RenderingTestComparisonMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RenderingTestComparisonMethod.diff: - struct: EnumItem - Enum.RenderingTestComparisonMethod.psnr: - struct: EnumItem - Enum.ReplicateInstanceDestroySetting.Default: - struct: EnumItem - Enum.ReplicateInstanceDestroySetting.Disabled: - struct: EnumItem - Enum.ReplicateInstanceDestroySetting.Enabled: - struct: EnumItem - Enum.ReplicateInstanceDestroySetting.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ResamplerMode.Default: - struct: EnumItem - Enum.ResamplerMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ResamplerMode.Pixelated: - struct: EnumItem - Enum.ReservedHighlightId.Active: - struct: EnumItem - Enum.ReservedHighlightId.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ReservedHighlightId.Hover: - struct: EnumItem - Enum.ReservedHighlightId.Selection: - struct: EnumItem - Enum.ReservedHighlightId.Standard: - struct: EnumItem - Enum.RestPose.Custom: - struct: EnumItem - Enum.RestPose.Default: - struct: EnumItem - Enum.RestPose.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RestPose.RotationsReset: - struct: EnumItem - Enum.ReturnKeyType.Default: - struct: EnumItem - Enum.ReturnKeyType.Done: - struct: EnumItem - Enum.ReturnKeyType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ReturnKeyType.Go: - struct: EnumItem - Enum.ReturnKeyType.Next: - struct: EnumItem - Enum.ReturnKeyType.Search: - struct: EnumItem - Enum.ReturnKeyType.Send: - struct: EnumItem - Enum.ReverbType.Alley: - struct: EnumItem - Enum.ReverbType.Arena: - struct: EnumItem - Enum.ReverbType.Auditorium: - struct: EnumItem - Enum.ReverbType.Bathroom: - struct: EnumItem - Enum.ReverbType.CarpettedHallway: - struct: EnumItem - Enum.ReverbType.Cave: - struct: EnumItem - Enum.ReverbType.City: - struct: EnumItem - Enum.ReverbType.ConcertHall: - struct: EnumItem - Enum.ReverbType.Forest: - struct: EnumItem - Enum.ReverbType.GenericReverb: - struct: EnumItem - Enum.ReverbType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ReverbType.Hallway: - struct: EnumItem - Enum.ReverbType.Hangar: - struct: EnumItem - Enum.ReverbType.LivingRoom: - struct: EnumItem - Enum.ReverbType.Mountains: - struct: EnumItem - Enum.ReverbType.NoReverb: - struct: EnumItem - Enum.ReverbType.PaddedCell: - struct: EnumItem - Enum.ReverbType.ParkingLot: - struct: EnumItem - Enum.ReverbType.Plain: - struct: EnumItem - Enum.ReverbType.Quarry: - struct: EnumItem - Enum.ReverbType.Room: - struct: EnumItem - Enum.ReverbType.SewerPipe: - struct: EnumItem - Enum.ReverbType.StoneCorridor: - struct: EnumItem - Enum.ReverbType.StoneRoom: - struct: EnumItem - Enum.ReverbType.UnderWater: - struct: EnumItem - Enum.RibbonTool.ColorPicker: - struct: EnumItem - Enum.RibbonTool.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RibbonTool.Group: - struct: EnumItem - Enum.RibbonTool.MaterialPicker: - struct: EnumItem - Enum.RibbonTool.Move: - struct: EnumItem - Enum.RibbonTool.None: - struct: EnumItem - Enum.RibbonTool.PivotEditor: - struct: EnumItem - Enum.RibbonTool.Rotate: - struct: EnumItem - Enum.RibbonTool.Scale: - struct: EnumItem - Enum.RibbonTool.Select: - struct: EnumItem - Enum.RibbonTool.Transform: - struct: EnumItem - Enum.RibbonTool.Ungroup: - struct: EnumItem - Enum.RigScale.Default: - struct: EnumItem - Enum.RigScale.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RigScale.Rthro: - struct: EnumItem - Enum.RigScale.RthroNarrow: - struct: EnumItem - Enum.RigType.Custom: - struct: EnumItem - Enum.RigType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RigType.None: - struct: EnumItem - Enum.RigType.R15: - struct: EnumItem - Enum.RollOffMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RollOffMode.Inverse: - struct: EnumItem - Enum.RollOffMode.InverseTapered: - struct: EnumItem - Enum.RollOffMode.Linear: - struct: EnumItem - Enum.RollOffMode.LinearSquare: - struct: EnumItem - Enum.RotationOrder.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RotationOrder.XYZ: - struct: EnumItem - Enum.RotationOrder.XZY: - struct: EnumItem - Enum.RotationOrder.YXZ: - struct: EnumItem - Enum.RotationOrder.YZX: - struct: EnumItem - Enum.RotationOrder.ZXY: - struct: EnumItem - Enum.RotationOrder.ZYX: - struct: EnumItem - Enum.RotationType.CameraRelative: - struct: EnumItem - Enum.RotationType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RotationType.MovementRelative: - struct: EnumItem - Enum.RtlTextSupport.Default: - struct: EnumItem - Enum.RtlTextSupport.Disabled: - struct: EnumItem - Enum.RtlTextSupport.Enabled: - struct: EnumItem - Enum.RtlTextSupport.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RunContext.Client: - struct: EnumItem - Enum.RunContext.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RunContext.Legacy: - struct: EnumItem - Enum.RunContext.Plugin: - struct: EnumItem - Enum.RunContext.Server: - struct: EnumItem - Enum.RuntimeUndoBehavior.Aggregate: - struct: EnumItem - Enum.RuntimeUndoBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.RuntimeUndoBehavior.Hybrid: - struct: EnumItem - Enum.RuntimeUndoBehavior.Snapshot: - struct: EnumItem - Enum.SafeAreaCompatibility.FullscreenExtension: - struct: EnumItem - Enum.SafeAreaCompatibility.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SafeAreaCompatibility.None: - struct: EnumItem - Enum.SalesTypeFilter.All: - struct: EnumItem - Enum.SalesTypeFilter.Collectibles: - struct: EnumItem - Enum.SalesTypeFilter.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SalesTypeFilter.Premium: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.BadDistanceScale: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.BadFieldOfViewDeg: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.BadThumbnailType: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.BadYRotDeg: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SaveAvatarThumbnailCustomizationFailure.Other: - struct: EnumItem - Enum.SaveAvatarThumbnailCustomizationFailure.Throttled: - struct: EnumItem - Enum.SaveFilter.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SaveFilter.SaveAll: - struct: EnumItem - Enum.SaveFilter.SaveGame: - struct: EnumItem - Enum.SaveFilter.SaveWorld: - struct: EnumItem - Enum.SavedQualitySetting.Automatic: - struct: EnumItem - Enum.SavedQualitySetting.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SavedQualitySetting.QualityLevel1: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel10: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel2: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel3: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel4: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel5: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel6: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel7: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel8: - struct: EnumItem - Enum.SavedQualitySetting.QualityLevel9: - struct: EnumItem - Enum.ScaleType.Crop: - struct: EnumItem - Enum.ScaleType.Fit: - struct: EnumItem - Enum.ScaleType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScaleType.Slice: - struct: EnumItem - Enum.ScaleType.Stretch: - struct: EnumItem - Enum.ScaleType.Tile: - struct: EnumItem - Enum.ScopeCheckResult.BackendError: - struct: EnumItem - Enum.ScopeCheckResult.ConsentAccepted: - struct: EnumItem - Enum.ScopeCheckResult.ConsentDenied: - struct: EnumItem - Enum.ScopeCheckResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScopeCheckResult.InvalidArgument: - struct: EnumItem - Enum.ScopeCheckResult.InvalidScopes: - struct: EnumItem - Enum.ScopeCheckResult.NoUserInput: - struct: EnumItem - Enum.ScopeCheckResult.Timeout: - struct: EnumItem - Enum.ScopeCheckResult.UnexpectedError: - struct: EnumItem - Enum.ScreenInsets.CoreUISafeInsets: - struct: EnumItem - Enum.ScreenInsets.DeviceSafeInsets: - struct: EnumItem - Enum.ScreenInsets.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScreenInsets.None: - struct: EnumItem - Enum.ScreenInsets.TopbarSafeInsets: - struct: EnumItem - Enum.ScreenOrientation.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScreenOrientation.LandscapeLeft: - struct: EnumItem - Enum.ScreenOrientation.LandscapeRight: - struct: EnumItem - Enum.ScreenOrientation.LandscapeSensor: - struct: EnumItem - Enum.ScreenOrientation.Portrait: - struct: EnumItem - Enum.ScreenOrientation.Sensor: - struct: EnumItem - Enum.ScrollBarInset.Always: - struct: EnumItem - Enum.ScrollBarInset.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScrollBarInset.None: - struct: EnumItem - Enum.ScrollBarInset.ScrollBar: - struct: EnumItem - Enum.ScrollingDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ScrollingDirection.X: - struct: EnumItem - Enum.ScrollingDirection.XY: - struct: EnumItem - Enum.ScrollingDirection.Y: - struct: EnumItem - Enum.SelectionBehavior.Escape: - struct: EnumItem - Enum.SelectionBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SelectionBehavior.Stop: - struct: EnumItem - Enum.SelectionRenderMode.Both: - struct: EnumItem - Enum.SelectionRenderMode.BoundingBoxes: - struct: EnumItem - Enum.SelectionRenderMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SelectionRenderMode.Outlines: - struct: EnumItem - Enum.SelfViewPosition.BottomLeft: - struct: EnumItem - Enum.SelfViewPosition.BottomRight: - struct: EnumItem - Enum.SelfViewPosition.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SelfViewPosition.LastPosition: - struct: EnumItem - Enum.SelfViewPosition.TopLeft: - struct: EnumItem - Enum.SelfViewPosition.TopRight: - struct: EnumItem - Enum.SensorMode.Floor: - struct: EnumItem - Enum.SensorMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SensorMode.Ladder: - struct: EnumItem - Enum.SensorUpdateType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SensorUpdateType.Manual: - struct: EnumItem - Enum.SensorUpdateType.OnRead: - struct: EnumItem - Enum.ServerAudioBehavior.Enabled: - struct: EnumItem - Enum.ServerAudioBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ServerAudioBehavior.Muted: - struct: EnumItem - Enum.ServerAudioBehavior.OnlineGame: - struct: EnumItem - Enum.ServerLiveEditingMode.Disabled: - struct: EnumItem - Enum.ServerLiveEditingMode.Enabled: - struct: EnumItem - Enum.ServerLiveEditingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ServerLiveEditingMode.Uninitialized: - struct: EnumItem - Enum.ServiceVisibility.Always: - struct: EnumItem - Enum.ServiceVisibility.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ServiceVisibility.Off: - struct: EnumItem - Enum.ServiceVisibility.WithChildren: - struct: EnumItem - Enum.Severity.Error: - struct: EnumItem - Enum.Severity.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Severity.Hint: - struct: EnumItem - Enum.Severity.Information: - struct: EnumItem - Enum.Severity.Warning: - struct: EnumItem - Enum.SignalBehavior.AncestryDeferred: - struct: EnumItem - Enum.SignalBehavior.Default: - struct: EnumItem - Enum.SignalBehavior.Deferred: - struct: EnumItem - Enum.SignalBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SignalBehavior.Immediate: - struct: EnumItem - Enum.SizeConstraint.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SizeConstraint.RelativeXX: - struct: EnumItem - Enum.SizeConstraint.RelativeXY: - struct: EnumItem - Enum.SizeConstraint.RelativeYY: - struct: EnumItem - Enum.SolverConvergenceMetricType.AlgorithmAgnostic: - struct: EnumItem - Enum.SolverConvergenceMetricType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SolverConvergenceMetricType.IterationBased: - struct: EnumItem - Enum.SolverConvergenceVisualizationMode.Disabled: - struct: EnumItem - Enum.SolverConvergenceVisualizationMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SolverConvergenceVisualizationMode.PerEdge: - struct: EnumItem - Enum.SolverConvergenceVisualizationMode.PerIsland: - struct: EnumItem - Enum.SortDirection.Ascending: - struct: EnumItem - Enum.SortDirection.Descending: - struct: EnumItem - Enum.SortDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SortOrder.Custom: - struct: EnumItem - Enum.SortOrder.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SortOrder.LayoutOrder: - struct: EnumItem - Enum.SortOrder.Name: - struct: EnumItem - Enum.SpecialKey.ChatHotkey: - struct: EnumItem - Enum.SpecialKey.End: - struct: EnumItem - Enum.SpecialKey.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SpecialKey.Home: - struct: EnumItem - Enum.SpecialKey.Insert: - struct: EnumItem - Enum.SpecialKey.PageDown: - struct: EnumItem - Enum.SpecialKey.PageUp: - struct: EnumItem - Enum.StartCorner.BottomLeft: - struct: EnumItem - Enum.StartCorner.BottomRight: - struct: EnumItem - Enum.StartCorner.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StartCorner.TopLeft: - struct: EnumItem - Enum.StartCorner.TopRight: - struct: EnumItem - Enum.Status.Confusion: - struct: EnumItem - Enum.Status.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Status.Poison: - struct: EnumItem - Enum.StreamOutBehavior.Default: - struct: EnumItem - Enum.StreamOutBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StreamOutBehavior.LowMemory: - struct: EnumItem - Enum.StreamOutBehavior.Opportunistic: - struct: EnumItem - Enum.StreamingIntegrityMode.Default: - struct: EnumItem - Enum.StreamingIntegrityMode.Disabled: - struct: EnumItem - Enum.StreamingIntegrityMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StreamingIntegrityMode.MinimumRadiusPause: - struct: EnumItem - Enum.StreamingIntegrityMode.PauseOutsideLoadedArea: - struct: EnumItem - Enum.StreamingPauseMode.ClientPhysicsPause: - struct: EnumItem - Enum.StreamingPauseMode.Default: - struct: EnumItem - Enum.StreamingPauseMode.Disabled: - struct: EnumItem - Enum.StreamingPauseMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioCloseMode.CloseDoc: - struct: EnumItem - Enum.StudioCloseMode.CloseStudio: - struct: EnumItem - Enum.StudioCloseMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioCloseMode.None: - struct: EnumItem - Enum.StudioDataModelType.Edit: - struct: EnumItem - Enum.StudioDataModelType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioDataModelType.None: - struct: EnumItem - Enum.StudioDataModelType.PlayClient: - struct: EnumItem - Enum.StudioDataModelType.PlayServer: - struct: EnumItem - Enum.StudioDataModelType.Standalone: - struct: EnumItem - Enum.StudioPlaceUpdateFailureReason.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioPlaceUpdateFailureReason.Other: - struct: EnumItem - Enum.StudioPlaceUpdateFailureReason.TeamCreateConflict: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.AICOOverlayButtonBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.AICOOverlayButtonBackgroundHover: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.AICOOverlayButtonBackgroundPressed: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.AICOOverlayText: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.ActiveLine: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Background: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Bool: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Bracket: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Builtin: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Comment: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.DebuggerCurrentLine: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.DebuggerErrorLine: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Default: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.DocViewCodeBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Error: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.FindSelectionBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Function: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.FunctionName: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioScriptEditorColorCategories.Hint: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.IndentationRuler: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Info: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Keyword: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Local: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.LuauKeyword: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MatchingWordBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuBorder: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuPrimaryText: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuScrollbarBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuScrollbarHandle: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuSecondaryText: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuSelectedBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.MenuSelectedText: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Method: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Nil: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Number: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Operator: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Property: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Ruler: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.SelectionBackground: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.SelectionText: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Self: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.String: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.TODO: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Warning: - struct: EnumItem - Enum.StudioScriptEditorColorCategories.Whitespace: - struct: EnumItem - Enum.StudioScriptEditorColorPresets.Custom: - struct: EnumItem - Enum.StudioScriptEditorColorPresets.Extra1: - struct: EnumItem - Enum.StudioScriptEditorColorPresets.Extra2: - struct: EnumItem - Enum.StudioScriptEditorColorPresets.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioScriptEditorColorPresets.RobloxDefault: - struct: EnumItem - Enum.StudioStyleGuideColor.AICOOverlayButtonBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.AICOOverlayButtonBackgroundHover: - struct: EnumItem - Enum.StudioStyleGuideColor.AICOOverlayButtonBackgroundPressed: - struct: EnumItem - Enum.StudioStyleGuideColor.AICOOverlayText: - struct: EnumItem - Enum.StudioStyleGuideColor.AttributeCog: - struct: EnumItem - Enum.StudioStyleGuideColor.Border: - struct: EnumItem - Enum.StudioStyleGuideColor.BrightText: - struct: EnumItem - Enum.StudioStyleGuideColor.Button: - struct: EnumItem - Enum.StudioStyleGuideColor.ButtonBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.ButtonText: - struct: EnumItem - Enum.StudioStyleGuideColor.CategoryItem: - struct: EnumItem - Enum.StudioStyleGuideColor.ChatIncomingBgColor: - struct: EnumItem - Enum.StudioStyleGuideColor.ChatIncomingTextColor: - struct: EnumItem - Enum.StudioStyleGuideColor.ChatModeratedMessageColor: - struct: EnumItem - Enum.StudioStyleGuideColor.ChatOutgoingBgColor: - struct: EnumItem - Enum.StudioStyleGuideColor.ChatOutgoingTextColor: - struct: EnumItem - Enum.StudioStyleGuideColor.CheckedFieldBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.CheckedFieldBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.CheckedFieldIndicator: - struct: EnumItem - Enum.StudioStyleGuideColor.ColorPickerFrame: - struct: EnumItem - Enum.StudioStyleGuideColor.CurrentMarker: - struct: EnumItem - Enum.StudioStyleGuideColor.Dark: - struct: EnumItem - Enum.StudioStyleGuideColor.DebuggerCurrentLine: - struct: EnumItem - Enum.StudioStyleGuideColor.DebuggerErrorLine: - struct: EnumItem - Enum.StudioStyleGuideColor.DialogButton: - struct: EnumItem - Enum.StudioStyleGuideColor.DialogButtonBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.DialogButtonText: - struct: EnumItem - Enum.StudioStyleGuideColor.DialogMainButton: - struct: EnumItem - Enum.StudioStyleGuideColor.DialogMainButtonText: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffFilePathBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffFilePathBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffFilePathText: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffLineNum: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffLineNumAdditionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffLineNumDeletionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffLineNumNoChangeBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffLineNumSeparatorBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextAddition: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextAdditionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextDeletion: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextDeletionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextHunkInfo: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextNoChange: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextNoChangeBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DiffTextSeparatorBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DimmedText: - struct: EnumItem - Enum.StudioStyleGuideColor.DocViewCodeBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.DropShadow: - struct: EnumItem - Enum.StudioStyleGuideColor.Dropdown: - struct: EnumItem - Enum.StudioStyleGuideColor.EmulatorBar: - struct: EnumItem - Enum.StudioStyleGuideColor.EmulatorDropDown: - struct: EnumItem - Enum.StudioStyleGuideColor.ErrorText: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonAccent: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonBorderAlt: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonChecked: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonDefault: - struct: EnumItem - Enum.StudioStyleGuideColor.FilterButtonHover: - struct: EnumItem - Enum.StudioStyleGuideColor.GameSettingsTableItem: - struct: EnumItem - Enum.StudioStyleGuideColor.GameSettingsTooltip: - struct: EnumItem - Enum.StudioStyleGuideColor.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioStyleGuideColor.HeaderSection: - struct: EnumItem - Enum.StudioStyleGuideColor.InfoBarWarningBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.InfoBarWarningText: - struct: EnumItem - Enum.StudioStyleGuideColor.InfoText: - struct: EnumItem - Enum.StudioStyleGuideColor.InputFieldBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.InputFieldBorder: - struct: EnumItem - Enum.StudioStyleGuideColor.Item: - struct: EnumItem - Enum.StudioStyleGuideColor.Light: - struct: EnumItem - Enum.StudioStyleGuideColor.LinkText: - struct: EnumItem - Enum.StudioStyleGuideColor.MainBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.MainButton: - struct: EnumItem - Enum.StudioStyleGuideColor.MainText: - struct: EnumItem - Enum.StudioStyleGuideColor.Mid: - struct: EnumItem - Enum.StudioStyleGuideColor.Midlight: - struct: EnumItem - Enum.StudioStyleGuideColor.Notification: - struct: EnumItem - Enum.StudioStyleGuideColor.OnboardingCover: - struct: EnumItem - Enum.StudioStyleGuideColor.OnboardingHighlight: - struct: EnumItem - Enum.StudioStyleGuideColor.OnboardingShadow: - struct: EnumItem - Enum.StudioStyleGuideColor.RibbonButton: - struct: EnumItem - Enum.StudioStyleGuideColor.RibbonTab: - struct: EnumItem - Enum.StudioStyleGuideColor.RibbonTabTopBar: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptBool: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptBracket: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptBuiltInFunction: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptComment: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptEditorCurrentLine: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptError: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptFindSelectionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptFunction: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptFunctionName: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptHint: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptInformation: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptKeyword: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptLocal: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptLuauKeyword: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptMatchingWordSelectionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptMethod: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptNil: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptNumber: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptOperator: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptProperty: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptRuler: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptSelectionBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptSelectionText: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptSelf: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptSideWidget: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptString: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptText: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptTodo: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptWarning: - struct: EnumItem - Enum.StudioStyleGuideColor.ScriptWhitespace: - struct: EnumItem - Enum.StudioStyleGuideColor.ScrollBar: - struct: EnumItem - Enum.StudioStyleGuideColor.ScrollBarBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.SensitiveText: - struct: EnumItem - Enum.StudioStyleGuideColor.Separator: - struct: EnumItem - Enum.StudioStyleGuideColor.Shadow: - struct: EnumItem - Enum.StudioStyleGuideColor.StatusBar: - struct: EnumItem - Enum.StudioStyleGuideColor.SubText: - struct: EnumItem - Enum.StudioStyleGuideColor.Tab: - struct: EnumItem - Enum.StudioStyleGuideColor.TabBar: - struct: EnumItem - Enum.StudioStyleGuideColor.TableItem: - struct: EnumItem - Enum.StudioStyleGuideColor.Titlebar: - struct: EnumItem - Enum.StudioStyleGuideColor.TitlebarText: - struct: EnumItem - Enum.StudioStyleGuideColor.Tooltip: - struct: EnumItem - Enum.StudioStyleGuideColor.ViewPortBackground: - struct: EnumItem - Enum.StudioStyleGuideColor.WarningText: - struct: EnumItem - Enum.StudioStyleGuideModifier.Default: - struct: EnumItem - Enum.StudioStyleGuideModifier.Disabled: - struct: EnumItem - Enum.StudioStyleGuideModifier.GetEnumItems: - args: [] - method: true - must_use: true - Enum.StudioStyleGuideModifier.Hover: - struct: EnumItem - Enum.StudioStyleGuideModifier.Pressed: - struct: EnumItem - Enum.StudioStyleGuideModifier.Selected: - struct: EnumItem - Enum.Style.Alternating Supports: - struct: EnumItem - deprecated: - message: Enum.Style.Alternating Supports was replaced with Enum.Style.AlternatingSupports - replace: - - Enum.Style.AlternatingSupports - Enum.Style.AlternatingSupports: - struct: EnumItem - Enum.Style.Bridge Style Supports: - struct: EnumItem - deprecated: - message: Enum.Style.Bridge Style Supports was replaced with Enum.Style.BridgeStyleSupports - replace: - - Enum.Style.BridgeStyleSupports - Enum.Style.BridgeStyleSupports: - struct: EnumItem - Enum.Style.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Style.No Supports: - struct: EnumItem - deprecated: - message: Enum.Style.No Supports was replaced with Enum.Style.NoSupports - replace: - - Enum.Style.NoSupports - Enum.Style.NoSupports: - struct: EnumItem - Enum.SubscriptionPaymentStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SubscriptionPaymentStatus.Paid: - struct: EnumItem - Enum.SubscriptionPaymentStatus.Refunded: - struct: EnumItem - Enum.SubscriptionPeriod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SubscriptionPeriod.Month: - struct: EnumItem - Enum.SurfaceConstraint.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SurfaceConstraint.Hinge: - struct: EnumItem - Enum.SurfaceConstraint.Motor: - struct: EnumItem - Enum.SurfaceConstraint.None: - struct: EnumItem - Enum.SurfaceConstraint.SteppingMotor: - struct: EnumItem - Enum.SurfaceGuiShape.CurvedHorizontally: - struct: EnumItem - Enum.SurfaceGuiShape.Flat: - struct: EnumItem - Enum.SurfaceGuiShape.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SurfaceGuiSizingMode.FixedSize: - struct: EnumItem - Enum.SurfaceGuiSizingMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SurfaceGuiSizingMode.PixelsPerStud: - struct: EnumItem - Enum.SurfaceType.Bumps: - struct: EnumItem - deprecated: - message: Enum.SurfaceType.Bumps was replaced with Enum.SurfaceType.Glue - replace: - - Enum.SurfaceType.Glue - Enum.SurfaceType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SurfaceType.Glue: - struct: EnumItem - Enum.SurfaceType.Hinge: - struct: EnumItem - Enum.SurfaceType.Inlet: - struct: EnumItem - Enum.SurfaceType.Motor: - struct: EnumItem - Enum.SurfaceType.Smooth: - struct: EnumItem - Enum.SurfaceType.SmoothNoOutlines: - struct: EnumItem - Enum.SurfaceType.Spawn: - struct: EnumItem - deprecated: - message: Enum.SurfaceType.Spawn was replaced with Enum.SurfaceType.Smooth - replace: - - Enum.SurfaceType.Smooth - Enum.SurfaceType.SteppingMotor: - struct: EnumItem - Enum.SurfaceType.Studs: - struct: EnumItem - Enum.SurfaceType.Universal: - struct: EnumItem - Enum.SurfaceType.Unjoinable: - struct: EnumItem - deprecated: - message: Enum.SurfaceType.Unjoinable was replaced with Enum.SurfaceType.Smooth - replace: - - Enum.SurfaceType.Smooth - Enum.SurfaceType.Weld: - struct: EnumItem - Enum.SwipeDirection.Down: - struct: EnumItem - Enum.SwipeDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.SwipeDirection.Left: - struct: EnumItem - Enum.SwipeDirection.None: - struct: EnumItem - Enum.SwipeDirection.Right: - struct: EnumItem - Enum.SwipeDirection.Up: - struct: EnumItem - Enum.TableMajorAxis.ColumnMajor: - struct: EnumItem - Enum.TableMajorAxis.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TableMajorAxis.RowMajor: - struct: EnumItem - Enum.Technology.Compatibility: - struct: EnumItem - Enum.Technology.Future: - struct: EnumItem - Enum.Technology.GetEnumItems: - args: [] - method: true - must_use: true - Enum.Technology.Legacy: - struct: EnumItem - Enum.Technology.ShadowMap: - struct: EnumItem - Enum.Technology.Voxel: - struct: EnumItem - Enum.TeleportMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TeleportMethod.TeleportPartyAsync: - struct: EnumItem - Enum.TeleportMethod.TeleportToPlaceInstance: - struct: EnumItem - Enum.TeleportMethod.TeleportToPrivateServer: - struct: EnumItem - Enum.TeleportMethod.TeleportToSpawnByName: - struct: EnumItem - Enum.TeleportMethod.TeleportToVIPServer: - struct: EnumItem - Enum.TeleportMethod.TeleportUnknown: - struct: EnumItem - Enum.TeleportResult.Failure: - struct: EnumItem - Enum.TeleportResult.Flooded: - struct: EnumItem - Enum.TeleportResult.GameEnded: - struct: EnumItem - Enum.TeleportResult.GameFull: - struct: EnumItem - Enum.TeleportResult.GameNotFound: - struct: EnumItem - Enum.TeleportResult.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TeleportResult.IsTeleporting: - struct: EnumItem - Enum.TeleportResult.Success: - struct: EnumItem - Enum.TeleportResult.Unauthorized: - struct: EnumItem - Enum.TeleportState.Failed: - struct: EnumItem - Enum.TeleportState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TeleportState.InProgress: - struct: EnumItem - Enum.TeleportState.RequestedFromServer: - struct: EnumItem - Enum.TeleportState.Started: - struct: EnumItem - Enum.TeleportState.WaitingForServer: - struct: EnumItem - Enum.TeleportType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TeleportType.ToInstance: - struct: EnumItem - Enum.TeleportType.ToPlace: - struct: EnumItem - Enum.TeleportType.ToReservedServer: - struct: EnumItem - Enum.TeleportType.ToVIPServer: - struct: EnumItem - Enum.TerrainAcquisitionMethod.Convert: - struct: EnumItem - Enum.TerrainAcquisitionMethod.EditAddTool: - struct: EnumItem - Enum.TerrainAcquisitionMethod.EditReplaceTool: - struct: EnumItem - Enum.TerrainAcquisitionMethod.EditSeaLevelTool: - struct: EnumItem - Enum.TerrainAcquisitionMethod.Generate: - struct: EnumItem - Enum.TerrainAcquisitionMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TerrainAcquisitionMethod.Import: - struct: EnumItem - Enum.TerrainAcquisitionMethod.Legacy: - struct: EnumItem - Enum.TerrainAcquisitionMethod.None: - struct: EnumItem - Enum.TerrainAcquisitionMethod.Other: - struct: EnumItem - Enum.TerrainAcquisitionMethod.RegionFillTool: - struct: EnumItem - Enum.TerrainAcquisitionMethod.RegionPasteTool: - struct: EnumItem - Enum.TerrainAcquisitionMethod.Template: - struct: EnumItem - Enum.TerrainFace.Bottom: - struct: EnumItem - Enum.TerrainFace.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TerrainFace.Side: - struct: EnumItem - Enum.TerrainFace.Top: - struct: EnumItem - Enum.TextChatMessageStatus.Floodchecked: - struct: EnumItem - Enum.TextChatMessageStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextChatMessageStatus.InvalidPrivacySettings: - struct: EnumItem - Enum.TextChatMessageStatus.InvalidTextChannelPermissions: - struct: EnumItem - Enum.TextChatMessageStatus.MessageTooLong: - struct: EnumItem - Enum.TextChatMessageStatus.Sending: - struct: EnumItem - Enum.TextChatMessageStatus.Success: - struct: EnumItem - Enum.TextChatMessageStatus.TextFilterFailed: - struct: EnumItem - Enum.TextChatMessageStatus.Unknown: - struct: EnumItem - Enum.TextDirection.Auto: - struct: EnumItem - Enum.TextDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextDirection.LeftToRight: - struct: EnumItem - Enum.TextDirection.RightToLeft: - struct: EnumItem - Enum.TextFilterContext.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextFilterContext.PrivateChat: - struct: EnumItem - Enum.TextFilterContext.PublicChat: - struct: EnumItem - Enum.TextInputType.Default: - struct: EnumItem - Enum.TextInputType.Email: - struct: EnumItem - Enum.TextInputType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextInputType.NoSuggestions: - struct: EnumItem - Enum.TextInputType.Number: - struct: EnumItem - Enum.TextInputType.OneTimePassword: - struct: EnumItem - Enum.TextInputType.Password: - struct: EnumItem - Enum.TextInputType.PasswordShown: - struct: EnumItem - Enum.TextInputType.Phone: - struct: EnumItem - Enum.TextInputType.Username: - struct: EnumItem - Enum.TextTruncate.AtEnd: - struct: EnumItem - Enum.TextTruncate.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextTruncate.None: - struct: EnumItem - Enum.TextXAlignment.Center: - struct: EnumItem - Enum.TextXAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextXAlignment.Left: - struct: EnumItem - Enum.TextXAlignment.Right: - struct: EnumItem - Enum.TextYAlignment.Bottom: - struct: EnumItem - Enum.TextYAlignment.Center: - struct: EnumItem - Enum.TextYAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextYAlignment.Top: - struct: EnumItem - Enum.TextureGenerationMeshHandlerUnwrapMode.Always: - struct: EnumItem - Enum.TextureGenerationMeshHandlerUnwrapMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextureGenerationMeshHandlerUnwrapMode.Never: - struct: EnumItem - Enum.TextureGenerationMeshHandlerUnwrapMode.WhenInvalidUVsDetected: - struct: EnumItem - Enum.TextureMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextureMode.Static: - struct: EnumItem - Enum.TextureMode.Stretch: - struct: EnumItem - Enum.TextureMode.Wrap: - struct: EnumItem - Enum.TextureQueryType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TextureQueryType.Humanoid: - struct: EnumItem - Enum.TextureQueryType.HumanoidOrphaned: - struct: EnumItem - Enum.TextureQueryType.NonHumanoid: - struct: EnumItem - Enum.TextureQueryType.NonHumanoidOrphaned: - struct: EnumItem - Enum.ThreadPoolConfig.Auto: - struct: EnumItem - Enum.ThreadPoolConfig.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ThreadPoolConfig.PartialThread: - struct: EnumItem - deprecated: - message: Enum.ThreadPoolConfig.PartialThread was replaced with Enum.ThreadPoolConfig.Auto - replace: - - Enum.ThreadPoolConfig.Auto - Enum.ThreadPoolConfig.PerCore1: - struct: EnumItem - Enum.ThreadPoolConfig.PerCore2: - struct: EnumItem - Enum.ThreadPoolConfig.PerCore3: - struct: EnumItem - Enum.ThreadPoolConfig.PerCore4: - struct: EnumItem - Enum.ThreadPoolConfig.Threads1: - struct: EnumItem - Enum.ThreadPoolConfig.Threads16: - struct: EnumItem - Enum.ThreadPoolConfig.Threads2: - struct: EnumItem - Enum.ThreadPoolConfig.Threads3: - struct: EnumItem - Enum.ThreadPoolConfig.Threads4: - struct: EnumItem - Enum.ThreadPoolConfig.Threads8: - struct: EnumItem - Enum.ThrottlingPriority.Default: - struct: EnumItem - Enum.ThrottlingPriority.ElevatedOnServer: - struct: EnumItem - Enum.ThrottlingPriority.Extreme: - struct: EnumItem - Enum.ThrottlingPriority.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ThumbnailSize.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ThumbnailSize.Size100x100: - struct: EnumItem - Enum.ThumbnailSize.Size150x150: - struct: EnumItem - Enum.ThumbnailSize.Size180x180: - struct: EnumItem - Enum.ThumbnailSize.Size352x352: - struct: EnumItem - Enum.ThumbnailSize.Size420x420: - struct: EnumItem - Enum.ThumbnailSize.Size48x48: - struct: EnumItem - Enum.ThumbnailSize.Size60x60: - struct: EnumItem - Enum.ThumbnailType.AvatarBust: - struct: EnumItem - Enum.ThumbnailType.AvatarThumbnail: - struct: EnumItem - Enum.ThumbnailType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ThumbnailType.HeadShot: - struct: EnumItem - Enum.TickCountSampleMethod.Benchmark: - struct: EnumItem - Enum.TickCountSampleMethod.Fast: - struct: EnumItem - Enum.TickCountSampleMethod.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TickCountSampleMethod.Precise: - struct: EnumItem - Enum.TopBottom.Bottom: - struct: EnumItem - Enum.TopBottom.Center: - struct: EnumItem - Enum.TopBottom.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TopBottom.Top: - struct: EnumItem - Enum.TouchCameraMovementMode.Classic: - struct: EnumItem - Enum.TouchCameraMovementMode.Default: - struct: EnumItem - Enum.TouchCameraMovementMode.Follow: - struct: EnumItem - Enum.TouchCameraMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TouchCameraMovementMode.Orbital: - struct: EnumItem - Enum.TouchMovementMode.ClickToMove: - struct: EnumItem - Enum.TouchMovementMode.DPad: - struct: EnumItem - Enum.TouchMovementMode.Default: - struct: EnumItem - Enum.TouchMovementMode.DynamicThumbstick: - struct: EnumItem - Enum.TouchMovementMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TouchMovementMode.Thumbpad: - struct: EnumItem - Enum.TouchMovementMode.Thumbstick: - struct: EnumItem - Enum.TrackerError.AudioError: - struct: EnumItem - Enum.TrackerError.AudioNoPermission: - struct: EnumItem - Enum.TrackerError.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerError.InitFailed: - struct: EnumItem - Enum.TrackerError.NoAudio: - struct: EnumItem - Enum.TrackerError.NoService: - struct: EnumItem - Enum.TrackerError.NoVideo: - struct: EnumItem - Enum.TrackerError.Ok: - struct: EnumItem - Enum.TrackerError.UnsupportedDevice: - struct: EnumItem - Enum.TrackerError.VideoError: - struct: EnumItem - Enum.TrackerError.VideoNoPermission: - struct: EnumItem - Enum.TrackerError.VideoUnsupported: - struct: EnumItem - Enum.TrackerExtrapolationFlagMode.Auto: - struct: EnumItem - Enum.TrackerExtrapolationFlagMode.ExtrapolateFacsAndPose: - struct: EnumItem - Enum.TrackerExtrapolationFlagMode.ExtrapolateFacsOnly: - struct: EnumItem - Enum.TrackerExtrapolationFlagMode.ForceDisabled: - struct: EnumItem - Enum.TrackerExtrapolationFlagMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerFaceTrackingStatus.FaceTrackingHasTrackingError: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingIsOccluded: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingLost: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingNoFaceFound: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingSuccess: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingUninitialized: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.FaceTrackingUnknown: - struct: EnumItem - Enum.TrackerFaceTrackingStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerLodFlagMode.Auto: - struct: EnumItem - Enum.TrackerLodFlagMode.ForceFalse: - struct: EnumItem - Enum.TrackerLodFlagMode.ForceTrue: - struct: EnumItem - Enum.TrackerLodFlagMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerLodValueMode.Auto: - struct: EnumItem - Enum.TrackerLodValueMode.Force0: - struct: EnumItem - Enum.TrackerLodValueMode.Force1: - struct: EnumItem - Enum.TrackerLodValueMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerMode.Audio: - struct: EnumItem - Enum.TrackerMode.AudioVideo: - struct: EnumItem - Enum.TrackerMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerMode.None: - struct: EnumItem - Enum.TrackerMode.Video: - struct: EnumItem - Enum.TrackerPromptEvent.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TrackerPromptEvent.LODCameraRecommendDisable: - struct: EnumItem - Enum.TriStateBoolean.False: - struct: EnumItem - Enum.TriStateBoolean.GetEnumItems: - args: [] - method: true - must_use: true - Enum.TriStateBoolean.True: - struct: EnumItem - Enum.TriStateBoolean.Unknown: - struct: EnumItem - Enum.TweenStatus.Canceled: - struct: EnumItem - Enum.TweenStatus.Completed: - struct: EnumItem - Enum.TweenStatus.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UIFlexAlignment.Fill: - struct: EnumItem - Enum.UIFlexAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UIFlexAlignment.None: - struct: EnumItem - Enum.UIFlexAlignment.SpaceAround: - struct: EnumItem - Enum.UIFlexAlignment.SpaceBetween: - struct: EnumItem - Enum.UIFlexAlignment.SpaceEvenly: - struct: EnumItem - Enum.UIFlexMode.Custom: - struct: EnumItem - Enum.UIFlexMode.Fill: - struct: EnumItem - Enum.UIFlexMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UIFlexMode.Grow: - struct: EnumItem - Enum.UIFlexMode.None: - struct: EnumItem - Enum.UIFlexMode.Shrink: - struct: EnumItem - Enum.UITheme.Dark: - struct: EnumItem - Enum.UITheme.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UITheme.Light: - struct: EnumItem - Enum.UiMessageType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UiMessageType.UiMessageError: - struct: EnumItem - Enum.UiMessageType.UiMessageInfo: - struct: EnumItem - Enum.UsageContext.Default: - struct: EnumItem - Enum.UsageContext.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UsageContext.Preview: - struct: EnumItem - Enum.UserCFrame.Floor: - struct: EnumItem - Enum.UserCFrame.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UserCFrame.Head: - struct: EnumItem - Enum.UserCFrame.LeftHand: - struct: EnumItem - Enum.UserCFrame.RightHand: - struct: EnumItem - Enum.UserInputState.Begin: - struct: EnumItem - Enum.UserInputState.Cancel: - struct: EnumItem - Enum.UserInputState.Change: - struct: EnumItem - Enum.UserInputState.End: - struct: EnumItem - Enum.UserInputState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UserInputState.None: - struct: EnumItem - Enum.UserInputType.Accelerometer: - struct: EnumItem - Enum.UserInputType.Focus: - struct: EnumItem - Enum.UserInputType.Gamepad1: - struct: EnumItem - Enum.UserInputType.Gamepad2: - struct: EnumItem - Enum.UserInputType.Gamepad3: - struct: EnumItem - Enum.UserInputType.Gamepad4: - struct: EnumItem - Enum.UserInputType.Gamepad5: - struct: EnumItem - Enum.UserInputType.Gamepad6: - struct: EnumItem - Enum.UserInputType.Gamepad7: - struct: EnumItem - Enum.UserInputType.Gamepad8: - struct: EnumItem - Enum.UserInputType.GetEnumItems: - args: [] - method: true - must_use: true - Enum.UserInputType.Gyro: - struct: EnumItem - Enum.UserInputType.InputMethod: - struct: EnumItem - Enum.UserInputType.Keyboard: - struct: EnumItem - Enum.UserInputType.MouseButton1: - struct: EnumItem - Enum.UserInputType.MouseButton2: - struct: EnumItem - Enum.UserInputType.MouseButton3: - struct: EnumItem - Enum.UserInputType.MouseMovement: - struct: EnumItem - Enum.UserInputType.MouseWheel: - struct: EnumItem - Enum.UserInputType.None: - struct: EnumItem - Enum.UserInputType.TextInput: - struct: EnumItem - Enum.UserInputType.Touch: - struct: EnumItem - Enum.VRComfortSetting.Comfort: - struct: EnumItem - Enum.VRComfortSetting.Custom: - struct: EnumItem - Enum.VRComfortSetting.Expert: - struct: EnumItem - Enum.VRComfortSetting.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRComfortSetting.Normal: - struct: EnumItem - Enum.VRSafetyBubbleMode.Anyone: - struct: EnumItem - Enum.VRSafetyBubbleMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRSafetyBubbleMode.NoOne: - struct: EnumItem - Enum.VRSafetyBubbleMode.OnlyFriends: - struct: EnumItem - Enum.VRScaling.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRScaling.Off: - struct: EnumItem - Enum.VRScaling.World: - struct: EnumItem - Enum.VRSessionState.Focused: - struct: EnumItem - Enum.VRSessionState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRSessionState.Idle: - struct: EnumItem - Enum.VRSessionState.Stopping: - struct: EnumItem - Enum.VRSessionState.Undefined: - struct: EnumItem - Enum.VRSessionState.Visible: - struct: EnumItem - Enum.VRTouchpad.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRTouchpad.Left: - struct: EnumItem - Enum.VRTouchpad.Right: - struct: EnumItem - Enum.VRTouchpadMode.ABXY: - struct: EnumItem - Enum.VRTouchpadMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VRTouchpadMode.Touch: - struct: EnumItem - Enum.VRTouchpadMode.VirtualThumbstick: - struct: EnumItem - Enum.VelocityConstraintMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VelocityConstraintMode.Line: - struct: EnumItem - Enum.VelocityConstraintMode.Plane: - struct: EnumItem - Enum.VelocityConstraintMode.Vector: - struct: EnumItem - Enum.VerticalAlignment.Bottom: - struct: EnumItem - Enum.VerticalAlignment.Center: - struct: EnumItem - Enum.VerticalAlignment.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VerticalAlignment.Top: - struct: EnumItem - Enum.VerticalScrollBarPosition.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VerticalScrollBarPosition.Left: - struct: EnumItem - Enum.VerticalScrollBarPosition.Right: - struct: EnumItem - Enum.VibrationMotor.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VibrationMotor.Large: - struct: EnumItem - Enum.VibrationMotor.LeftHand: - struct: EnumItem - Enum.VibrationMotor.LeftTrigger: - struct: EnumItem - Enum.VibrationMotor.RightHand: - struct: EnumItem - Enum.VibrationMotor.RightTrigger: - struct: EnumItem - Enum.VibrationMotor.Small: - struct: EnumItem - Enum.ViewMode.Decal: - struct: EnumItem - Enum.ViewMode.GeometryComplexity: - struct: EnumItem - Enum.ViewMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ViewMode.None: - struct: EnumItem - Enum.ViewMode.Transparent: - struct: EnumItem - Enum.VirtualCursorMode.Default: - struct: EnumItem - Enum.VirtualCursorMode.Disabled: - struct: EnumItem - Enum.VirtualCursorMode.Enabled: - struct: EnumItem - Enum.VirtualCursorMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VirtualInputMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VirtualInputMode.None: - struct: EnumItem - Enum.VirtualInputMode.Playing: - struct: EnumItem - Enum.VirtualInputMode.Recording: - struct: EnumItem - Enum.VoiceChatState.Ended: - struct: EnumItem - Enum.VoiceChatState.Failed: - struct: EnumItem - Enum.VoiceChatState.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VoiceChatState.Idle: - struct: EnumItem - Enum.VoiceChatState.Joined: - struct: EnumItem - Enum.VoiceChatState.Joining: - struct: EnumItem - Enum.VoiceChatState.JoiningRetry: - struct: EnumItem - Enum.VoiceChatState.Leaving: - struct: EnumItem - Enum.VoiceControlPath.GetEnumItems: - args: [] - method: true - must_use: true - Enum.VoiceControlPath.Join: - struct: EnumItem - Enum.VoiceControlPath.Publish: - struct: EnumItem - Enum.VoiceControlPath.Subscribe: - struct: EnumItem - Enum.VolumetricAudio.Automatic: - struct: EnumItem - Enum.VolumetricAudio.Disabled: - struct: EnumItem - Enum.VolumetricAudio.Enabled: - struct: EnumItem - Enum.VolumetricAudio.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WaterDirection.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WaterDirection.NegX: - struct: EnumItem - Enum.WaterDirection.NegY: - struct: EnumItem - Enum.WaterDirection.NegZ: - struct: EnumItem - Enum.WaterDirection.X: - struct: EnumItem - Enum.WaterDirection.Y: - struct: EnumItem - Enum.WaterDirection.Z: - struct: EnumItem - Enum.WaterForce.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WaterForce.Max: - struct: EnumItem - Enum.WaterForce.Medium: - struct: EnumItem - Enum.WaterForce.None: - struct: EnumItem - Enum.WaterForce.Small: - struct: EnumItem - Enum.WaterForce.Strong: - struct: EnumItem - Enum.WeldConstraintPreserve.All: - struct: EnumItem - Enum.WeldConstraintPreserve.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WeldConstraintPreserve.None: - struct: EnumItem - Enum.WeldConstraintPreserve.Touching: - struct: EnumItem - Enum.WrapLayerAutoSkin.Disabled: - struct: EnumItem - Enum.WrapLayerAutoSkin.EnabledOverride: - struct: EnumItem - Enum.WrapLayerAutoSkin.EnabledPreserve: - struct: EnumItem - Enum.WrapLayerAutoSkin.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WrapLayerDebugMode.BoundCage: - struct: EnumItem - Enum.WrapLayerDebugMode.BoundCageAndLinks: - struct: EnumItem - Enum.WrapLayerDebugMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WrapLayerDebugMode.HSRInner: - struct: EnumItem - Enum.WrapLayerDebugMode.HSRInnerReverse: - struct: EnumItem - Enum.WrapLayerDebugMode.HSROuter: - struct: EnumItem - Enum.WrapLayerDebugMode.HSROuterDetail: - struct: EnumItem - Enum.WrapLayerDebugMode.LayerCage: - struct: EnumItem - Enum.WrapLayerDebugMode.LayerCageFittedToBase: - struct: EnumItem - Enum.WrapLayerDebugMode.LayerCageFittedToPrev: - struct: EnumItem - Enum.WrapLayerDebugMode.None: - struct: EnumItem - Enum.WrapLayerDebugMode.OuterCage: - struct: EnumItem - Enum.WrapLayerDebugMode.Rbf: - struct: EnumItem - Enum.WrapLayerDebugMode.Reference: - struct: EnumItem - Enum.WrapLayerDebugMode.ReferenceMeshAfterMorph: - struct: EnumItem - Enum.WrapTargetDebugMode.GetEnumItems: - args: [] - method: true - must_use: true - Enum.WrapTargetDebugMode.None: - struct: EnumItem - Enum.WrapTargetDebugMode.OuterCageDetail: - struct: EnumItem - Enum.WrapTargetDebugMode.Rbf: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetCageCompressed: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetCageInterface: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetCageOriginal: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetLayerCageCompressed: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetLayerCageOriginal: - struct: EnumItem - Enum.WrapTargetDebugMode.TargetLayerInterface: - struct: EnumItem - Enum.ZIndexBehavior.GetEnumItems: - args: [] - method: true - must_use: true - Enum.ZIndexBehavior.Global: - struct: EnumItem - Enum.ZIndexBehavior.Sibling: - struct: EnumItem - Faces.new: - args: - - type: '...' - must_use: true - FloatCurveKey.new: - args: - - type: number - - type: number - - type: - display: KeyInterpolationMode - must_use: true - Font.fromEnum: - args: - - type: - display: Font - must_use: true - Font.fromId: - args: - - type: number - - required: false - type: - display: FontWeight - - required: false - type: - display: FontStyle - must_use: true - Font.fromName: - args: - - type: string - - required: false - type: - display: FontWeight - - required: false - type: - display: FontStyle - must_use: true - Font.new: - args: - - type: string - - required: false - type: - display: FontWeight - - required: false - type: - display: FontStyle - must_use: true - Instance.new: - args: - - type: - - AccessoryDescription - - Accoutrement - - Accessory - - Hat - - AdPortal - - AdvancedDragger - - AnalyticsService - - Animation - - CurveAnimation - - KeyframeSequence - - AnimationController - - AnimationRigData - - Animator - - Atmosphere - - Attachment - - Bone - - AudioAnalyzer - - AudioChorus - - AudioCompressor - - AudioDeviceInput - - AudioDeviceOutput - - AudioDistortion - - AudioEcho - - AudioEmitter - - AudioEqualizer - - AudioFader - - AudioFlanger - - AudioListener - - AudioPitchShifter - - AudioPlayer - - AudioReverb - - AudioSearchParams - - Backpack - - RemoteEvent - - UnreliableRemoteEvent - - WrapLayer - - WrapTarget - - Beam - - BindableEvent - - BindableFunction - - BodyAngularVelocity - - BodyForce - - BodyGyro - - BodyPosition - - BodyThrust - - BodyVelocity - - RocketPropulsion - - BodyPartDescription - - Breakpoint - - BubbleChatMessageProperties - - Camera - - BodyColors - - CharacterMesh - - Pants - - Shirt - - ShirtGraphic - - Skin - - ClickDetector - - DragDetector - - Clouds - - Configuration - - AlignOrientation - - AlignPosition - - AngularVelocity - - AnimationConstraint - - BallSocketConstraint - - HingeConstraint - - LineForce - - LinearVelocity - - PlaneConstraint - - Plane - - RigidConstraint - - RodConstraint - - RopeConstraint - - CylindricalConstraint - - PrismaticConstraint - - SpringConstraint - - Torque - - TorsionSpringConstraint - - UniversalConstraint - - VectorForce - - HumanoidController - - SkateboardController - - VehicleController - - AirController - - ClimbController - - GroundController - - SwimController - - ControllerManager - - CustomEvent - - CustomEventReceiver - - BlockMesh - - CylinderMesh - - EditableMesh - - FileMesh - - SpecialMesh - - DataStoreGetOptions - - DataStoreIncrementOptions - - DataStoreOptions - - DataStoreSetOptions - - DebuggerWatch - - Dialog - - DialogChoice - - Dragger - - EditableImage - - RobloxEditableImage - - EulerRotationCurve - - ExperienceInviteOptions - - Explosion - - FaceControls - - Decal - - Texture - - Hole - - MotorFeature - - Fire - - FloatCurve - - FlyweightService - - CSGDictionaryService - - NonReplicatedCSGDictionaryService - - Folder - - ForceField - - FunctionalTest - - GetTextBoundsParams - - CanvasGroup - - Frame - - ImageButton - - TextButton - - ImageLabel - - TextLabel - - ScrollingFrame - - TextBox - - VideoFrame - - ViewportFrame - - BillboardGui - - ScreenGui - - GuiMain - - AdGui - - SurfaceGui - - FloorWire - - SelectionBox - - BoxHandleAdornment - - ConeHandleAdornment - - CylinderHandleAdornment - - ImageHandleAdornment - - LineHandleAdornment - - SphereHandleAdornment - - WireframeHandleAdornment - - ParabolaAdornment - - SelectionSphere - - ArcHandles - - Handles - - SurfaceSelection - - SelectionPartLasso - - SelectionPointLasso - - Path2D - - HeightmapImporterService - - HiddenSurfaceRemovalAsset - - Highlight - - Humanoid - - HumanoidDescription - - IKControl - - RotateP - - RotateV - - Glue - - ManualGlue - - ManualWeld - - Motor - - Motor6D - - Rotate - - Snap - - VelocityMotor - - Weld - - Keyframe - - KeyframeMarker - - PointLight - - SpotLight - - SurfaceLight - - LocalizationTable - - Script - - LocalScript - - ModuleScript - - MarkerCurve - - MaterialVariant - - MemoryStoreService - - Message - - Hint - - NoCollisionConstraint - - OperationGraph - - CornerWedgePart - - Part - - FlagStand - - Seat - - SkateboardPlatform - - SpawnLocation - - WedgePart - - MeshPart - - PartOperation - - IntersectOperation - - NegateOperation - - UnionOperation - - TrussPart - - VehicleSeat - - Model - - Actor - - HopperBin - - Tool - - Flag - - WorldModel - - PartOperationAsset - - ParticleEmitter - - PathfindingLink - - PathfindingModifier - - Player - - PluginAction - - PluginCapabilities - - NumberPose - - Pose - - BloomEffect - - BlurEffect - - ColorCorrectionEffect - - DepthOfFieldEffect - - SunRaysEffect - - ProximityPrompt - - ProximityPromptService - - ReflectionMetadata - - ReflectionMetadataCallbacks - - ReflectionMetadataClasses - - ReflectionMetadataEnums - - ReflectionMetadataEvents - - ReflectionMetadataFunctions - - ReflectionMetadataClass - - ReflectionMetadataEnum - - ReflectionMetadataEnumItem - - ReflectionMetadataMember - - ReflectionMetadataProperties - - ReflectionMetadataYieldFunctions - - RemoteFunction - - RenderingTest - - RotationCurve - - BuoyancySensor - - ControllerPartSensor - - Sky - - Smoke - - Sound - - ChorusSoundEffect - - CompressorSoundEffect - - DistortionSoundEffect - - EchoSoundEffect - - EqualizerSoundEffect - - FlangeSoundEffect - - PitchShiftSoundEffect - - ReverbSoundEffect - - TremoloSoundEffect - - SoundGroup - - Sparkles - - StandalonePluginScripts - - StarterGear - - StudioAttachment - - StudioCallout - - StyleRule - - StyleSheet - - StyleDerive - - StyleLink - - SurfaceAppearance - - Team - - TeleportOptions - - TerrainDetail - - TerrainRegion - - TestService - - TextChannel - - TextChatCommand - - TextChatMessageProperties - - TrackerStreamAnimation - - Trail - - Tween - - UIAspectRatioConstraint - - UISizeConstraint - - UITextSizeConstraint - - UICorner - - UIFlexItem - - UIGradient - - UIGridLayout - - UIListLayout - - UIPageLayout - - UITableLayout - - UIPadding - - UIScale - - UIStroke - - UserNotification - - UserNotificationPayload - - UserNotificationPayloadAnalyticsData - - UserNotificationPayloadJoinExperience - - UserNotificationPayloadParameterValue - - BinaryStringValue - - BoolValue - - BrickColorValue - - CFrameValue - - Color3Value - - DoubleConstrainedValue - - IntConstrainedValue - - IntValue - - NumberValue - - ObjectValue - - RayValue - - StringValue - - Vector3Value - - Vector3Curve - - VirtualInputManager - - WeldConstraint - - Wire - must_use: true - NumberRange.new: - args: - - type: number - - required: false - type: number - must_use: true - NumberSequence.new: - args: - - type: any - - required: false - type: number - must_use: true - NumberSequenceKeypoint.new: - args: - - type: number - - type: number - - required: false - type: number - must_use: true - OverlapParams.new: - args: [] - must_use: true - PathWaypoint.new: - args: - - required: false - type: - display: Vector3 - - required: false - type: - display: PathWaypointAction - must_use: true - PhysicalProperties.new: - args: - - type: any - - required: false - type: number - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - Random.new: - args: - - required: false - type: number - must_use: true - Ray.new: - args: - - type: - display: Vector3 - - type: - display: Vector3 - must_use: true - RaycastParams.new: - args: [] - must_use: true - Rect.new: - args: - - type: any - - type: any - - required: false - type: number - - required: false - type: number - must_use: true - Region3.new: - args: - - type: - display: Vector3 - - type: - display: Vector3 - must_use: true - Region3int16.new: - args: - - required: false - type: - display: Vector3 - - required: false - type: - display: Vector3 - must_use: true - RotationCurveKey.new: - args: - - type: number - - type: - display: CFrame - - type: - display: KeyInterpolationMode - must_use: true - SharedTable.clear: - args: - - type: - display: SharedTable - SharedTable.clone: - args: - - type: - display: SharedTable - - required: false - type: bool - must_use: true - SharedTable.cloneAndFreeze: - args: - - type: - display: SharedTable - - required: false - type: bool - must_use: true - SharedTable.increment: - args: - - type: - display: SharedTable - - type: any - - type: number - SharedTable.isFrozen: - args: - - type: - display: SharedTable - must_use: true - SharedTable.new: - args: - - required: false - type: table - must_use: true - SharedTable.size: - args: - - type: - display: SharedTable - must_use: true - SharedTable.update: - args: - - type: - display: SharedTable - - type: any - - type: function - TweenInfo.new: - args: - - required: false - type: number - - required: false - type: - display: EasingStyle - - required: false - type: - display: EasingDirection - - required: false - type: number - - required: false - type: bool - - required: false - type: number - must_use: true - UDim.new: - args: - - required: false - type: number - - required: false - type: number - must_use: true - UDim2.fromOffset: - args: - - required: use UDim2.new() if you want an empty UDim2 - type: number - - required: false - type: number - must_use: true - UDim2.fromScale: - args: - - required: use UDim2.new() if you want an empty UDim2 - type: number - - required: false - type: number - must_use: true - UDim2.new: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: number - - required: false - type: number - must_use: true - UserSettings: - args: [] - must_use: true - Vector2.new: - args: - - required: false - type: number - - required: false - type: number - must_use: true - Vector2.one: - property: read-only - Vector2.xAxis: - property: read-only - Vector2.yAxis: - property: read-only - Vector2.zero: - property: read-only - Vector2int16.new: - args: - - required: false - type: number - - required: false - type: number - must_use: true - Vector3.FromAxis: - args: - - type: - display: Axis - must_use: true - Vector3.FromNormalId: - args: - - type: - display: NormalId - must_use: true - Vector3.new: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - must_use: true - Vector3.one: - property: read-only - Vector3.xAxis: - property: read-only - Vector3.yAxis: - property: read-only - Vector3.zAxis: - property: read-only - Vector3.zero: - property: read-only - Vector3int16.new: - args: - - required: false - type: number - - required: false - type: number - - required: false - type: number - _G: - property: new-fields - _VERSION: - property: read-only - arg: - property: new-fields - assert: - args: - - type: any - - required: A failed assertion without a message is unhelpful to users. - type: string - bit32.arshift: - args: - - type: number - - type: number - must_use: true - bit32.band: - args: - - type: '...' - must_use: true - bit32.bnot: - args: - - type: number - must_use: true - bit32.bor: - args: - - type: '...' - must_use: true - bit32.btest: - args: - - type: '...' - must_use: true - bit32.bxor: - args: - - type: '...' - must_use: true - bit32.byteswap: - args: - - type: number - must_use: true - bit32.countlz: - args: - - type: number - must_use: true - bit32.countrz: - args: - - type: number - must_use: true - bit32.extract: - args: - - type: number - - type: number - - required: false - type: number - must_use: true - bit32.lrotate: - args: - - type: number - - type: number - must_use: true - bit32.lshift: - args: - - type: number - - type: number - must_use: true - bit32.replace: - args: - - type: number - - type: number - - type: number - - required: false - type: number - must_use: true - bit32.rrotate: - args: - - type: number - - type: number - must_use: true - bit32.rshift: - args: - - type: number - - type: number - must_use: true - buffer.copy: - args: - - type: - display: buffer - - type: number - - type: - display: buffer - - required: false - type: number - - required: false - type: number - buffer.create: - args: - - type: number - must_use: true - buffer.fill: - args: - - type: - display: buffer - - type: number - - type: number - - required: false - type: number - buffer.fromstring: - args: - - type: string - must_use: true - buffer.len: - args: - - type: - display: buffer - must_use: true - buffer.readf32: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readf64: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readi16: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readi32: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readi8: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readstring: - args: - - type: - display: buffer - - type: number - - type: number - must_use: true - buffer.readu16: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readu32: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.readu8: - args: - - type: - display: buffer - - type: number - must_use: true - buffer.tostring: - args: - - type: - display: buffer - must_use: true - buffer.writef32: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writef64: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writei16: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writei32: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writei8: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writestring: - args: - - type: - display: buffer - - type: number - - type: string - - required: false - type: number - buffer.writeu16: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writeu32: - args: - - type: - display: buffer - - type: number - - type: number - buffer.writeu8: - args: - - type: - display: buffer - - type: number - - type: number - collectgarbage: - args: - - type: - - count - must_use: true - coroutine.close: - args: - - type: - display: thread - coroutine.create: - args: - - type: function - must_use: true - coroutine.isyieldable: - args: [] - coroutine.resume: - args: - - type: - display: coroutine - - required: false - type: '...' - coroutine.running: - args: [] - must_use: true - coroutine.status: - args: - - type: - display: coroutine - must_use: true - coroutine.wrap: - args: - - type: function - coroutine.yield: - args: - - required: false - type: '...' - debug.info: - args: - - type: any - - type: any - - required: false - type: string - must_use: true - debug.profilebegin: - args: - - type: string - debug.profileend: - args: [] - debug.resetmemorycategory: - args: [] - debug.setmemorycategory: - args: - - type: string - debug.traceback: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - must_use: true - delay: - args: - - type: number - - type: function - elapsedTime: - args: [] - error: - args: - - required: Erroring without an explanation is unhelpful to users. - type: any - - required: false - type: number - game: - struct: DataModel - gcinfo: - args: [] - must_use: true - getfenv: - args: - - required: false - type: any - must_use: true - getmetatable: - args: - - type: table - must_use: true - io.close: - args: - - required: false - type: - display: file - io.flush: - args: [] - io.input: - args: - - required: false - type: - display: file - io.lines: - args: - - type: string - io.open: - args: - - type: string - - required: false - type: - - r - - rb - - w - - wb - - a - - ab - - r+ - - rb+ - - w+ - - wb+ - - a+ - - ab+ - io.output: - args: - - required: false - type: - display: file - io.popen: - args: - - type: string - - required: false - type: - - r - - rb - - w - - wb - - a - - ab - - r+ - - rb+ - - w+ - - wb+ - - a+ - - ab+ - io.read: - args: - - type: '...' - io.stderr: - property: read-only - io.stdin: - property: read-only - io.stdout: - property: read-only - io.tmpfile: - args: [] - io.type: - args: - - type: - display: potentially file-like object - io.write: - args: - - type: '...' - ipairs: - args: - - type: table - must_use: true - loadstring: - args: - - type: string - - required: false - type: string - math.abs: - args: - - type: number - must_use: true - math.acos: - args: - - type: number - must_use: true - math.asin: - args: - - type: number - must_use: true - math.atan: - args: - - type: number - must_use: true - math.atan2: - args: - - type: number - - type: number - must_use: true - math.ceil: - args: - - type: number - must_use: true - math.clamp: - args: - - type: number - - type: number - - type: number - must_use: true - math.cos: - args: - - type: number - must_use: true - math.cosh: - args: - - type: number - must_use: true - math.deg: - args: - - type: number - must_use: true - math.exp: - args: - - type: number - must_use: true - math.floor: - args: - - type: number - must_use: true - math.fmod: - args: - - type: number - - type: number - must_use: true - math.frexp: - args: - - type: number - must_use: true - math.huge: - property: read-only - math.ldexp: - args: - - type: number - - type: number - must_use: true - math.log: - args: - - type: number - - required: false - type: number - must_use: true - math.log10: - args: - - type: number - must_use: true - math.max: - args: - - type: number - - required: use of max only makes sense with more than 1 parameter - type: '...' - must_use: true - math.min: - args: - - type: number - - required: use of min only makes sense with more than 1 parameter - type: '...' - must_use: true - math.modf: - args: - - type: number - must_use: true - math.noise: - args: - - type: number - - required: false - type: number - - required: false - type: number - must_use: true - math.pi: - property: read-only - math.pow: - args: - - type: number - - type: number - must_use: true - math.rad: - args: - - type: number - must_use: true - math.random: - args: - - required: false - type: number - - required: false - type: number - must_use: true - math.randomseed: - args: - - type: number - math.round: - args: - - type: number - must_use: true - math.sign: - args: - - type: number - must_use: true - math.sin: - args: - - type: number - must_use: true - math.sinh: - args: - - type: number - must_use: true - math.sqrt: - args: - - type: number - must_use: true - math.tan: - args: - - type: number - must_use: true - math.tanh: - args: - - type: number - must_use: true - newproxy: - args: - - required: false - type: bool - must_use: true - next: - args: - - type: table - - required: false - type: number - os.clock: - args: [] - must_use: true - os.date: - args: - - required: false - type: string - - required: false - type: number - must_use: true - os.difftime: - args: - - type: number - - type: number - must_use: true - os.time: - args: - - required: false - type: table - must_use: true - package.cpath: - property: full-write - package.loaded: - property: new-fields - package.loaders: - property: new-fields - package.loadlib: - args: - - type: string - - type: string - package.path: - property: full-write - package.preload: - property: new-fields - package.seeall: - args: - - type: table - pairs: - args: - - type: table - must_use: true - pcall: - args: - - type: function - - required: false - type: '...' - plugin: - struct: Plugin - print: - args: - - required: false - type: '...' - rawequal: - args: - - type: any - - type: any - must_use: true - rawget: - args: - - type: any - - type: any - must_use: true - rawlen: - args: - - type: table - must_use: true - rawset: - args: - - type: any - - type: any - - type: any - require: - args: - - type: number - script: - struct: Script - select: - args: - - type: any - - type: '...' - must_use: true - setfenv: - args: - - type: any - - type: table - setmetatable: - args: - - type: table - - required: false - type: table - settings: - args: [] - shared: - property: new-fields - spawn: - args: - - type: function - string.byte: - args: - - type: string - - required: false - type: number - - required: false - type: number - string.char: - args: - - required: string.char should be used with an argument despite it not throwing - type: number - - required: false - type: '...' - must_use: true - string.find: - args: - - type: string - - type: string - - required: false - type: number - - required: false - type: bool - must_use: true - string.format: - args: - - type: string - - required: string.format should only be used for strings that need formatting - type: '...' - must_use: true - string.gmatch: - args: - - type: string - - type: string - must_use: true - string.gsub: - args: - - type: string - - type: string - - type: any - - required: false - type: number - must_use: true - string.len: - args: - - type: string - must_use: true - string.lower: - args: - - type: string - must_use: true - string.match: - args: - - type: string - - type: string - - required: false - type: number - must_use: true - string.pack: - args: - - type: string - - type: '...' - must_use: true - string.packsize: - args: - - type: string - must_use: true - string.rep: - args: - - type: string - - type: number - must_use: true - string.reverse: - args: - - type: string - must_use: true - string.split: - args: - - type: string - - required: false - type: string - must_use: true - string.sub: - args: - - type: string - - type: number - - required: false - type: number - must_use: true - string.unpack: - args: - - type: string - - type: string - - required: false - type: number - must_use: true - string.upper: - args: - - type: string - must_use: true - table.clear: - args: - - type: table - table.clone: - args: - - type: table - must_use: true - table.concat: - args: - - type: table - - required: false - type: string - - required: false - type: number - - required: false - type: number - must_use: true - table.create: - args: - - type: number - - required: false - type: any - must_use: true - table.find: - args: - - type: table - - type: any - - required: false - type: number - must_use: true - table.foreach: - args: - - type: table - - type: function - deprecated: - message: use a for loop instead. - replace: [] - table.foreachi: - args: - - type: table - - type: function - deprecated: - message: use a for loop instead. - replace: [] - table.freeze: - args: - - type: table - table.getn: - args: - - type: table - - type: number - must_use: true - deprecated: - message: '`table.getn` has been superseded by #.' - replace: - - '#%1' - table.insert: - args: - - type: table - observes: write - - type: any - - required: false - type: any - table.isfrozen: - args: - - type: table - must_use: true - table.maxn: - args: - - type: table - must_use: true - table.move: - args: - - type: table - - type: number - - type: number - - type: number - - required: false - type: table - table.pack: - args: - - type: '...' - must_use: true - table.remove: - args: - - type: table - - required: false - type: number - table.sort: - args: - - type: table - - required: false - type: function - table.unpack: - args: - - type: table - - required: false - type: number - - required: false - type: number - must_use: true - task.cancel: - args: - - type: - display: thread - task.defer: - args: - - type: function - - required: false - type: '...' - task.delay: - args: - - required: false - type: number - - type: function - - required: false - type: '...' - task.desynchronize: - args: [] - task.spawn: - args: - - type: function - - required: false - type: '...' - task.synchronize: - args: [] - task.wait: - args: - - required: false - type: number - tick: - args: [] - time: - args: [] - tonumber: - args: - - type: any - - required: false - type: number - must_use: true - tostring: - args: - - type: any - must_use: true - type: - args: - - type: any - typeof: - args: - - type: any - unpack: - args: - - type: table - - required: false - type: number - - required: false - type: number - must_use: true - utf8.char: - args: - - required: utf8.char should be used with an argument despite it not throwing - type: number - - required: false - type: '...' - must_use: true - utf8.charpattern: - property: read-only - utf8.codepoint: - args: - - type: string - - required: false - type: number - - required: false - type: number - must_use: true - utf8.codes: - args: - - type: string - must_use: true - utf8.graphemes: - args: - - type: string - - required: false - type: number - - required: false - type: number - must_use: true - utf8.len: - args: - - type: string - - required: false - type: number - - required: false - type: number - must_use: true - utf8.nfcnormalize: - args: - - type: string - must_use: true - utf8.nfdnormalize: - args: - - type: string - must_use: true - utf8.offset: - args: - - type: string - - required: false - type: number - - required: false - type: number - must_use: true - wait: - args: - - required: false - type: number - warn: - args: - - type: any - - required: false - type: '...' - workspace: - struct: Workspace - xpcall: - args: - - type: function - - required: false - type: '...' -structs: - BasePart: - '*': - struct: Instance - AddTag: - args: - - required: false - type: any - method: true - AncestryChanged: - struct: Event - Anchored: - property: override-fields - AngularAccelerationToTorque: - args: - - required: false - type: any - - required: false - type: any - method: true - ApplyAngularImpulse: - args: - - required: false - type: any - method: true - ApplyImpulse: - args: - - required: false - type: any - method: true - ApplyImpulseAtPosition: - args: - - required: false - type: any - - required: false - type: any - method: true - Archivable: - property: override-fields - AssemblyAngularVelocity: - any: true - AssemblyCenterOfMass: - any: true - AssemblyLinearVelocity: - any: true - AssemblyMass: - property: read-only - AssemblyRootPart: - struct: BasePart - AttributeChanged: - struct: Event - BackParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BackParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BackSurface: - property: override-fields - BackSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomSurface: - property: override-fields - BottomSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BreakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - BrickColor: - property: override-fields - CFrame: - any: true - CanCollide: - property: override-fields - CanCollideWith: - args: - - required: false - type: any - method: true - CanQuery: - property: override-fields - CanSetNetworkOwnership: - args: [] - method: true - CanTouch: - property: override-fields - CastShadow: - property: override-fields - CenterOfMass: - any: true - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - CollisionGroup: - property: override-fields - CollisionGroupId: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - Color: - property: override-fields - CurrentPhysicalProperties: - property: read-only - CustomPhysicalProperties: - property: override-fields - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - Elasticity: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - EnableFluidForces: - property: override-fields - ExtentsCFrame: - any: true - ExtentsSize: - any: true - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - Friction: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontSurface: - property: override-fields - FrontSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetChildren: - args: [] - method: true - GetClosestPointOnSurface: - args: - - required: false - type: any - method: true - GetConnectedParts: - args: - - required: false - type: any - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetFullName: - args: [] - method: true - GetJoints: - args: [] - method: true - GetMass: - args: [] - method: true - GetNetworkOwner: - args: [] - method: true - GetNetworkOwnershipAuto: - args: [] - method: true - GetNoCollisionConstraints: - args: [] - method: true - GetPivot: - args: [] - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetRenderCFrame: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetRootPart: - args: [] - method: true - GetTags: - args: [] - method: true - GetTouchingParts: - args: [] - method: true - GetVelocityAtPosition: - args: - - required: false - type: any - method: true - HasTag: - args: - - required: false - type: any - method: true - IntersectAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsGrounded: - args: [] - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - LeftParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LeftParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LeftSurface: - property: override-fields - LeftSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LocalSimulationTouched: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - LocalTransparencyModifier: - property: override-fields - Locked: - property: override-fields - MakeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - Mass: - property: read-only - Massless: - property: override-fields - Material: - property: override-fields - MaterialVariant: - property: override-fields - Name: - property: override-fields - Orientation: - any: true - Origin: - any: true - OutfitChanged: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - Parent: - struct: Instance - Pivot Offset: - any: true - PivotOffset: - any: true - PivotTo: - args: - - required: false - type: any - method: true - Position: - any: true - ReceiveAge: - property: read-only - Reflectance: - property: override-fields - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - Resize: - args: - - required: false - type: any - - required: false - type: any - method: true - ResizeIncrement: - property: read-only - ResizeableFaces: - property: read-only - RightParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RightParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RightSurface: - property: override-fields - RightSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RootPriority: - property: override-fields - RotVelocity: - any: true - deprecated: - message: this property is deprecated. - replace: [] - Rotation: - any: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetNetworkOwner: - args: - - required: false - type: any - method: true - SetNetworkOwnershipAuto: - args: [] - method: true - Size: - any: true - SpecificGravity: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - StoppedTouching: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - SubtractAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - TopParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TopParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TopSurface: - property: override-fields - TopSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TorqueToAngularAcceleration: - args: - - required: false - type: any - - required: false - type: any - method: true - TouchEnded: - struct: Event - Touched: - struct: Event - Transparency: - property: override-fields - UnionAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - Velocity: - any: true - deprecated: - message: this property is deprecated. - replace: [] - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - breakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - brickColor: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - getMass: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - makeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - resize: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - Camera: - '*': - struct: Instance - AddTag: - args: - - required: false - type: any - method: true - AncestryChanged: - struct: Event - Archivable: - property: override-fields - AttributeChanged: - struct: Event - CFrame: - any: true - CameraSubject: - struct: Instance - CameraType: - property: override-fields - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - CoordinateFrame: - any: true - deprecated: - message: this property is deprecated. - replace: [] - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - DiagonalFieldOfView: - property: override-fields - FieldOfView: - property: override-fields - FieldOfViewMode: - property: override-fields - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - FirstPersonTransition: - struct: Event - Focus: - any: true - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetChildren: - args: [] - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetFullName: - args: [] - method: true - GetLargestCutoffDistance: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetPanSpeed: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetPartsObscuringTarget: - args: - - required: false - type: any - - required: false - type: any - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetRenderCFrame: - args: [] - method: true - GetRoll: - args: [] - method: true - GetTags: - args: [] - method: true - GetTiltSpeed: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - HasTag: - args: - - required: false - type: any - method: true - HeadLocked: - property: override-fields - HeadScale: - property: override-fields - Interpolate: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - InterpolationFinished: - struct: Event - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - MaxAxisFieldOfView: - property: override-fields - Name: - property: override-fields - NearPlaneZ: - property: read-only - PanUnits: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - Parent: - struct: Instance - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - ScreenPointToRay: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetCameraPanMode: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - SetImageServerView: - args: - - required: false - type: any - method: true - SetRoll: - args: - - required: false - type: any - method: true - TiltUnits: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - VRTiltAndRollEnabled: - property: override-fields - ViewportPointToRay: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ViewportSize: - any: true - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - WorldToScreenPoint: - args: - - required: false - type: any - method: true - WorldToViewportPoint: - args: - - required: false - type: any - method: true - Zoom: - args: - - required: false - type: any - method: true - ZoomToExtents: - args: - - required: false - type: any - - required: false - type: any - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - focus: - any: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - DataModel: - '*': - struct: Instance - AddTag: - args: - - required: false - type: any - method: true - AllowedGearTypeChanged: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - AncestryChanged: - struct: Event - Archivable: - property: override-fields - AttributeChanged: - struct: Event - BindToClose: - args: - - required: false - type: any - method: true - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - Close: - struct: Event - CloseLate: - struct: Event - CreatorId: - property: read-only - CreatorType: - property: read-only - DefineFastFlag: - args: - - required: false - type: any - - required: false - type: any - method: true - DefineFastInt: - args: - - required: false - type: any - - required: false - type: any - method: true - DefineFastString: - args: - - required: false - type: any - - required: false - type: any - method: true - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - FindService: - args: - - required: false - type: any - method: true - GameId: - property: read-only - GearGenreSetting: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - Genre: - property: read-only - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetChildren: - args: [] - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetEngineFeature: - args: - - required: false - type: any - method: true - GetFastFlag: - args: - - required: false - type: any - method: true - GetFastInt: - args: - - required: false - type: any - method: true - GetFastString: - args: - - required: false - type: any - method: true - GetFullName: - args: [] - method: true - GetJobsInfo: - args: [] - method: true - GetMessage: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetObjects: - args: - - required: false - type: any - method: true - GetObjectsAllOrNone: - args: - - required: false - type: any - - required: false - type: any - method: true - GetObjectsAsync: - args: - - required: false - type: any - method: true - GetObjectsList: - args: - - required: false - type: any - method: true - GetPlaySessionId: - args: [] - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetRemoteBuildMode: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetService: - args: - - type: - - AccountService - - AdService - - AnalyticsService - - AnimationClipProvider - - AnimationFromVideoCreatorService - - AnimationFromVideoCreatorStudioService - - AppUpdateService - - AssetCounterService - - AssetDeliveryProxy - - AssetImportService - - AssetManagerService - - AssetService - - AvatarChatService - - AvatarCreationService - - AvatarEditorService - - AvatarImportService - - BadgeService - - CoreGui - - StarterGui - - BrowserService - - BulkImportService - - CacheableContentProvider - - HSRDataContentProvider - - MeshContentProvider - - SolidModelContentProvider - - CalloutService - - CaptureService - - ChangeHistoryService - - Chat - - ChatbotUIService - - ClusterPacketCache - - CollaboratorsService - - CollectionService - - CommandService - - ConfigureServerService - - ConnectivityService - - ContentProvider - - ContextActionService - - ControllerService - - ConversationalAIAcceptanceService - - CookiesService - - CorePackages - - CoreScriptDebuggingManagerHelper - - CoreScriptSyncService - - CreationDBService - - CrossDMScriptChangeListener - - DataModelPatchService - - DataStoreService - - Debris - - DebuggablePluginWatcher - - DebuggerConnectionManager - - DebuggerManager - - DebuggerUIService - - DeviceIdService - - DraftsService - - DraggerService - - EngineAPICloudProcessingService - - EventIngestService - - ExperienceAuthService - - ExperienceNotificationService - - ExperienceService - - ExperienceStateCaptureService - - FaceAnimatorService - - FacialAnimationRecordingService - - FacialAnimationStreamingServiceV2 - - FlagStandService - - FlyweightService - - CSGDictionaryService - - NonReplicatedCSGDictionaryService - - FriendService - - GamePassService - - GamepadService - - Geometry - - GeometryService - - GoogleAnalyticsConfiguration - - GroupService - - GuiService - - GuidRegistryService - - HapticService - - HeightmapImporterService - - Hopper - - HttpRbxApiService - - HttpService - - ILegacyStudioBridge - - LegacyStudioBridge - - IXPService - - IncrementalPatchBuilder - - InsertService - - JointsService - - KeyboardService - - KeyframeSequenceProvider - - LSPFileSyncService - - LanguageService - - Lighting - - LiveScriptingService - - LocalStorageService - - AppStorageService - - UserStorageService - - LocalizationService - - LodDataService - - LogReporterService - - LogService - - LoginService - - LuaWebService - - LuauScriptAnalyzerService - - MarketplaceService - - MaterialGenerationService - - MaterialService - - MemStorageService - - MemoryStoreService - - MessageBusService - - MessagingService - - MetaBreakpointManager - - MouseService - - NetworkClient - - NetworkServer - - NetworkSettings - - NotificationService - - OmniRecommendationsService - - OpenCloudService - - Workspace - - PackageService - - PackageUIService - - PatchBundlerFileWatch - - PathfindingService - - PermissionsService - - PhysicsService - - PlaceStatsService - - PlacesService - - PlatformCloudStorageService - - PlatformFriendsService - - PlayerEmulatorService - - PlayerViewService - - Players - - PluginDebugService - - PluginGuiService - - PluginManagementService - - PluginPolicyService - - PointsService - - PolicyService - - ProcessInstancePhysicsService - - ProximityPromptService - - PublishService - - RbxAnalyticsService - - ReflectionService - - RemoteCursorService - - RemoteDebuggerServer - - RenderSettings - - ReplicatedFirst - - ReplicatedStorage - - RibbonNotificationService - - RobloxPluginGuiService - - RobloxReplicatedStorage - - RobloxServerStorage - - RomarkService - - RtMessagingService - - RunService - - RuntimeScriptService - - SafetyService - - ScriptChangeService - - ScriptCloneWatcher - - ScriptCloneWatcherHelper - - ScriptCommitService - - ScriptContext - - ScriptEditorService - - ScriptRegistrationService - - ScriptService - - Selection - - SelectionHighlightManager - - ServerScriptService - - ServerStorage - - ServiceVisibilityService - - SessionService - - SharedTableRegistry - - ShorelineUpgraderService - - SmoothVoxelsUpgraderService - - SnippetService - - SocialService - - SoundService - - SpawnerService - - StarterPack - - StarterPlayer - - StartupMessageService - - Stats - - StopWatchReporter - - StreamingService - - Studio - - StudioAssetService - - StudioData - - StudioDeviceEmulatorService - - StudioPublishService - - StudioScriptDebugEventListener - - StudioSdkService - - StudioService - - StudioWidgetsService - - StylingService - - TaskScheduler - - TeamCreateData - - TeamCreatePublishService - - TeamCreateService - - Teams - - TeleportService - - TemporaryCageMeshProvider - - TemporaryScriptService - - TestService - - TextBoxService - - TextChatService - - TextService - - TextureGenerationMeshHandler - - ThirdPartyUserService - - TimerService - - ToastNotificationService - - TouchInputService - - TracerService - - TutorialService - - TweenService - - UGCAvatarService - - UGCValidationService - - UnvalidatedAssetService - - UserInputService - - UserService - - VRService - - VRStatusService - - VersionControlService - - VideoCaptureService - - VideoService - - VirtualInputManager - - VirtualUser - - VisibilityCheckDispatcher - - VisibilityService - - Visit - - VoiceChatInternal - - VoiceChatService - method: true - must_use: true - GetTags: - args: [] - method: true - GraphicsQualityChangeRequest: - struct: Event - HasTag: - args: - - required: false - type: any - method: true - HttpGetAsync: - args: - - required: false - type: any - - required: false - type: any - method: true - HttpPostAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - InsertObjectsAndJoinIfLegacyAsync: - args: - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsContentLoaded: - args: [] - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsGearTypeAllowed: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - IsLoaded: - args: [] - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - IsUniverseMetadataLoaded: - args: [] - method: true - ItemChanged: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - JobId: - property: read-only - Load: - args: - - required: false - type: any - method: true - Loaded: - struct: Event - Name: - property: override-fields - OnClose: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - OpenScreenshotsFolder: - args: [] - method: true - OpenVideosFolder: - args: [] - method: true - Parent: - struct: Instance - PlaceId: - property: read-only - PlaceVersion: - property: read-only - PrivateServerId: - property: read-only - PrivateServerOwnerId: - property: read-only - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ReportInGoogleAnalytics: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - SavePlace: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - ScreenshotReady: - struct: Event - ScreenshotSavedToAlbum: - struct: Event - ServiceAdded: - struct: Event - ServiceRemoving: - struct: Event - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetFastFlagForTesting: - args: - - required: false - type: any - - required: false - type: any - method: true - SetFastIntForTesting: - args: - - required: false - type: any - - required: false - type: any - method: true - SetFastStringForTesting: - args: - - required: false - type: any - - required: false - type: any - method: true - SetFlagVersion: - args: - - required: false - type: any - - required: false - type: any - method: true - SetIsLoaded: - args: - - required: false - type: any - - required: false - type: any - method: true - SetPlaceId: - args: - - required: false - type: any - method: true - SetUniverseId: - args: - - required: false - type: any - method: true - Shutdown: - args: [] - method: true - UniverseMetadataLoaded: - struct: Event - VIPServerId: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - VIPServerOwnerId: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - Workspace: - struct: Workspace - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - getService: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - lighting: - struct: Instance - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - service: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - workspace: - struct: Workspace - deprecated: - message: this property is deprecated. - replace: [] - EnumItem: - Name: - property: read-only - Value: - property: read-only - Event: - Connect: - args: - - type: function - method: true - Once: - args: - - type: function - method: true - Wait: - args: [] - method: true - connect: - args: - - type: function - method: true - deprecated: - message: lowercase methods have been superseded by uppercase ones - replace: - - Connect(%1) - wait: - args: - - type: function - method: true - deprecated: - message: lowercase methods have been superseded by uppercase ones - replace: - - Wait(%1) - Instance: - '*': - any: true - Plugin: - '*': - struct: Instance - Activate: - args: - - required: false - type: any - method: true - AddTag: - args: - - required: false - type: any - method: true - AncestryChanged: - struct: Event - Archivable: - property: override-fields - AttributeChanged: - struct: Event - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - CollisionEnabled: - property: read-only - CreateDockWidgetPluginGui: - args: - - required: false - type: any - - required: false - type: any - method: true - CreatePluginAction: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CreatePluginMenu: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CreateQWidgetPluginGui: - args: - - required: false - type: any - - required: false - type: any - method: true - CreateToolbar: - args: - - required: false - type: any - method: true - Deactivate: - args: [] - method: true - Deactivation: - struct: Event - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetChildren: - args: [] - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetFullName: - args: [] - method: true - GetItem: - args: - - required: false - type: any - - required: false - type: any - method: true - GetJoinMode: - args: [] - method: true - GetMouse: - args: [] - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetSelectedRibbonTool: - args: [] - method: true - GetSetting: - args: - - required: false - type: any - method: true - GetStudioUserId: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetTags: - args: [] - method: true - GridSize: - property: read-only - HasTag: - args: - - required: false - type: any - method: true - ImportFbxAnimation: - args: - - required: false - type: any - - required: false - type: any - method: true - ImportFbxRig: - args: - - required: false - type: any - method: true - Intersect: - args: - - required: false - type: any - method: true - Invoke: - args: - - required: false - type: any - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsActivated: - args: [] - method: true - IsActivatedWithExclusiveMouse: - args: [] - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - Name: - property: override-fields - Negate: - args: - - required: false - type: any - method: true - OnInvoke: - args: - - required: false - type: any - - required: false - type: any - method: true - OnSetItem: - args: - - required: false - type: any - - required: false - type: any - method: true - OpenScript: - args: - - required: false - type: any - - required: false - type: any - method: true - OpenWikiPage: - args: - - required: false - type: any - method: true - Parent: - struct: Instance - PauseSound: - args: - - required: false - type: any - method: true - PlaySound: - args: - - required: false - type: any - - required: false - type: any - method: true - ProcessAssetInsertionDrag: - property: override-fields - ProcessAssetInsertionDrop: - property: override-fields - PromptForExistingAssetId: - args: - - required: false - type: any - method: true - PromptSaveSelection: - args: - - required: false - type: any - method: true - Ready: - struct: Event - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - ResumeSound: - args: - - required: false - type: any - method: true - SaveSelectedToRoblox: - args: [] - method: true - SelectRibbonTool: - args: - - required: false - type: any - - required: false - type: any - method: true - Separate: - args: - - required: false - type: any - method: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetItem: - args: - - required: false - type: any - - required: false - type: any - method: true - SetReady: - args: [] - method: true - SetSetting: - args: - - required: false - type: any - - required: false - type: any - method: true - StartDecalDrag: - args: - - required: false - type: any - method: true - StartDrag: - args: - - required: false - type: any - method: true - StopAllSounds: - args: [] - method: true - Union: - args: - - required: false - type: any - method: true - Unloading: - struct: Event - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - Script: - '*': - struct: Instance - AddTag: - args: - - required: false - type: any - method: true - AncestryChanged: - struct: Event - Archivable: - property: override-fields - AttributeChanged: - struct: Event - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - CurrentEditor: - struct: Instance - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - Disabled: - property: override-fields - Enabled: - property: override-fields - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetChildren: - args: [] - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetFullName: - args: [] - method: true - GetHash: - args: [] - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetTags: - args: [] - method: true - HasTag: - args: - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - LinkedSource: - property: override-fields - Name: - property: override-fields - Parent: - struct: Instance - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - Terrain: - '*': - struct: Instance - AddTag: - args: - - required: false - type: any - method: true - AncestryChanged: - struct: Event - Anchored: - property: override-fields - AngularAccelerationToTorque: - args: - - required: false - type: any - - required: false - type: any - method: true - ApplyAngularImpulse: - args: - - required: false - type: any - method: true - ApplyImpulse: - args: - - required: false - type: any - method: true - ApplyImpulseAtPosition: - args: - - required: false - type: any - - required: false - type: any - method: true - Archivable: - property: override-fields - AssemblyAngularVelocity: - any: true - AssemblyCenterOfMass: - any: true - AssemblyLinearVelocity: - any: true - AssemblyMass: - property: read-only - AssemblyRootPart: - struct: BasePart - AttributeChanged: - struct: Event - AutowedgeCell: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - AutowedgeCells: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - BackParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BackParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BackSurface: - property: override-fields - BackSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BottomSurface: - property: override-fields - BottomSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - BreakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - BrickColor: - property: override-fields - CFrame: - any: true - CanCollide: - property: override-fields - CanCollideWith: - args: - - required: false - type: any - method: true - CanQuery: - property: override-fields - CanSetNetworkOwnership: - args: [] - method: true - CanShorelinesBeUpgraded: - args: [] - method: true - CanSmoothVoxelsBeUpgraded: - args: [] - method: true - CanTouch: - property: override-fields - CastShadow: - property: override-fields - CellCenterToWorld: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CellCornerToWorld: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CenterOfMass: - any: true - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - Clear: - args: [] - method: true - ClearAllChildren: - args: [] - method: true - Clone: - args: [] - method: true - CollisionGroup: - property: override-fields - CollisionGroupId: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - Color: - property: override-fields - ConvertToSmooth: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - CopyRegion: - args: - - required: false - type: any - method: true - CountCells: - args: [] - method: true - CurrentPhysicalProperties: - property: read-only - CustomPhysicalProperties: - property: override-fields - Decoration: - property: override-fields - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - Elasticity: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - EnableFluidForces: - property: override-fields - ExtentsCFrame: - any: true - ExtentsSize: - any: true - FillBall: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - FillBlock: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - FillCylinder: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - FillRegion: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - FillWedge: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - Friction: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - FrontSurface: - property: override-fields - FrontSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetCell: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetChildren: - args: [] - method: true - GetClosestPointOnSurface: - args: - - required: false - type: any - method: true - GetConnectedParts: - args: - - required: false - type: any - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetFullName: - args: [] - method: true - GetJoints: - args: [] - method: true - GetMass: - args: [] - method: true - GetMaterialColor: - args: - - required: false - type: any - method: true - GetNetworkOwner: - args: [] - method: true - GetNetworkOwnershipAuto: - args: [] - method: true - GetNoCollisionConstraints: - args: [] - method: true - GetPivot: - args: [] - method: true - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetRenderCFrame: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetRootPart: - args: [] - method: true - GetTags: - args: [] - method: true - GetTerrainWireframe: - args: - - required: false - type: any - - required: false - type: any - method: true - GetTouchingParts: - args: [] - method: true - GetVelocityAtPosition: - args: - - required: false - type: any - method: true - GetWaterCell: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - GrassLength: - property: override-fields - HasTag: - args: - - required: false - type: any - method: true - IntersectAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsGrounded: - args: [] - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - IsSmooth: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - LeftParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LeftParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LeftSurface: - property: override-fields - LeftSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - LocalSimulationTouched: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - LocalTransparencyModifier: - property: override-fields - Locked: - property: override-fields - MakeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - Mass: - property: read-only - Massless: - property: override-fields - Material: - property: override-fields - MaterialColors: - property: override-fields - MaterialVariant: - property: override-fields - MaxExtents: - property: read-only - Name: - property: override-fields - Orientation: - any: true - Origin: - any: true - OutfitChanged: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - Parent: - struct: Instance - PasteRegion: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - Pivot Offset: - any: true - PivotOffset: - any: true - PivotTo: - args: - - required: false - type: any - method: true - Position: - any: true - ReadVoxelChannels: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ReadVoxels: - args: - - required: false - type: any - - required: false - type: any - method: true - ReceiveAge: - property: read-only - Reflectance: - property: override-fields - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemoveTag: - args: - - required: false - type: any - method: true - ReplaceMaterial: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ReplaceMaterialInTransform: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ReplaceMaterialInTransformSubregion: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - Resize: - args: - - required: false - type: any - - required: false - type: any - method: true - ResizeIncrement: - property: read-only - ResizeableFaces: - property: read-only - RightParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RightParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RightSurface: - property: override-fields - RightSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - RootPriority: - property: override-fields - RotVelocity: - any: true - deprecated: - message: this property is deprecated. - replace: [] - Rotation: - any: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetCell: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - SetCells: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - SetMaterialColor: - args: - - required: false - type: any - - required: false - type: any - method: true - SetMaterialInTransform: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - SetMaterialInTransformSubregion: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - SetNetworkOwner: - args: - - required: false - type: any - method: true - SetNetworkOwnershipAuto: - args: [] - method: true - SetWaterCell: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - Size: - any: true - SmoothRegion: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - SpecificGravity: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - StoppedTouching: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - SubtractAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - TopParamA: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TopParamB: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TopSurface: - property: override-fields - TopSurfaceInput: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - TorqueToAngularAcceleration: - args: - - required: false - type: any - - required: false - type: any - method: true - TouchEnded: - struct: Event - Touched: - struct: Event - Transparency: - property: override-fields - UnionAsync: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - Velocity: - any: true - deprecated: - message: this property is deprecated. - replace: [] - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - WaterColor: - property: override-fields - WaterReflectance: - property: override-fields - WaterTransparency: - property: override-fields - WaterWaveSize: - property: override-fields - WaterWaveSpeed: - property: override-fields - WorldToCell: - args: - - required: false - type: any - method: true - WorldToCellPreferEmpty: - args: - - required: false - type: any - method: true - WorldToCellPreferSolid: - args: - - required: false - type: any - method: true - WriteVoxelChannels: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - WriteVoxels: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - breakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - brickColor: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - getMass: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - makeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - resize: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - Workspace: - '*': - struct: Instance - AddPersistentPlayer: - args: - - required: false - type: any - method: true - AddTag: - args: - - required: false - type: any - method: true - AirDensity: - property: override-fields - AllowThirdPartySales: - property: override-fields - AncestryChanged: - struct: Event - Archivable: - property: override-fields - ArePartsTouchingOthers: - args: - - required: false - type: any - - required: false - type: any - method: true - AttributeChanged: - struct: Event - AvatarUnificationMode: - property: override-fields - Blockcast: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - BreakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - BulkMoveTo: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CacheCurrentTerrain: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CalculateJumpDistance: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - CalculateJumpHeight: - args: - - required: false - type: any - - required: false - type: any - method: true - CalculateJumpPower: - args: - - required: false - type: any - - required: false - type: any - method: true - Changed: - struct: Event - ChildAdded: - struct: Event - ChildRemoved: - struct: Event - ClassName: - property: read-only - ClearAllChildren: - args: [] - method: true - ClearCachedTerrain: - args: - - required: false - type: any - method: true - ClientAnimatorThrottling: - property: override-fields - Clone: - args: [] - method: true - CurrentCamera: - struct: Camera - DescendantAdded: - struct: Event - DescendantRemoving: - struct: Event - Destroy: - args: [] - method: true - Destroying: - struct: Event - DistributedGameTime: - property: override-fields - EditorLiveScripting: - property: override-fields - ExperimentalSolverIsEnabled: - args: [] - method: true - FindFirstAncestor: - args: - - required: false - type: any - method: true - FindFirstAncestorOfClass: - args: - - required: false - type: any - method: true - FindFirstAncestorWhichIsA: - args: - - required: false - type: any - method: true - FindFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstChildOfClass: - args: - - required: false - type: any - method: true - FindFirstChildWhichIsA: - args: - - required: false - type: any - - required: false - type: any - method: true - FindFirstDescendant: - args: - - required: false - type: any - method: true - FindPartOnRay: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FindPartOnRayWithIgnoreList: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FindPartOnRayWithWhitelist: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FindPartsInRegion3: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FindPartsInRegion3WithIgnoreList: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FindPartsInRegion3WithWhiteList: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - FluidForces: - property: override-fields - GetActor: - args: [] - method: true - GetAttribute: - args: - - required: false - type: any - method: true - GetAttributeChangedSignal: - args: - - required: false - type: any - method: true - GetAttributes: - args: [] - method: true - GetBoundingBox: - args: [] - method: true - GetChildren: - args: [] - method: true - GetDebugId: - args: - - required: false - type: any - method: true - GetDescendants: - args: [] - method: true - GetExtentsSize: - args: [] - method: true - GetFullName: - args: [] - method: true - GetModelCFrame: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetModelSize: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetNumAwakeParts: - args: [] - method: true - GetPartBoundsInBox: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - GetPartBoundsInRadius: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - GetPartsInPart: - args: - - required: false - type: any - - required: false - type: any - method: true - GetPersistentPlayers: - args: [] - method: true - GetPhysicsThrottling: - args: [] - method: true - GetPivot: - args: [] - method: true - GetPrimaryPartCFrame: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - GetPropertyChangedSignal: - args: - - required: false - type: any - method: true - GetRealPhysicsFPS: - args: [] - method: true - GetScale: - args: [] - method: true - GetServerTimeNow: - args: [] - method: true - GetTags: - args: [] - method: true - GlobalWind: - any: true - Gravity: - property: override-fields - HasTag: - args: - - required: false - type: any - method: true - IKControlConstraintSupport: - property: override-fields - IKMoveTo: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - IsA: - args: - - required: false - type: any - method: true - IsAncestorOf: - args: - - required: false - type: any - method: true - IsDescendantOf: - args: - - required: false - type: any - method: true - IsPropertyModified: - args: - - required: false - type: any - method: true - IsRegion3Empty: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - IsRegion3EmptyWithIgnoreList: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - JoinToOutsiders: - args: - - required: false - type: any - - required: false - type: any - method: true - MakeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - MeshPartHeadsAndAccessories: - property: override-fields - ModelStreamingBehavior: - property: override-fields - ModelStreamingMode: - property: override-fields - MoveTo: - args: - - required: false - type: any - method: true - Name: - property: override-fields - Origin: - any: true - PGSIsEnabled: - args: [] - method: true - Parent: - struct: Instance - PersistentLoaded: - struct: Event - PhysicsSteppingMethod: - property: override-fields - Pivot Offset: - any: true - PivotTo: - args: - - required: false - type: any - method: true - PlayerCharacterDestroyBehavior: - property: override-fields - PrimalPhysicsSolver: - property: override-fields - PrimaryPart: - struct: BasePart - Raycast: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - RaycastCachedTerrain: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - RejectCharacterDeletions: - property: override-fields - Remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - RemovePersistentPlayer: - args: - - required: false - type: any - method: true - RemoveTag: - args: - - required: false - type: any - method: true - ReplicateInstanceDestroySetting: - property: override-fields - ResetOrientationToIdentity: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - ResetPropertyToDefault: - args: - - required: false - type: any - method: true - Retargeting: - property: override-fields - Scale: - property: override-fields - ScaleTo: - args: - - required: false - type: any - method: true - SetAttribute: - args: - - required: false - type: any - - required: false - type: any - method: true - SetAvatarUnificationMode: - args: - - required: false - type: any - method: true - SetIdentityOrientation: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - SetInsertPoint: - args: - - required: false - type: any - - required: false - type: any - method: true - SetMeshPartHeadsAndAccessories: - args: - - required: false - type: any - method: true - SetPhysicsThrottleEnabled: - args: - - required: false - type: any - method: true - SetPrimaryPartCFrame: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - Shapecast: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - SignalBehavior: - property: override-fields - Spherecast: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - StreamOutBehavior: - property: override-fields - StreamingIntegrityMode: - property: override-fields - StreamingMinRadius: - property: override-fields - StreamingTargetRadius: - property: override-fields - Terrain: - struct: Terrain - TouchesUseCollisionGroups: - property: override-fields - TranslateBy: - args: - - required: false - type: any - method: true - UnjoinFromOutsiders: - args: - - required: false - type: any - method: true - WaitForChild: - args: - - required: false - type: any - - required: false - type: any - method: true - WorldPivot: - any: true - ZoomToExtents: - args: [] - method: true - archivable: - property: override-fields - deprecated: - message: this property is deprecated. - replace: [] - breakJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - childAdded: - struct: Event - deprecated: - message: this property is deprecated. - replace: [] - children: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - className: - property: read-only - deprecated: - message: this property is deprecated. - replace: [] - clone: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - destroy: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - findFirstChild: - args: - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - findPartOnRay: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - findPartsInRegion3: - args: - - required: false - type: any - - required: false - type: any - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - getChildren: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - isA: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - isDescendantOf: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - makeJoints: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] - move: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - moveTo: - args: - - required: false - type: any - method: true - deprecated: - message: this property is deprecated. - replace: [] - remove: - args: [] - method: true - deprecated: - message: this property is deprecated. - replace: [] -last_updated: 1705798411 -last_selene_version: 0.26.1 -roblox_classes: - Accessory: - superclass: Accoutrement - events: [] - properties: - - AccessoryType - AccessoryDescription: - superclass: Instance - events: [] - properties: - - AccessoryType - - AssetId - - Instance - - IsLayered - - Order - - Puffiness - AccountService: - superclass: Instance - events: [] - properties: [] - Accoutrement: - superclass: Instance - events: [] - properties: - - AttachmentForward - - AttachmentPoint - - AttachmentPos - - AttachmentRight - - AttachmentUp - Actor: - superclass: Model - events: [] - properties: [] - AdGui: - superclass: SurfaceGuiBase - events: [] - properties: - - AdShape - - EnableVideoAds - - FallbackImage - - Status - AdPortal: - superclass: Instance - events: [] - properties: - - PortalInvalidReason - - PortalVersion - - Status - AdService: - superclass: Instance - events: - - AdTeleportEnded - - AdTeleportInitiated - - PortalPrompt - - VideoAdClosed - properties: [] - AdvancedDragger: - superclass: Instance - events: [] - properties: [] - AirController: - superclass: ControllerBase - events: [] - properties: - - BalanceMaxTorque - - BalanceSpeed - - LinearImpulse - - MaintainAngularMomentum - - MaintainLinearMomentum - - MoveMaxForce - - TurnMaxTorque - - TurnSpeedFactor - AlignOrientation: - superclass: Constraint - events: [] - properties: - - AlignType - - CFrame - - LookAtPosition - - MaxAngularVelocity - - MaxTorque - - Mode - - PrimaryAxis - - PrimaryAxisOnly - - ReactionTorqueEnabled - - Responsiveness - - RigidityEnabled - - SecondaryAxis - AlignPosition: - superclass: Constraint - events: [] - properties: - - ApplyAtCenterOfMass - - ForceLimitMode - - ForceRelativeTo - - MaxAxesForce - - MaxForce - - MaxVelocity - - Mode - - Position - - ReactionForceEnabled - - Responsiveness - - RigidityEnabled - AnalysticsSettings: - superclass: GenericSettings - events: [] - properties: [] - AnalyticsService: - superclass: Instance - events: [] - properties: - - ApiKey - AngularVelocity: - superclass: Constraint - events: [] - properties: - - AngularVelocity - - MaxTorque - - ReactionTorqueEnabled - - RelativeTo - Animation: - superclass: Instance - events: [] - properties: - - AnimationId - AnimationClip: - superclass: Instance - events: [] - properties: - - Guid - - Loop - - Priority - AnimationClipProvider: - superclass: Instance - events: [] - properties: [] - AnimationConstraint: - superclass: Constraint - events: [] - properties: - - C0 - - C1 - - IsKinematic - - MaxForce - - MaxTorque - - Part0 - - Part1 - - Transform - AnimationController: - superclass: Instance - events: - - AnimationPlayed - properties: [] - AnimationFromVideoCreatorService: - superclass: Instance - events: [] - properties: [] - AnimationFromVideoCreatorStudioService: - superclass: Instance - events: [] - properties: [] - AnimationImportData: - superclass: BaseImportData - events: [] - properties: [] - AnimationRigData: - superclass: Instance - events: [] - properties: [] - AnimationStreamTrack: - superclass: Instance - events: - - Stopped - properties: - - Animation - - FACSDataLod - - IsPlaying - - Priority - - WeightCurrent - - WeightTarget - AnimationTrack: - superclass: Instance - events: - - DidLoop - - Ended - - KeyframeReached - - Stopped - properties: - - Animation - - IsPlaying - - Length - - Looped - - Priority - - Speed - - TimePosition - - WeightCurrent - - WeightTarget - Animator: - superclass: Instance - events: - - AnimationPlayed - - AnimationPlayedCoreScript - - AnimationStreamTrackPlayed - properties: - - EvaluationThrottled - - PreferLodEnabled - - RootMotion - - RootMotionWeight - AppStorageService: - superclass: LocalStorageService - events: [] - properties: [] - AppUpdateService: - superclass: Instance - events: [] - properties: [] - ArcHandles: - superclass: HandlesBase - events: - - MouseButton1Down - - MouseButton1Up - - MouseDrag - - MouseEnter - - MouseLeave - properties: - - Axes - AssetCounterService: - superclass: Instance - events: [] - properties: [] - AssetDeliveryProxy: - superclass: Instance - events: [] - properties: - - Interface - - Port - - StartServer - AssetImportService: - superclass: Instance - events: [] - properties: [] - AssetImportSession: - superclass: Instance - events: - - UploadComplete - - UploadProgress - properties: [] - AssetManagerService: - superclass: Instance - events: - - AssetImportedSignal - - ImportSessionFinished - - ImportSessionStarted - - MayBeLinkedSourceModified - properties: [] - AssetPatchSettings: - superclass: Instance - events: [] - properties: - - ContentId - - OutputPath - - PatchId - AssetService: - superclass: Instance - events: - - OpenCreateResultModal - - OpenPublishResultModal - properties: [] - AssetSoundEffect: - superclass: CustomSoundEffect - events: [] - properties: [] - Atmosphere: - superclass: Instance - events: [] - properties: - - Color - - Decay - - Density - - Glare - - Haze - - Offset - Attachment: - superclass: Instance - events: [] - properties: - - Axis - - CFrame - - Orientation - - Position - - Rotation - - SecondaryAxis - - Visible - - WorldAxis - - WorldCFrame - - WorldOrientation - - WorldPosition - - WorldRotation - - WorldSecondaryAxis - AudioAnalyzer: - superclass: Instance - events: [] - properties: - - PeakLevel - - RmsLevel - AudioChorus: - superclass: Instance - events: [] - properties: - - Depth - - Mix - - Rate - AudioCompressor: - superclass: Instance - events: [] - properties: - - Attack - - MakeupGain - - Ratio - - Release - - Threshold - AudioDeviceInput: - superclass: Instance - events: [] - properties: - - AccessType - - Active - - IsReady - - Muted - - Player - AudioDeviceOutput: - superclass: Instance - events: [] - properties: - - Player - AudioDistortion: - superclass: Instance - events: [] - properties: - - Level - AudioEcho: - superclass: Instance - events: [] - properties: - - DelayTime - - DryLevel - - Feedback - - WetLevel - AudioEmitter: - superclass: Instance - events: [] - properties: - - AudioInteractionGroup - AudioEqualizer: - superclass: Instance - events: [] - properties: - - HighGain - - LowGain - - MidGain - - MidRange - AudioFader: - superclass: Instance - events: [] - properties: - - Volume - AudioFlanger: - superclass: Instance - events: [] - properties: - - Depth - - Mix - - Rate - AudioListener: - superclass: Instance - events: [] - properties: - - AudioInteractionGroup - AudioPages: - superclass: Pages - events: [] - properties: [] - AudioPitchShifter: - superclass: Instance - events: [] - properties: - - Pitch - AudioPlayer: - superclass: Instance - events: [] - properties: - - AssetId - - AutoLoad - - IsPlaying - - IsReady - - LoopRegion - - Looping - - PlaybackRegion - - PlaybackSpeed - - TimeLength - - TimePosition - AudioReverb: - superclass: Instance - events: [] - properties: - - DecayRatio - - DecayTime - - Density - - Diffusion - - DryLevel - - EarlyDelayTime - - HighCutFrequency - - LateDelayTime - - LowShelfFrequency - - LowShelfGain - - ReferenceFrequency - - WetLevel - AudioSearchParams: - superclass: Instance - events: [] - properties: - - Album - - Artist - - AudioSubType - - AudioSubtype - - MaxDuration - - MinDuration - - SearchKeyword - - Tag - - Title - AvatarChatService: - superclass: Instance - events: [] - properties: - - ClientFeatures - - ClientFeaturesInitialized - - ServerFeatures - AvatarCreationService: - superclass: Instance - events: - - UgcValidationFailure - - UgcValidationSuccess - properties: [] - AvatarEditorService: - superclass: Instance - events: - - OpenAllowInventoryReadAccess - - OpenPromptCreateOufit - - OpenPromptDeleteOutfit - - OpenPromptRenameOutfit - - OpenPromptSaveAvatar - - OpenPromptSetFavorite - - OpenPromptUpdateOutfit - - PromptAllowInventoryReadAccessCompleted - - PromptCreateOutfitCompleted - - PromptDeleteOutfitCompleted - - PromptRenameOutfitCompleted - - PromptSaveAvatarCompleted - - PromptSaveAvatarThumbnailCustomizationCompleted - - PromptSetFavoriteCompleted - - PromptUpdateOutfitCompleted - properties: [] - AvatarImportService: - superclass: Instance - events: [] - properties: [] - Backpack: - superclass: Instance - events: [] - properties: [] - BackpackItem: - superclass: Model - events: [] - properties: - - TextureId - BadgeService: - superclass: Instance - events: - - BadgeAwarded - - OnBadgeAwarded - properties: [] - BallSocketConstraint: - superclass: Constraint - events: [] - properties: - - LimitsEnabled - - MaxFrictionTorque - - Radius - - Restitution - - TwistLimitsEnabled - - TwistLowerAngle - - TwistUpperAngle - - UpperAngle - BaseImportData: - superclass: Instance - events: - - StatusRemoved - - StatusReported - properties: - - Id - - ImportName - - ShouldImport - BasePart: - superclass: PVInstance - events: - - LocalSimulationTouched - - OutfitChanged - - StoppedTouching - - TouchEnded - - Touched - properties: - - Anchored - - AssemblyAngularVelocity - - AssemblyCenterOfMass - - AssemblyLinearVelocity - - AssemblyMass - - AssemblyRootPart - - BackParamA - - BackParamB - - BackSurface - - BackSurfaceInput - - BottomParamA - - BottomParamB - - BottomSurface - - BottomSurfaceInput - - BrickColor - - CFrame - - CanCollide - - CanQuery - - CanTouch - - CastShadow - - CenterOfMass - - CollisionGroup - - CollisionGroupId - - Color - - CurrentPhysicalProperties - - CustomPhysicalProperties - - Elasticity - - EnableFluidForces - - ExtentsCFrame - - ExtentsSize - - Friction - - FrontParamA - - FrontParamB - - FrontSurface - - FrontSurfaceInput - - LeftParamA - - LeftParamB - - LeftSurface - - LeftSurfaceInput - - LocalTransparencyModifier - - Locked - - Mass - - Massless - - Material - - MaterialVariant - - Orientation - - PivotOffset - - Position - - ReceiveAge - - Reflectance - - ResizeIncrement - - ResizeableFaces - - RightParamA - - RightParamB - - RightSurface - - RightSurfaceInput - - RootPriority - - RotVelocity - - Rotation - - Size - - SpecificGravity - - TopParamA - - TopParamB - - TopSurface - - TopSurfaceInput - - Transparency - - Velocity - - brickColor - BasePlayerGui: - superclass: Instance - events: [] - properties: [] - BaseRemoteEvent: - superclass: Instance - events: [] - properties: [] - BaseScript: - superclass: LuaSourceContainer - events: [] - properties: - - Disabled - - Enabled - - LinkedSource - - RunContext - BaseWrap: - superclass: Instance - events: [] - properties: - - CageMeshId - - CageOrigin - - CageOriginWorld - - HSRAssetId - - ImportOrigin - - ImportOriginWorld - Beam: - superclass: Instance - events: [] - properties: - - Attachment0 - - Attachment1 - - Brightness - - Color - - CurveSize0 - - CurveSize1 - - Enabled - - FaceCamera - - LightEmission - - LightInfluence - - Segments - - Texture - - TextureLength - - TextureMode - - TextureSpeed - - Transparency - - Width0 - - Width1 - - ZOffset - BevelMesh: - superclass: DataModelMesh - events: [] - properties: [] - BillboardGui: - superclass: LayerCollector - events: [] - properties: - - Active - - Adornee - - AlwaysOnTop - - Brightness - - ClipsDescendants - - CurrentDistance - - DistanceLowerLimit - - DistanceStep - - DistanceUpperLimit - - ExtentsOffset - - ExtentsOffsetWorldSpace - - LightInfluence - - MaxDistance - - PlayerToHideFrom - - Size - - SizeOffset - - StudsOffset - - StudsOffsetWorldSpace - BinaryStringValue: - superclass: ValueBase - events: - - Changed - properties: [] - BindableEvent: - superclass: Instance - events: - - Event - properties: [] - BindableFunction: - superclass: Instance - events: [] - properties: [] - BlockMesh: - superclass: BevelMesh - events: [] - properties: [] - BloomEffect: - superclass: PostEffect - events: [] - properties: - - Intensity - - Size - - Threshold - BlurEffect: - superclass: PostEffect - events: [] - properties: - - Size - BodyAngularVelocity: - superclass: BodyMover - events: [] - properties: - - AngularVelocity - - MaxTorque - - P - - angularvelocity - - maxTorque - BodyColors: - superclass: CharacterAppearance - events: [] - properties: - - HeadColor - - HeadColor3 - - LeftArmColor - - LeftArmColor3 - - LeftLegColor - - LeftLegColor3 - - RightArmColor - - RightArmColor3 - - RightLegColor - - RightLegColor3 - - TorsoColor - - TorsoColor3 - BodyForce: - superclass: BodyMover - events: [] - properties: - - Force - - force - BodyGyro: - superclass: BodyMover - events: [] - properties: - - CFrame - - D - - MaxTorque - - P - - cframe - - maxTorque - BodyMover: - superclass: Instance - events: [] - properties: [] - BodyPartDescription: - superclass: Instance - events: [] - properties: - - AssetId - - BodyPart - - Color - - Instance - BodyPosition: - superclass: BodyMover - events: - - ReachedTarget - properties: - - D - - MaxForce - - P - - Position - - maxForce - - position - BodyThrust: - superclass: BodyMover - events: [] - properties: - - Force - - Location - - force - - location - BodyVelocity: - superclass: BodyMover - events: [] - properties: - - MaxForce - - P - - Velocity - - maxForce - - velocity - Bone: - superclass: Attachment - events: [] - properties: - - Transform - - TransformedCFrame - - TransformedWorldCFrame - BoolValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - BoxHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Size - Breakpoint: - superclass: Instance - events: [] - properties: - - Condition - - ContinueExecution - - Enabled - - Id - - Line - - LogMessage - - MetaBreakpointId - - RemoveOnHit - - Script - - Valid - - Verified - BrickColorValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - BrowserService: - superclass: Instance - events: - - AuthCookieCopiedToEngine - - BrowserWindowClosed - - BrowserWindowWillNavigate - - JavaScriptCallback - properties: [] - BubbleChatConfiguration: - superclass: TextChatConfigurations - events: [] - properties: - - AdorneeName - - BackgroundColor3 - - BackgroundTransparency - - BubbleDuration - - BubblesSpacing - - Enabled - - Font - - FontFace - - LocalPlayerStudsOffset - - MaxBubbles - - MaxDistance - - MinimizeDistance - - TailVisible - - TextColor3 - - TextSize - - VerticalStudsOffset - BubbleChatMessageProperties: - superclass: Instance - events: [] - properties: - - BackgroundColor3 - - BackgroundTransparency - - FontFace - - TailVisible - - TextColor3 - - TextSize - BulkImportService: - superclass: Instance - events: - - AssetImported - - BulkImportFinished - - BulkImportStarted - properties: [] - BuoyancySensor: - superclass: SensorBase - events: [] - properties: - - FullySubmerged - - TouchingSurface - CFrameValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - CSGDictionaryService: - superclass: FlyweightService - events: [] - properties: [] - CacheableContentProvider: - superclass: Instance - events: [] - properties: [] - CalloutService: - superclass: Instance - events: [] - properties: [] - Camera: - superclass: Instance - events: - - FirstPersonTransition - - InterpolationFinished - properties: - - CFrame - - CameraSubject - - CameraType - - CoordinateFrame - - DiagonalFieldOfView - - FieldOfView - - FieldOfViewMode - - Focus - - HeadLocked - - HeadScale - - MaxAxisFieldOfView - - NearPlaneZ - - VRTiltAndRollEnabled - - ViewportSize - - focus - CanvasGroup: - superclass: GuiObject - events: [] - properties: - - GroupColor3 - - GroupTransparency - CaptureService: - superclass: Instance - events: - - CaptureBegan - - CaptureEnded - - CaptureSaved - - OpenSaveCapturesPrompt - - OpenShareCapturePrompt - - UserCaptureSaved - properties: [] - CatalogPages: - superclass: Pages - events: [] - properties: [] - ChangeHistoryService: - superclass: Instance - events: - - OnRecordingFinished - - OnRecordingStarted - - OnRedo - - OnUndo - properties: [] - ChannelSelectorSoundEffect: - superclass: CustomSoundEffect - events: [] - properties: - - Channel - CharacterAppearance: - superclass: Instance - events: [] - properties: [] - CharacterMesh: - superclass: CharacterAppearance - events: [] - properties: - - BaseTextureId - - BodyPart - - MeshId - - OverlayTextureId - Chat: - superclass: Instance - events: - - BubbleChatSettingsChanged - - Chatted - properties: - - BubbleChatEnabled - - LoadDefaultChat - ChatInputBarConfiguration: - superclass: TextChatConfigurations - events: [] - properties: - - AbsolutePosition - - AbsolutePositionWrite - - AbsoluteSize - - AbsoluteSizeWrite - - AutocompleteEnabled - - BackgroundColor3 - - BackgroundTransparency - - Enabled - - FontFace - - IsFocused - - IsFocusedWrite - - KeyboardKeyCode - - PlaceholderColor3 - - TargetTextChannel - - TextBox - - TextColor3 - - TextSize - - TextStrokeColor3 - - TextStrokeTransparency - ChatWindowConfiguration: - superclass: TextChatConfigurations - events: [] - properties: - - AbsolutePosition - - AbsolutePositionWrite - - AbsoluteSize - - AbsoluteSizeWrite - - BackgroundColor3 - - BackgroundTransparency - - Enabled - - FontFace - - HeightScale - - HorizontalAlignment - - TextColor3 - - TextSize - - TextStrokeColor3 - - TextStrokeTransparency - - VerticalAlignment - - WidthScale - ChatbotUIService: - superclass: Instance - events: - - ActionActivatedSignal - - FindVariationsSignal - - SetMaterialSettingsSignal - - SettingChangedSignal - - ShiftToAssetIdSignal - - ShiftVariationSignal - properties: [] - ChorusSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Depth - - Mix - - Rate - ClickDetector: - superclass: Instance - events: - - MouseClick - - MouseHoverEnter - - MouseHoverLeave - - RightMouseClick - - mouseClick - properties: - - CursorIcon - - MaxActivationDistance - ClientReplicator: - superclass: NetworkReplicator - events: - - RCCProfilerDataComplete - - StatsReceived - properties: [] - ClimbController: - superclass: ControllerBase - events: [] - properties: - - AccelerationTime - - BalanceMaxTorque - - BalanceSpeed - - MoveMaxForce - Clothing: - superclass: CharacterAppearance - events: [] - properties: - - Color3 - CloudLocalizationTable: - superclass: LocalizationTable - events: [] - properties: [] - Clouds: - superclass: Instance - events: [] - properties: - - Color - - Cover - - Density - - Enabled - ClusterPacketCache: - superclass: Instance - events: [] - properties: [] - Collaborator: - superclass: Instance - events: [] - properties: - - CFrame - - CollaboratorColor - - CurDocGUID - - CurScriptLineNumber - - IsIdle - - UserId - - Username - CollaboratorsService: - superclass: Instance - events: [] - properties: [] - CollectionService: - superclass: Instance - events: - - ItemAdded - - ItemRemoved - - TagAdded - - TagRemoved - properties: [] - Color3Value: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - ColorCorrectionEffect: - superclass: PostEffect - events: [] - properties: - - Brightness - - Contrast - - Saturation - - TintColor - CommandInstance: - superclass: Instance - events: [] - properties: - - AllowGUIAccessPoints - - Checked - - DefaultShortcut - - DisplayName - - Enabled - - Icon - - Name - - Permission - - StatusTip - CommandService: - superclass: Instance - events: - - CommandExecuting - properties: [] - CompressorSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Attack - - GainMakeup - - Ratio - - Release - - SideChain - - Threshold - ConeHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Height - - Radius - Configuration: - superclass: Instance - events: [] - properties: [] - ConfigureServerService: - superclass: Instance - events: [] - properties: [] - ConnectivityService: - superclass: Instance - events: [] - properties: - - NetworkStatus - Constraint: - superclass: Instance - events: [] - properties: - - Active - - Attachment0 - - Attachment1 - - Color - - Enabled - - Visible - ContentProvider: - superclass: Instance - events: - - AssetFetchFailed - properties: - - BaseUrl - - RequestQueueSize - ContextActionService: - superclass: Instance - events: - - BoundActionAdded - - BoundActionChanged - - BoundActionRemoved - - GetActionButtonEvent - - LocalToolEquipped - - LocalToolUnequipped - properties: [] - Controller: - superclass: Instance - events: - - ButtonChanged - properties: [] - ControllerBase: - superclass: Instance - events: [] - properties: - - Active - - BalanceRigidityEnabled - - MoveSpeedFactor - ControllerManager: - superclass: Instance - events: [] - properties: - - ActiveController - - BaseMoveSpeed - - BaseTurnSpeed - - ClimbSensor - - FacingDirection - - GroundSensor - - MovingDirection - - RootPart - ControllerPartSensor: - superclass: ControllerSensor - events: [] - properties: - - HitFrame - - HitNormal - - SearchDistance - - SensedPart - - SensorMode - ControllerSensor: - superclass: SensorBase - events: [] - properties: [] - ControllerService: - superclass: Instance - events: [] - properties: [] - ConversationalAIAcceptanceService: - superclass: Instance - events: [] - properties: [] - CookiesService: - superclass: Instance - events: [] - properties: [] - CoreGui: - superclass: BasePlayerGui - events: - - UserGuiRenderingChanged - properties: - - SelectionImageObject - - Version - CorePackages: - superclass: Instance - events: [] - properties: [] - CoreScript: - superclass: BaseScript - events: [] - properties: [] - CoreScriptDebuggingManagerHelper: - superclass: Instance - events: [] - properties: [] - CoreScriptSyncService: - superclass: Instance - events: [] - properties: [] - CornerWedgePart: - superclass: BasePart - events: [] - properties: [] - CreationDBService: - superclass: Instance - events: [] - properties: [] - CrossDMScriptChangeListener: - superclass: Instance - events: - - GuidLineContentsChanged - - GuidNameChanged - properties: [] - CurveAnimation: - superclass: AnimationClip - events: [] - properties: [] - CustomEvent: - superclass: Instance - events: - - ReceiverConnected - - ReceiverDisconnected - properties: [] - CustomEventReceiver: - superclass: Instance - events: - - EventConnected - - EventDisconnected - - SourceValueChanged - properties: - - Source - CustomSoundEffect: - superclass: SoundEffect - events: [] - properties: [] - CylinderHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Angle - - Height - - InnerRadius - - Radius - CylinderMesh: - superclass: BevelMesh - events: [] - properties: [] - CylindricalConstraint: - superclass: SlidingBallConstraint - events: [] - properties: - - AngularActuatorType - - AngularLimitsEnabled - - AngularResponsiveness - - AngularRestitution - - AngularSpeed - - AngularVelocity - - CurrentAngle - - InclinationAngle - - LowerAngle - - MotorMaxAngularAcceleration - - MotorMaxTorque - - RotationAxisVisible - - ServoMaxTorque - - SoftlockAngularServoUponReachingTarget - - TargetAngle - - UpperAngle - - WorldRotationAxis - DataModel: - superclass: ServiceProvider - events: - - AllowedGearTypeChanged - - GraphicsQualityChangeRequest - - ItemChanged - - Loaded - - ScreenshotReady - - ScreenshotSavedToAlbum - - UniverseMetadataLoaded - properties: - - CreatorId - - CreatorType - - GameId - - GearGenreSetting - - Genre - - IsSFFlagsLoaded - - JobId - - PlaceId - - PlaceVersion - - PrivateServerId - - PrivateServerOwnerId - - VIPServerId - - VIPServerOwnerId - - Workspace - - lighting - - workspace - DataModelMesh: - superclass: Instance - events: [] - properties: - - Offset - - Scale - - VertexColor - DataModelPatchService: - superclass: Instance - events: [] - properties: [] - DataModelSession: - superclass: Instance - events: - - CurrentDataModelTypeAboutToChange - - CurrentDataModelTypeChanged - - DataModelCreated - - DataModelWillBeDestroyed - properties: - - CurrentDataModelType - - SessionId - DataStore: - superclass: GlobalDataStore - events: [] - properties: [] - DataStoreGetOptions: - superclass: Instance - events: [] - properties: - - UseCache - DataStoreIncrementOptions: - superclass: Instance - events: [] - properties: [] - DataStoreInfo: - superclass: Instance - events: [] - properties: - - CreatedTime - - DataStoreName - - UpdatedTime - DataStoreKey: - superclass: Instance - events: [] - properties: - - KeyName - DataStoreKeyInfo: - superclass: Instance - events: [] - properties: - - CreatedTime - - UpdatedTime - - Version - DataStoreKeyPages: - superclass: Pages - events: [] - properties: - - Cursor - DataStoreListingPages: - superclass: Pages - events: [] - properties: - - Cursor - DataStoreObjectVersionInfo: - superclass: Instance - events: [] - properties: - - CreatedTime - - IsDeleted - - Version - DataStoreOptions: - superclass: Instance - events: [] - properties: - - AllScopes - DataStorePages: - superclass: Pages - events: [] - properties: [] - DataStoreService: - superclass: Instance - events: [] - properties: - - AutomaticRetry - - LegacyNamingScheme - DataStoreSetOptions: - superclass: Instance - events: [] - properties: [] - DataStoreVersionPages: - superclass: Pages - events: [] - properties: [] - Debris: - superclass: Instance - events: [] - properties: - - MaxItems - DebugSettings: - superclass: Instance - events: [] - properties: - - DataModel - - InstanceCount - - IsScriptStackTracingEnabled - - JobCount - - PlayerCount - - ReportSoundWarnings - - RobloxVersion - - TickCountPreciseOverride - DebuggablePluginWatcher: - superclass: Instance - events: [] - properties: [] - DebuggerBreakpoint: - superclass: Instance - events: [] - properties: - - Condition - - ContinueExecution - - IsEnabled - - Line - - LogExpression - - isContextDependentBreakpoint - DebuggerConnection: - superclass: Instance - events: - - BreakpointAdded - - BreakpointChanged - - BreakpointRemoved - - Paused - - Resumed - properties: - - ErrorMessage - - HasError - - Id - - IsPaused - DebuggerConnectionManager: - superclass: Instance - events: - - ConnectionEnded - - ConnectionStarted - - FocusChanged - properties: - - Timeout - DebuggerLuaResponse: - superclass: Instance - events: [] - properties: - - IsError - - IsSuccess - - Message - - RequestId - - Status - DebuggerManager: - superclass: Instance - events: - - DebuggerAdded - - DebuggerRemoved - properties: - - DebuggingEnabled - DebuggerUIService: - superclass: Instance - events: - - ExpressionAdded - - ExpressionsCleared - properties: [] - DebuggerVariable: - superclass: Instance - events: [] - properties: - - Name - - Populated - - Type - - Value - - VariableId - - VariablesCount - DebuggerWatch: - superclass: Instance - events: [] - properties: - - Expression - Decal: - superclass: FaceInstance - events: [] - properties: - - Color3 - - LocalTransparencyModifier - - Shiny - - Specular - - Texture - - Transparency - - ZIndex - DepthOfFieldEffect: - superclass: PostEffect - events: [] - properties: - - FarIntensity - - FocusDistance - - InFocusRadius - - NearIntensity - DeviceIdService: - superclass: Instance - events: [] - properties: [] - Dialog: - superclass: Instance - events: - - DialogChoiceSelected - properties: - - BehaviorType - - ConversationDistance - - GoodbyeChoiceActive - - GoodbyeDialog - - InUse - - InitialPrompt - - Purpose - - Tone - - TriggerDistance - - TriggerOffset - DialogChoice: - superclass: Instance - events: [] - properties: - - GoodbyeChoiceActive - - GoodbyeDialog - - ResponseDialog - - UserDialog - DistortionSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Level - DockWidgetPluginGui: - superclass: PluginGui - events: [] - properties: - - HostWidgetWasRestored - DoubleConstrainedValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - ConstrainedValue - - MaxValue - - MinValue - - Value - DraftsService: - superclass: Instance - events: - - CommitStatusChanged - - DraftAdded - - DraftRemoved - - DraftStatusChanged - - EditorsListChanged - - UpdateStatusChanged - properties: [] - DragDetector: - superclass: ClickDetector - events: - - DragContinue - - DragEnd - - DragStart - properties: - - ActivatedCursorIcon - - ApplyAtCenterOfMass - - Axis - - DragFrame - - DragStyle - - Enabled - - GamepadModeSwitchKeyCode - - KeyboardModeSwitchKeyCode - - MaxDragAngle - - MaxDragTranslation - - MaxForce - - MaxTorque - - MinDragAngle - - MinDragTranslation - - Orientation - - ReferenceInstance - - ResponseStyle - - Responsiveness - - RunLocally - - SecondaryAxis - - TrackballRadialPullFactor - - TrackballRollFactor - - VRSwitchKeyCode - - WorldAxis - - WorldSecondaryAxis - Dragger: - superclass: Instance - events: [] - properties: [] - DraggerService: - superclass: Instance - events: [] - properties: - - AlignDraggedObjects - - AngleSnapEnabled - - AngleSnapIncrement - - AnimateHover - - CollisionsEnabled - - DraggerCoordinateSpace - - DraggerMovementMode - - GeometrySnapColor - - HoverAnimateFrequency - - HoverLineThickness - - HoverThickness - - JointsEnabled - - LinearSnapEnabled - - LinearSnapIncrement - - PivotSnapToGeometry - - ShowHover - - ShowPivotIndicator - DynamicRotate: - superclass: JointInstance - events: [] - properties: - - BaseAngle - EchoSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Delay - - DryLevel - - Feedback - - WetLevel - EditableImage: - superclass: Instance - events: [] - properties: - - Size - EditableMesh: - superclass: DataModelMesh - events: [] - properties: [] - EmotesPages: - superclass: InventoryPages - events: [] - properties: [] - EngineAPICloudProcessingService: - superclass: Instance - events: [] - properties: [] - EqualizerSoundEffect: - superclass: SoundEffect - events: [] - properties: - - HighGain - - LowGain - - MidGain - EulerRotationCurve: - superclass: Instance - events: [] - properties: - - RotationOrder - EventIngestService: - superclass: Instance - events: [] - properties: [] - ExperienceAuthService: - superclass: Instance - events: - - OpenAuthPrompt - properties: [] - ExperienceInviteOptions: - superclass: Instance - events: [] - properties: - - InviteMessageId - - InviteUser - - LaunchData - - PromptMessage - ExperienceNotificationService: - superclass: Instance - events: [] - properties: [] - ExperienceService: - superclass: Instance - events: [] - properties: [] - ExperienceStateCaptureService: - superclass: Instance - events: - - ItemSelectedInCaptureMode - properties: - - IsInCaptureMode - Explosion: - superclass: Instance - events: - - Hit - properties: - - BlastPressure - - BlastRadius - - DestroyJointRadiusPercent - - ExplosionType - - Position - - TimeScale - - Visible - FaceAnimatorService: - superclass: Instance - events: - - TrackerError - - TrackerPrompt - properties: - - AudioAnimationEnabled - - FaceTrackingStatusEnum - - FlipHeadOrientation - - VideoAnimationEnabled - FaceControls: - superclass: Instance - events: [] - properties: - - ChinRaiser - - ChinRaiserUpperLip - - Corrugator - - EyesLookDown - - EyesLookLeft - - EyesLookRight - - EyesLookUp - - FlatPucker - - Funneler - - JawDrop - - JawLeft - - JawRight - - LeftBrowLowerer - - LeftCheekPuff - - LeftCheekRaiser - - LeftDimpler - - LeftEyeClosed - - LeftEyeUpperLidRaiser - - LeftInnerBrowRaiser - - LeftLipCornerDown - - LeftLipCornerPuller - - LeftLipStretcher - - LeftLowerLipDepressor - - LeftNoseWrinkler - - LeftOuterBrowRaiser - - LeftUpperLipRaiser - - LipPresser - - LipsTogether - - LowerLipSuck - - MouthLeft - - MouthRight - - Pucker - - RightBrowLowerer - - RightCheekPuff - - RightCheekRaiser - - RightDimpler - - RightEyeClosed - - RightEyeUpperLidRaiser - - RightInnerBrowRaiser - - RightLipCornerDown - - RightLipCornerPuller - - RightLipStretcher - - RightLowerLipDepressor - - RightNoseWrinkler - - RightOuterBrowRaiser - - RightUpperLipRaiser - - TongueDown - - TongueOut - - TongueUp - - UpperLipSuck - FaceInstance: - superclass: Instance - events: [] - properties: - - Face - FacialAnimationRecordingService: - superclass: Instance - events: [] - properties: - - BiometricDataConsent - FacialAnimationStreamingServiceStats: - superclass: Instance - events: [] - properties: [] - FacialAnimationStreamingServiceV2: - superclass: Instance - events: [] - properties: - - ServiceState - FacialAnimationStreamingSubsessionStats: - superclass: Instance - events: [] - properties: [] - FacsImportData: - superclass: BaseImportData - events: [] - properties: [] - Feature: - superclass: Instance - events: [] - properties: - - FaceId - - InOut - - LeftRight - - TopBottom - File: - superclass: Instance - events: [] - properties: - - Size - FileMesh: - superclass: DataModelMesh - events: [] - properties: - - MeshId - - TextureId - Fire: - superclass: Instance - events: [] - properties: - - Color - - Enabled - - Heat - - SecondaryColor - - Size - - TimeScale - - size - Flag: - superclass: Tool - events: [] - properties: - - TeamColor - FlagStand: - superclass: Part - events: - - FlagCaptured - properties: - - TeamColor - FlagStandService: - superclass: Instance - events: [] - properties: [] - FlangeSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Depth - - Mix - - Rate - FloatCurve: - superclass: Instance - events: [] - properties: - - Length - FloorWire: - superclass: GuiBase3d - events: [] - properties: - - CycleOffset - - From - - StudsBetweenTextures - - Texture - - TextureSize - - To - - Velocity - - WireRadius - FlyweightService: - superclass: Instance - events: [] - properties: [] - Folder: - superclass: Instance - events: [] - properties: [] - ForceField: - superclass: Instance - events: [] - properties: - - Visible - FormFactorPart: - superclass: BasePart - events: [] - properties: - - FormFactor - - formFactor - Frame: - superclass: GuiObject - events: [] - properties: - - Style - FriendPages: - superclass: Pages - events: [] - properties: [] - FriendService: - superclass: Instance - events: - - FriendsUpdated - properties: [] - FunctionalTest: - superclass: Instance - events: [] - properties: - - Description - GamePassService: - superclass: Instance - events: [] - properties: [] - GameSettings: - superclass: Instance - events: - - VideoRecordingChangeRequest - properties: - - VideoCaptureEnabled - - VideoRecording - GamepadService: - superclass: Instance - events: - - GamepadThumbstick1Changed - properties: - - GamepadCursorEnabled - GenericSettings: - superclass: ServiceProvider - events: [] - properties: [] - Geometry: - superclass: Instance - events: [] - properties: [] - GeometryService: - superclass: Instance - events: [] - properties: [] - GetTextBoundsParams: - superclass: Instance - events: [] - properties: - - Font - - Size - - Text - - Width - GlobalDataStore: - superclass: Instance - events: [] - properties: [] - GlobalSettings: - superclass: GenericSettings - events: [] - properties: [] - Glue: - superclass: JointInstance - events: [] - properties: - - F0 - - F1 - - F2 - - F3 - GoogleAnalyticsConfiguration: - superclass: Instance - events: [] - properties: [] - GroundController: - superclass: ControllerBase - events: [] - properties: - - AccelerationLean - - AccelerationTime - - BalanceMaxTorque - - BalanceSpeed - - DecelerationTime - - Friction - - FrictionWeight - - GroundOffset - - StandForce - - StandSpeed - - TurnSpeedFactor - GroupImportData: - superclass: BaseImportData - events: [] - properties: - - Anchored - - ImportAsModelAsset - - InsertInWorkspace - GroupService: - superclass: Instance - events: [] - properties: [] - GuiBase: - superclass: Instance - events: [] - properties: [] - GuiBase2d: - superclass: GuiBase - events: - - SelectionChanged - properties: - - AbsolutePosition - - AbsoluteRotation - - AbsoluteSize - - AutoLocalize - - ClippedRect - - IsNotOccluded - - Localize - - RawRect2D - - RootLocalizationTable - - SelectionBehaviorDown - - SelectionBehaviorLeft - - SelectionBehaviorRight - - SelectionBehaviorUp - - SelectionGroup - - TotalGroupScale - GuiBase3d: - superclass: GuiBase - events: [] - properties: - - Color - - Color3 - - Transparency - - Visible - GuiButton: - superclass: GuiObject - events: - - Activated - - MouseButton1Click - - MouseButton1Down - - MouseButton1Up - - MouseButton2Click - - MouseButton2Down - - MouseButton2Up - properties: - - AutoButtonColor - - Modal - - Selected - - Style - GuiLabel: - superclass: GuiObject - events: [] - properties: [] - GuiMain: - superclass: ScreenGui - events: [] - properties: [] - GuiObject: - superclass: GuiBase2d - events: - - DragBegin - - DragStopped - - InputBegan - - InputChanged - - InputEnded - - MouseEnter - - MouseLeave - - MouseMoved - - MouseWheelBackward - - MouseWheelForward - - SelectionGained - - SelectionLost - - TouchLongPress - - TouchPan - - TouchPinch - - TouchRotate - - TouchSwipe - - TouchTap - properties: - - Active - - AnchorPoint - - AutomaticSize - - BackgroundColor - - BackgroundColor3 - - BackgroundTransparency - - BorderColor - - BorderColor3 - - BorderMode - - BorderSizePixel - - ClipsDescendants - - Draggable - - GuiState - - Interactable - - LayoutOrder - - NextSelectionDown - - NextSelectionLeft - - NextSelectionRight - - NextSelectionUp - - Position - - Rotation - - Selectable - - SelectionImageObject - - SelectionOrder - - Size - - SizeConstraint - - Transparency - - Visible - - ZIndex - GuiService: - superclass: Instance - events: - - BrowserWindowClosed - - CloseInspectMenuRequest - - CoreGuiRenderOverflowed - - EmotesMenuOpenChanged - - ErrorMessageChanged - - GuiVisibilityChangedSignal - - InspectMenuEnabledChangedSignal - - InspectPlayerFromHumanoidDescriptionRequest - - InspectPlayerFromUserIdWithCtxRequest - - KeyPressed - - MenuClosed - - MenuOpened - - NativeClose - - NetworkPausedEnabledChanged - - Open9SliceEditor - - PurchasePromptShown - - SafeZoneOffsetsChanged - - ShowLeaveConfirmation - - SpecialKeyPressed - - UiMessageChanged - properties: - - AutoSelectGuiEnabled - - CoreEffectFolder - - CoreGuiFolder - - CoreGuiNavigationEnabled - - GuiNavigationEnabled - - IsModalDialog - - IsWindows - - MenuIsOpen - - PreferredTransparency - - ReducedMotionEnabled - - SelectedCoreObject - - SelectedObject - - TopbarInset - - TouchControlsEnabled - GuidRegistryService: - superclass: Instance - events: [] - properties: [] - HSRDataContentProvider: - superclass: CacheableContentProvider - events: [] - properties: [] - HandleAdornment: - superclass: PVAdornment - events: - - MouseButton1Down - - MouseButton1Up - - MouseEnter - - MouseLeave - properties: - - AdornCullingMode - - AlwaysOnTop - - CFrame - - SizeRelativeOffset - - ZIndex - Handles: - superclass: HandlesBase - events: - - MouseButton1Down - - MouseButton1Up - - MouseDrag - - MouseEnter - - MouseLeave - properties: - - Faces - - Style - HandlesBase: - superclass: PartAdornment - events: [] - properties: [] - HapticService: - superclass: Instance - events: [] - properties: [] - Hat: - superclass: Accoutrement - events: [] - properties: [] - HeightmapImporterService: - superclass: Instance - events: - - ColormapHasUnknownPixels - - ProgressUpdate - properties: [] - HiddenSurfaceRemovalAsset: - superclass: Instance - events: [] - properties: [] - Highlight: - superclass: Instance - events: [] - properties: - - Adornee - - DepthMode - - Enabled - - FillColor - - FillTransparency - - LineThickness - - OutlineColor - - OutlineTransparency - - ReservedId - HingeConstraint: - superclass: Constraint - events: [] - properties: - - ActuatorType - - AngularResponsiveness - - AngularSpeed - - AngularVelocity - - CurrentAngle - - LimitsEnabled - - LowerAngle - - MotorMaxAcceleration - - MotorMaxTorque - - Radius - - Restitution - - ServoMaxTorque - - SoftlockServoUponReachingTarget - - TargetAngle - - UpperAngle - Hint: - superclass: Message - events: [] - properties: [] - Hole: - superclass: Feature - events: [] - properties: [] - Hopper: - superclass: Instance - events: [] - properties: [] - HopperBin: - superclass: BackpackItem - events: - - Deselected - - Selected - properties: - - Active - - BinType - HttpRbxApiService: - superclass: Instance - events: [] - properties: [] - HttpRequest: - superclass: Instance - events: [] - properties: [] - HttpService: - superclass: Instance - events: [] - properties: - - HttpEnabled - Humanoid: - superclass: Instance - events: - - AnimationPlayed - - Climbing - - ClusterCompositionFinished - - CustomStatusAdded - - CustomStatusRemoved - - Died - - EmoteTriggered - - FallingDown - - FreeFalling - - GettingUp - - HealthChanged - - Jumping - - MoveToFinished - - PlatformStanding - - Ragdoll - - Running - - Seated - - StateChanged - - StateEnabledChanged - - StatusAdded - - StatusRemoved - - Strafing - - Swimming - - Touched - properties: - - AutoJumpEnabled - - AutoRotate - - AutomaticScalingEnabled - - BreakJointsOnDeath - - CameraOffset - - CollisionType - - DisplayDistanceType - - DisplayName - - EvaluateStateMachine - - FloorMaterial - - Health - - HealthDisplayDistance - - HealthDisplayType - - HipHeight - - InternalDisplayName - - Jump - - JumpHeight - - JumpPower - - LeftLeg - - MaxHealth - - MaxSlopeAngle - - MoveDirection - - NameDisplayDistance - - NameOcclusion - - PlatformStand - - RequiresNeck - - RigType - - RightLeg - - RootPart - - SeatPart - - Sit - - TargetPoint - - Torso - - UseJumpPower - - WalkSpeed - - WalkToPart - - WalkToPoint - - maxHealth - HumanoidController: - superclass: Controller - events: [] - properties: [] - HumanoidDescription: - superclass: Instance - events: - - EmotesChanged - - EquippedEmotesChanged - properties: - - AccessoryBlob - - BackAccessory - - BodyTypeScale - - ClimbAnimation - - DepthScale - - Face - - FaceAccessory - - FallAnimation - - FrontAccessory - - GraphicTShirt - - HairAccessory - - HatAccessory - - Head - - HeadColor - - HeadScale - - HeightScale - - IdleAnimation - - JumpAnimation - - LeftArm - - LeftArmColor - - LeftLeg - - LeftLegColor - - MoodAnimation - - NeckAccessory - - NumberEmotesLoaded - - Pants - - ProportionScale - - RightArm - - RightArmColor - - RightLeg - - RightLegColor - - RunAnimation - - Shirt - - ShouldersAccessory - - SwimAnimation - - Torso - - TorsoColor - - WaistAccessory - - WalkAnimation - - WidthScale - IKControl: - superclass: Instance - events: [] - properties: - - ChainRoot - - Enabled - - EndEffector - - EndEffectorOffset - - Offset - - Pole - - Priority - - SmoothTime - - Target - - Type - - Weight - ILegacyStudioBridge: - superclass: Instance - events: [] - properties: [] - IXPService: - superclass: Instance - events: - - OnBrowserTrackerLayerLoadingStatusChanged - - OnUserLayerLoadingStatusChanged - properties: [] - ImageButton: - superclass: GuiButton - events: [] - properties: - - ContentImageSize - - HoverImage - - Image - - ImageColor3 - - ImageRectOffset - - ImageRectSize - - ImageTransparency - - IsLoaded - - PressedImage - - ResampleMode - - ScaleType - - SliceCenter - - SliceScale - - TileSize - ImageHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Image - - Size - ImageLabel: - superclass: GuiLabel - events: [] - properties: - - ContentImageSize - - Image - - ImageColor3 - - ImageRectOffset - - ImageRectSize - - ImageTransparency - - IsLoaded - - ResampleMode - - ScaleType - - SliceCenter - - SliceScale - - TileSize - IncrementalPatchBuilder: - superclass: Instance - events: [] - properties: - - AddPathsToBundle - - BuildDebouncePeriod - - HighCompression - - SerializePatch - - ZstdCompression - InputObject: - superclass: Instance - events: [] - properties: - - Delta - - KeyCode - - Position - - UserInputState - - UserInputType - InsertService: - superclass: Instance - events: [] - properties: - - AllowClientInsertModels - - AllowInsertFreeModels - Instance: - superclass: <<>> - events: - - AncestryChanged - - AttributeChanged - - Changed - - ChildAdded - - ChildRemoved - - DescendantAdded - - DescendantRemoving - - Destroying - - childAdded - properties: - - Archivable - - ClassName - - DataCost - - Name - - Parent - - RobloxLocked - - SourceAssetId - - archivable - - className - InstanceAdornment: - superclass: GuiBase3d - events: [] - properties: - - Adornee - IntConstrainedValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - ConstrainedValue - - MaxValue - - MinValue - - Value - IntValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - IntersectOperation: - superclass: PartOperation - events: [] - properties: [] - InventoryPages: - superclass: Pages - events: [] - properties: [] - JointImportData: - superclass: BaseImportData - events: [] - properties: [] - JointInstance: - superclass: Instance - events: [] - properties: - - Active - - C0 - - C1 - - Enabled - - Part0 - - Part1 - - part1 - JointsService: - superclass: Instance - events: [] - properties: [] - KeyboardService: - superclass: Instance - events: [] - properties: [] - Keyframe: - superclass: Instance - events: [] - properties: - - Time - KeyframeMarker: - superclass: Instance - events: [] - properties: - - Value - KeyframeSequence: - superclass: AnimationClip - events: [] - properties: - - AuthoredHipHeight - KeyframeSequenceProvider: - superclass: Instance - events: [] - properties: [] - LSPFileSyncService: - superclass: Instance - events: [] - properties: [] - LanguageService: - superclass: Instance - events: [] - properties: [] - LayerCollector: - superclass: GuiBase2d - events: [] - properties: - - Enabled - - ResetOnSpawn - - ZIndexBehavior - LegacyStudioBridge: - superclass: ILegacyStudioBridge - events: [] - properties: [] - Light: - superclass: Instance - events: [] - properties: - - Brightness - - Color - - Enabled - - Shadows - Lighting: - superclass: Instance - events: - - LightingChanged - properties: - - Ambient - - Brightness - - ClockTime - - ColorShift_Bottom - - ColorShift_Top - - EnvironmentDiffuseScale - - EnvironmentSpecularScale - - ExposureCompensation - - FogColor - - FogEnd - - FogStart - - GeographicLatitude - - GlobalShadows - - OutdoorAmbient - - Outlines - - ShadowColor - - ShadowSoftness - - Technology - - TempUseNewSkyRemovalBehaviour - - TimeOfDay - LineForce: - superclass: Constraint - events: [] - properties: - - ApplyAtCenterOfMass - - InverseSquareLaw - - Magnitude - - MaxForce - - ReactionForceEnabled - LineHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Length - - Thickness - LinearVelocity: - superclass: Constraint - events: [] - properties: - - ForceLimitMode - - ForceLimitsEnabled - - LineDirection - - LineVelocity - - MaxAxesForce - - MaxForce - - MaxPlanarAxesForce - - PlaneVelocity - - PrimaryTangentAxis - - RelativeTo - - SecondaryTangentAxis - - VectorVelocity - - VelocityConstraintMode - LiveScriptingService: - superclass: Instance - events: [] - properties: [] - LocalDebuggerConnection: - superclass: DebuggerConnection - events: [] - properties: [] - LocalScript: - superclass: Script - events: [] - properties: [] - LocalStorageService: - superclass: Instance - events: - - ItemWasSet - - StoreWasCleared - properties: [] - LocalizationService: - superclass: Instance - events: - - AutoTranslateWillRun - properties: - - ForcePlayModeGameLocaleId - - ForcePlayModeRobloxLocaleId - - IsTextScraperRunning - - RobloxForcePlayModeGameLocaleId - - RobloxForcePlayModeRobloxLocaleId - - RobloxLocaleId - - SystemLocaleId - LocalizationTable: - superclass: Instance - events: [] - properties: - - DevelopmentLanguage - - Root - - SourceLocaleId - LodDataEntity: - superclass: Instance - events: [] - properties: - - EntityLodEnabled - LodDataService: - superclass: Instance - events: [] - properties: [] - LogReporterService: - superclass: Instance - events: [] - properties: [] - LogService: - superclass: Instance - events: - - HttpResultOut - - MessageOut - - OnHttpResultApproved - - ServerHttpResultOut - - ServerMessageOut - properties: [] - LoginService: - superclass: Instance - events: - - LoginFailed - - LoginSucceeded - properties: [] - LuaSettings: - superclass: Instance - events: [] - properties: [] - LuaSourceContainer: - superclass: Instance - events: [] - properties: - - CurrentEditor - - RuntimeSource - LuaWebService: - superclass: Instance - events: [] - properties: [] - LuauScriptAnalyzerService: - superclass: Instance - events: [] - properties: [] - ManualGlue: - superclass: ManualSurfaceJointInstance - events: [] - properties: [] - ManualSurfaceJointInstance: - superclass: JointInstance - events: [] - properties: [] - ManualWeld: - superclass: ManualSurfaceJointInstance - events: [] - properties: [] - MarkerCurve: - superclass: Instance - events: [] - properties: - - Length - MarketplaceService: - superclass: Instance - events: - - ClientLuaDialogRequested - - ClientPurchaseSuccess - - NativePurchaseFinished - - NativePurchaseFinishedWithLocalPlayer - - PrepareCollectiblesPurchaseRequested - - PromptBundlePurchaseFinished - - PromptBundlePurchaseRequested - - PromptCollectiblesPurchaseRequested - - PromptGamePassPurchaseFinished - - PromptGamePassPurchaseRequested - - PromptPremiumPurchaseFinished - - PromptPremiumPurchaseRequested - - PromptProductPurchaseFinished - - PromptProductPurchaseRequested - - PromptPurchaseFinished - - PromptPurchaseRequested - - PromptPurchaseRequestedV2 - - PromptRobloxPurchaseRequested - - PromptSubscriptionPurchaseFinished - - PromptSubscriptionPurchaseRequested - - ServerPurchaseVerification - - ThirdPartyPurchaseFinished - properties: [] - MaterialGenerationService: - superclass: Instance - events: [] - properties: [] - MaterialGenerationSession: - superclass: Instance - events: [] - properties: [] - MaterialImportData: - superclass: BaseImportData - events: [] - properties: - - DiffuseFilePath - - IsPbr - - MetalnessFilePath - - NormalFilePath - - RoughnessFilePath - MaterialService: - superclass: Instance - events: - - OverrideStatusChanged - properties: - - AsphaltName - - BasaltName - - BrickName - - CardboardName - - CarpetName - - CeramicTilesName - - ClayRoofTilesName - - CobblestoneName - - ConcreteName - - CorrodedMetalName - - CrackedLavaName - - DiamondPlateName - - FabricName - - FoilName - - GlacierName - - GraniteName - - GrassName - - GroundName - - IceName - - LeafyGrassName - - LeatherName - - LimestoneName - - MarbleName - - MetalName - - MudName - - PavementName - - PebbleName - - PlasterName - - PlasticName - - RockName - - RoofShinglesName - - RubberName - - SaltName - - SandName - - SandstoneName - - SlateName - - SmoothPlasticName - - SnowName - - Use2022Materials - - WoodName - - WoodPlanksName - MaterialVariant: - superclass: Instance - events: [] - properties: - - BaseMaterial - - ColorMap - - CustomPhysicalProperties - - MaterialPattern - - MetalnessMap - - NormalMap - - RoughnessMap - - StudsPerTile - MemStorageConnection: - superclass: Instance - events: [] - properties: [] - MemStorageService: - superclass: Instance - events: [] - properties: [] - MemoryStoreHashMap: - superclass: Instance - events: [] - properties: [] - MemoryStoreHashMapPages: - superclass: Pages - events: [] - properties: [] - MemoryStoreQueue: - superclass: Instance - events: [] - properties: [] - MemoryStoreService: - superclass: Instance - events: [] - properties: [] - MemoryStoreSortedMap: - superclass: Instance - events: [] - properties: [] - MeshContentProvider: - superclass: CacheableContentProvider - events: [] - properties: [] - MeshImportData: - superclass: BaseImportData - events: [] - properties: - - Anchored - - CageManifold - - CageMeshIntersectedPreview - - CageMeshNotIntersected - - CageNoOverlappingVertices - - CageNonManifoldPreview - - CageOverlappingVerticesPreview - - CageUVMatched - - CageUVMisMatchedPreview - - Dimensions - - DoubleSided - - IgnoreVertexColors - - IrrelevantCageModifiedPreview - - MeshHoleDetectedPreview - - MeshNoHoleDetected - - NoIrrelevantCageModified - - NoOuterCageFarExtendedFromMesh - - OuterCageFarExtendedFromMeshPreview - - PolygonCount - - UseImportedPivot - MeshPart: - superclass: TriangleMeshPart - events: [] - properties: - - DoubleSided - - HasJointOffset - - HasSkinnedMesh - - JointOffset - - MeshId - - RenderFidelity - - TextureID - Message: - superclass: Instance - events: [] - properties: - - Text - MessageBusConnection: - superclass: Instance - events: [] - properties: [] - MessageBusService: - superclass: Instance - events: [] - properties: [] - MessagingService: - superclass: Instance - events: [] - properties: [] - MetaBreakpoint: - superclass: Instance - events: [] - properties: - - Condition - - ContinueExecution - - Enabled - - Id - - IsLogpoint - - Line - - LogMessage - - RemoveOnHit - - Script - - Valid - MetaBreakpointContext: - superclass: Instance - events: [] - properties: [] - MetaBreakpointManager: - superclass: Instance - events: - - MetaBreakpointAdded - - MetaBreakpointChanged - - MetaBreakpointRemoved - - MetaBreakpointSetChanged - properties: [] - Model: - superclass: PVInstance - events: [] - properties: - - LevelOfDetail - - ModelStreamingMode - - PrimaryPart - - Scale - - WorldPivot - ModuleScript: - superclass: LuaSourceContainer - events: [] - properties: - - LinkedSource - - Source - Motor: - superclass: JointInstance - events: [] - properties: - - CurrentAngle - - DesiredAngle - - MaxVelocity - Motor6D: - superclass: Motor - events: [] - properties: - - ChildName - - ParentName - - Transform - MotorFeature: - superclass: Feature - events: [] - properties: [] - Mouse: - superclass: Instance - events: - - Button1Down - - Button1Up - - Button2Down - - Button2Up - - Idle - - KeyDown - - KeyUp - - Move - - WheelBackward - - WheelForward - - keyDown - properties: - - Hit - - Icon - - Origin - - Target - - TargetFilter - - TargetSurface - - UnitRay - - ViewSizeX - - ViewSizeY - - X - - Y - - hit - - target - MouseService: - superclass: Instance - events: - - MouseEnterStudioViewport - - MouseLeaveStudioViewport - properties: [] - MultipleDocumentInterfaceInstance: - superclass: Instance - events: - - DataModelSessionEnded - - DataModelSessionStarted - properties: - - FocusedDataModelSession - NegateOperation: - superclass: PartOperation - events: [] - properties: [] - NetworkClient: - superclass: NetworkPeer - events: - - ConnectionAccepted - - ConnectionFailed - properties: [] - NetworkMarker: - superclass: Instance - events: - - Received - properties: [] - NetworkPeer: - superclass: Instance - events: [] - properties: [] - NetworkReplicator: - superclass: Instance - events: [] - properties: [] - NetworkServer: - superclass: NetworkPeer - events: [] - properties: [] - NetworkSettings: - superclass: Instance - events: [] - properties: - - EmulatedTotalMemoryInMB - - FreeMemoryMBytes - - HttpProxyEnabled - - HttpProxyURL - - IncomingReplicationLag - - PrintJoinSizeBreakdown - - PrintPhysicsErrors - - PrintStreamInstanceQuota - - RandomizeJoinInstanceOrder - - RenderStreamedRegions - - ShowActiveAnimationAsset - NoCollisionConstraint: - superclass: Instance - events: [] - properties: - - Enabled - - Part0 - - Part1 - NonReplicatedCSGDictionaryService: - superclass: FlyweightService - events: [] - properties: [] - NotificationService: - superclass: Instance - events: - - Roblox17sConnectionChanged - - Roblox17sEventReceived - - RobloxConnectionChanged - - RobloxEventReceived - properties: - - IsConnected - - IsLuaChatEnabled - - IsLuaGameDetailsEnabled - - SelectedTheme - NumberPose: - superclass: PoseBase - events: [] - properties: - - Value - NumberValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - ObjectValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - OmniRecommendationsService: - superclass: Instance - events: [] - properties: [] - OpenCloudApiV1: - superclass: Instance - events: [] - properties: [] - OpenCloudService: - superclass: Instance - events: [] - properties: [] - OperationGraph: - superclass: Instance - events: [] - properties: [] - OrderedDataStore: - superclass: GlobalDataStore - events: [] - properties: [] - OutfitPages: - superclass: Pages - events: [] - properties: [] - PVAdornment: - superclass: GuiBase3d - events: [] - properties: - - Adornee - PVInstance: - superclass: Instance - events: [] - properties: - - Origin - - Pivot Offset - PackageLink: - superclass: Instance - events: [] - properties: - - AutoUpdate - - Creator - - DefaultName - - PackageAssetName - - PackageId - - PermissionLevel - - SerializedDefaultAttributes - - Status - - VersionNumber - PackageService: - superclass: Instance - events: [] - properties: [] - PackageUIService: - superclass: Instance - events: - - OnConvertToPackageResult - - OnOpenConvertToPackagePlugin - properties: [] - Pages: - superclass: Instance - events: [] - properties: - - IsFinished - Pants: - superclass: Clothing - events: [] - properties: - - PantsTemplate - ParabolaAdornment: - superclass: PVAdornment - events: [] - properties: - - A - - B - - C - - Range - - Thickness - Part: - superclass: FormFactorPart - events: [] - properties: - - Shape - PartAdornment: - superclass: GuiBase3d - events: [] - properties: - - Adornee - PartOperation: - superclass: TriangleMeshPart - events: [] - properties: - - RenderFidelity - - SmoothingAngle - - TriangleCount - - UsePartColor - PartOperationAsset: - superclass: Instance - events: [] - properties: [] - ParticleEmitter: - superclass: Instance - events: [] - properties: - - Acceleration - - Brightness - - Color - - Drag - - EmissionDirection - - Enabled - - FlipbookFramerate - - FlipbookIncompatible - - FlipbookLayout - - FlipbookMode - - FlipbookStartRandom - - Lifetime - - LightEmission - - LightInfluence - - LockedToPart - - Orientation - - Rate - - RotSpeed - - Rotation - - Shape - - ShapeInOut - - ShapePartial - - ShapeStyle - - Size - - Speed - - SpreadAngle - - Squash - - Texture - - TimeScale - - Transparency - - VelocityInheritance - - VelocitySpread - - WindAffectsDrag - - ZOffset - PatchBundlerFileWatch: - superclass: Instance - events: [] - properties: [] - PatchMapping: - superclass: Instance - events: [] - properties: - - FlattenTree - - PatchId - - TargetPath - Path: - superclass: Instance - events: - - Blocked - - Unblocked - properties: - - Status - Path2D: - superclass: GuiBase - events: [] - properties: - - AbsoluteSize - - Color - - Position - - SelectedControlPoint - - Thickness - - Transparency - - Visible - PathfindingLink: - superclass: Instance - events: [] - properties: - - Attachment0 - - Attachment1 - - IsBidirectional - - Label - PathfindingModifier: - superclass: Instance - events: [] - properties: - - Label - - PassThrough - PathfindingService: - superclass: Instance - events: [] - properties: - - EmptyCutoff - PausedState: - superclass: Instance - events: [] - properties: - - AllThreadsPaused - - Reason - - ThreadId - PausedStateBreakpoint: - superclass: PausedState - events: [] - properties: - - Breakpoint - PausedStateException: - superclass: PausedState - events: [] - properties: - - ExceptionText - PermissionsService: - superclass: Instance - events: [] - properties: [] - PhysicsService: - superclass: Instance - events: [] - properties: [] - PhysicsSettings: - superclass: Instance - events: [] - properties: - - AllowSleep - - AreAnchorsShown - - AreAssembliesShown - - AreAssemblyCentersOfMassShown - - AreAwakePartsHighlighted - - AreBodyTypesShown - - AreCollisionCostsShown - - AreConstraintForcesShownForSelectedOrHoveredInstances - - AreConstraintTorquesShownForSelectedOrHoveredInstances - - AreContactForcesShownForSelectedOrHoveredAssemblies - - AreContactIslandsShown - - AreContactPointsShown - - AreGravityForcesShownForSelectedOrHoveredAssemblies - - AreJointCoordinatesShown - - AreMagnitudesShownForDrawnForcesAndTorques - - AreMechanismsShown - - AreModelCoordsShown - - AreNonAnchorsShown - - AreOwnersShown - - ArePartCoordsShown - - AreRegionsShown - - AreSolverIslandsShown - - AreTerrainReplicationRegionsShown - - AreTimestepsShown - - AreUnalignedPartsShown - - AreWorldCoordsShown - - DisableCSGv2 - - DisableCSGv3ForPlugins - - FluidForceDrawScale - - ForceCSGv2 - - ForceDrawScale - - IsInterpolationThrottleShown - - IsReceiveAgeShown - - IsTreeShown - - PhysicsEnvironmentalThrottle - - ShowDecompositionGeometry - - ShowFluidForcesForSelectedOrHoveredMechanisms - - SolverConvergenceMetricType - - SolverConvergenceVisualizationMode - - ThrottleAdjustTime - - UseCSGv2 - PitchShiftSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Octave - PlaceStatsService: - superclass: Instance - events: [] - properties: [] - PlacesService: - superclass: Instance - events: [] - properties: [] - Plane: - superclass: PlaneConstraint - events: [] - properties: [] - PlaneConstraint: - superclass: Constraint - events: [] - properties: [] - Platform: - superclass: Part - events: [] - properties: [] - PlatformCloudStorageService: - superclass: Instance - events: [] - properties: [] - PlatformFriendsService: - superclass: Instance - events: [] - properties: [] - Player: - superclass: Instance - events: - - CharacterAdded - - CharacterAppearanceLoaded - - CharacterRemoving - - Chatted - - FriendStatusChanged - - Idled - - OnTeleport - - SimulationRadiusChanged - properties: - - AccountAge - - AppearanceDidLoad - - AutoJumpEnabled - - CameraMaxZoomDistance - - CameraMinZoomDistance - - CameraMode - - CanLoadCharacterAppearance - - Character - - CharacterAppearance - - CharacterAppearanceId - - ChatMode - - DataComplexity - - DataComplexityLimit - - DataReady - - DevCameraOcclusionMode - - DevComputerCameraMode - - DevComputerMovementMode - - DevEnableMouseLock - - DevTouchCameraMode - - DevTouchMovementMode - - DisplayName - - FollowUserId - - GameplayPaused - - Guest - - HasVerifiedBadge - - HealthDisplayDistance - - LocaleId - - MaximumSimulationRadius - - MembershipType - - NameDisplayDistance - - Neutral - - OsPlatform - - PlatformName - - ReplicationFocus - - RespawnLocation - - SimulationRadius - - Team - - TeamColor - - Teleported - - TeleportedIn - - UnfilteredChat - - UserId - - VRDevice - - VREnabled - - userId - PlayerEmulatorService: - superclass: Instance - events: [] - properties: - - CustomPoliciesEnabled - - EmulatedCountryCode - - EmulatedGameLocale - - PlayerEmulationEnabled - - SerializedEmulatedPolicyInfo - PlayerGui: - superclass: BasePlayerGui - events: - - TopbarTransparencyChangedSignal - properties: - - CurrentScreenOrientation - - ScreenOrientation - - SelectionImageObject - PlayerMouse: - superclass: Mouse - events: [] - properties: [] - PlayerScripts: - superclass: Instance - events: - - ComputerCameraMovementModeRegistered - - ComputerMovementModeRegistered - - TouchCameraMovementModeRegistered - - TouchMovementModeRegistered - properties: [] - PlayerViewService: - superclass: Instance - events: [] - properties: [] - Players: - superclass: Instance - events: - - FriendRequestEvent - - GameAnnounce - - PlayerAdded - - PlayerChatted - - PlayerConnecting - - PlayerDisconnecting - - PlayerMembershipChanged - - PlayerRejoining - - PlayerRemoving - - UserSubscriptionStatusChanged - properties: - - BubbleChat - - CharacterAutoLoads - - ClassicChat - - LocalPlayer - - MaxPlayers - - MaxPlayersInternal - - NumPlayers - - PreferredPlayers - - PreferredPlayersInternal - - RespawnTime - - UseStrafingAnimations - - localPlayer - - numPlayers - Plugin: - superclass: Instance - events: - - Deactivation - - Ready - - Unloading - properties: - - CollisionEnabled - - GridSize - - HostDataModelType - - HostDataModelTypeIsCurrent - - MultipleDocumentInterfaceInstance - - UsesAssetInsertionDrag - PluginAction: - superclass: Instance - events: - - Triggered - properties: - - ActionId - - AllowBinding - - Checked - - DefaultShortcut - - Enabled - - StatusTip - - Text - PluginCapabilities: - superclass: Instance - events: [] - properties: - - Manifest - PluginDebugService: - superclass: Instance - events: [] - properties: [] - PluginDragEvent: - superclass: Instance - events: [] - properties: - - Data - - MimeType - - Position - - Sender - PluginGui: - superclass: LayerCollector - events: - - PluginDragDropped - - PluginDragEntered - - PluginDragLeft - - PluginDragMoved - - WindowFocusReleased - - WindowFocused - properties: - - Title - PluginGuiService: - superclass: Instance - events: [] - properties: [] - PluginManagementService: - superclass: Instance - events: [] - properties: [] - PluginManager: - superclass: Instance - events: [] - properties: [] - PluginManagerInterface: - superclass: Instance - events: [] - properties: [] - PluginMenu: - superclass: Instance - events: [] - properties: - - Icon - - Title - PluginMouse: - superclass: Mouse - events: - - DragEnter - properties: [] - PluginPolicyService: - superclass: Instance - events: [] - properties: [] - PluginToolbar: - superclass: Instance - events: [] - properties: [] - PluginToolbarButton: - superclass: Instance - events: - - Click - - DropdownClick - properties: - - ClickableWhenViewportHidden - - Enabled - - Icon - PointLight: - superclass: Light - events: [] - properties: - - Range - PointsService: - superclass: Instance - events: - - PointsAwarded - properties: [] - PolicyService: - superclass: Instance - events: [] - properties: - - IsLuobuServer - - LuobuWhitelisted - Pose: - superclass: PoseBase - events: [] - properties: - - CFrame - - MaskWeight - PoseBase: - superclass: Instance - events: [] - properties: - - EasingDirection - - EasingStyle - - Weight - PostEffect: - superclass: Instance - events: [] - properties: - - Enabled - PrismaticConstraint: - superclass: SlidingBallConstraint - events: [] - properties: [] - ProcessInstancePhysicsService: - superclass: Instance - events: [] - properties: [] - ProximityPrompt: - superclass: Instance - events: - - PromptButtonHoldBegan - - PromptButtonHoldEnded - - PromptHidden - - PromptShown - - TriggerEnded - - Triggered - properties: - - ActionText - - AutoLocalize - - ClickablePrompt - - Enabled - - Exclusivity - - GamepadKeyCode - - HoldDuration - - KeyboardKeyCode - - MaxActivationDistance - - ObjectText - - RequiresLineOfSight - - RootLocalizationTable - - Style - - UIOffset - ProximityPromptService: - superclass: Instance - events: - - PromptButtonHoldBegan - - PromptButtonHoldEnded - - PromptHidden - - PromptShown - - PromptTriggerEnded - - PromptTriggered - properties: - - Enabled - - MaxPromptsVisible - PublishService: - superclass: Instance - events: [] - properties: [] - QWidgetPluginGui: - superclass: PluginGui - events: [] - properties: [] - RayValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - RbxAnalyticsService: - superclass: Instance - events: [] - properties: [] - ReflectionMetadata: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataCallbacks: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataClass: - superclass: ReflectionMetadataItem - events: [] - properties: - - ExplorerImageIndex - - ExplorerOrder - - Insertable - - PreferredParent - - ServiceVisibility - ReflectionMetadataClasses: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataEnum: - superclass: ReflectionMetadataItem - events: [] - properties: [] - ReflectionMetadataEnumItem: - superclass: ReflectionMetadataItem - events: [] - properties: [] - ReflectionMetadataEnums: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataEvents: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataFunctions: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataItem: - superclass: Instance - events: [] - properties: - - Browsable - - ClassCategory - - ClientOnly - - Constraint - - Deprecated - - EditingDisabled - - EditorType - - FFlag - - IsBackend - - PropertyOrder - - ScriptContext - - ServerOnly - - SliderScaling - - UIMaximum - - UIMinimum - - UINumTicks - ReflectionMetadataMember: - superclass: ReflectionMetadataItem - events: [] - properties: [] - ReflectionMetadataProperties: - superclass: Instance - events: [] - properties: [] - ReflectionMetadataYieldFunctions: - superclass: Instance - events: [] - properties: [] - ReflectionService: - superclass: Instance - events: [] - properties: [] - RemoteCursorService: - superclass: Instance - events: [] - properties: [] - RemoteDebuggerServer: - superclass: Instance - events: [] - properties: [] - RemoteEvent: - superclass: BaseRemoteEvent - events: - - OnClientEvent - - OnServerEvent - properties: [] - RemoteFunction: - superclass: Instance - events: [] - properties: [] - RenderSettings: - superclass: Instance - events: [] - properties: - - AutoFRMLevel - - EagerBulkExecution - - EditQualityLevel - - Enable VR Mode - - EnableFRM - - ExportMergeByMaterial - - FrameRateManager - - GraphicsMode - - MeshCacheSize - - MeshPartDetailLevel - - QualityLevel - - ReloadAssets - - RenderCSGTrianglesDebug - - ShowBoundingBoxes - - ViewMode - RenderingTest: - superclass: Instance - events: [] - properties: - - CFrame - - ComparisonDiffThreshold - - ComparisonMethod - - ComparisonPsnrThreshold - - Description - - FieldOfView - - Orientation - - PerfTest - - Position - - QualityLevel - - ShouldSkip - - Ticket - - Timeout - ReplicatedFirst: - superclass: Instance - events: - - DefaultLoadingGuiRemoved - - FinishedReplicating - - RemoveDefaultLoadingGuiSignal - properties: [] - ReplicatedStorage: - superclass: Instance - events: [] - properties: [] - ReverbSoundEffect: - superclass: SoundEffect - events: [] - properties: - - DecayTime - - Density - - Diffusion - - DryLevel - - WetLevel - RibbonNotificationService: - superclass: Instance - events: - - NewNotificationFromRibbon - - ToggleNotificationTray - properties: [] - RigidConstraint: - superclass: Constraint - events: [] - properties: [] - RobloxEditableImage: - superclass: EditableImage - events: [] - properties: [] - RobloxPluginGuiService: - superclass: Instance - events: [] - properties: [] - RobloxReplicatedStorage: - superclass: Instance - events: [] - properties: [] - RobloxServerStorage: - superclass: Instance - events: [] - properties: [] - RocketPropulsion: - superclass: BodyMover - events: - - ReachedTarget - properties: - - CartoonFactor - - MaxSpeed - - MaxThrust - - MaxTorque - - Target - - TargetOffset - - TargetRadius - - ThrustD - - ThrustP - - TurnD - - TurnP - RodConstraint: - superclass: Constraint - events: [] - properties: - - CurrentDistance - - Length - - LimitAngle0 - - LimitAngle1 - - LimitsEnabled - - Thickness - RomarkService: - superclass: Instance - events: [] - properties: [] - RootImportData: - superclass: BaseImportData - events: [] - properties: - - AddModelToInventory - - Anchored - - AnimationIdForRestPose - - ExistingPackageId - - FileDimensions - - ImportAsModelAsset - - ImportAsPackage - - InsertInWorkspace - - InsertWithScenePosition - - InvertNegativeFaces - - MergeMeshes - - PolygonCount - - RestPose - - RigScale - - RigType - - RigVisualization - - ScaleUnit - - UseSceneOriginAsCFrame - - UseSceneOriginAsPivot - - UsesCages - - ValidateUgcBody - - WorldForward - - WorldUp - RopeConstraint: - superclass: Constraint - events: [] - properties: - - CurrentDistance - - Length - - Restitution - - Thickness - - WinchEnabled - - WinchForce - - WinchResponsiveness - - WinchSpeed - - WinchTarget - Rotate: - superclass: JointInstance - events: [] - properties: [] - RotateP: - superclass: DynamicRotate - events: [] - properties: [] - RotateV: - superclass: DynamicRotate - events: [] - properties: [] - RotationCurve: - superclass: Instance - events: [] - properties: - - Length - RtMessagingService: - superclass: Instance - events: [] - properties: [] - RunService: - superclass: Instance - events: - - Heartbeat - - PostSimulation - - PreAnimation - - PreRender - - PreSimulation - - RenderStepped - - Stepped - properties: - - ClientGitHash - RunningAverageItemDouble: - superclass: StatsItem - events: [] - properties: [] - RunningAverageItemInt: - superclass: StatsItem - events: [] - properties: [] - RunningAverageTimeIntervalItem: - superclass: StatsItem - events: [] - properties: [] - RuntimeScriptService: - superclass: Instance - events: [] - properties: [] - SafetyService: - superclass: Instance - events: - - ScreenshotContentReady - - ScreenshotUploaded - properties: [] - ScreenGui: - superclass: LayerCollector - events: [] - properties: - - ClipToDeviceSafeArea - - DisplayOrder - - IgnoreGuiInset - - OnTopOfCoreBlur - - SafeAreaCompatibility - - ScreenInsets - ScreenshotHud: - superclass: Instance - events: [] - properties: - - CameraButtonIcon - - CameraButtonPosition - - CloseButtonPosition - - CloseWhenScreenshotTaken - - ExperienceNameOverlayEnabled - - HideCoreGuiForCaptures - - HidePlayerGuiForCaptures - - OverlayFont - - UsernameOverlayEnabled - - Visible - Script: - superclass: BaseScript - events: [] - properties: - - Source - ScriptBuilder: - superclass: Instance - events: [] - properties: [] - ScriptChangeService: - superclass: Instance - events: - - ScriptAdded - - ScriptBeingRemoved - - ScriptChanged - - ScriptFullNameChanged - - ScriptSourceChanged - properties: [] - ScriptCloneWatcher: - superclass: Instance - events: [] - properties: [] - ScriptCloneWatcherHelper: - superclass: Instance - events: [] - properties: [] - ScriptCommitService: - superclass: Instance - events: [] - properties: [] - ScriptContext: - superclass: Instance - events: - - Error - - ErrorDetailed - properties: - - ScriptsDisabled - ScriptDebugger: - superclass: Instance - events: - - BreakpointAdded - - BreakpointRemoved - - EncounteredBreak - - Resuming - - WatchAdded - - WatchRemoved - properties: - - CurrentLine - - IsDebugging - - IsPaused - - Script - ScriptDocument: - superclass: Instance - events: - - SelectionChanged - - ViewportChanged - properties: [] - ScriptEditorService: - superclass: Instance - events: - - TextDocumentDidChange - - TextDocumentDidClose - - TextDocumentDidOpen - properties: [] - ScriptRegistrationService: - superclass: Instance - events: [] - properties: [] - ScriptRuntime: - superclass: Instance - events: [] - properties: [] - ScriptService: - superclass: Instance - events: [] - properties: [] - ScrollingFrame: - superclass: GuiObject - events: [] - properties: - - AbsoluteCanvasSize - - AbsoluteWindowSize - - AutomaticCanvasSize - - BottomImage - - CanvasPosition - - CanvasSize - - ElasticBehavior - - HorizontalBarRect - - HorizontalScrollBarInset - - MaxCanvasPosition - - MidImage - - ScrollBarImageColor3 - - ScrollBarImageTransparency - - ScrollBarThickness - - ScrollVelocity - - ScrollingDirection - - ScrollingEnabled - - TopImage - - VerticalBarRect - - VerticalScrollBarInset - - VerticalScrollBarPosition - Seat: - superclass: Part - events: [] - properties: - - Disabled - - Occupant - Selection: - superclass: Instance - events: - - SelectionChanged - properties: - - ActiveInstance - - RenderMode - - SelectionBoxThickness - - SelectionLineThickness - - SelectionThickness - - ShowActiveInstanceHighlight - SelectionBox: - superclass: InstanceAdornment - events: [] - properties: - - LineThickness - - StudioSelectionBox - - SurfaceColor - - SurfaceColor3 - - SurfaceTransparency - SelectionHighlightManager: - superclass: Instance - events: [] - properties: [] - SelectionLasso: - superclass: GuiBase3d - events: [] - properties: - - Humanoid - SelectionPartLasso: - superclass: SelectionLasso - events: [] - properties: - - Part - SelectionPointLasso: - superclass: SelectionLasso - events: [] - properties: - - Point - SelectionSphere: - superclass: PVAdornment - events: [] - properties: - - SurfaceColor - - SurfaceColor3 - - SurfaceTransparency - SensorBase: - superclass: Instance - events: - - OnSensorOutputChanged - properties: - - UpdateType - ServerReplicator: - superclass: NetworkReplicator - events: [] - properties: [] - ServerScriptService: - superclass: Instance - events: [] - properties: - - LoadStringEnabled - ServerStorage: - superclass: Instance - events: [] - properties: [] - ServiceProvider: - superclass: Instance - events: - - Close - - CloseLate - - ServiceAdded - - ServiceRemoving - properties: [] - ServiceVisibilityService: - superclass: Instance - events: [] - properties: - - HiddenServices - - VisibleServices - SessionService: - superclass: Instance - events: [] - properties: [] - SharedTableRegistry: - superclass: Instance - events: [] - properties: [] - Shirt: - superclass: Clothing - events: [] - properties: - - ShirtTemplate - ShirtGraphic: - superclass: CharacterAppearance - events: [] - properties: - - Color3 - - Graphic - ShorelineUpgraderService: - superclass: Instance - events: - - Status - properties: [] - SkateboardController: - superclass: Controller - events: - - AxisChanged - properties: - - Steer - - Throttle - SkateboardPlatform: - superclass: Part - events: - - Equipped - - MoveStateChanged - - Unequipped - - equipped - - unequipped - properties: - - Controller - - ControllingHumanoid - - Steer - - StickyWheels - - Throttle - Skin: - superclass: CharacterAppearance - events: [] - properties: - - SkinColor - Sky: - superclass: Instance - events: [] - properties: - - CelestialBodiesShown - - MoonAngularSize - - MoonTextureId - - SkyboxBk - - SkyboxDn - - SkyboxFt - - SkyboxLf - - SkyboxRt - - SkyboxUp - - StarCount - - SunAngularSize - - SunTextureId - SlidingBallConstraint: - superclass: Constraint - events: [] - properties: - - ActuatorType - - CurrentPosition - - LimitsEnabled - - LinearResponsiveness - - LowerLimit - - MotorMaxAcceleration - - MotorMaxForce - - Restitution - - ServoMaxForce - - Size - - SoftlockServoUponReachingTarget - - Speed - - TargetPosition - - UpperLimit - - Velocity - Smoke: - superclass: Instance - events: [] - properties: - - Color - - Enabled - - Opacity - - RiseVelocity - - Size - - TimeScale - SmoothVoxelsUpgraderService: - superclass: Instance - events: - - Status - properties: [] - Snap: - superclass: JointInstance - events: [] - properties: [] - SnippetService: - superclass: Instance - events: [] - properties: [] - SocialService: - superclass: Instance - events: - - CallInviteStateChanged - - GameInvitePromptClosed - - PhoneBookPromptClosed - - PromptInviteRequested - - PromptIrisInviteRequested - - SelfViewHidden - - SelfViewVisible - properties: [] - SolidModelContentProvider: - superclass: CacheableContentProvider - events: [] - properties: [] - Sound: - superclass: Instance - events: - - DidLoop - - Ended - - Loaded - - Paused - - Played - - Resumed - - Stopped - properties: - - ChannelCount - - EmitterSize - - IsLoaded - - IsPaused - - IsPlaying - - IsSpatial - - LoopRegion - - Looped - - MaxDistance - - MinDistance - - Pitch - - PlayOnRemove - - PlaybackLoudness - - PlaybackRegion - - PlaybackRegionsEnabled - - PlaybackSpeed - - Playing - - RollOffGain - - RollOffMaxDistance - - RollOffMinDistance - - RollOffMode - - SoundGroup - - SoundId - - TimeLength - - TimePosition - - UsageContextPermission - - Volume - - isPlaying - SoundEffect: - superclass: Instance - events: [] - properties: - - Enabled - - Priority - SoundGroup: - superclass: Instance - events: [] - properties: - - Volume - SoundService: - superclass: Instance - events: - - AudioInstanceAdded - - DeviceListChanged - properties: - - AmbientReverb - - DistanceFactor - - DopplerScale - - RespectFilteringEnabled - - RolloffScale - - VolumetricAudio - Sparkles: - superclass: Instance - events: [] - properties: - - Color - - Enabled - - SparkleColor - - TimeScale - SpawnLocation: - superclass: Part - events: [] - properties: - - AllowTeamChangeOnTouch - - Duration - - Enabled - - Neutral - - TeamColor - SpawnerService: - superclass: Instance - events: [] - properties: [] - SpecialMesh: - superclass: FileMesh - events: [] - properties: - - MeshType - SphereHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Radius - SpotLight: - superclass: Light - events: [] - properties: - - Angle - - Face - - Range - SpringConstraint: - superclass: Constraint - events: [] - properties: - - Coils - - CurrentLength - - Damping - - FreeLength - - LimitsEnabled - - MaxForce - - MaxLength - - MinLength - - Radius - - Stiffness - - Thickness - StackFrame: - superclass: Instance - events: [] - properties: - - FrameId - - FrameName - - FrameType - - Globals - - Line - - Locals - - Populated - - Script - - Upvalues - StandalonePluginScripts: - superclass: Instance - events: [] - properties: [] - StandardPages: - superclass: Pages - events: [] - properties: [] - StarterCharacterScripts: - superclass: StarterPlayerScripts - events: [] - properties: [] - StarterGear: - superclass: Instance - events: [] - properties: [] - StarterGui: - superclass: BasePlayerGui - events: - - CoreGuiChangedSignal - properties: - - ProcessUserInput - - ResetPlayerGuiOnSpawn - - RtlTextSupport - - ScreenOrientation - - ShowDevelopmentGui - - VirtualCursorMode - StarterPack: - superclass: Instance - events: [] - properties: [] - StarterPlayer: - superclass: Instance - events: [] - properties: - - AllowCustomAnimations - - AutoJumpEnabled - - AvatarJointUpgrade - - CameraMaxZoomDistance - - CameraMinZoomDistance - - CameraMode - - CharacterJumpHeight - - CharacterJumpPower - - CharacterMaxSlopeAngle - - CharacterUseJumpPower - - CharacterWalkSpeed - - DeathStyle - - DevCameraOcclusionMode - - DevComputerCameraMovementMode - - DevComputerMovementMode - - DevTouchCameraMovementMode - - DevTouchMovementMode - - EnableDynamicHeads - - EnableMouseLockOption - - GameSettingsAssetIDFace - - GameSettingsAssetIDHead - - GameSettingsAssetIDLeftArm - - GameSettingsAssetIDLeftLeg - - GameSettingsAssetIDPants - - GameSettingsAssetIDRightArm - - GameSettingsAssetIDRightLeg - - GameSettingsAssetIDShirt - - GameSettingsAssetIDTeeShirt - - GameSettingsAssetIDTorso - - GameSettingsAvatar - - GameSettingsR15Collision - - GameSettingsScaleRangeBodyType - - GameSettingsScaleRangeHead - - GameSettingsScaleRangeHeight - - GameSettingsScaleRangeProportion - - GameSettingsScaleRangeWidth - - HealthDisplayDistance - - LoadCharacterAppearance - - 'LoadCharacterLayeredClothing ' - - LuaCharacterController - - NameDisplayDistance - - UserEmotesEnabled - StarterPlayerScripts: - superclass: Instance - events: [] - properties: [] - StartupMessageService: - superclass: Instance - events: [] - properties: [] - Stats: - superclass: Instance - events: [] - properties: - - ContactsCount - - DataReceiveKbps - - DataSendKbps - - HeartbeatTimeMs - - InstanceCount - - MovingPrimitivesCount - - PhysicsReceiveKbps - - PhysicsSendKbps - - PhysicsStepTimeMs - - PrimitivesCount - StatsItem: - superclass: Instance - events: [] - properties: - - DisplayName - Status: - superclass: Model - events: [] - properties: [] - StopWatchReporter: - superclass: Instance - events: [] - properties: [] - StreamingService: - superclass: Instance - events: - - RequestEnded - - RequestError - - RequestStarted - - SequentialCommandsFinished - - Stream - properties: [] - StringValue: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - Studio: - superclass: Instance - events: - - ThemeChanged - properties: - - '"TODO" Color' - - '"function" Color' - - '"local" Color' - - '"nil" Color' - - '"self" Color' - - Active Color - - Active Hover Over Color - - Always Save Script Changes - - Animate Hover Over - - Auto Clean Empty Line - - Auto Closing Brackets - - Auto Closing Quotes - - Auto Delete Closing Brackets and Quotes - - Auto Indent Rule - - Auto-Recovery Enabled - - Auto-Recovery Interval (Minutes) - - Auto-Recovery Path - - Automatically commit locked scripts when you save or publish to Roblox - - Automatically trigger AI Code Completion - - Background Color - - Basic Objects Display Mode - - Bool Color - - Bracket Color - - Built-in Function Color - - Camera Mouse Wheel Speed - - Camera Pan Speed - - Camera Shift Speed - - Camera Speed - - Camera Speed Adjust Binding - - Camera Zoom to Mouse Position - - CameraAdaptiveSpeed - - CameraTweenFocus - - Clear Output On Start - - CommandBarLocalState - - Comment Color - - Current Line Highlight Color - - Debugger Current Line Color - - Debugger Error Line Color - - DefaultScriptFileDir - - DeprecatedObjectsShown - - DisplayLanguage - - Doc View Code Background Color - - Enable Autocomplete - - Enable Autocomplete Doc View - - Enable CoreScript Debugger - - Enable Http Sandboxing - - Enable Internal Beta Features - - Enable Internal Features - - Enable Script Analysis - - Enable Scrollbar Markers - - Enable Signature Help - - Enable Signature Help Doc View - - Enable Temporary Tabs - - Enable Temporary Tabs In Explorer - - Enable Type Hover - - EnableIndentationRulers - - EnableOnTypeAutocomplete - - Error Color - - Find Selection Background Color - - Font - - Format On Paste - - Format On Type - - FreeCameraSpeedScroll - - Function Name Color - - Highlight Current Line - - Highlight Occurances - - HintColor - - Hover Animate Speed - - Hover Box Thickness - - Hover Line Thickness - - Hover Over Color - - IconOverrideDir - - Indent Using Spaces - - IndentationRulerColor - - InformationColor - - Keyword Color - - LargeFileLineCountThreshold - - LargeFileThreshold - - Line Thickness - - LocalAssetsFolder - - LuaDebuggerEnabled - - LuaDebuggerEnabledAtStartup - - Luau Keyword Color - - Main Volume - - Matching Word Background Color - - Maximum Output Lines - - Menu Item Background Color - - Method Color - - Number Color - - Only Play Audio from Window in Focus - - Operator Color - - Output Font - - Output Layout Mode - - PermissionLevelShown - - Physical Draggers Select Scope By Default - - Pivot Snap To Geometry Color - - PluginDebuggingEnabled - - PluginsDir - - Primary Text Color - - Property Color - - ReloadBuiltinPluginsOnChange - - ReloadLocalPluginsOnChange - - Respect Studio shortcuts when game has focus - - Ruler Color - - Rulers - - RuntimeUndoBehavior - - Script Editor Color Preset - - Script Editor Scrollbar Background Color - - Script Editor Scrollbar Handle Color - - ScriptEditorMenuBorderColor - - ScriptEditorShouldShowPluginMethods - - ScriptTimeoutLength - - Scroll Past Last Line - - Secondary Text Color - - Select Color - - Select/Hover Color - - Selected Menu Item Background Color - - Selected Text Color - - Selection Background Color - - Selection Box Thickness - - Selection Color - - Selection Line Thickness - - Server Audio Behavior - - Set Pivot of Imported Parts - - Show Core GUI in Explorer while Playing - - Show Diagnostics Bar - - Show FileSyncService - - Show Hidden Objects in Explorer - - Show Hover Over - - Show Light Guides - - Show Navigation Labels - - Show Navigation Mesh - - Show Pathfinding Links - - Show Plugin GUI Service in Explorer - - Show Singly Selected Attachment Parent Frame - - Show Whitespace - - Show plus button on hover in Explorer - - ShowCorePackagesInExplorer - - Skip Closing Brackets and Quotes - - String Color - - Tab Width - - Text Color - - Text Wrapping - - Theme - - UI Theme - - Use Bounding Box Move Handles - - Warning Color - - Whitespace Color - StudioAssetService: - superclass: Instance - events: - - OnConvertToPackageResult - - OnPublishPackageResult - - OnSaveToRoblox - - OnUGCSubmitCompleted - properties: [] - StudioAttachment: - superclass: Instance - events: [] - properties: - - AutoHideParent - - IsArrowVisible - - Offset - - SourceAnchorPoint - - TargetAnchorPoint - StudioCallout: - superclass: Instance - events: [] - properties: - - AnchorPoint - - IsArrowVisible - - IsNextVisible - - RowName - - Text - - Title - StudioData: - superclass: Instance - events: [] - properties: - - EnableScriptCollabByDefaultOnLoad - StudioDeviceEmulatorService: - superclass: Instance - events: - - CurrentDeviceIdChanged - - OrientationChanged - - TouchInBoundsChanged - - TouchPositionsChanged - properties: - - HasMultiTouchStarted - - IsMultiTouchEmulationOn - - IsMultiTouchEnabled - - PivotPosition - StudioObjectBase: - superclass: Instance - events: [] - properties: [] - StudioPublishService: - superclass: Instance - events: - - GameNameUpdated - - GamePublishCancelled - - GamePublishFinished - - OnPublishAttempt - - OnSaveOrPublishPlaceToRoblox - properties: - - PublishLocked - StudioScriptDebugEventListener: - superclass: Instance - events: [] - properties: [] - StudioSdkService: - superclass: Instance - events: [] - properties: [] - StudioService: - superclass: Instance - events: - - OnImportFromRoblox - - OnOpenGameSettings - - OnOpenManagePackagePlugin - - OnPluginInstalledFromToolbox - - OnPluginInstalledFromWeb - - OnPublishAsPlugin - - OnSaveToRoblox - - PromptTransformPluginCheckEnable - - SaveLocallyAsComplete - properties: - - ActiveScript - - AlignDraggedObjects - - DraggerSolveConstraints - - DrawConstraintsOnTop - - GridSize - - HoverInstance - - InstalledPluginData - - PivotSnapToGeometry - - RotateIncrement - - ShowConstraintDetails - - StudioLocaleId - - UseLocalSpace - StudioTheme: - superclass: Instance - events: [] - properties: [] - StudioWidget: - superclass: StudioObjectBase - events: [] - properties: [] - StudioWidgetsService: - superclass: Instance - events: [] - properties: [] - StyleBase: - superclass: Instance - events: - - StyleRulesChanged - properties: [] - StyleDerive: - superclass: Instance - events: [] - properties: - - StyleSheet - StyleLink: - superclass: Instance - events: [] - properties: - - StyleSheet - StyleRule: - superclass: StyleBase - events: - - StyleRulePropertyChanged - properties: - - Selector - - SelectorError - StyleSheet: - superclass: StyleBase - events: [] - properties: [] - StylingService: - superclass: Instance - events: [] - properties: [] - SunRaysEffect: - superclass: PostEffect - events: [] - properties: - - Intensity - - Spread - SurfaceAppearance: - superclass: Instance - events: [] - properties: - - AlphaMode - - ColorMap - - MetalnessMap - - NormalMap - - RoughnessMap - - TexturePack - SurfaceGui: - superclass: SurfaceGuiBase - events: [] - properties: - - AlwaysOnTop - - Brightness - - CanvasSize - - ClipsDescendants - - HorizontalCurvature - - LightInfluence - - MaxDistance - - PixelsPerStud - - Shape - - SizingMode - - ToolPunchThroughDistance - - ZOffset - SurfaceGuiBase: - superclass: LayerCollector - events: [] - properties: - - Active - - Adornee - - Face - SurfaceLight: - superclass: Light - events: [] - properties: - - Angle - - Face - - Range - SurfaceSelection: - superclass: PartAdornment - events: [] - properties: - - TargetSurface - SwimController: - superclass: ControllerBase - events: [] - properties: - - AccelerationTime - - PitchMaxTorque - - PitchSpeedFactor - - RollMaxTorque - - RollSpeedFactor - SyncScriptBuilder: - superclass: ScriptBuilder - events: [] - properties: - - CompileTarget - - CoverageInfo - - DebugInfo - - PackAsSource - - RawBytecode - TaskScheduler: - superclass: Instance - events: [] - properties: - - SchedulerDutyCycle - - SchedulerRate - - ThreadPoolConfig - - ThreadPoolSize - Team: - superclass: Instance - events: - - PlayerAdded - - PlayerRemoved - properties: - - AutoAssignable - - AutoColorCharacters - - ChildOrder - - Score - - TeamColor - TeamCreateData: - superclass: Instance - events: [] - properties: [] - TeamCreatePublishService: - superclass: Instance - events: [] - properties: [] - TeamCreateService: - superclass: Instance - events: - - ToggleManageCollaborators - properties: [] - Teams: - superclass: Instance - events: [] - properties: [] - TeleportAsyncResult: - superclass: Instance - events: [] - properties: - - PrivateServerId - - ReservedServerAccessCode - TeleportOptions: - superclass: Instance - events: [] - properties: - - ReservedServerAccessCode - - ServerInstanceId - - ShouldReserveServer - TeleportService: - superclass: Instance - events: - - LocalPlayerArrivedFromTeleport - - MenuTeleportAttempt - - TeleportInitFailed - properties: - - CustomizedTeleportUI - TemporaryCageMeshProvider: - superclass: Instance - events: [] - properties: [] - TemporaryScriptService: - superclass: Instance - events: [] - properties: [] - Terrain: - superclass: BasePart - events: [] - properties: - - Decoration - - GrassLength - - IsSmooth - - LastUsedModificationMethod - - MaterialColors - - MaxExtents - - ShorelinesUpgraded - - SmoothVoxelsUpgraded - - WaterColor - - WaterReflectance - - WaterTransparency - - WaterWaveSize - - WaterWaveSpeed - TerrainDetail: - superclass: Instance - events: [] - properties: - - ColorMap - - Face - - MaterialPattern - - MetalnessMap - - NormalMap - - RoughnessMap - - StudsPerTile - TerrainRegion: - superclass: Instance - events: [] - properties: - - IsSmooth - - SizeInCells - TestService: - superclass: Instance - events: - - ServerCollectConditionalResult - - ServerCollectResult - properties: - - AutoRuns - - Description - - ErrorCount - - ExecuteWithStudioRun - - Is30FpsThrottleEnabled - - IsPhysicsEnvironmentalThrottled - - IsSleepAllowed - - NumberOfPlayers - - SimulateSecondsLag - - TestCount - - Timeout - - WarnCount - TextBox: - superclass: GuiObject - events: - - FocusLost - - Focused - - ReturnPressedFromOnScreenKeyboard - properties: - - ClearTextOnFocus - - ContentText - - CursorPosition - - Font - - FontFace - - FontSize - - LineHeight - - LocalizationMatchIdentifier - - LocalizationMatchedSourceText - - ManualFocusRelease - - MaxVisibleGraphemes - - MultiLine - - OverlayNativeInput - - PlaceholderColor3 - - PlaceholderText - - ReturnKeyType - - RichText - - SelectionStart - - ShowNativeInput - - Text - - TextBounds - - TextColor - - TextColor3 - - TextDirection - - TextEditable - - TextFits - - TextInputType - - TextScaled - - TextSize - - TextStrokeColor3 - - TextStrokeTransparency - - TextTransparency - - TextTruncate - - TextWrap - - TextWrapped - - TextXAlignment - - TextYAlignment - TextBoxService: - superclass: Instance - events: [] - properties: [] - TextButton: - superclass: GuiButton - events: [] - properties: - - ContentText - - Font - - FontFace - - FontSize - - LineHeight - - LocalizationMatchIdentifier - - LocalizationMatchedSourceText - - LocalizedText - - MaxVisibleGraphemes - - RichText - - Text - - TextBounds - - TextColor - - TextColor3 - - TextDirection - - TextFits - - TextScaled - - TextSize - - TextStrokeColor3 - - TextStrokeTransparency - - TextTransparency - - TextTruncate - - TextWrap - - TextWrapped - - TextXAlignment - - TextYAlignment - TextChannel: - superclass: Instance - events: - - MessageReceived - properties: [] - TextChatCommand: - superclass: Instance - events: - - Triggered - properties: - - AutocompleteVisible - - Enabled - - PrimaryAlias - - SecondaryAlias - TextChatConfigurations: - superclass: Instance - events: [] - properties: [] - TextChatMessage: - superclass: Instance - events: [] - properties: - - BubbleChatMessageProperties - - MessageId - - Metadata - - PrefixText - - Status - - Text - - TextChannel - - TextSource - - Timestamp - - Translation - TextChatMessageProperties: - superclass: Instance - events: [] - properties: - - PrefixText - - Text - - Translation - TextChatService: - superclass: Instance - events: - - BubbleDisplayed - - MessageReceived - - SendingMessage - properties: - - ChatTranslationEnabled - - ChatTranslationFTUXShown - - ChatTranslationToggleEnabled - - ChatVersion - - CreateDefaultCommands - - CreateDefaultTextChannels - TextFilterResult: - superclass: Instance - events: [] - properties: [] - TextFilterTranslatedResult: - superclass: Instance - events: [] - properties: - - SourceLanguage - - SourceText - TextLabel: - superclass: GuiLabel - events: [] - properties: - - ContentText - - Font - - FontFace - - FontSize - - LineHeight - - LocalizationMatchIdentifier - - LocalizationMatchedSourceText - - LocalizedText - - MaxVisibleGraphemes - - RichText - - Text - - TextBounds - - TextColor - - TextColor3 - - TextDirection - - TextFits - - TextScaled - - TextSize - - TextStrokeColor3 - - TextStrokeTransparency - - TextTransparency - - TextTruncate - - TextWrap - - TextWrapped - - TextXAlignment - - TextYAlignment - TextService: - superclass: Instance - events: [] - properties: [] - TextSource: - superclass: Instance - events: [] - properties: - - CanSend - - UserId - Texture: - superclass: Decal - events: [] - properties: - - OffsetStudsU - - OffsetStudsV - - StudsPerTileU - - StudsPerTileV - TextureGenerationMeshHandler: - superclass: Instance - events: [] - properties: [] - ThirdPartyUserService: - superclass: Instance - events: - - ActiveUserSignedOut - properties: [] - ThreadState: - superclass: Instance - events: [] - properties: - - FrameCount - - Populated - - ThreadId - - ThreadName - TimerService: - superclass: Instance - events: [] - properties: [] - ToastNotificationService: - superclass: Instance - events: [] - properties: [] - Tool: - superclass: BackpackItem - events: - - Activated - - Deactivated - - Equipped - - Unequipped - properties: - - CanBeDropped - - Enabled - - Grip - - GripForward - - GripPos - - GripRight - - GripUp - - ManualActivationOnly - - RequiresHandle - - ToolTip - Torque: - superclass: Constraint - events: [] - properties: - - RelativeTo - - Torque - TorsionSpringConstraint: - superclass: Constraint - events: [] - properties: - - Coils - - CurrentAngle - - Damping - - LimitEnabled - - LimitsEnabled - - MaxAngle - - MaxTorque - - Radius - - Restitution - - Stiffness - TotalCountTimeIntervalItem: - superclass: StatsItem - events: [] - properties: [] - TouchInputService: - superclass: Instance - events: [] - properties: [] - TouchTransmitter: - superclass: Instance - events: [] - properties: [] - TracerService: - superclass: Instance - events: [] - properties: [] - TrackerLodController: - superclass: Instance - events: - - UpdateState - properties: - - AudioMode - - VideoExtrapolationMode - - VideoLodMode - - VideoMode - TrackerStreamAnimation: - superclass: Instance - events: [] - properties: [] - Trail: - superclass: Instance - events: [] - properties: - - Attachment0 - - Attachment1 - - Brightness - - Color - - Enabled - - FaceCamera - - Lifetime - - LightEmission - - LightInfluence - - MaxLength - - MinLength - - Texture - - TextureLength - - TextureMode - - Transparency - - WidthScale - Translator: - superclass: Instance - events: [] - properties: - - LocaleId - TremoloSoundEffect: - superclass: SoundEffect - events: [] - properties: - - Depth - - Duty - - Frequency - TriangleMeshPart: - superclass: BasePart - events: [] - properties: - - CollisionFidelity - - FluidFidelity - - MeshSize - TrussPart: - superclass: BasePart - events: [] - properties: - - Style - TutorialService: - superclass: Instance - events: [] - properties: [] - Tween: - superclass: TweenBase - events: [] - properties: - - Instance - - TweenInfo - TweenBase: - superclass: Instance - events: - - Completed - properties: - - PlaybackState - TweenService: - superclass: Instance - events: [] - properties: [] - UGCAvatarService: - superclass: Instance - events: [] - properties: [] - UGCValidationService: - superclass: Instance - events: [] - properties: [] - UIAspectRatioConstraint: - superclass: UIConstraint - events: [] - properties: - - AspectRatio - - AspectType - - DominantAxis - UIBase: - superclass: Instance - events: [] - properties: [] - UIComponent: - superclass: UIBase - events: [] - properties: [] - UIConstraint: - superclass: UIComponent - events: [] - properties: [] - UICorner: - superclass: UIComponent - events: [] - properties: - - CornerRadius - UIFlexItem: - superclass: UIComponent - events: [] - properties: - - FlexMode - - GrowRatio - - ItemLineAlignment - - ShrinkRatio - UIGradient: - superclass: UIComponent - events: [] - properties: - - Color - - Enabled - - Offset - - Rotation - - Transparency - UIGridLayout: - superclass: UIGridStyleLayout - events: [] - properties: - - AbsoluteCellCount - - AbsoluteCellSize - - CellPadding - - CellSize - - FillDirectionMaxCells - - StartCorner - UIGridStyleLayout: - superclass: UILayout - events: [] - properties: - - AbsoluteContentSize - - FillDirection - - HorizontalAlignment - - SortOrder - - VerticalAlignment - UILayout: - superclass: UIComponent - events: [] - properties: [] - UIListLayout: - superclass: UIGridStyleLayout - events: [] - properties: - - HorizontalFlex - - ItemLineAlignment - - Padding - - VerticalFlex - - Wraps - UIPadding: - superclass: UIComponent - events: [] - properties: - - PaddingBottom - - PaddingLeft - - PaddingRight - - PaddingTop - UIPageLayout: - superclass: UIGridStyleLayout - events: - - PageEnter - - PageLeave - - Stopped - properties: - - Animated - - Circular - - CurrentPage - - EasingDirection - - EasingStyle - - GamepadInputEnabled - - Padding - - ScrollWheelInputEnabled - - TouchInputEnabled - - TweenTime - UIScale: - superclass: UIComponent - events: [] - properties: - - Scale - UISizeConstraint: - superclass: UIConstraint - events: [] - properties: - - MaxSize - - MinSize - UIStroke: - superclass: UIComponent - events: [] - properties: - - ApplyStrokeMode - - Color - - Enabled - - LineJoinMode - - Thickness - - Transparency - UITableLayout: - superclass: UIGridStyleLayout - events: [] - properties: - - FillEmptySpaceColumns - - FillEmptySpaceRows - - MajorAxis - - Padding - UITextSizeConstraint: - superclass: UIConstraint - events: [] - properties: - - MaxTextSize - - MinTextSize - UnionOperation: - superclass: PartOperation - events: [] - properties: [] - UniversalConstraint: - superclass: Constraint - events: [] - properties: - - LimitsEnabled - - MaxAngle - - Radius - - Restitution - UnreliableRemoteEvent: - superclass: BaseRemoteEvent - events: - - OnClientEvent - - OnServerEvent - properties: [] - UnvalidatedAssetService: - superclass: Instance - events: [] - properties: [] - UserGameSettings: - superclass: Instance - events: - - FullscreenChanged - - PerformanceStatsVisibleChanged - - StudioModeChanged - properties: - - AllTutorialsDisabled - - CameraMode - - CameraYInverted - - ChatTranslationEnabled - - ChatTranslationFTUXShown - - ChatTranslationToggleEnabled - - ChatVisible - - ComputerCameraMovementMode - - ComputerMovementMode - - ControlMode - - DefaultCameraID - - Fullscreen - - GamepadCameraSensitivity - - GraphicsQualityLevel - - HasEverUsedVR - - IsUsingCameraYInverted - - IsUsingGamepadCameraSensitivity - - MasterVolume - - MicroProfilerWebServerEnabled - - MicroProfilerWebServerIP - - MicroProfilerWebServerPort - - MouseSensitivity - - MouseSensitivityFirstPerson - - MouseSensitivityThirdPerson - - OnScreenProfilerEnabled - - OnboardingsCompleted - - PerformanceStatsVisible - - PlayerHeight - - PreferredTransparency - - RCCProfilerRecordFrameRate - - RCCProfilerRecordTimeFrame - - ReducedMotion - - RotationType - - SavedQualityLevel - - StartMaximized - - StartScreenPosition - - StartScreenSize - - TouchCameraMovementMode - - TouchMovementMode - - UiNavigationKeyBindEnabled - - UsedCoreGuiIsVisibleToggle - - UsedCustomGuiIsVisibleToggle - - UsedHideHudShortcut - - VRComfortSetting - - VREnabled - - VRRotationIntensity - - VRSafetyBubbleMode - - VRSmoothRotationEnabled - - VRSmoothRotationEnabledCustomOption - - VRThirdPersonFollowCamEnabled - - VRThirdPersonFollowCamEnabledCustomOption - - VignetteEnabled - - VignetteEnabledCustomOption - UserInputService: - superclass: Instance - events: - - DeviceAccelerationChanged - - DeviceGravityChanged - - DeviceRotationChanged - - GamepadConnected - - GamepadDisconnected - - InputBegan - - InputChanged - - InputEnded - - JumpRequest - - LastInputTypeChanged - - PointerAction - - StatusBarTapped - - TextBoxFocusReleased - - TextBoxFocused - - TouchEnded - - TouchLongPress - - TouchMoved - - TouchPan - - TouchPinch - - TouchRotate - - TouchStarted - - TouchSwipe - - TouchTap - - TouchTapInWorld - - UserCFrameChanged - - WindowFocusReleased - - WindowFocused - properties: - - AccelerometerEnabled - - BottomBarSize - - GamepadEnabled - - GyroscopeEnabled - - KeyboardEnabled - - LegacyInputEventsEnabled - - ModalEnabled - - MouseBehavior - - MouseDeltaSensitivity - - MouseEnabled - - MouseIcon - - MouseIconEnabled - - NavBarSize - - OnScreenKeyboardAnimationDuration - - OnScreenKeyboardPosition - - OnScreenKeyboardSize - - OnScreenKeyboardVisible - - OverrideMouseIconBehavior - - RightBarSize - - StatusBarSize - - TouchEnabled - - UserHeadCFrame - - VREnabled - UserNotification: - superclass: Instance - events: [] - properties: - - Id - - Payload - UserNotificationPayload: - superclass: Instance - events: [] - properties: - - AnalyticsData - - JoinExperience - - MessageId - - Type - UserNotificationPayloadAnalyticsData: - superclass: Instance - events: [] - properties: - - Category - UserNotificationPayloadJoinExperience: - superclass: Instance - events: [] - properties: - - LaunchData - UserNotificationPayloadParameterValue: - superclass: Instance - events: [] - properties: - - Int64Value - - StringValue - UserService: - superclass: Instance - events: [] - properties: [] - UserSettings: - superclass: GenericSettings - events: [] - properties: [] - UserStorageService: - superclass: LocalStorageService - events: [] - properties: [] - VRService: - superclass: Instance - events: - - LaserPointerTriggered - - NavigationRequested - - TouchpadModeChanged - - UserCFrameChanged - - UserCFrameEnabled - properties: - - AutomaticScaling - - DidPointerHit - - FadeOutViewOnCollision - - GuiInputUserCFrame - - LaserDistance - - PointerHitCFrame - - QuestASWState - - QuestDisplayRefreshRate - - ThirdPersonFollowCamEnabled - - VRDeviceAvailable - - VRDeviceName - - VREnabled - - VRSessionState - VRStatusService: - superclass: Instance - events: [] - properties: [] - ValueBase: - superclass: Instance - events: [] - properties: [] - Vector3Curve: - superclass: Instance - events: [] - properties: [] - Vector3Value: - superclass: ValueBase - events: - - Changed - - changed - properties: - - Value - VectorForce: - superclass: Constraint - events: [] - properties: - - ApplyAtCenterOfMass - - Force - - RelativeTo - VehicleController: - superclass: Controller - events: [] - properties: [] - VehicleSeat: - superclass: BasePart - events: [] - properties: - - AreHingesDetected - - Disabled - - HeadsUpDisplay - - MaxSpeed - - Occupant - - Steer - - SteerFloat - - Throttle - - ThrottleFloat - - Torque - - TurnSpeed - VelocityMotor: - superclass: JointInstance - events: [] - properties: - - CurrentAngle - - DesiredAngle - - Hole - - MaxVelocity - VersionControlService: - superclass: Instance - events: [] - properties: - - ScriptCollabEnabled - VideoCaptureService: - superclass: Instance - events: - - DevicesChanged - - Error - - Started - - Stopped - properties: - - Active - - CameraID - VideoFrame: - superclass: GuiObject - events: - - DidLoop - - Ended - - Loaded - - Paused - - Played - properties: - - IsLoaded - - Looped - - Playing - - Resolution - - TimeLength - - TimePosition - - Video - - Volume - VideoService: - superclass: Instance - events: [] - properties: [] - ViewportFrame: - superclass: GuiObject - events: [] - properties: - - Ambient - - CurrentCamera - - ImageColor3 - - ImageTransparency - - IsMirrored - - LightColor - - LightDirection - VirtualInputManager: - superclass: Instance - events: - - PlaybackCompleted - - RecordingCompleted - properties: - - AdditionalLuaState - VirtualUser: - superclass: Instance - events: [] - properties: [] - VisibilityCheckDispatcher: - superclass: Instance - events: [] - properties: [] - VisibilityService: - superclass: Instance - events: [] - properties: [] - Visit: - superclass: Instance - events: [] - properties: [] - VoiceChatInternal: - superclass: Instance - events: - - LocalPlayerModerated - - ParticipantsStateChanged - - PlayerMicActivitySignalChange - - StateChanged - properties: - - VoiceChatState - VoiceChatService: - superclass: Instance - events: [] - properties: - - EnableDefaultVoice - - UseAudioApi - - UseNewAudioApi - - UseNewControlPaths - - UseNewJoinFlow - - VoiceChatEnabledForPlaceOnRcc - - VoiceChatEnabledForUniverseOnRcc - WedgePart: - superclass: FormFactorPart - events: [] - properties: [] - Weld: - superclass: JointInstance - events: [] - properties: [] - WeldConstraint: - superclass: Instance - events: [] - properties: - - Active - - Enabled - - Part0 - - Part1 - Wire: - superclass: Instance - events: [] - properties: - - Connected - - SourceInstance - - SourceName - - TargetInstance - - TargetName - WireframeHandleAdornment: - superclass: HandleAdornment - events: [] - properties: - - Scale - Workspace: - superclass: WorldRoot - events: - - PersistentLoaded - properties: - - AirDensity - - AllowThirdPartySales - - AvatarUnificationMode - - ClientAnimatorThrottling - - CurrentCamera - - DistributedGameTime - - EditorLiveScripting - - FallenPartsDestroyHeight - - FilteringEnabled - - FluidForces - - GlobalWind - - Gravity - - IKControlConstraintSupport - - InterpolationThrottling - - MeshPartHeadsAndAccessories - - ModelStreamingBehavior - - PhysicsSteppingMethod - - PlayerCharacterDestroyBehavior - - PrimalPhysicsSolver - - RejectCharacterDeletions - - ReplicateInstanceDestroySetting - - Retargeting - - SignalBehavior - - StreamOutBehavior - - StreamingEnabled - - StreamingIntegrityMode - - StreamingMinRadius - - StreamingTargetRadius - - Terrain - - TouchesUseCollisionGroups - WorldModel: - superclass: WorldRoot - events: [] - properties: [] - WorldRoot: - superclass: Model - events: [] - properties: [] - WrapLayer: - superclass: BaseWrap - events: [] - properties: - - AutoSkin - - BindOffset - - Color - - DebugMode - - Enabled - - Order - - Puffiness - - ReferenceMeshId - - ReferenceOrigin - - ReferenceOriginWorld - - ShrinkFactor - WrapTarget: - superclass: BaseWrap - events: [] - properties: - - Color - - DebugMode - - Stiffness From 00c51a50bc3b7b3e565a0edb1740ebf35b82e55c Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 26 Mar 2025 19:16:37 +0000 Subject: [PATCH 12/95] Add ReactRoblox Signed-off-by: GitHub --- wally.lock | 22 +++++++++++++++++++++- wally.toml | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/wally.lock b/wally.lock index 4c543043..6a1207dc 100644 --- a/wally.lock +++ b/wally.lock @@ -42,11 +42,31 @@ name = "jsdotlua/number" version = "1.2.7" dependencies = [] +[[package]] +name = "jsdotlua/promise" +version = "3.5.2" +dependencies = [] + [[package]] name = "jsdotlua/react" version = "17.2.1" dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"], ["shared", "jsdotlua/shared@17.2.1"]] +[[package]] +name = "jsdotlua/react-reconciler" +version = "17.2.1" +dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"], ["promise", "jsdotlua/promise@3.5.2"], ["react", "jsdotlua/react@17.2.1"], ["scheduler", "jsdotlua/scheduler@17.2.1"], ["shared", "jsdotlua/shared@17.2.1"]] + +[[package]] +name = "jsdotlua/react-roblox" +version = "17.2.1" +dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"], ["react", "jsdotlua/react@17.2.1"], ["react-reconciler", "jsdotlua/react-reconciler@17.2.1"], ["scheduler", "jsdotlua/scheduler@17.2.1"], ["shared", "jsdotlua/shared@17.2.1"]] + +[[package]] +name = "jsdotlua/scheduler" +version = "17.2.1" +dependencies = [["luau-polyfill", "jsdotlua/luau-polyfill@1.2.7"], ["shared", "jsdotlua/shared@17.2.1"]] + [[package]] name = "jsdotlua/shared" version = "17.2.1" @@ -75,4 +95,4 @@ dependencies = [] [[package]] name = "ryanlua/satchel" version = "1.3.1" -dependencies = [["React", "jsdotlua/react@17.2.1"], ["TopbarPlus", "legitatx/topbarplus@3.0.5"]] +dependencies = [["React", "jsdotlua/react@17.2.1"], ["ReactRoblox", "jsdotlua/react-roblox@17.2.1"], ["TopbarPlus", "legitatx/topbarplus@3.0.5"]] diff --git a/wally.toml b/wally.toml index 1e82d009..a7d9d712 100644 --- a/wally.toml +++ b/wally.toml @@ -13,4 +13,5 @@ include = ["src", "src/*", "default.project.json", "wally.lock", "wally.toml"] [dependencies] React = "jsdotlua/react@17.2.1" +ReactRoblox = "jsdotlua/react-roblox@17.2.1" TopbarPlus = "legitatx/topbarplus@3.0.5" From 0e65b9dc275e14abd8df6a4292730ec39e61b002 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 26 Mar 2025 20:23:12 +0000 Subject: [PATCH 13/95] Add storybook Signed-off-by: GitHub --- src/Components/Slot.luau | 30 + src/Stories/Slot.story.luau | 15 + src/init.luau | 2172 +---------------------------------- 3 files changed, 47 insertions(+), 2170 deletions(-) create mode 100644 src/Components/Slot.luau create mode 100644 src/Stories/Slot.story.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau new file mode 100644 index 00000000..4f064354 --- /dev/null +++ b/src/Components/Slot.luau @@ -0,0 +1,30 @@ +local React = require("../Packages/React") + +export type Props = { + toolName: string, + slotNumber: number, +} + +local function SlotButton(props: Props) + return React.createElement( + "TextButton", + { + Size = UDim2.new(0, 50, 0, 50), + Text = props.toolName, + }, + { + React.createElement("UICorner", { + CornerRadius = UDim.new(0, 8), + }), + }, + React.createElement("TextLabel"), + { + Size = UDim2.new(1, 0, 1, 0), + Text = props.slotNumber, + TextXAlignment = Enum.TextXAlignment.Left, + TextYAlignment = Enum.TextYAlignment.Top, + } + ) +end + +return SlotButton diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau new file mode 100644 index 00000000..4e1ebfc0 --- /dev/null +++ b/src/Stories/Slot.story.luau @@ -0,0 +1,15 @@ +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Slot = require("../Components/Slot") + +return { + summary = "A generic button component that can be used anywhere", + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(Slot, { + toolName = "Tool ", + }) + end, +} diff --git a/src/init.luau b/src/init.luau index 6488fcfa..f4098adb 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,2171 +1,3 @@ ---!strict ---!nolint DeprecatedApi +local module = {} ---[[ - Name: Satchel - Version: 1.3.1 - Description: Satchel is a modern open-source alternative to Roblox's default backpack. Satchel aims to be more customizable and easier to use than the default backpack while still having a "vanilla" feel. - By: @WinnersTakesAll on Roblox & @RyanLua on GitHub - - Acknowledgements (@Roblox): - @OnlyTwentyCharacters, @SolarCrane -- For creating the CoreGui script - @thebrickplanetboy -- For allowing me to republish his fork of the backpack system. - @ForeverHD -- Making Topbar Plus and open-sourcing it for everyone to use - - DevForum: https://devforum.roblox.com/t/2451549 -]] - ---[[ - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at Mozilla Public License Version 2.0. -]] - -local ContextActionService = game:GetService("ContextActionService") -local TextChatService = game:GetService("TextChatService") -local UserInputService = game:GetService("UserInputService") -local StarterGui = game:GetService("StarterGui") -local GuiService = game:GetService("GuiService") -local RunService = game:GetService("RunService") -local VRService = game:GetService("VRService") -local Players = game:GetService("Players") -local PlayerGui: Instance = Players.LocalPlayer:WaitForChild("PlayerGui") - -local BackpackScript = {} - -BackpackScript.OpenClose = nil :: any -- Function to toggle open/close -BackpackScript.IsOpen = false :: boolean -BackpackScript.StateChanged = Instance.new("BindableEvent") :: BindableEvent -- Fires after any open/close, passes IsNowOpen - -BackpackScript.ModuleName = "Backpack" :: string -BackpackScript.KeepVRTopbarOpen = true :: boolean -BackpackScript.VRIsExclusive = true :: boolean -BackpackScript.VRClosesNonExclusive = true :: boolean - -BackpackScript.BackpackEmpty = Instance.new("BindableEvent") :: BindableEvent -- Fires when the backpack is empty (no tools -BackpackScript.BackpackEmpty.Name = "BackpackEmpty" - -BackpackScript.BackpackItemAdded = Instance.new("BindableEvent") :: BindableEvent -- Fires when an item is added to the backpack -BackpackScript.BackpackItemAdded.Name = "BackpackAdded" - -BackpackScript.BackpackItemRemoved = Instance.new("BindableEvent") :: BindableEvent -- Fires when an item is removed from the backpack -BackpackScript.BackpackItemRemoved.Name = "BackpackRemoved" - -local targetScript: ModuleScript = script - --- Constants -- -local PREFERRED_TRANSPARENCY: number = GuiService.PreferredTransparency or 1 - --- Legacy behavior for backpack -local LEGACY_EDGE_ENABLED: boolean = not targetScript:GetAttribute("OutlineEquipBorder") or false -- Instead of the edge selection being inset, it will be on the outlined. LEGACY_PADDING must be enabled for this to work or this will do nothing -local LEGACY_PADDING_ENABLED: boolean = targetScript:GetAttribute("InsetIconPadding") -- Instead of the icon taking up the full slot, it will be padded on each side. - --- Background -local BACKGROUND_TRANSPARENCY_DEFAULT: number = targetScript:GetAttribute("BackgroundTransparency") or 0.3 -local BACKGROUND_TRANSPARENCY: number = BACKGROUND_TRANSPARENCY_DEFAULT * PREFERRED_TRANSPARENCY -local BACKGROUND_CORNER_RADIUS: UDim = UDim.new(0, 8) -local BACKGROUND_COLOR: Color3 = targetScript:GetAttribute("BackgroundColor3") - or Color3.new(25 / 255, 27 / 255, 29 / 255) - --- Slots -local SLOT_EQUIP_COLOR: Color3 = targetScript:GetAttribute("EquipBorderColor3") or Color3.new(0 / 255, 162 / 255, 1) -local SLOT_LOCKED_TRANSPARENCY_DEFAULT: number = targetScript:GetAttribute("BackgroundTransparency") or 0.3 -- Locked means undraggable -local SLOT_LOCKED_TRANSPARENCY: number = SLOT_LOCKED_TRANSPARENCY_DEFAULT * PREFERRED_TRANSPARENCY -local SLOT_EQUIP_THICKNESS: number = targetScript:GetAttribute("EquipBorderSizePixel") or 5 -- Relative -local SLOT_CORNER_RADIUS: UDim = targetScript:GetAttribute("CornerRadius") or UDim.new(0, 8) -local SLOT_BORDER_COLOR: Color3 = Color3.new(1, 1, 1) -- Appears when dragging - --- Tooltips -local TOOLTIP_CORNER_RADIUS: UDim = SLOT_CORNER_RADIUS - UDim.new(0, 5) or UDim.new(0, 3) -local TOOLTIP_BACKGROUND_COLOR: Color3 = targetScript:GetAttribute("BackgroundColor3") - or Color3.new(25 / 255, 27 / 255, 29 / 255) -local TOOLTIP_PADDING: number = 4 -local TOOLTIP_HEIGHT: number = 16 -local TOOLTIP_OFFSET: number = -5 -- From to - --- Topbar icons -local ARROW_IMAGE_OPEN: string = "rbxasset://textures/ui/TopBar/inventoryOn.png" -local ARROW_IMAGE_CLOSE: string = "rbxasset://textures/ui/TopBar/inventoryOff.png" --- local ARROW_HOTKEY: { Enum.KeyCode } = { Enum.KeyCode.Backquote, Enum.KeyCode.DPadUp } --TODO: Hookup '~' too? - --- Hotbar slots -local HOTBAR_SLOTS_FULL: number = 10 -- 10 is the max -local HOTBAR_SLOTS_VR: number = 6 -local HOTBAR_SLOTS_MINI: number = 6 -- Mobile gets 6 slots instead of default 3 it had before -local HOTBAR_SLOTS_WIDTH_CUTOFF: number = 1024 -- Anything smaller is MINI - -local INVENTORY_ROWS_FULL: number = 4 -local INVENTORY_ROWS_VR: number = 3 -local INVENTORY_ROWS_MINI: number = 2 -local INVENTORY_HEADER_SIZE: number = 40 -local INVENTORY_ARROWS_BUFFER_VR: number = 40 - --- Text -local TEXT_COLOR: Color3 = targetScript:GetAttribute("TextColor3") or Color3.new(1, 1, 1) -local TEXT_STROKE_TRANSPARENCY: number = targetScript:GetAttribute("TextStrokeTransparency") or 0.5 -local TEXT_STROKE_COLOR: Color3 = targetScript:GetAttribute("TextStrokeColor3") or Color3.new(0, 0, 0) - --- Search -local SEARCH_BACKGROUND_COLOR: Color3 = Color3.new(25 / 255, 27 / 255, 29 / 255) -local SEARCH_BACKGROUND_TRANSPARENCY_DEFAULT: number = 0.2 -local SEARCH_BACKGROUND_TRANSPARENCY: number = SEARCH_BACKGROUND_TRANSPARENCY_DEFAULT * PREFERRED_TRANSPARENCY -local SEARCH_BORDER_COLOR: Color3 = Color3.new(1, 1, 1) -local SEARCH_BORDER_TRANSPARENCY: number = 0.8 -local SEARCH_BORDER_THICKNESS: number = 1 -local SEARCH_TEXT_PLACEHOLDER: string = "Search" -local SEARCH_TEXT_OFFSET: number = 8 -local SEARCH_TEXT: string = "" -local SEARCH_CORNER_RADIUS: UDim = UDim.new(0, 3) -local SEARCH_IMAGE_X: string = "rbxasset://textures/ui/InspectMenu/x.png" -local SEARCH_BUFFER_PIXELS: number = 5 -local SEARCH_WIDTH_PIXELS: number = 200 - --- Misc -local FONT_FAMILY: Font = targetScript:GetAttribute("FontFace") - or Font.new("rbxasset://fonts/families/BuilderSans.json") -local FONT_SIZE: number = targetScript:GetAttribute("TextSize") or 16 -local DROP_HOTKEY_VALUE: number = Enum.KeyCode.Backspace.Value -local ZERO_KEY_VALUE: number = Enum.KeyCode.Zero.Value -local DOUBLE_CLICK_TIME: number = 0.5 -local ICON_BUFFER_PIXELS: number = 5 -local ICON_SIZE_PIXELS: number = 60 - -local MOUSE_INPUT_TYPES: { [Enum.UserInputType]: boolean } = - { -- These are the input types that will be used for mouse -- [[ADDED]], Optional - [Enum.UserInputType.MouseButton1] = true, - [Enum.UserInputType.MouseButton2] = true, - [Enum.UserInputType.MouseButton3] = true, - [Enum.UserInputType.MouseMovement] = true, - [Enum.UserInputType.MouseWheel] = true, - } - -local GAMEPAD_INPUT_TYPES: { [Enum.UserInputType]: boolean } = - { -- These are the input types that will be used for gamepad - [Enum.UserInputType.Gamepad1] = true, - [Enum.UserInputType.Gamepad2] = true, - [Enum.UserInputType.Gamepad3] = true, - [Enum.UserInputType.Gamepad4] = true, - [Enum.UserInputType.Gamepad5] = true, - [Enum.UserInputType.Gamepad6] = true, - [Enum.UserInputType.Gamepad7] = true, - [Enum.UserInputType.Gamepad8] = true, - } - --- Topbar logic -local BackpackEnabled: boolean = true - -local Icon: any = require(script.Packages:WaitForChild("TopbarPlus")) - -local inventoryIcon: any = Icon.new() - :setName("Inventory") - :setImage(ARROW_IMAGE_OPEN, "Selected") - :setImage(ARROW_IMAGE_CLOSE, "Deselected") - :setImageScale(1) - :setCaption("Inventory") - :bindToggleKey(Enum.KeyCode.Backquote) - :autoDeselect(false) - :setOrder(-1) - -inventoryIcon.toggled:Connect(function(): () - if not GuiService.MenuIsOpen then - BackpackScript.OpenClose() - end -end) - -local BackpackGui: ScreenGui = Instance.new("ScreenGui") -BackpackGui.DisplayOrder = 120 -BackpackGui.IgnoreGuiInset = true -BackpackGui.ResetOnSpawn = false -BackpackGui.Name = "BackpackGui" -BackpackGui.Parent = PlayerGui - -local IsTenFootInterface: boolean = GuiService:IsTenFootInterface() -if IsTenFootInterface then - ICON_SIZE_PIXELS = 100 - FONT_SIZE = 24 -end - -local GamepadActionsBound: boolean = false - -local IS_PHONE: boolean = UserInputService.TouchEnabled - and workspace.CurrentCamera.ViewportSize.X < HOTBAR_SLOTS_WIDTH_CUTOFF - -local Player: Player = Players.LocalPlayer - -local MainFrame: Frame = nil -local HotbarFrame: Frame = nil -local InventoryFrame: Frame = nil -local VRInventorySelector: any = nil -local ScrollingFrame: ScrollingFrame = nil -local UIGridFrame: Frame = nil -local UIGridLayout: UIGridLayout = nil -local ScrollUpInventoryButton: any = nil -local ScrollDownInventoryButton: any = nil -local changeToolFunc: any = nil - -local Character: Model = Player.Character or Player.CharacterAdded:Wait() -local Humanoid: any = Character:WaitForChild("Humanoid") -local Backpack: Instance = Player:WaitForChild("Backpack") - -local Slots = {} -- List of all Slots by index -local LowestEmptySlot: any = nil -local SlotsByTool = {} -- Map of Tools to their assigned Slots -local HotkeyFns = {} -- Map of KeyCode values to their assigned behaviors -local Dragging: { boolean } = {} -- Only used to check if anything is being dragged, to disable other input -local FullHotbarSlots: number = 0 -- Now being used to also determine whether or not LB and RB on the gamepad are enabled. -local ActiveHopper = nil -- NOTE: HopperBin -local StarterToolFound: boolean = false -- Special handling is required for the gear currently equipped on the site -local WholeThingEnabled: boolean = false -local TextBoxFocused: boolean = false -- ANY TextBox, not just the search box -local ViewingSearchResults: boolean = false -- If the results of a search are currently being viewed --- local HotkeyStrings = {} -- Used for eating/releasing hotkeys -local CharConns: { RBXScriptConnection } = {} -- Holds character Connections to be cleared later -local GamepadEnabled: boolean = false -- determines if our gui needs to be gamepad friendly - -local IsVR: boolean = VRService.VREnabled -- Are we currently using a VR device? -local NumberOfHotbarSlots: number = IsVR and HOTBAR_SLOTS_VR or (IS_PHONE and HOTBAR_SLOTS_MINI or HOTBAR_SLOTS_FULL) -- Number of slots shown at the bottom -local NumberOfInventoryRows: number = IsVR and INVENTORY_ROWS_VR - or (IS_PHONE and INVENTORY_ROWS_MINI or INVENTORY_ROWS_FULL) -- How many rows in the popped-up inventory -local BackpackPanel = nil -local lastEquippedSlot: any = nil - -local function EvaluateBackpackPanelVisibility(enabled: boolean): boolean - return enabled and inventoryIcon.enabled and BackpackEnabled and VRService.VREnabled -end - -local function ShowVRBackpackPopup(): () - if BackpackPanel and EvaluateBackpackPanelVisibility(true) then - BackpackPanel:ForceShowForSeconds(2) - end -end - -local function FindLowestEmpty(): number? - for i: number = 1, NumberOfHotbarSlots do - local slot: any = Slots[i] - if not slot.Tool then - return slot - end - end - return nil -end - -local function isInventoryEmpty(): boolean - for i: number = NumberOfHotbarSlots + 1, #Slots do - local slot: any = Slots[i] - if slot and slot.Tool then - return false - end - end - return true -end - -BackpackScript.IsInventoryEmpty = isInventoryEmpty - -local function UseGazeSelection(): boolean - return false -- disabled in new VR system -end - -local function AdjustHotbarFrames(): () - local inventoryOpen: boolean = InventoryFrame.Visible -- (Show all) - local visualTotal: number = inventoryOpen and NumberOfHotbarSlots or FullHotbarSlots - local visualIndex: number = 0 - - for i: number = 1, NumberOfHotbarSlots do - local slot: any = Slots[i] - if slot.Tool or inventoryOpen then - visualIndex = visualIndex + 1 - slot:Readjust(visualIndex, visualTotal) - slot.Frame.Visible = true - else - slot.Frame.Visible = false - end - end -end - -local function UpdateScrollingFrameCanvasSize(): () - local countX: number = math.floor(ScrollingFrame.AbsoluteSize.X / (ICON_SIZE_PIXELS + ICON_BUFFER_PIXELS)) - local maxRow: number = math.ceil((#UIGridFrame:GetChildren() - 1) / countX) - local canvasSizeY: number = maxRow * (ICON_SIZE_PIXELS + ICON_BUFFER_PIXELS) + ICON_BUFFER_PIXELS - ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, canvasSizeY) -end - -local function AdjustInventoryFrames(): () - for i: number = NumberOfHotbarSlots + 1, #Slots do - local slot: any = Slots[i] - slot.Frame.LayoutOrder = slot.Index - slot.Frame.Visible = (slot.Tool ~= nil) - end - UpdateScrollingFrameCanvasSize() -end - -local function UpdateBackpackLayout(): () - HotbarFrame.Size = UDim2.new( - 0, - ICON_BUFFER_PIXELS + (NumberOfHotbarSlots * (ICON_SIZE_PIXELS + ICON_BUFFER_PIXELS)), - 0, - ICON_BUFFER_PIXELS + ICON_SIZE_PIXELS + ICON_BUFFER_PIXELS - ) - HotbarFrame.Position = UDim2.new(0.5, -HotbarFrame.Size.X.Offset / 2, 1, -HotbarFrame.Size.Y.Offset) - InventoryFrame.Size = UDim2.new( - 0, - HotbarFrame.Size.X.Offset, - 0, - (HotbarFrame.Size.Y.Offset * NumberOfInventoryRows) - + INVENTORY_HEADER_SIZE - + (IsVR and 2 * INVENTORY_ARROWS_BUFFER_VR or 0) - ) - InventoryFrame.Position = UDim2.new( - 0.5, - -InventoryFrame.Size.X.Offset / 2, - 1, - HotbarFrame.Position.Y.Offset - InventoryFrame.Size.Y.Offset - ) - - ScrollingFrame.Size = UDim2.new( - 1, - ScrollingFrame.ScrollBarThickness + 1, - 1, - -INVENTORY_HEADER_SIZE - (IsVR and 2 * INVENTORY_ARROWS_BUFFER_VR or 0) - ) - ScrollingFrame.Position = UDim2.new(0, 0, 0, INVENTORY_HEADER_SIZE + (IsVR and INVENTORY_ARROWS_BUFFER_VR or 0)) - AdjustHotbarFrames() - AdjustInventoryFrames() -end - -local function Clamp(low: number, high: number, num: number): number - return math.min(high, math.max(low, num)) -end - -local function CheckBounds(guiObject: GuiObject, x: number, y: number): boolean - local pos: Vector2 = guiObject.AbsolutePosition - local size: Vector2 = guiObject.AbsoluteSize - return (x > pos.X and x <= pos.X + size.X and y > pos.Y and y <= pos.Y + size.Y) -end - -local function GetOffset(guiObject: GuiObject, point: Vector2): number - local centerPoint: Vector2 = guiObject.AbsolutePosition + (guiObject.AbsoluteSize / 2) - return (centerPoint - point).Magnitude -end - -local function DisableActiveHopper(): () --NOTE: HopperBin - ActiveHopper:ToggleSelect() - SlotsByTool[ActiveHopper]:UpdateEquipView() - ActiveHopper = nil :: any -end - -local function UnequipAllTools(): () --NOTE: HopperBin - if Humanoid then - Humanoid:UnequipTools() - if ActiveHopper then - DisableActiveHopper() - end - end -end - -local function EquipNewTool(tool: Tool): () --NOTE: HopperBin - UnequipAllTools() - Humanoid:EquipTool(tool) --NOTE: This would also unequip current Tool - --tool.Parent = Character --TODO: Switch back to above line after EquipTool is fixed! -end - -local function IsEquipped(tool: Tool): boolean - return tool and tool.Parent == Character --NOTE: HopperBin -end - --- Create a slot -local function MakeSlot(parent: Instance, initIndex: number?): GuiObject - local index: number = initIndex or (#Slots + 1) - - -- Slot Definition -- - - local slot: any = {} - slot.Tool = nil :: any - slot.Index = index :: number - slot.Frame = nil :: any - - local SlotFrame: any = nil - local FakeSlotFrame: Frame = nil - local ToolIcon: ImageLabel = nil - local ToolName: TextLabel = nil - local ToolChangeConn: any = nil - local HighlightFrame: any = nil -- UIStroke - local SelectionObj: ImageLabel = nil - - --NOTE: The following are only defined for Hotbar Slots - local ToolTip: TextLabel = nil - local SlotNumber: TextLabel = nil - - -- Slot Functions -- - - -- Update slot transparency - local function UpdateSlotFading(): () - SlotFrame.SelectionImageObject = nil - SlotFrame.BackgroundTransparency = SlotFrame.Draggable and 0 or SLOT_LOCKED_TRANSPARENCY - end - - -- Adjust the slots to the centered - function slot:Readjust(visualIndex: number, visualTotal: number): ...any --NOTE: Only used for Hotbar slots - local centered: number = HotbarFrame.Size.X.Offset / 2 - local sizePlus: number = ICON_BUFFER_PIXELS + ICON_SIZE_PIXELS - local midpointish: number = (visualTotal / 2) + 0.5 - local factor: number = visualIndex - midpointish - SlotFrame.Position = - UDim2.new(0, centered - (ICON_SIZE_PIXELS / 2) + (sizePlus * factor), 0, ICON_BUFFER_PIXELS) - end - - -- Fill the slot with a tool - function slot:Fill(tool: Tool): ...any - -- Clear slot if it has no tool else assign the tool - if not tool then - return self:Clear() - end - - self.Tool = tool :: Tool - - -- Update the slot with tool data - local function assignToolData(): () - local icon: string = tool.TextureId - ToolIcon.Image = icon - - if icon ~= "" then - -- Enable the tool name on the slot if there is no icon - ToolName.Visible = false - else - ToolName.Visible = true - end - - ToolName.Text = tool.Name - - -- If there is a tooltip, then show it - if ToolTip and tool:IsA("Tool") then --NOTE: HopperBin - ToolTip.Text = tool.ToolTip - ToolTip.Size = UDim2.new(0, 0, 0, TOOLTIP_HEIGHT) - ToolTip.Position = UDim2.new(0.5, 0, 0, TOOLTIP_OFFSET) - end - end - assignToolData() - - -- Disconnect tool event if it exists - if ToolChangeConn then - ToolChangeConn:Disconnect() - ToolChangeConn = nil - end - - -- Update the slot with new tool data if the tool's properties changes - ToolChangeConn = tool.Changed:Connect(function(property: string): () - if property == "TextureId" or property == "Name" or property == "ToolTip" then - assignToolData() - end - end) - - local hotbarSlot: boolean = (self.Index <= NumberOfHotbarSlots) - local inventoryOpen: boolean = InventoryFrame.Visible - - if (not hotbarSlot or inventoryOpen) and not UserInputService.VREnabled then - SlotFrame.Draggable = true - end - - self:UpdateEquipView() - - if hotbarSlot then - FullHotbarSlots = FullHotbarSlots + 1 - -- If using a controller, determine whether or not we can enable BindCoreAction("BackpackHotbarEquip", etc) - if WholeThingEnabled and FullHotbarSlots >= 1 and not GamepadActionsBound then - -- Player added first item to a hotbar slot, enable BindCoreAction - GamepadActionsBound = true - ContextActionService:BindAction( - "BackpackHotbarEquip", - changeToolFunc, - false, - Enum.KeyCode.ButtonL1, - Enum.KeyCode.ButtonR1 - ) - end - end - - SlotsByTool[tool] = self - LowestEmptySlot = FindLowestEmpty() - end - - -- Empty the slot of any tool data - function slot:Clear(): ...any - if not self.Tool then - return - end - - -- Disconnect tool event if it exists - if ToolChangeConn then - ToolChangeConn:Disconnect() - ToolChangeConn = nil - end - - ToolIcon.Image = "" - ToolName.Text = "" - if ToolTip then - ToolTip.Text = "" - ToolTip.Visible = false - end - SlotFrame.Draggable = false - - self:UpdateEquipView(true) -- Show as unequipped - - if self.Index <= NumberOfHotbarSlots then - FullHotbarSlots = FullHotbarSlots - 1 - if FullHotbarSlots < 1 then - -- Player removed last item from hotbar; UnbindCoreAction("BackpackHotbarEquip"), allowing the developer to use LB and RB. - GamepadActionsBound = false - ContextActionService:UnbindAction("BackpackHotbarEquip") - end - end - - SlotsByTool[self.Tool] = nil - self.Tool = nil - LowestEmptySlot = FindLowestEmpty() - end - - function slot:UpdateEquipView(unequippedOverride: boolean?): ...any - local override = unequippedOverride or false - if not override and IsEquipped(self.Tool) then -- Equipped - lastEquippedSlot = slot - if not HighlightFrame then - HighlightFrame = Instance.new("UIStroke") - HighlightFrame.Name = "Border" - HighlightFrame.Thickness = SLOT_EQUIP_THICKNESS - HighlightFrame.Color = SLOT_EQUIP_COLOR - HighlightFrame.ApplyStrokeMode = Enum.ApplyStrokeMode.Border - end - if LEGACY_EDGE_ENABLED == true then - HighlightFrame.Parent = ToolIcon - else - HighlightFrame.Parent = SlotFrame - end - else -- In the Backpack - if HighlightFrame then - HighlightFrame.Parent = nil - end - end - UpdateSlotFading() - end - - function slot:IsEquipped(): boolean - return IsEquipped(self.Tool) - end - - function slot:Delete(): ...any - SlotFrame:Destroy() --NOTE: Also clears connections - table.remove(Slots, self.Index) - local newSize: number = #Slots - - -- Now adjust the rest (both visually and representationally) - for slotIndex: number = self.Index :: number, newSize :: number do - Slots[slotIndex]:SlideBack() - end - - UpdateScrollingFrameCanvasSize() - end - - function slot:Swap(targetSlot: any): ...any --NOTE: This slot (self) must not be empty! - local myTool: any, otherTool: any = self.Tool, targetSlot.Tool - self:Clear() - if otherTool then -- (Target slot might be empty) - targetSlot:Clear() - self:Fill(otherTool) - end - if myTool then - targetSlot:Fill(myTool) - else - targetSlot:Clear() - end - end - - function slot:SlideBack(): ...any -- For inventory slot shifting - self.Index = self.Index - 1 - SlotFrame.Name = self.Index - SlotFrame.LayoutOrder = self.Index - end - - function slot:TurnNumber(on: boolean): ...any - if SlotNumber then - SlotNumber.Visible = on - end - end - - function slot:SetClickability(on: boolean): ...any -- (Happens on open/close arrow) - if self.Tool then - if UserInputService.VREnabled then - SlotFrame.Draggable = false - else - SlotFrame.Draggable = not on - end - UpdateSlotFading() - end - end - - function slot:CheckTerms(terms: any): number - local hits: number = 0 - local function checkEm(str: string, term: any): () - local _, n: number = str:lower():gsub(term, "") - hits = hits + n - end - local tool: Tool = self.Tool - if tool then - for term: any in pairs(terms) do - checkEm(ToolName.Text, term) - if tool:IsA("Tool") then --NOTE: HopperBin - local toolTipText: string = ToolTip and ToolTip.Text or "" - checkEm(toolTipText, term) - end - end - end - return hits - end - - -- Slot select logic, activated by clicking or pressing hotkey - function slot:Select(): ...any - local tool: Tool = slot.Tool - if tool then - if IsEquipped(tool) then --NOTE: HopperBin - UnequipAllTools() - elseif tool.Parent == Backpack then - EquipNewTool(tool) - end - end - end - - -- Slot Init Logic -- - - SlotFrame = Instance.new("TextButton") - SlotFrame.Name = tostring(index) - SlotFrame.BackgroundColor3 = BACKGROUND_COLOR - SlotFrame.BorderColor3 = SLOT_BORDER_COLOR - SlotFrame.Text = "" - SlotFrame.BorderSizePixel = 0 - SlotFrame.Size = UDim2.new(0, ICON_SIZE_PIXELS, 0, ICON_SIZE_PIXELS) - SlotFrame.Active = true - SlotFrame.Draggable = false - SlotFrame.BackgroundTransparency = SLOT_LOCKED_TRANSPARENCY - SlotFrame.MouseButton1Click:Connect(function(): () - changeSlot(slot) - end) - local searchFrameCorner: UICorner = Instance.new("UICorner") - searchFrameCorner.Name = "Corner" - searchFrameCorner.CornerRadius = SLOT_CORNER_RADIUS - searchFrameCorner.Parent = SlotFrame - slot.Frame = SlotFrame - - do - local selectionObjectClipper: Frame = Instance.new("Frame") - selectionObjectClipper.Name = "SelectionObjectClipper" - selectionObjectClipper.BackgroundTransparency = 1 - selectionObjectClipper.Visible = false - selectionObjectClipper.Parent = SlotFrame - - SelectionObj = Instance.new("ImageLabel") - SelectionObj.Name = "Selector" - SelectionObj.BackgroundTransparency = 1 - SelectionObj.Size = UDim2.new(1, 0, 1, 0) - SelectionObj.Image = "rbxasset://textures/ui/Keyboard/key_selection_9slice.png" - SelectionObj.ScaleType = Enum.ScaleType.Slice - SelectionObj.SliceCenter = Rect.new(12, 12, 52, 52) - SelectionObj.Parent = selectionObjectClipper - end - - ToolIcon = Instance.new("ImageLabel") - ToolIcon.BackgroundTransparency = 1 - ToolIcon.Name = "Icon" - ToolIcon.Size = UDim2.new(1, 0, 1, 0) - ToolIcon.Position = UDim2.new(0.5, 0, 0.5, 0) - ToolIcon.AnchorPoint = Vector2.new(0.5, 0.5) - if LEGACY_PADDING_ENABLED == true then - ToolIcon.Size = UDim2.new(1, -SLOT_EQUIP_THICKNESS * 2, 1, -SLOT_EQUIP_THICKNESS * 2) - else - ToolIcon.Size = UDim2.new(1, 0, 1, 0) - end - ToolIcon.Parent = SlotFrame - - local ToolIconCorner: UICorner = Instance.new("UICorner") - ToolIconCorner.Name = "Corner" - if LEGACY_PADDING_ENABLED == true then - ToolIconCorner.CornerRadius = SLOT_CORNER_RADIUS - UDim.new(0, SLOT_EQUIP_THICKNESS) - else - ToolIconCorner.CornerRadius = SLOT_CORNER_RADIUS - end - ToolIconCorner.Parent = ToolIcon - - ToolName = Instance.new("TextLabel") - ToolName.BackgroundTransparency = 1 - ToolName.Name = "ToolName" - ToolName.Text = "" - ToolName.TextColor3 = TEXT_COLOR - ToolName.TextStrokeTransparency = TEXT_STROKE_TRANSPARENCY - ToolName.TextStrokeColor3 = TEXT_STROKE_COLOR - ToolName.FontFace = Font.new(FONT_FAMILY.Family, Enum.FontWeight.Medium, Enum.FontStyle.Normal) - ToolName.TextSize = FONT_SIZE - ToolName.Size = UDim2.new(1, -SLOT_EQUIP_THICKNESS * 2, 1, -SLOT_EQUIP_THICKNESS * 2) - ToolName.Position = UDim2.new(0.5, 0, 0.5, 0) - ToolName.AnchorPoint = Vector2.new(0.5, 0.5) - ToolName.TextWrapped = true - ToolName.TextTruncate = Enum.TextTruncate.AtEnd - ToolName.Parent = SlotFrame - - slot.Frame.LayoutOrder = slot.Index - - if index <= NumberOfHotbarSlots then -- Hotbar-Specific Slot Stuff - -- ToolTip stuff - ToolTip = Instance.new("TextLabel") - ToolTip.Name = "ToolTip" - ToolTip.Text = "" - ToolTip.Size = UDim2.new(1, 0, 1, 0) - ToolTip.TextColor3 = TEXT_COLOR - ToolTip.TextStrokeTransparency = TEXT_STROKE_TRANSPARENCY - ToolTip.TextStrokeColor3 = TEXT_STROKE_COLOR - ToolTip.FontFace = Font.new(FONT_FAMILY.Family, Enum.FontWeight.Medium, Enum.FontStyle.Normal) - ToolTip.TextSize = FONT_SIZE - ToolTip.ZIndex = 2 - ToolTip.TextWrapped = false - ToolTip.TextYAlignment = Enum.TextYAlignment.Center - ToolTip.BackgroundColor3 = TOOLTIP_BACKGROUND_COLOR - ToolTip.BackgroundTransparency = SLOT_LOCKED_TRANSPARENCY - ToolTip.AnchorPoint = Vector2.new(0.5, 1) - ToolTip.BorderSizePixel = 0 - ToolTip.Visible = false - ToolTip.AutomaticSize = Enum.AutomaticSize.X - ToolTip.Parent = SlotFrame - - local ToolTipCorner: UICorner = Instance.new("UICorner") - ToolTipCorner.Name = "Corner" - ToolTipCorner.CornerRadius = TOOLTIP_CORNER_RADIUS - ToolTipCorner.Parent = ToolTip - - local ToolTipPadding: UIPadding = Instance.new("UIPadding") - ToolTipPadding.PaddingLeft = UDim.new(0, TOOLTIP_PADDING) - ToolTipPadding.PaddingRight = UDim.new(0, TOOLTIP_PADDING) - ToolTipPadding.PaddingTop = UDim.new(0, TOOLTIP_PADDING) - ToolTipPadding.PaddingBottom = UDim.new(0, TOOLTIP_PADDING) - ToolTipPadding.Parent = ToolTip - SlotFrame.MouseEnter:Connect(function(): () - if ToolTip.Text ~= "" then - ToolTip.Visible = true - end - end) - SlotFrame.MouseLeave:Connect(function(): () - ToolTip.Visible = false - end) - - function slot:MoveToInventory(): ...any - if slot.Index <= NumberOfHotbarSlots then -- From a Hotbar slot - local tool: any = slot.Tool - self:Clear() --NOTE: Order matters here - local newSlot: any = MakeSlot(UIGridFrame) - newSlot:Fill(tool) - if IsEquipped(tool) then -- Also unequip it --NOTE: HopperBin - UnequipAllTools() - end - -- Also hide the inventory slot if we're showing results right now - if ViewingSearchResults then - newSlot.Frame.Visible = false - newSlot.Parent = InventoryFrame - end - end - end - - -- Show label and assign hotkeys for 1-9 and 0 (zero is always last slot when > 10 total) - if index < 10 or index == NumberOfHotbarSlots then -- NOTE: Hardcoded on purpose! - local slotNum: number = (index < 10) and index or 0 - SlotNumber = Instance.new("TextLabel") - SlotNumber.BackgroundTransparency = 1 - SlotNumber.Name = "Number" - SlotNumber.TextColor3 = TEXT_COLOR - SlotNumber.TextStrokeTransparency = TEXT_STROKE_TRANSPARENCY - SlotNumber.TextStrokeColor3 = TEXT_STROKE_COLOR - SlotNumber.TextSize = FONT_SIZE - SlotNumber.Text = tostring(slotNum) - SlotNumber.FontFace = Font.new(FONT_FAMILY.Family, Enum.FontWeight.Heavy, Enum.FontStyle.Normal) - SlotNumber.Size = UDim2.new(0.4, 0, 0.4, 0) - SlotNumber.Visible = false - SlotNumber.Parent = SlotFrame - HotkeyFns[ZERO_KEY_VALUE + slotNum] = slot.Select - end - end - - do -- Dragging Logic - local startPoint: UDim2 = SlotFrame.Position - local lastUpTime: number = 0 - local startParent: any = nil - - SlotFrame.DragBegin:Connect(function(dragPoint: UDim2): () - Dragging[SlotFrame] = true - startPoint = dragPoint - - SlotFrame.BorderSizePixel = 2 - inventoryIcon:lock() - - -- Raise above other slots - SlotFrame.ZIndex = 2 - ToolIcon.ZIndex = 2 - ToolName.ZIndex = 2 - SlotFrame.Parent.ZIndex = 2 - if SlotNumber then - SlotNumber.ZIndex = 2 - end - -- if HighlightFrame then - -- HighlightFrame.ZIndex = 2 - -- for _, child in pairs(HighlightFrame:GetChildren()) do - -- child.ZIndex = 2 - -- end - -- end - - -- Circumvent the ScrollingFrame's ClipsDescendants property - startParent = SlotFrame.Parent - if startParent == UIGridFrame then - local newPosition: UDim2 = UDim2.new( - 0, - SlotFrame.AbsolutePosition.X - InventoryFrame.AbsolutePosition.X, - 0, - SlotFrame.AbsolutePosition.Y - InventoryFrame.AbsolutePosition.Y - ) - SlotFrame.Parent = InventoryFrame - SlotFrame.Position = newPosition - - FakeSlotFrame = Instance.new("Frame") - FakeSlotFrame.Name = "FakeSlot" - FakeSlotFrame.LayoutOrder = SlotFrame.LayoutOrder - FakeSlotFrame.Size = SlotFrame.Size - FakeSlotFrame.BackgroundTransparency = 1 - FakeSlotFrame.Parent = UIGridFrame - end - end) - - SlotFrame.DragStopped:Connect(function(x: number, y: number): () - if FakeSlotFrame then - FakeSlotFrame:Destroy() - end - - local now: number = os.clock() - - SlotFrame.Position = startPoint - SlotFrame.Parent = startParent - - SlotFrame.BorderSizePixel = 0 - inventoryIcon:unlock() - - -- Restore height - SlotFrame.ZIndex = 1 - ToolIcon.ZIndex = 1 - ToolName.ZIndex = 1 - startParent.ZIndex = 1 - - if SlotNumber then - SlotNumber.ZIndex = 1 - end - -- if HighlightFrame then - -- HighlightFrame.ZIndex = 1 - -- for _, child in pairs(HighlightFrame:GetChildren()) do - -- child.ZIndex = 1 - -- end - -- end - - Dragging[SlotFrame] = nil - - -- Make sure the tool wasn't dropped - if not slot.Tool then - return - end - - -- Check where we were dropped - if CheckBounds(InventoryFrame, x, y) then - if slot.Index <= NumberOfHotbarSlots then - slot:MoveToInventory() - end - -- Check for double clicking on an inventory slot, to move into empty hotbar slot - if slot.Index > NumberOfHotbarSlots and now - lastUpTime < DOUBLE_CLICK_TIME then - if LowestEmptySlot then - local myTool: any = slot.Tool - slot:Clear() - LowestEmptySlot:Fill(myTool) - slot:Delete() - end - now = 0 -- Resets the timer - end - elseif CheckBounds(HotbarFrame, x, y) then - local closest: { number } = { math.huge, nil :: any } - for i: number = 1, NumberOfHotbarSlots do - local otherSlot: any = Slots[i] - local offset: number = GetOffset(otherSlot.Frame, Vector2.new(x, y)) - if offset < closest[1] then - closest = { offset, otherSlot } - end - end - local closestSlot: any = closest[2] - if closestSlot ~= slot then - slot:Swap(closestSlot) - if slot.Index > NumberOfHotbarSlots then - local tool: Tool = slot.Tool - if not tool then -- Clean up after ourselves if we're an inventory slot that's now empty - slot:Delete() - else -- Moved inventory slot to hotbar slot, and gained a tool that needs to be unequipped - if IsEquipped(tool) then --NOTE: HopperBin - UnequipAllTools() - end - -- Also hide the inventory slot if we're showing results right now - if ViewingSearchResults then - slot.Frame.Visible = false - slot.Frame.Parent = InventoryFrame - end - end - end - end - else - -- local tool = slot.Tool - -- if tool.CanBeDropped then --TODO: HopperBins - -- tool.Parent = workspace - -- --TODO: Move away from character - -- end - if slot.Index <= NumberOfHotbarSlots then - slot:MoveToInventory() --NOTE: Temporary - end - end - - lastUpTime = now - end) - end - - -- All ready! - SlotFrame.Parent = parent - Slots[index] = slot - - if index > NumberOfHotbarSlots then - UpdateScrollingFrameCanvasSize() - -- Scroll to new inventory slot, if we're open and not viewing search results - if InventoryFrame.Visible and not ViewingSearchResults then - local offset: number = ScrollingFrame.CanvasSize.Y.Offset - ScrollingFrame.AbsoluteSize.Y - ScrollingFrame.CanvasPosition = Vector2.new(0, math.max(0, offset)) - end - end - - return slot -end - -local function OnChildAdded(child: Instance): () -- To Character or Backpack - if not child:IsA("Tool") and not child:IsA("HopperBin") then --NOTE: HopperBin - if child:IsA("Humanoid") and child.Parent == Character then - Humanoid = child - end - return - end - local tool: any = child - - if tool.Parent == Character then - ShowVRBackpackPopup() - end - - if ActiveHopper and tool.Parent == Character then --NOTE: HopperBin - DisableActiveHopper() - end - - --TODO: Optimize / refactor / do something else - if not StarterToolFound and tool.Parent == Character and not SlotsByTool[tool] then - local starterGear: Instance? = Player:FindFirstChild("StarterGear") - if starterGear then - if starterGear:FindFirstChild(tool.Name) then - StarterToolFound = true - local slot: any = LowestEmptySlot or MakeSlot(UIGridFrame) - for i: number = slot.Index, 1, -1 do - local curr = Slots[i] -- An empty slot, because above - local pIndex: number = i - 1 - if pIndex > 0 then - local prev = Slots[pIndex] -- Guaranteed to be full, because above - prev:Swap(curr) - else - curr:Fill(tool) - end - end - -- Have to manually unequip a possibly equipped tool - for _, children: Instance in pairs(Character:GetChildren()) do - if children:IsA("Tool") and children ~= tool then - children.Parent = Backpack - end - end - AdjustHotbarFrames() - return -- We're done here - end - end - end - - -- The tool is either moving or new - local slot: any = SlotsByTool[tool] - if slot then - slot:UpdateEquipView() - else -- New! Put into lowest hotbar slot or new inventory slot - slot = LowestEmptySlot or MakeSlot(UIGridFrame) - slot:Fill(tool) - if slot.Index <= NumberOfHotbarSlots and not InventoryFrame.Visible then - AdjustHotbarFrames() - end - if tool:IsA("HopperBin") then --NOTE: HopperBin - if tool.Active then - UnequipAllTools() - ActiveHopper = tool - end - end - end - - BackpackScript.BackpackItemAdded:Fire() -end - -local function OnChildRemoved(child: Instance): () -- From Character or Backpack - if not child:IsA("Tool") and not child:IsA("HopperBin") then --NOTE: HopperBin - return - end - local tool: Tool | any = child - - ShowVRBackpackPopup() - - -- Ignore this event if we're just moving between the two - local newParent: any = tool.Parent - if newParent == Character or newParent == Backpack then - return - end - - local slot: any = SlotsByTool[tool] - if slot then - slot:Clear() - if slot.Index > NumberOfHotbarSlots then -- Inventory slot - slot:Delete() - elseif not InventoryFrame.Visible then - AdjustHotbarFrames() - end - end - - if tool :: any == ActiveHopper then --NOTE: HopperBin - ActiveHopper = nil :: any - end - - BackpackScript.BackpackItemRemoved:Fire() - if isInventoryEmpty() then - BackpackScript.BackpackEmpty:Fire() - end -end - -local function OnCharacterAdded(character: Model): () - -- First, clean up any old slots - for i: number = #Slots, 1, -1 do - local slot = Slots[i] - if slot.Tool then - slot:Clear() - end - if i > NumberOfHotbarSlots then - slot:Delete() - end - end - ActiveHopper = nil :: any --NOTE: HopperBin - - -- And any old Connections - for _, conn: RBXScriptConnection in pairs(CharConns) do - conn:Disconnect() - end - CharConns = {} - - -- Hook up the new character - Character = character - table.insert(CharConns, character.ChildRemoved:Connect(OnChildRemoved)) - table.insert(CharConns, character.ChildAdded:Connect(OnChildAdded)) - for _, child: Instance in pairs(character:GetChildren()) do - OnChildAdded(child) - end - --NOTE: Humanoid is set inside OnChildAdded - - -- And the new backpack, when it gets here - Backpack = Player:WaitForChild("Backpack") - table.insert(CharConns, Backpack.ChildRemoved:Connect(OnChildRemoved)) - table.insert(CharConns, Backpack.ChildAdded:Connect(OnChildAdded)) - for _, child: Instance in pairs(Backpack:GetChildren()) do - OnChildAdded(child) - end - - AdjustHotbarFrames() -end - -local function OnInputBegan(input: InputObject, isProcessed: boolean): () - local ChatInputBarConfiguration = - TextChatService:FindFirstChildOfClass("ChatInputBarConfiguration") :: ChatInputBarConfiguration - -- Pass through keyboard hotkeys when not typing into a TextBox and not disabled (except for the Drop key) - if - input.UserInputType == Enum.UserInputType.Keyboard - and not TextBoxFocused - and not ChatInputBarConfiguration.IsFocused - and (WholeThingEnabled or input.KeyCode.Value == DROP_HOTKEY_VALUE) - then - local hotkeyBehavior: any = HotkeyFns[input.KeyCode.Value] - if hotkeyBehavior then - hotkeyBehavior(isProcessed) - end - end - - local inputType: Enum.UserInputType = input.UserInputType - if not isProcessed then - if inputType == Enum.UserInputType.MouseButton1 or inputType == Enum.UserInputType.Touch then - if InventoryFrame.Visible then - inventoryIcon:deselect() - end - end - end -end - -local function OnUISChanged(): () - -- Detect if player is using Touch - if UserInputService:GetLastInputType() == Enum.UserInputType.Touch then - for i: number = 1, NumberOfHotbarSlots do - Slots[i]:TurnNumber(false) - end - return - end - - -- Detect if player is using Keyboard - if UserInputService:GetLastInputType() == Enum.UserInputType.Keyboard then - for i: number = 1, NumberOfHotbarSlots do - Slots[i]:TurnNumber(true) - end - return - end - - -- Detect if player is using Mouse - for _, mouse: any in pairs(MOUSE_INPUT_TYPES) do - if UserInputService:GetLastInputType() == mouse then - for i: number = 1, NumberOfHotbarSlots do - Slots[i]:TurnNumber(true) - end - return - end - end - - -- Detect if player is using Controller - for _, gamepad: any in pairs(GAMEPAD_INPUT_TYPES) do - if UserInputService:GetLastInputType() == gamepad then - for i: number = 1, NumberOfHotbarSlots do - Slots[i]:TurnNumber(false) - end - return - end - end -end - -local lastChangeToolInputObject: InputObject = nil -local lastChangeToolInputTime: number = nil -local maxEquipDeltaTime: number = 0.06 -local noOpFunc = function() end --- local selectDirection = Vector2.new(0, 0) - -function unbindAllGamepadEquipActions(): () - ContextActionService:UnbindAction("BackpackHasGamepadFocus") - ContextActionService:UnbindAction("BackpackCloseInventory") -end - --- local function setHotbarVisibility(visible: boolean, isInventoryScreen: boolean) --- for i: number = 1, NumberOfHotbarSlots do --- local hotbarSlot = Slots[i] --- if hotbarSlot and hotbarSlot.Frame and (isInventoryScreen or hotbarSlot.Tool) then --- hotbarSlot.Frame.Visible = visible --- end --- end --- end - --- local function getInputDirection(inputObject: InputObject): Vector2 --- local buttonModifier = 1 --- if inputObject.UserInputState == Enum.UserInputState.End then --- buttonModifier = -1 --- end - --- if inputObject.KeyCode == Enum.KeyCode.Thumbstick1 then --- local Magnitude = inputObject.Position.Magnitude - --- if Magnitude > 0.98 then --- local normalizedVector = --- Vector2.new(inputObject.Position.X / Magnitude, -inputObject.Position.Y / Magnitude) --- selectDirection = normalizedVector --- else --- selectDirection = Vector2.new(0, 0) --- end --- elseif inputObject.KeyCode == Enum.KeyCode.DPadLeft then --- selectDirection = Vector2.new(selectDirection.X - 1 * buttonModifier, selectDirection.Y) --- elseif inputObject.KeyCode == Enum.KeyCode.DPadRight then --- selectDirection = Vector2.new(selectDirection.X + 1 * buttonModifier, selectDirection.Y) --- elseif inputObject.KeyCode == Enum.KeyCode.DPadUp then --- selectDirection = Vector2.new(selectDirection.X, selectDirection.Y - 1 * buttonModifier) --- elseif inputObject.KeyCode == Enum.KeyCode.DPadDown then --- selectDirection = Vector2.new(selectDirection.X, selectDirection.Y + 1 * buttonModifier) --- else --- selectDirection = Vector2.new(0, 0) --- end - --- return selectDirection --- end - --- local selectToolExperiment = function(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject) --- local inputDirection = getInputDirection(inputObject) - --- if inputDirection == Vector2.new(0, 0) then --- return --- end - --- local angle = math.atan2(inputDirection.Y, inputDirection.X) - math.atan2(-1, 0) --- if angle < 0 then --- angle = angle + (math.pi * 2) --- end - --- local quarterPi = (math.pi * 0.25) - --- local index = (angle / quarterPi) + 1 --- index = math.floor(index + 0.5) -- round index to whole number --- if index > NumberOfHotbarSlots then --- index = 1 --- end - --- if index > 0 then --- local selectedSlot = Slots[index] --- if selectedSlot and selectedSlot.Tool and not selectedSlot:IsEquipped() then --- selectedSlot:Select() --- end --- else --- UnequipAllTools() --- end --- end - --- selene: allow(unused_variable) -changeToolFunc = function(actionName: string, inputState: Enum.UserInputState, inputObject: InputObject): () - if inputState ~= Enum.UserInputState.Begin then - return - end - - if lastChangeToolInputObject then - if - ( - lastChangeToolInputObject.KeyCode == Enum.KeyCode.ButtonR1 - and inputObject.KeyCode == Enum.KeyCode.ButtonL1 - ) - or ( - lastChangeToolInputObject.KeyCode == Enum.KeyCode.ButtonL1 - and inputObject.KeyCode == Enum.KeyCode.ButtonR1 - ) - then - if (os.clock() - lastChangeToolInputTime) <= maxEquipDeltaTime then - UnequipAllTools() - lastChangeToolInputObject = inputObject - lastChangeToolInputTime = os.clock() - return - end - end - end - - lastChangeToolInputObject = inputObject - lastChangeToolInputTime = os.clock() - - task.delay(maxEquipDeltaTime, function(): () - if lastChangeToolInputObject ~= inputObject then - return - end - - local moveDirection: number = 0 - if inputObject.KeyCode == Enum.KeyCode.ButtonL1 then - moveDirection = -1 - else - moveDirection = 1 - end - - for i: number = 1, NumberOfHotbarSlots do - local hotbarSlot: any = Slots[i] - if hotbarSlot:IsEquipped() then - local newSlotPosition: number = moveDirection + i - local hitEdge: boolean = false - if newSlotPosition > NumberOfHotbarSlots then - newSlotPosition = 1 - hitEdge = true - elseif newSlotPosition < 1 then - newSlotPosition = NumberOfHotbarSlots - hitEdge = true - end - - local origNewSlotPos: number = newSlotPosition - while not Slots[newSlotPosition].Tool do - newSlotPosition = newSlotPosition + moveDirection - if newSlotPosition == origNewSlotPos then - return - end - - if newSlotPosition > NumberOfHotbarSlots then - newSlotPosition = 1 - hitEdge = true - elseif newSlotPosition < 1 then - newSlotPosition = NumberOfHotbarSlots - hitEdge = true - end - end - - if hitEdge then - UnequipAllTools() - lastEquippedSlot = nil - else - Slots[newSlotPosition]:Select() - end - return - end - end - - if lastEquippedSlot and lastEquippedSlot.Tool then - lastEquippedSlot:Select() - return - end - - local startIndex: number = moveDirection == -1 and NumberOfHotbarSlots or 1 - local endIndex: number = moveDirection == -1 and 1 or NumberOfHotbarSlots - for i: number = startIndex, endIndex, moveDirection do - if Slots[i].Tool then - Slots[i]:Select() - return - end - end - end) -end - -function getGamepadSwapSlot(): any - for i: number = 1, #Slots do - if Slots[i].Frame.BorderSizePixel > 0 then - return Slots[i] - end - end - return -end - --- selene: allow(unused_variable) -function changeSlot(slot: any): () - local swapInVr: boolean = not VRService.VREnabled or InventoryFrame.Visible - - if slot.Frame == GuiService.SelectedObject and swapInVr then - local currentlySelectedSlot: any = getGamepadSwapSlot() - - if currentlySelectedSlot then - currentlySelectedSlot.Frame.BorderSizePixel = 0 - if currentlySelectedSlot ~= slot then - slot:Swap(currentlySelectedSlot) - VRInventorySelector.SelectionImageObject.Visible = false - - if slot.Index > NumberOfHotbarSlots and not slot.Tool then - if GuiService.SelectedObject == slot.Frame then - GuiService.SelectedObject = currentlySelectedSlot.Frame - end - slot:Delete() - end - - if currentlySelectedSlot.Index > NumberOfHotbarSlots and not currentlySelectedSlot.Tool then - if GuiService.SelectedObject == currentlySelectedSlot.Frame then - GuiService.SelectedObject = slot.Frame - end - currentlySelectedSlot:Delete() - end - end - else - local startSize: UDim2 = slot.Frame.Size - local startPosition: UDim2 = slot.Frame.Position - slot.Frame:TweenSizeAndPosition( - startSize + UDim2.new(0, 10, 0, 10), - startPosition - UDim2.new(0, 5, 0, 5), - Enum.EasingDirection.Out, - Enum.EasingStyle.Quad, - 0.1, - true, - function(): () - slot.Frame:TweenSizeAndPosition( - startSize, - startPosition, - Enum.EasingDirection.In, - Enum.EasingStyle.Quad, - 0.1, - true - ) - end - ) - slot.Frame.BorderSizePixel = 3 - VRInventorySelector.SelectionImageObject.Visible = true - end - else - slot:Select() - VRInventorySelector.SelectionImageObject.Visible = false - end -end - -function vrMoveSlotToInventory(): () - if not VRService.VREnabled then - return - end - - local currentlySelectedSlot: any = getGamepadSwapSlot() - if currentlySelectedSlot and currentlySelectedSlot.Tool then - currentlySelectedSlot.Frame.BorderSizePixel = 0 - currentlySelectedSlot:MoveToInventory() - VRInventorySelector.SelectionImageObject.Visible = false - end -end - -function enableGamepadInventoryControl(): () - local goBackOneLevel = function(): () - -- if inputState ~= Enum.UserInputState.Begin then - -- return - -- end - - local selectedSlot: any = getGamepadSwapSlot() - if selectedSlot then - -- selene: allow(shadowing) - local selectedSlot: any = getGamepadSwapSlot() - if selectedSlot then - selectedSlot.Frame.BorderSizePixel = 0 - return - end - elseif InventoryFrame.Visible then - inventoryIcon:deselect() - end - end - - ContextActionService:BindAction("BackpackHasGamepadFocus", noOpFunc, false, Enum.UserInputType.Gamepad1) - ContextActionService:BindAction( - "BackpackCloseInventory", - goBackOneLevel, - false, - Enum.KeyCode.ButtonB, - Enum.KeyCode.ButtonStart - ) - - -- Gaze select will automatically select the object for us! - if not UseGazeSelection() then - GuiService.SelectedObject = HotbarFrame:FindFirstChild("1") - end -end - -function disableGamepadInventoryControl(): () - unbindAllGamepadEquipActions() - - for i: number = 1, NumberOfHotbarSlots do - local hotbarSlot: any = Slots[i] - if hotbarSlot and hotbarSlot.Frame then - hotbarSlot.Frame.BorderSizePixel = 0 - end - end - - if GuiService.SelectedObject and GuiService.SelectedObject:IsDescendantOf(MainFrame) then - GuiService.SelectedObject = nil - end -end - -local function bindBackpackHotbarAction(): () - if WholeThingEnabled and not GamepadActionsBound then - GamepadActionsBound = true - ContextActionService:BindAction( - "BackpackHotbarEquip", - changeToolFunc, - false, - Enum.KeyCode.ButtonL1, - Enum.KeyCode.ButtonR1 - ) - end -end - -local function unbindBackpackHotbarAction(): () - disableGamepadInventoryControl() - GamepadActionsBound = false - ContextActionService:UnbindAction("BackpackHotbarEquip") -end - -function gamepadDisconnected(): () - GamepadEnabled = false - disableGamepadInventoryControl() -end - -function gamepadConnected(): () - GamepadEnabled = true - GuiService:AddSelectionParent("BackpackSelection", MainFrame) - - if FullHotbarSlots >= 1 then - bindBackpackHotbarAction() - end - - if InventoryFrame.Visible then - enableGamepadInventoryControl() - end -end - -local function OnIconChanged(enabled: boolean): () - -- Check for enabling/disabling the whole thing - enabled = enabled and StarterGui:GetCore("TopbarEnabled") - WholeThingEnabled = enabled - MainFrame.Visible = enabled - - -- Eat/Release hotkeys (Doesn't affect UserInputService) - -- for _, keyString in pairs(HotkeyStrings) do - -- if enabled then - -- GuiService:AddKey(keyString) - -- else - -- GuiService:RemoveKey(keyString) - -- end - -- end - - if enabled then - if FullHotbarSlots >= 1 then - bindBackpackHotbarAction() - end - else - unbindBackpackHotbarAction() - end -end - -local function MakeVRRoundButton(name: string, image: string): (ImageButton, ImageLabel, ImageLabel) - local newButton: ImageButton = Instance.new("ImageButton") - newButton.BackgroundTransparency = 1 - newButton.Name = name - newButton.Size = UDim2.new(0, 40, 0, 40) - newButton.Image = "rbxasset://textures/ui/Keyboard/close_button_background.png" - - local buttonIcon: ImageLabel = Instance.new("ImageLabel") - buttonIcon.Name = "Icon" - buttonIcon.BackgroundTransparency = 1 - buttonIcon.Size = UDim2.new(0.5, 0, 0.5, 0) - buttonIcon.Position = UDim2.new(0.25, 0, 0.25, 0) - buttonIcon.Image = image - buttonIcon.Parent = newButton - - local buttonSelectionObject: ImageLabel = Instance.new("ImageLabel") - buttonSelectionObject.BackgroundTransparency = 1 - buttonSelectionObject.Name = "Selection" - buttonSelectionObject.Size = UDim2.new(0.9, 0, 0.9, 0) - buttonSelectionObject.Position = UDim2.new(0.05, 0, 0.05, 0) - buttonSelectionObject.Image = "rbxasset://textures/ui/Keyboard/close_button_selection.png" - newButton.SelectionImageObject = buttonSelectionObject - - return newButton, buttonIcon, buttonSelectionObject -end - --- Make the main frame, which (mostly) covers the screen -MainFrame = Instance.new("Frame") -MainFrame.BackgroundTransparency = 1 -MainFrame.Name = "Backpack" -MainFrame.Size = UDim2.new(1, 0, 1, 0) -MainFrame.Visible = false -MainFrame.Parent = BackpackGui - --- Make the HotbarFrame, which holds only the Hotbar Slots -HotbarFrame = Instance.new("Frame") -HotbarFrame.BackgroundTransparency = 1 -HotbarFrame.Name = "Hotbar" -HotbarFrame.Size = UDim2.new(1, 0, 1, 0) -HotbarFrame.Parent = MainFrame - --- Make all the Hotbar Slots -for index: number = 1, NumberOfHotbarSlots do - local slot: any = MakeSlot(HotbarFrame, index) - slot.Frame.Visible = false - - if not LowestEmptySlot then - LowestEmptySlot = slot - end -end - -local LeftBumperButton: ImageLabel = Instance.new("ImageLabel") -LeftBumperButton.BackgroundTransparency = 1 -LeftBumperButton.Name = "LeftBumper" -LeftBumperButton.Size = UDim2.new(0, 40, 0, 40) -LeftBumperButton.Position = UDim2.new(0, -LeftBumperButton.Size.X.Offset, 0.5, -LeftBumperButton.Size.Y.Offset / 2) - -local RightBumperButton: ImageLabel = Instance.new("ImageLabel") -RightBumperButton.BackgroundTransparency = 1 -RightBumperButton.Name = "RightBumper" -RightBumperButton.Size = UDim2.new(0, 40, 0, 40) -RightBumperButton.Position = UDim2.new(1, 0, 0.5, -RightBumperButton.Size.Y.Offset / 2) - --- Make the Inventory, which holds the ScrollingFrame, the header, and the search box -InventoryFrame = Instance.new("Frame") -InventoryFrame.Name = "Inventory" -InventoryFrame.Size = UDim2.new(1, 0, 1, 0) -InventoryFrame.BackgroundTransparency = BACKGROUND_TRANSPARENCY -InventoryFrame.BackgroundColor3 = BACKGROUND_COLOR -InventoryFrame.Active = true -InventoryFrame.Visible = false -InventoryFrame.Parent = MainFrame - --- Add corners to the InventoryFrame -local corner: UICorner = Instance.new("UICorner") -corner.Name = "Corner" -corner.CornerRadius = BACKGROUND_CORNER_RADIUS -corner.Parent = InventoryFrame - -VRInventorySelector = Instance.new("TextButton") -VRInventorySelector.Name = "VRInventorySelector" -VRInventorySelector.Position = UDim2.new(0, 0, 0, 0) -VRInventorySelector.Size = UDim2.new(1, 0, 1, 0) -VRInventorySelector.BackgroundTransparency = 1 -VRInventorySelector.Text = "" -VRInventorySelector.Parent = InventoryFrame - -local selectorImage: ImageLabel = Instance.new("ImageLabel") -selectorImage.BackgroundTransparency = 1 -selectorImage.Name = "Selector" -selectorImage.Size = UDim2.new(1, 0, 1, 0) -selectorImage.Image = "rbxasset://textures/ui/Keyboard/key_selection_9slice.png" -selectorImage.ScaleType = Enum.ScaleType.Slice -selectorImage.SliceCenter = Rect.new(12, 12, 52, 52) -selectorImage.Visible = false -VRInventorySelector.SelectionImageObject = selectorImage - -VRInventorySelector.MouseButton1Click:Connect(function(): () - vrMoveSlotToInventory() -end) - --- Make the ScrollingFrame, which holds the rest of the Slots (however many) -ScrollingFrame = Instance.new("ScrollingFrame") -ScrollingFrame.BackgroundTransparency = 1 -ScrollingFrame.Name = "ScrollingFrame" -ScrollingFrame.Size = UDim2.new(1, 0, 1, 0) -ScrollingFrame.Selectable = false -ScrollingFrame.ScrollingDirection = Enum.ScrollingDirection.Y -ScrollingFrame.BorderSizePixel = 0 -ScrollingFrame.ScrollBarThickness = 8 -ScrollingFrame.ScrollBarImageColor3 = Color3.new(1, 1, 1) -ScrollingFrame.VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar -ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0) -ScrollingFrame.Parent = InventoryFrame - -UIGridFrame = Instance.new("Frame") -UIGridFrame.BackgroundTransparency = 1 -UIGridFrame.Name = "UIGridFrame" -UIGridFrame.Selectable = false -UIGridFrame.Size = UDim2.new(1, -(ICON_BUFFER_PIXELS * 2), 1, 0) -UIGridFrame.Position = UDim2.new(0, ICON_BUFFER_PIXELS, 0, 0) -UIGridFrame.Parent = ScrollingFrame - -UIGridLayout = Instance.new("UIGridLayout") -UIGridLayout.SortOrder = Enum.SortOrder.LayoutOrder -UIGridLayout.CellSize = UDim2.new(0, ICON_SIZE_PIXELS, 0, ICON_SIZE_PIXELS) -UIGridLayout.CellPadding = UDim2.new(0, ICON_BUFFER_PIXELS, 0, ICON_BUFFER_PIXELS) -UIGridLayout.Parent = UIGridFrame - -ScrollUpInventoryButton = MakeVRRoundButton("ScrollUpButton", "rbxasset://textures/ui/Backpack/ScrollUpArrow.png") -ScrollUpInventoryButton.Size = UDim2.new(0, 34, 0, 34) -ScrollUpInventoryButton.Position = - UDim2.new(0.5, -ScrollUpInventoryButton.Size.X.Offset / 2, 0, INVENTORY_HEADER_SIZE + 3) -ScrollUpInventoryButton.Icon.Position = ScrollUpInventoryButton.Icon.Position - UDim2.new(0, 0, 0, 2) -ScrollUpInventoryButton.MouseButton1Click:Connect(function(): () - ScrollingFrame.CanvasPosition = Vector2.new( - ScrollingFrame.CanvasPosition.X, - Clamp( - 0, - ScrollingFrame.CanvasSize.Y.Offset - ScrollingFrame.AbsoluteWindowSize.Y, - ScrollingFrame.CanvasPosition.Y - (ICON_BUFFER_PIXELS + ICON_SIZE_PIXELS) - ) - ) -end) - -ScrollDownInventoryButton = MakeVRRoundButton("ScrollDownButton", "rbxasset://textures/ui/Backpack/ScrollUpArrow.png") -ScrollDownInventoryButton.Rotation = 180 -ScrollDownInventoryButton.Icon.Position = ScrollDownInventoryButton.Icon.Position - UDim2.new(0, 0, 0, 2) -ScrollDownInventoryButton.Size = UDim2.new(0, 34, 0, 34) -ScrollDownInventoryButton.Position = - UDim2.new(0.5, -ScrollDownInventoryButton.Size.X.Offset / 2, 1, -ScrollDownInventoryButton.Size.Y.Offset - 3) -ScrollDownInventoryButton.MouseButton1Click:Connect(function(): () - ScrollingFrame.CanvasPosition = Vector2.new( - ScrollingFrame.CanvasPosition.X, - Clamp( - 0, - ScrollingFrame.CanvasSize.Y.Offset - ScrollingFrame.AbsoluteWindowSize.Y, - ScrollingFrame.CanvasPosition.Y + (ICON_BUFFER_PIXELS + ICON_SIZE_PIXELS) - ) - ) -end) - -ScrollingFrame.Changed:Connect(function(prop: string): () - if prop == "AbsoluteWindowSize" or prop == "CanvasPosition" or prop == "CanvasSize" then - local canScrollUp: boolean = ScrollingFrame.CanvasPosition.Y ~= 0 - local canScrollDown: boolean = ScrollingFrame.CanvasPosition.Y - < ScrollingFrame.CanvasSize.Y.Offset - ScrollingFrame.AbsoluteWindowSize.Y - - ScrollUpInventoryButton.Visible = canScrollUp - ScrollDownInventoryButton.Visible = canScrollDown - end -end) - --- Position the frames and sizes for the Backpack GUI elements -UpdateBackpackLayout() - ---Make the gamepad hint frame -local gamepadHintsFrame: Frame = Instance.new("Frame") -gamepadHintsFrame.Name = "GamepadHintsFrame" -gamepadHintsFrame.Size = UDim2.new(0, HotbarFrame.Size.X.Offset, 0, (IsTenFootInterface and 95 or 60)) -gamepadHintsFrame.BackgroundTransparency = BACKGROUND_TRANSPARENCY -gamepadHintsFrame.BackgroundColor3 = BACKGROUND_COLOR -gamepadHintsFrame.Visible = false -gamepadHintsFrame.Parent = MainFrame - -local gamepadHintsFrameLayout: UIListLayout = Instance.new("UIListLayout") -gamepadHintsFrameLayout.Name = "Layout" -gamepadHintsFrameLayout.Padding = UDim.new(0, 25) -gamepadHintsFrameLayout.FillDirection = Enum.FillDirection.Horizontal -gamepadHintsFrameLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center -gamepadHintsFrameLayout.SortOrder = Enum.SortOrder.LayoutOrder -gamepadHintsFrameLayout.Parent = gamepadHintsFrame - -local gamepadHintsFrameCorner: UICorner = Instance.new("UICorner") -gamepadHintsFrameCorner.Name = "Corner" -gamepadHintsFrameCorner.CornerRadius = BACKGROUND_CORNER_RADIUS -gamepadHintsFrameCorner.Parent = gamepadHintsFrame - -local function addGamepadHint(hintImageString: string, hintTextString: string): () - local hintFrame: Frame = Instance.new("Frame") - hintFrame.Name = "HintFrame" - hintFrame.AutomaticSize = Enum.AutomaticSize.XY - hintFrame.BackgroundTransparency = 1 - hintFrame.Parent = gamepadHintsFrame - - local hintLayout: UIListLayout = Instance.new("UIListLayout") - hintLayout.Name = "Layout" - hintLayout.Padding = (IsTenFootInterface and UDim.new(0, 20) or UDim.new(0, 12)) - hintLayout.FillDirection = Enum.FillDirection.Horizontal - hintLayout.SortOrder = Enum.SortOrder.LayoutOrder - hintLayout.VerticalAlignment = Enum.VerticalAlignment.Center - hintLayout.Parent = hintFrame - - local hintImage: ImageLabel = Instance.new("ImageLabel") - hintImage.Name = "HintImage" - hintImage.Size = (IsTenFootInterface and UDim2.new(0, 60, 0, 60) or UDim2.new(0, 30, 0, 30)) - hintImage.BackgroundTransparency = 1 - hintImage.Image = hintImageString - hintImage.Parent = hintFrame - - local hintText: TextLabel = Instance.new("TextLabel") - hintText.Name = "HintText" - hintText.AutomaticSize = Enum.AutomaticSize.XY - hintText.FontFace = Font.new(FONT_FAMILY.Family, Enum.FontWeight.Medium, Enum.FontStyle.Normal) - hintText.TextSize = (IsTenFootInterface and 32 or 19) - hintText.BackgroundTransparency = 1 - hintText.Text = hintTextString - hintText.TextColor3 = Color3.new(1, 1, 1) - hintText.TextXAlignment = Enum.TextXAlignment.Left - hintText.TextYAlignment = Enum.TextYAlignment.Center - hintText.TextWrapped = true - hintText.Parent = hintFrame - - local textSizeConstraint: UITextSizeConstraint = Instance.new("UITextSizeConstraint") - textSizeConstraint.MaxTextSize = hintText.TextSize - textSizeConstraint.Parent = hintText -end - -addGamepadHint(UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonX), "Remove From Hotbar") -addGamepadHint(UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonA), "Select/Swap") -addGamepadHint(UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonB), "Close Backpack") - -local function resizeGamepadHintsFrame(): () - gamepadHintsFrame.Size = - UDim2.new(HotbarFrame.Size.X.Scale, HotbarFrame.Size.X.Offset, 0, (IsTenFootInterface and 95 or 60)) - gamepadHintsFrame.Position = UDim2.new( - HotbarFrame.Position.X.Scale, - HotbarFrame.Position.X.Offset, - InventoryFrame.Position.Y.Scale, - InventoryFrame.Position.Y.Offset - gamepadHintsFrame.Size.Y.Offset - ICON_BUFFER_PIXELS - ) - - local spaceTaken: number = 0 - - local gamepadHints: { Instance } = gamepadHintsFrame:GetChildren() - local filteredGamepadHints: any = {} - - for _, child: Instance in pairs(gamepadHints) do - if child:IsA("GuiObject") then - table.insert(filteredGamepadHints, child) - end - end - - --First get the total space taken by all the hints - for guiObjects = 1, #filteredGamepadHints do - if filteredGamepadHints[guiObjects]:IsA("GuiObject") then - filteredGamepadHints[guiObjects].Size = UDim2.new(1, 0, 1, -5) - filteredGamepadHints[guiObjects].Position = UDim2.new(0, 0, 0, 0) - spaceTaken = spaceTaken - + ( - filteredGamepadHints[guiObjects].HintText.Position.X.Offset - + filteredGamepadHints[guiObjects].HintText.TextBounds.X - ) - end - end - - --The space between all the frames should be equal - local spaceBetweenElements: number = (gamepadHintsFrame.AbsoluteSize.X - spaceTaken) / (#filteredGamepadHints - 1) - for i: number = 1, #filteredGamepadHints do - filteredGamepadHints[i].Position = ( - i == 1 and UDim2.new(0, 0, 0, 0) - or UDim2.new( - 0, - filteredGamepadHints[i - 1].Position.X.Offset - + filteredGamepadHints[i - 1].Size.X.Offset - + spaceBetweenElements, - 0, - 0 - ) - ) - filteredGamepadHints[i].Size = UDim2.new( - 0, - (filteredGamepadHints[i].HintText.Position.X.Offset + filteredGamepadHints[i].HintText.TextBounds.X), - 1, - -5 - ) - end -end - -local searchFrame: Frame = Instance.new("Frame") -do -- Search stuff - searchFrame.Name = "Search" - searchFrame.BackgroundColor3 = SEARCH_BACKGROUND_COLOR - searchFrame.BackgroundTransparency = SEARCH_BACKGROUND_TRANSPARENCY - searchFrame.Size = UDim2.new( - 0, - SEARCH_WIDTH_PIXELS - (SEARCH_BUFFER_PIXELS * 2), - 0, - INVENTORY_HEADER_SIZE - (SEARCH_BUFFER_PIXELS * 2) - ) - searchFrame.Position = UDim2.new(1, -searchFrame.Size.X.Offset - SEARCH_BUFFER_PIXELS, 0, SEARCH_BUFFER_PIXELS) - searchFrame.Parent = InventoryFrame - - local searchFrameCorner: UICorner = Instance.new("UICorner") - searchFrameCorner.Name = "Corner" - searchFrameCorner.CornerRadius = SEARCH_CORNER_RADIUS - searchFrameCorner.Parent = searchFrame - - local searchFrameBorder: UIStroke = Instance.new("UIStroke") - searchFrameBorder.Name = "Border" - searchFrameBorder.Color = SEARCH_BORDER_COLOR - searchFrameBorder.Thickness = SEARCH_BORDER_THICKNESS - searchFrameBorder.Transparency = SEARCH_BORDER_TRANSPARENCY - searchFrameBorder.Parent = searchFrame - - local searchBox: TextBox = Instance.new("TextBox") - searchBox.BackgroundTransparency = 1 - searchBox.Name = "TextBox" - searchBox.Text = "" - searchBox.TextColor3 = TEXT_COLOR - searchBox.TextStrokeTransparency = TEXT_STROKE_TRANSPARENCY - searchBox.TextStrokeColor3 = TEXT_STROKE_COLOR - searchBox.FontFace = Font.new(FONT_FAMILY.Family, Enum.FontWeight.Medium, Enum.FontStyle.Normal) - searchBox.PlaceholderText = SEARCH_TEXT_PLACEHOLDER - searchBox.TextColor3 = TEXT_COLOR - searchBox.TextTransparency = TEXT_STROKE_TRANSPARENCY - searchBox.TextStrokeColor3 = TEXT_STROKE_COLOR - searchBox.ClearTextOnFocus = false - searchBox.TextTruncate = Enum.TextTruncate.AtEnd - searchBox.TextSize = FONT_SIZE - searchBox.TextXAlignment = Enum.TextXAlignment.Left - searchBox.TextYAlignment = Enum.TextYAlignment.Center - searchBox.Size = UDim2.new( - 0, - (SEARCH_WIDTH_PIXELS - (SEARCH_BUFFER_PIXELS * 2)) - (SEARCH_TEXT_OFFSET * 2) - 20, - 0, - INVENTORY_HEADER_SIZE - (SEARCH_BUFFER_PIXELS * 2) - (SEARCH_TEXT_OFFSET * 2) - ) - searchBox.AnchorPoint = Vector2.new(0, 0.5) - searchBox.Position = UDim2.new(0, SEARCH_TEXT_OFFSET, 0.5, 0) - searchBox.ZIndex = 2 - searchBox.Parent = searchFrame - - local xButton: TextButton = Instance.new("TextButton") - xButton.Name = "X" - xButton.Text = "" - xButton.Size = UDim2.new(0, 30, 0, 30) - xButton.Position = UDim2.new(1, -xButton.Size.X.Offset, 0.5, -xButton.Size.Y.Offset / 2) - xButton.ZIndex = 4 - xButton.Visible = false - xButton.BackgroundTransparency = 1 - xButton.Parent = searchFrame - - local xImage: ImageButton = Instance.new("ImageButton") - xImage.Name = "X" - xImage.Image = SEARCH_IMAGE_X - xImage.BackgroundTransparency = 1 - xImage.Size = UDim2.new( - 0, - searchFrame.Size.Y.Offset - (SEARCH_BUFFER_PIXELS * 4), - 0, - searchFrame.Size.Y.Offset - (SEARCH_BUFFER_PIXELS * 4) - ) - xImage.AnchorPoint = Vector2.new(0.5, 0.5) - xImage.Position = UDim2.new(0.5, 0, 0.5, 0) - xImage.ZIndex = 1 - xImage.BorderSizePixel = 0 - xImage.Parent = xButton - - local function search(): () - local terms: { [string]: boolean } = {} - for word: string in searchBox.Text:gmatch("%S+") do - terms[word:lower()] = true - end - - local hitTable = {} - for i: number = NumberOfHotbarSlots + 1, #Slots do -- Only search inventory slots - local slot = Slots[i] - local hits: any = slot:CheckTerms(terms) - table.insert(hitTable, { slot, hits }) - slot.Frame.Visible = false - slot.Frame.Parent = InventoryFrame - end - - table.sort(hitTable, function(left: any, right: any): boolean - return left[2] > right[2] - end) - ViewingSearchResults = true - - local hitCount: number = 0 - for _, data in ipairs(hitTable) do - local slot, hits: any = data[1], data[2] - if hits > 0 then - slot.Frame.Visible = true - slot.Frame.Parent = UIGridFrame - slot.Frame.LayoutOrder = NumberOfHotbarSlots + hitCount - hitCount = hitCount + 1 - end - end - - ScrollingFrame.CanvasPosition = Vector2.new(0, 0) - UpdateScrollingFrameCanvasSize() - - xButton.ZIndex = 3 - end - - local function clearResults(): () - if xButton.ZIndex > 0 then - ViewingSearchResults = false - for i: number = NumberOfHotbarSlots + 1, #Slots do - local slot = Slots[i] - slot.Frame.LayoutOrder = slot.Index - slot.Frame.Parent = UIGridFrame - slot.Frame.Visible = true - end - xButton.ZIndex = 0 - end - UpdateScrollingFrameCanvasSize() - end - - local function reset(): () - clearResults() - searchBox.Text = "" - end - - local function onChanged(property: string): () - if property == "Text" then - local text: string = searchBox.Text - if text == "" then - searchBox.TextTransparency = TEXT_STROKE_TRANSPARENCY - clearResults() - elseif text ~= SEARCH_TEXT then - searchBox.TextTransparency = 0 - search() - end - xButton.Visible = text ~= "" and text ~= SEARCH_TEXT - end - end - - local function focusLost(enterPressed: boolean): () - if enterPressed then - --TODO: Could optimize - search() - end - end - - xButton.MouseButton1Click:Connect(reset) - searchBox.Changed:Connect(onChanged) - searchBox.FocusLost:Connect(focusLost) - - BackpackScript.StateChanged.Event:Connect(function(isNowOpen: boolean): () - -- InventoryIcon:getInstance("iconButton").Modal = isNowOpen -- Allows free mouse movement even in first person - - if not isNowOpen then - reset() - end - end) - - HotkeyFns[Enum.KeyCode.Escape.Value] = function(isProcessed: any): () - if isProcessed then -- Pressed from within a TextBox - reset() - end - end - local function detectGamepad(lastInputType: Enum.UserInputType): () - if lastInputType == Enum.UserInputType.Gamepad1 and not UserInputService.VREnabled then - searchFrame.Visible = false - else - searchFrame.Visible = true - end - end - UserInputService.LastInputTypeChanged:Connect(detectGamepad) -end - --- When menu is opend, disable backpack -GuiService.MenuOpened:Connect(function(): () - BackpackGui.Enabled = false - inventoryIcon:setEnabled(false) -end) - --- When menu is closed, enable backpack -GuiService.MenuClosed:Connect(function(): () - BackpackGui.Enabled = true - inventoryIcon:setEnabled(true) -end) - -do -- Make the Inventory expand/collapse arrow (unless TopBar) - -- selene: allow(unused_variable) - local removeHotBarSlot = function(name: string, state: Enum.UserInputState, input: InputObject): () - if state ~= Enum.UserInputState.Begin then - return - end - if not GuiService.SelectedObject then - return - end - - for i: number = 1, NumberOfHotbarSlots do - if Slots[i].Frame == GuiService.SelectedObject and Slots[i].Tool then - Slots[i]:MoveToInventory() - return - end - end - end - - local function openClose(): () - if not next(Dragging) then -- Only continue if nothing is being dragged - InventoryFrame.Visible = not InventoryFrame.Visible - local nowOpen: boolean = InventoryFrame.Visible - AdjustHotbarFrames() - HotbarFrame.Active = not HotbarFrame.Active - for i: number = 1, NumberOfHotbarSlots do - Slots[i]:SetClickability(not nowOpen) - end - end - - if InventoryFrame.Visible then - if GamepadEnabled then - if GAMEPAD_INPUT_TYPES[UserInputService:GetLastInputType()] then - resizeGamepadHintsFrame() - gamepadHintsFrame.Visible = not UserInputService.VREnabled - end - enableGamepadInventoryControl() - end - if BackpackPanel and VRService.VREnabled then - BackpackPanel:SetVisible(true) - BackpackPanel:RequestPositionUpdate() - end - else - if GamepadEnabled then - gamepadHintsFrame.Visible = false - end - disableGamepadInventoryControl() - end - - if InventoryFrame.Visible then - ContextActionService:BindAction("BackpackRemoveSlot", removeHotBarSlot, false, Enum.KeyCode.ButtonX) - else - ContextActionService:UnbindAction("BackpackRemoveSlot") - end - - BackpackScript.IsOpen = InventoryFrame.Visible - BackpackScript.StateChanged:Fire(InventoryFrame.Visible) - end - - StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false) - BackpackScript.OpenClose = openClose -- Exposed -end - --- Now that we're done building the GUI, we Connect to all the major events - --- Wait for the player if LocalPlayer wasn't ready earlier -while not Player do - task.wait() - Player = Players.LocalPlayer -end - --- Listen to current and all future characters of our player -Player.CharacterAdded:Connect(OnCharacterAdded) -if Player.Character then - OnCharacterAdded(Player.Character) -end - -do -- Hotkey stuff - -- Listen to key down - UserInputService.InputBegan:Connect(OnInputBegan) - - -- Listen to ANY TextBox gaining or losing focus, for disabling all hotkeys - UserInputService.TextBoxFocused:Connect(function(): () - TextBoxFocused = true - end) - UserInputService.TextBoxFocusReleased:Connect(function(): () - TextBoxFocused = false - end) - - -- Manual unequip for HopperBins on drop button pressed - HotkeyFns[DROP_HOTKEY_VALUE] = function(): () --NOTE: HopperBin - if ActiveHopper then - UnequipAllTools() - end - end - - -- Listen to keyboard status, for showing/hiding hotkey labels - UserInputService.LastInputTypeChanged:Connect(OnUISChanged) - OnUISChanged() - - -- Listen to gamepad status, for allowing gamepad style selection/equip - if UserInputService:GetGamepadConnected(Enum.UserInputType.Gamepad1) then - gamepadConnected() - end - UserInputService.GamepadConnected:Connect(function(gamepadEnum: Enum.UserInputType): () - if gamepadEnum == Enum.UserInputType.Gamepad1 then - gamepadConnected() - end - end) - UserInputService.GamepadDisconnected:Connect(function(gamepadEnum: Enum.UserInputType): () - if gamepadEnum == Enum.UserInputType.Gamepad1 then - gamepadDisconnected() - end - end) -end - --- Sets whether the backpack is enabled or not -function BackpackScript:SetBackpackEnabled(Enabled: boolean): () - BackpackEnabled = Enabled -end - --- Returns if the backpack's inventory is open -function BackpackScript:IsOpened(): boolean - return BackpackScript.IsOpen -end - --- Returns on if the backpack is enabled or not -function BackpackScript:GetBackpackEnabled(): boolean - return BackpackEnabled -end - --- Returns the BindableEvent for when the backpack state changes -function BackpackScript:GetStateChangedEvent(): BindableEvent - return BackpackScript.StateChanged -end - --- Update every heartbeat the icon state -RunService.Heartbeat:Connect(function(): () - OnIconChanged(BackpackEnabled) -end) - --- Update the transparency of the backpack based on GuiService.PreferredTransparency -local function OnPreferredTransparencyChanged(): () - local preferredTransparency: number = GuiService.PreferredTransparency - - BACKGROUND_TRANSPARENCY = BACKGROUND_TRANSPARENCY_DEFAULT * preferredTransparency - InventoryFrame.BackgroundTransparency = BACKGROUND_TRANSPARENCY - - SLOT_LOCKED_TRANSPARENCY = SLOT_LOCKED_TRANSPARENCY_DEFAULT * preferredTransparency - for _, slot in ipairs(Slots) do - slot.Frame.BackgroundTransparency = SLOT_LOCKED_TRANSPARENCY - end - - SEARCH_BACKGROUND_TRANSPARENCY = SEARCH_BACKGROUND_TRANSPARENCY_DEFAULT * preferredTransparency - searchFrame.BackgroundTransparency = SEARCH_BACKGROUND_TRANSPARENCY -end -GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(OnPreferredTransparencyChanged) - -return BackpackScript +return module From 1c4b2fded0826d7051f84bef041c75a8da79cb5d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 13 May 2025 13:13:45 -0700 Subject: [PATCH 14/95] Add reference gui --- assets/SatchelGuiReference.rbxmx | 2687 ++++++++++++++++++++++++++++++ 1 file changed, 2687 insertions(+) create mode 100644 assets/SatchelGuiReference.rbxmx diff --git a/assets/SatchelGuiReference.rbxmx b/assets/SatchelGuiReference.rbxmx new file mode 100644 index 00000000..f8b08916 --- /dev/null +++ b/assets/SatchelGuiReference.rbxmx @@ -0,0 +1,2687 @@ + + true + null + nil + + + + true + 0 + false + false + 120 + true + SatchelGui + true + null + 0 + 2 + 0 + 0 + 0 + 0 + false + -1 + + 1 + + + + false + + 0.5 + 1 + + + true + 0 + + 1 + 1 + 1 + + 0 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Backpack + null + null + null + null + + 0.5 + 0 + 1 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 655 + 0 + 0 + + 0 + -1 + 0 + + true + 1 + + + + false + + 0 + 0 + + + true + 3 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 1 + Hotbar + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 0 + 65 + + 0 + -1 + 0 + + true + 1 + + + + + 0 + false + 0 + 1 + 0 + 0 + UIListLayout + + 0 + 5 + + 2 + -1 + + 0 + 0 + false + + + + + false + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + -1 + Hint + null + null + null + null + + 0.479999989 + 0 + 0 + 0 + + 0 + null + 0 + 3 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 60 + 0 + 37 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + false + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 100 + Hint + null + null + null + null + + 0.479999989 + 0 + 0 + 0 + + 0 + null + 0 + 3 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 60 + 0 + 37 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + + 0 + false + UIPadding + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + + 0 + 0 + + -1 + + + + + + true + + 0 + 0 + + + true + true + 0 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 500 + + + null + true + 0 + 1 + + + -1 + false + Item + null + null + null + null + + + 0 + 0 + 0 + 1 + + null + false + null + 0 + true + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 60 + 0 + 60 + + 0 + -1 + 0 + + Tool + + 1 + 1 + 1 + + 0 + true + 18 + + 0 + 0 + 0 + + 0.5 + 0 + 0 + true + 2 + 1 + true + 1 + + + + + 0 + + 0 + 8 + + false + Corner + -1 + + + + + + + + 0 + null + 0 + + false + + 1 + 0 + + 0 + 0 + 0 + 0 + + 0 + 0 + 0 + 0 + + true + 0 + + 0 + 0 + 0 + 0 + + 0 + + 0 + 0 + 0 + 0 + + UIDragDetector + null + 0 + + 0 + 300 + 0 + 300 + + 90 + -1 + + 0 + + + + + + 0 + false + UIPadding + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + -1 + + + + + + false + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 0 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/GuiImagePlaceholder.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 0 + TextureIcon + null + null + null + null + + 0 + 0 + 0 + 0 + + 0 + null + 0 + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 1 + 0 + 1 + 0 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + 0 + + 0 + 3 + + false + Corner + -1 + + + + + + + false + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 800 + + + true + 0 + 1 + + + -1 + Number + null + null + null + null + + + 0 + 0 + 0 + 0 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 1 + 0 + 1 + 0 + + 0 + -1 + + 1 + + 1 + 1 + 1 + + 0 + false + 14 + + 0 + 0 + 0 + + 0.5 + 0 + 0 + false + 0 + 0 + true + 1 + + + + 1 + + 0 + + 1 + 1 + 1 + + false + false + 0 + UIStroke + -1 + + 5 + 0 + + + + + + 0 + + 0 + 3 + + false + Corner + -1 + + + + + + + + 0 + false + 18 + 1 + UITextSizeConstraint + -1 + + + + + + false + + 0.5 + 1 + + + true + 3 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 400 + + + true + 0 + 1 + + + -1 + ToolTip + null + null + null + null + + + 0.5 + 0 + 0 + -10 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 0 + 0 + + 0 + -1 + + Tool Tip + + 1 + 1 + 1 + + 0 + false + 16 + + 0 + 0 + 0 + + 1 + 0 + 0 + false + 2 + 1 + false + 1 + + + + + 0 + + 0 + 4 + + false + UICorner + -1 + + + + + + + 0 + false + UIPadding + + 0 + 2 + + + 0 + 2 + + + 0 + 2 + + + 0 + 2 + + -1 + + + + + + + + + + 0 + false + 1 + 0 + 0 + 0 + UIListLayout + + 0 + 5 + + 2 + -1 + + 2 + 0 + false + + + + + false + + 0 + 0 + + + true + 0 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0.300000012 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Inventory + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 1 + 0 + 0 + 320 + + 0 + -1 + 0 + + true + 1 + + + + + 0 + false + UIPadding + + 0 + 0 + + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + -1 + + + + + + false + + 0 + 0 + + + true + 2 + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + rbxasset://textures/ui/Scroll/scroll-bottom.png + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + true + false + false + 0 + 0 + true + 0 + rbxasset://textures/ui/Scroll/scroll-middle.png + ScrollingFrame + null + null + null + null + + 0 + 0 + 0 + 35 + + null + 0 + + 0.815686285 + 0.847058833 + 0.980392158 + + 0 + 8 + 2 + true + false + 0 + 0 + 0 + 0 + true + null + 0 + + 1 + 18 + 1 + -35 + + 0 + -1 + + rbxasset://textures/ui/Scroll/scroll-top.png + 0 + 0 + true + 1 + + + + + 0 + false + 0 + 1 + 0 + 0 + UIListLayout + + 0 + 5 + + 2 + -1 + + 1 + 0 + true + + + + + + + 0 + + 0 + 8 + + false + UICorner + -1 + + + + + + false + + 1 + 0 + + + true + 0 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0.200000003 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Search + null + null + null + null + + 1 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 190 + 0 + 30 + + 0 + -1 + 0 + + true + 1 + + + + + 0 + + 0 + 4 + + false + UICorner + -1 + + + + + + + 0 + false + UIPadding + + 0 + 9 + + + 0 + 8 + + + 0 + 28 + + + 0 + 9 + + -1 + + + + + + 1 + + 0 + + 1 + 1 + 1 + + false + true + 0 + UIStroke + -1 + + 1 + 0.800000012 + + + + + true + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + true + false + false + false + + rbxassetid://16658221428 + 500 + + + true + 0 + 1 + + + -1 + false + SearchBox + null + null + null + null + + + 0.698039234 + 0.698039234 + 0.698039234 + + Search + + 0 + 0 + 0 + 0 + + false + null + 0 + true + 0 + 0 + 0 + 0 + false + null + 0 + true + + 1 + 0 + 1 + 0 + + 0 + -1 + + + + 1 + 1 + 1 + + 0 + true + false + 18 + + 0 + 0 + 0 + + 0.5 + 0 + 0 + false + 0 + 1 + true + 1 + + + + + true + + 0 + 0.5 + + + true + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + null + + rbxasset://textures/ui/InspectMenu/x.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 0 + false + Clear + null + null + null + null + + 1 + 8 + 0.5 + 0 + + null + + 0 + null + 0 + 0 + true + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 12 + 0 + 12 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + 0 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + + false + + 0 + 0 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 500 + + + true + 0 + 1 + + + -1 + Header + null + null + null + null + + + 0 + 0 + 0 + 0 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 190 + 0 + 30 + + 0 + -1 + + Satchel v2.0 + + 1 + 1 + 1 + + 0 + false + 18 + + 0 + 0 + 0 + + 0.5 + 0 + 1 + false + 0 + 1 + true + 1 + + + + + 0 + false + UIPadding + + 0 + 0 + + + 0 + 8 + + + 0 + 0 + + + 0 + 0 + + -1 + + + + + + + false + + 1 + 1 + + + true + 0 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0.200000003 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 700 + + + true + 0 + 1 + + + -1 + DropTool + null + null + null + null + + + 1 + 0 + 1 + -5 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 1 + 0 + 0 + 50 + + 0 + -1 + + Drop Tool + + 1 + 1 + 1 + + 0 + false + 18 + + 0 + 0 + 0 + + 0.5 + 0.5 + 0 + false + 2 + 1 + true + 1 + + + + + 0 + + 0 + 5 + + false + Corner + -1 + + + + + + 1 + + 0 + + 1 + 1 + 1 + + false + true + 0 + UIStroke + -1 + + 1 + 0.800000012 + + + + + + + false + + 0 + 0 + + + true + 1 + + 0.0980392173 + 0.105882354 + 0.113725491 + + 0.300000012 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + -2 + Hints + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 1 + 0 + 0 + 50 + + 0 + -1 + 0 + + true + 1 + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Hint + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + 0 + + true + 1 + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 500 + + + true + 0 + 1 + + + -1 + TextLabel + null + null + null + null + + + 0 + 42 + 0 + 0 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + + Remove from Hotbar + + 1 + 1 + 1 + + 0 + false + 18 + + 0 + 0 + 0 + + 1 + 0 + 0 + false + 2 + 1 + true + 1 + + + + + false + + 0 + 0.5 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 0 + ImageLabel + null + null + null + null + + 0 + 0 + 0.5 + 0 + + 0 + null + 0 + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 37 + 0 + 37 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + + + 0 + false + 0 + 0 + 4 + 0 + UIListLayout + + 0 + 5 + + 2 + -1 + + 1 + 0 + false + + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Hint + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + 0 + + true + 1 + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 500 + + + true + 0 + 1 + + + -1 + TextLabel + null + null + null + null + + + 0 + 42 + 0 + 0 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + + Select/Swap + + 1 + 1 + 1 + + 0 + false + 18 + + 0 + 0 + 0 + + 1 + 0 + 0 + false + 2 + 1 + true + 1 + + + + + false + + 0 + 0.5 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/Controls/DesignSystem/ButtonA.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 0 + ImageLabel + null + null + null + null + + 0 + 0 + 0.5 + 0 + + 0 + null + 0 + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 37 + 0 + 37 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + true + 0 + Hint + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + 0 + + true + 1 + + + + false + + 0 + 0 + + + true + 1 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + + rbxassetid://16658221428 + 500 + + + true + 0 + 1 + + + -1 + TextLabel + null + null + null + null + + + 0 + 42 + 0 + 0 + + false + null + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 0 + 1 + 0 + + 0 + -1 + + Close Backpack + + 1 + 1 + 1 + + 0 + false + 18 + + 0 + 0 + 0 + + 1 + 0 + 0 + false + 2 + 1 + true + 1 + + + + + false + + 0 + 0.5 + + + true + 0 + + 1 + 1 + 1 + + 1 + + 0 + 0 + 0 + + 0 + 0 + 0 + false + false + false + rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png + + 1 + 1 + 1 + + + 0 + 0 + + + 0 + 0 + + 0 + true + 0 + ImageLabel + null + null + null + null + + 0 + 0 + 0.5 + 0 + + 0 + null + 0 + 0 + false + 0 + 0 + 0 + 0 + false + null + 0 + + 0 + 37 + 0 + 37 + + 0 + + + 0 + 0 + + + 0 + 0 + + + 1 + -1 + + + 1 + 0 + 1 + 0 + + true + 1 + + + + + + + 0 + false + UIPadding + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + + 0 + 5 + + -1 + + + + + + + 0 + + 0 + 8 + + false + UICorner + -1 + + + + + + + \ No newline at end of file From e6b5baf73b07696d18afd9f91c8fa62cffed5da0 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 14 May 2025 19:39:34 +0000 Subject: [PATCH 15/95] Add storybook Signed-off-by: GitHub --- src/Components/Hotbar.luau | 26 +++++++++++ src/Components/Slot.luau | 65 +++++++++++++++++++++------- src/Stories/Hotbar.story.luau | 48 ++++++++++++++++++++ src/Stories/Slot.story.luau | 6 ++- src/Stories/Storybook.storybook.luau | 6 +++ src/Theme.luau | 11 +++++ 6 files changed, 145 insertions(+), 17 deletions(-) create mode 100644 src/Components/Hotbar.luau create mode 100644 src/Stories/Hotbar.story.luau create mode 100644 src/Stories/Storybook.storybook.luau create mode 100644 src/Theme.luau diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau new file mode 100644 index 00000000..ec52ad2d --- /dev/null +++ b/src/Components/Hotbar.luau @@ -0,0 +1,26 @@ +local React = require("../Packages/React") + +local Theme = require("../Theme") + +export type Props = {} + +local function HotbarFrame(props: Props) + return React.createElement("Frame", { + AutomaticSize = Enum.AutomaticSize.XY, + BackgroundTransparency = 1, + }, { + React.createElement("UIListLayout", { + Padding = UDim.new(0, 5), + VerticalAlignment = Enum.VerticalAlignment.Center, + }), + }, { + React.createElement("UIPadding", { + PaddingBottom = UDim.new(0, 5), + PaddingLeft = UDim.new(0, 5), + PaddingRight = UDim.new(0, 5), + PaddingTop = UDim.new(0, 5), + }), + }) +end + +return HotbarFrame diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 4f064354..9bde7ade 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,30 +1,65 @@ local React = require("../Packages/React") +local Theme = require("../Theme") + export type Props = { toolName: string, - slotNumber: number, + textureIcon: string, + tooltip: string, + slotNumber: string, + equipped: boolean, } local function SlotButton(props: Props) - return React.createElement( - "TextButton", - { - Size = UDim2.new(0, 50, 0, 50), - Text = props.toolName, - }, - { + return React.createElement("TextButton", { + Size = UDim2.new(0, 60, 0, 60), + TextScaled = true, + Text = props.toolName, + }, { + React.createElement("UITextSizeConstraint", { + MaxTextSize = 18, + }), + }, { + React.createElement("UIPadding", { + PaddingBottom = UDim.new(0, 5), + PaddingLeft = UDim.new(0, 5), + PaddingRight = UDim.new(0, 5), + PaddingTop = UDim.new(0, 5), + }), + }, { + React.createElement("ImageLabel", { + BackgroundTransparency = 1, + Image = props.textureIcon, + Size = UDim2.new(1, 0, 1, 0), + }, { React.createElement("UICorner", { - CornerRadius = UDim.new(0, 8), + CornerRadius = UDim.new(0, 3), }), - }, - React.createElement("TextLabel"), - { + }), + }, { + React.createElement("UICorner", { + CornerRadius = UDim.new(0, 8), + }), + }, { + React.createElement("TextLabel", { + BackgroundTransparency = 1, + Position = UDim2.new(0, 0, 0, 0), Size = UDim2.new(1, 0, 1, 0), - Text = props.slotNumber, TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, - } - ) + Text = props.slotNumber, + }, { + React.createElement("UICorner", { + CornerRadius = UDim.new(0, 3), + }), + }, { + React.createElement("UIStroke", { + ApplyStrokeMode = Enum.ApplyStrokeMode.Border, + Thickness = 5, + Enabled = props.equipped, + }), + }), + }) end return SlotButton diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau new file mode 100644 index 00000000..c0586ab3 --- /dev/null +++ b/src/Stories/Hotbar.story.luau @@ -0,0 +1,48 @@ +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Hotbar = require("../Components/Hotbar") +local Slot = require("../Components/Slot") + +return { + summary = "Hotbar which holds tool slots", + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(Hotbar, {}, { + React.createElement(Slot, { + toolName = "Sword", + textureIcon = "rbxassetid://7743866529", + tooltip = "A sharp blade", + slotNumber = "1", + equipped = true, + paddingOffset = 0, + Parent = script.Parent, + }), + React.createElement(Slot, { + toolName = "Bow", + textureIcon = "rbxassetid://7743878358", + tooltip = "For ranged attacks", + slotNumber = "2", + equipped = false, + paddingOffset = 0, + }), + React.createElement(Slot, { + toolName = "Shield", + textureIcon = "rbxassetid://7743867987", + tooltip = "Defensive item", + slotNumber = "3", + equipped = false, + paddingOffset = 0, + }), + React.createElement(Slot, { + toolName = "Potion", + textureIcon = "rbxassetid://7743871218", + tooltip = "Healing potion", + slotNumber = "4", + equipped = false, + paddingOffset = 0, + }), + }) + end, +} diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 4e1ebfc0..95d8d540 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -4,12 +4,14 @@ local ReactRoblox = require("../Packages/ReactRoblox") local Slot = require("../Components/Slot") return { - summary = "A generic button component that can be used anywhere", + summary = "A slot for a tool", react = React, reactRoblox = ReactRoblox, story = function() return React.createElement(Slot, { - toolName = "Tool ", + toolName = "Tool Name", + slotNumber = "0", + equipped = true, }) end, } diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau new file mode 100644 index 00000000..ac819e1e --- /dev/null +++ b/src/Stories/Storybook.storybook.luau @@ -0,0 +1,6 @@ +local storybook = { + name = "Stories", + storyRoots = { script.Parent }, +} + +return storybook diff --git a/src/Theme.luau b/src/Theme.luau new file mode 100644 index 00000000..7f5126c4 --- /dev/null +++ b/src/Theme.luau @@ -0,0 +1,11 @@ +return { + SlotTextSize = 18, + HeaderTextSize = 18, + SearchTextSize = 18, + HintTextSize = 18, + DropTextSize = 18, + SlotNumberTextSize = 14, + InventoryCorner = 8, + SlotCorner = 8, + SlotInnerCorner = 3, +} From f09d1c7c9d6b315dafa01d7b1471bed16f10e28c Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 14 May 2025 20:06:20 +0000 Subject: [PATCH 16/95] Improve storybook Signed-off-by: GitHub --- src/Components/Slot.luau | 9 +++++---- src/Stories/Slot.story.luau | 4 ++++ src/Stories/Storybook.storybook.luau | 17 ++++++++++++----- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 9bde7ade..0c498964 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -2,19 +2,20 @@ local React = require("../Packages/React") local Theme = require("../Theme") -export type Props = { +local function SlotButton(props: { toolName: string, textureIcon: string, tooltip: string, slotNumber: string, equipped: boolean, -} - -local function SlotButton(props: Props) + onActivated: () -> (), +}) return React.createElement("TextButton", { Size = UDim2.new(0, 60, 0, 60), TextScaled = true, Text = props.toolName, + [React.Event.Activated] = props.onActivated, + }, { React.createElement("UITextSizeConstraint", { MaxTextSize = 18, diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 95d8d540..b8caaeca 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -11,7 +11,11 @@ return { return React.createElement(Slot, { toolName = "Tool Name", slotNumber = "0", + textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", equipped = true, + onActivated = function() + print("click") + end, }) end, } diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau index ac819e1e..f0a18add 100644 --- a/src/Stories/Storybook.storybook.luau +++ b/src/Stories/Storybook.storybook.luau @@ -1,6 +1,13 @@ -local storybook = { - name = "Stories", - storyRoots = { script.Parent }, -} +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") -return storybook +return { + name = script.Parent.Name, + storyRoots = { + script.Parent, + }, + packages = { + React = React, + ReactRoblox = ReactRoblox, + }, +} \ No newline at end of file From 227605f0d8b7b26e5aabcb841ac287907071f1ad Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 14 May 2025 20:20:21 +0000 Subject: [PATCH 17/95] Add controls Signed-off-by: GitHub --- src/Components/Slot.luau | 1 + src/Stories/Slot.story.luau | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 0c498964..ca23ace1 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -32,6 +32,7 @@ local function SlotButton(props: { BackgroundTransparency = 1, Image = props.textureIcon, Size = UDim2.new(1, 0, 1, 0), + Visible = if props.textureIcon then true else false, }, { React.createElement("UICorner", { CornerRadius = UDim.new(0, 3), diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index b8caaeca..85722ad3 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -3,18 +3,30 @@ local ReactRoblox = require("../Packages/ReactRoblox") local Slot = require("../Components/Slot") +local controls = { + toolName = "Tool name", + textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", + slotNumber = "0", + equipped = false, +} + +type Props = { + controls: typeof(controls), +} + return { summary = "A slot for a tool", react = React, reactRoblox = ReactRoblox, - story = function() + controls = controls, + story = function(props: Props) return React.createElement(Slot, { - toolName = "Tool Name", - slotNumber = "0", - textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", - equipped = true, + toolName = props.controls.toolName, + slotNumber = props.controls.slotNumber, + textureIcon = props.controls.textureIcon, + equipped = props.controls.equipped, onActivated = function() - print("click") + print("Slot activated") end, }) end, From bcbaef19afe119be96691295712b4d73e701b2dc Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 19:37:16 +0000 Subject: [PATCH 18/95] Add tooltips Signed-off-by: GitHub --- src/Components/Tooltip.luau | 26 ++++++++++++++++++++++++++ src/Stories/Tooltip.story.luau | 24 ++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/Components/Tooltip.luau create mode 100644 src/Stories/Tooltip.story.luau diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau new file mode 100644 index 00000000..d14fdc6d --- /dev/null +++ b/src/Components/Tooltip.luau @@ -0,0 +1,26 @@ +local React = require("../Packages/React") + +local function TooltipTextBox(props: { + text: string, +}) + return React.createElement("TextLabel", { + Text = props.text, + TextSize = 15, + AnchorPoint = Vector2.new(0.5, 1), + Position = UDim2.new(0.5, 0, 0, -10), + AutomaticSize = Enum.AutomaticSize.XY, + }, { + React.createElement("UICorner", { + CornerRadius = UDim.new(0, 4), + }), + }, { + React.createElement("UIPadding", { + PaddingTop = UDim.new(0, 4), + PaddingLeft = UDim.new(0, 4), + PaddingRight = UDim.new(0, 4), + PaddingBottom = UDim.new(0, 4), + }), + }) +end + +return TooltipTextBox diff --git a/src/Stories/Tooltip.story.luau b/src/Stories/Tooltip.story.luau new file mode 100644 index 00000000..61585684 --- /dev/null +++ b/src/Stories/Tooltip.story.luau @@ -0,0 +1,24 @@ +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Tooltip = require("../Components/Tooltip") + +local controls = { + text = "Tool Tip", +} + +type Props = { + controls: typeof(controls), +} + +return { + summary = "A tooltip for a tool slot", + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function(props: Props) + return React.createElement(Tooltip, { + text = props.controls.text, + }) + end, +} From f4a26a7357c9e9c9dab5769c514c2e0bf7014775 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 19:47:13 +0000 Subject: [PATCH 19/95] Remove extra texture icon logic Signed-off-by: GitHub --- src/Components/Slot.luau | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index ca23ace1..7781c2ae 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -15,7 +15,6 @@ local function SlotButton(props: { TextScaled = true, Text = props.toolName, [React.Event.Activated] = props.onActivated, - }, { React.createElement("UITextSizeConstraint", { MaxTextSize = 18, @@ -32,7 +31,6 @@ local function SlotButton(props: { BackgroundTransparency = 1, Image = props.textureIcon, Size = UDim2.new(1, 0, 1, 0), - Visible = if props.textureIcon then true else false, }, { React.createElement("UICorner", { CornerRadius = UDim.new(0, 3), From 3d366c7130762107d57965193568422cd85b6465 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 19:59:14 +0000 Subject: [PATCH 20/95] Fix hotbar story Signed-off-by: GitHub --- src/Components/Hotbar.luau | 17 ++++++++------- src/Stories/Hotbar.story.luau | 39 +++++------------------------------ 2 files changed, 14 insertions(+), 42 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index ec52ad2d..86954422 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -1,25 +1,26 @@ local React = require("../Packages/React") -local Theme = require("../Theme") - -export type Props = {} - -local function HotbarFrame(props: Props) +local function HotbarFrame(props: { + child: () -> (), +}) return React.createElement("Frame", { AutomaticSize = Enum.AutomaticSize.XY, - BackgroundTransparency = 1, + -- BackgroundTransparency = 1, }, { React.createElement("UIListLayout", { Padding = UDim.new(0, 5), + FillDirection = Enum.FillDirection.Horizontal, VerticalAlignment = Enum.VerticalAlignment.Center, }), }, { React.createElement("UIPadding", { - PaddingBottom = UDim.new(0, 5), + PaddingBottom = UDim.new(0, 0), PaddingLeft = UDim.new(0, 5), PaddingRight = UDim.new(0, 5), - PaddingTop = UDim.new(0, 5), + PaddingTop = UDim.new(0, 0), }), + }, { + Child = props.child, }) end diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index c0586ab3..705a9aa0 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -9,40 +9,11 @@ return { react = React, reactRoblox = ReactRoblox, story = function() - return React.createElement(Hotbar, {}, { - React.createElement(Slot, { - toolName = "Sword", - textureIcon = "rbxassetid://7743866529", - tooltip = "A sharp blade", - slotNumber = "1", - equipped = true, - paddingOffset = 0, - Parent = script.Parent, + return React.createElement(Hotbar, { + child = React.createElement(Slot, { + toolName = "Tool", + slotNumber = "0", }), - React.createElement(Slot, { - toolName = "Bow", - textureIcon = "rbxassetid://7743878358", - tooltip = "For ranged attacks", - slotNumber = "2", - equipped = false, - paddingOffset = 0, - }), - React.createElement(Slot, { - toolName = "Shield", - textureIcon = "rbxassetid://7743867987", - tooltip = "Defensive item", - slotNumber = "3", - equipped = false, - paddingOffset = 0, - }), - React.createElement(Slot, { - toolName = "Potion", - textureIcon = "rbxassetid://7743871218", - tooltip = "Healing potion", - slotNumber = "4", - equipped = false, - paddingOffset = 0, - }), - }) + }, {}) end, } From dbf1d33c00759cea83d2d9b6a138c8357a468a84 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 20:11:57 +0000 Subject: [PATCH 21/95] Use strict type checking Signed-off-by: GitHub --- src/Components/Hotbar.luau | 2 ++ src/Components/Slot.luau | 4 ++-- src/Components/Tooltip.luau | 2 ++ src/Stories/Hotbar.story.luau | 2 ++ src/Stories/Slot.story.luau | 2 ++ src/Stories/Storybook.storybook.luau | 2 ++ src/Stories/Tooltip.story.luau | 2 ++ 7 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 86954422..81e71993 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local function HotbarFrame(props: { diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 7781c2ae..ebd1bc6b 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,6 +1,6 @@ -local React = require("../Packages/React") +--!strict -local Theme = require("../Theme") +local React = require("../Packages/React") local function SlotButton(props: { toolName: string, diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index d14fdc6d..b2cd7b42 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local function TooltipTextBox(props: { diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 705a9aa0..4ab32125 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local ReactRoblox = require("../Packages/ReactRoblox") diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 85722ad3..cd42e3b8 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local ReactRoblox = require("../Packages/ReactRoblox") diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau index f0a18add..ac3e01f4 100644 --- a/src/Stories/Storybook.storybook.luau +++ b/src/Stories/Storybook.storybook.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local ReactRoblox = require("../Packages/ReactRoblox") diff --git a/src/Stories/Tooltip.story.luau b/src/Stories/Tooltip.story.luau index 61585684..f9d4d649 100644 --- a/src/Stories/Tooltip.story.luau +++ b/src/Stories/Tooltip.story.luau @@ -1,3 +1,5 @@ +--!strict + local React = require("../Packages/React") local ReactRoblox = require("../Packages/ReactRoblox") From 68505146debaa9bc19fb23244b21d1a3d2cf9e6e Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 21:42:51 +0000 Subject: [PATCH 22/95] Add constants Signed-off-by: GitHub --- src/Components/Slot.luau | 37 ++++++++++++++++++++++++++----------- src/Constants.luau | 25 +++++++++++++++++++++++++ src/Stories/Slot.story.luau | 2 ++ src/Theme.luau | 11 ----------- 4 files changed, 53 insertions(+), 22 deletions(-) create mode 100644 src/Constants.luau delete mode 100644 src/Theme.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index ebd1bc6b..812041b9 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,30 +1,39 @@ --!strict local React = require("../Packages/React") +local constants = require("../Constants") local function SlotButton(props: { toolName: string, textureIcon: string, tooltip: string, slotNumber: string, + locked: boolean, equipped: boolean, onActivated: () -> (), }) return React.createElement("TextButton", { + BackgroundColor3 = constants.theme.backgroundColor, + TextColor3 = constants.theme.textColor, + TextSize = constants.theme.textSize, + TextStrokeColor3 = constants.theme.textStrokeColor, + TextStrokeTransparency = constants.theme.textStrokeTransparency, + Font = constants.theme.font, + BackgroundTransparency = if props.locked then 0 else constants.theme.backgroundTransparency, + Text = props.toolName, Size = UDim2.new(0, 60, 0, 60), TextScaled = true, - Text = props.toolName, [React.Event.Activated] = props.onActivated, }, { React.createElement("UITextSizeConstraint", { - MaxTextSize = 18, + MaxTextSize = constants.theme.textSize, }), }, { React.createElement("UIPadding", { - PaddingBottom = UDim.new(0, 5), - PaddingLeft = UDim.new(0, 5), - PaddingRight = UDim.new(0, 5), - PaddingTop = UDim.new(0, 5), + PaddingBottom = constants.theme.padding, + PaddingLeft = constants.theme.padding, + PaddingRight = constants.theme.padding, + PaddingTop = constants.theme.padding, }), }, { React.createElement("ImageLabel", { @@ -33,29 +42,35 @@ local function SlotButton(props: { Size = UDim2.new(1, 0, 1, 0), }, { React.createElement("UICorner", { - CornerRadius = UDim.new(0, 3), + CornerRadius = constants.theme.cornerRadiusSmall, }), }), }, { React.createElement("UICorner", { - CornerRadius = UDim.new(0, 8), + CornerRadius = constants.theme.cornerRadius, }), }, { React.createElement("TextLabel", { + TextColor3 = constants.theme.textColor, + TextSize = constants.theme.textSizeSmall, + TextStrokeColor3 = constants.theme.textStrokeColor, + TextStrokeTransparency = constants.theme.textStrokeTransparency, + Font = constants.theme.fontSmall, + Text = props.slotNumber, BackgroundTransparency = 1, Position = UDim2.new(0, 0, 0, 0), Size = UDim2.new(1, 0, 1, 0), TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, - Text = props.slotNumber, }, { React.createElement("UICorner", { - CornerRadius = UDim.new(0, 3), + CornerRadius = constants.theme.cornerRadiusSmall, }), }, { React.createElement("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Thickness = 5, + Thickness = constants.theme.thickness, + Color = constants.theme.equippedColor, Enabled = props.equipped, }), }), diff --git a/src/Constants.luau b/src/Constants.luau new file mode 100644 index 00000000..f4070812 --- /dev/null +++ b/src/Constants.luau @@ -0,0 +1,25 @@ +return { + theme = { + -- Spacing + thickness = 5, + padding = UDim.new(0, 5), + cornerRadius = UDim.new(0, 8), + cornerRadiusSmall = UDim.new(0, 3), -- padding - cornerRadius + + -- Font + font = Enum.Font.BuilderSansMedium, + fontSmall = Enum.Font.BuilderSansExtraBold, + textSize = 18, + textSizeSmall = 14, + + -- Colors + backgroundColor = Color3.fromRGB(25, 27, 29), + textColor = Color3.fromRGB(255, 255, 255), + textStrokeColor = Color3.fromRGB(0, 0, 0), + equippedColor = Color3.fromRGB(255, 255, 255), + + -- Transparency + backgroundTransparency = 0.3, + textStrokeTransparency = 0.5, + }, +} diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index cd42e3b8..b6187424 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -10,6 +10,7 @@ local controls = { textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", slotNumber = "0", equipped = false, + locked = false, } type Props = { @@ -27,6 +28,7 @@ return { slotNumber = props.controls.slotNumber, textureIcon = props.controls.textureIcon, equipped = props.controls.equipped, + locked = props.controls.locked, onActivated = function() print("Slot activated") end, diff --git a/src/Theme.luau b/src/Theme.luau deleted file mode 100644 index 7f5126c4..00000000 --- a/src/Theme.luau +++ /dev/null @@ -1,11 +0,0 @@ -return { - SlotTextSize = 18, - HeaderTextSize = 18, - SearchTextSize = 18, - HintTextSize = 18, - DropTextSize = 18, - SlotNumberTextSize = 14, - InventoryCorner = 8, - SlotCorner = 8, - SlotInnerCorner = 3, -} From 9b8731118c8b6b1295bfb2ef1967cec4207d6bc3 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 21:51:20 +0000 Subject: [PATCH 23/95] Add theme to hotbar and tooltip Signed-off-by: GitHub --- src/Components/Hotbar.luau | 2 +- src/Components/Tooltip.luau | 19 +++++++++++++------ src/Constants.luau | 2 ++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 81e71993..46a36e5b 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -7,7 +7,7 @@ local function HotbarFrame(props: { }) return React.createElement("Frame", { AutomaticSize = Enum.AutomaticSize.XY, - -- BackgroundTransparency = 1, + BackgroundTransparency = 1, }, { React.createElement("UIListLayout", { Padding = UDim.new(0, 5), diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index b2cd7b42..cdcab94e 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,26 +1,33 @@ --!strict local React = require("../Packages/React") +local constants = require("../Constants") local function TooltipTextBox(props: { text: string, }) return React.createElement("TextLabel", { Text = props.text, - TextSize = 15, + TextSize = constants.theme.textSizeSmall, + TextColor3 = constants.theme.textColor, + TextStrokeColor3 = constants.theme.textStrokeColor, + TextStrokeTransparency = constants.theme.textStrokeTransparency, + Font = constants.theme.font, + BackgroundColor3 = constants.theme.tooltipBackgroundColor, + BackgroundTransparency = constants.theme.tooltipBackgroundTransparency, AnchorPoint = Vector2.new(0.5, 1), Position = UDim2.new(0.5, 0, 0, -10), AutomaticSize = Enum.AutomaticSize.XY, }, { React.createElement("UICorner", { - CornerRadius = UDim.new(0, 4), + CornerRadius = constants.theme.cornerRadiusSmall, }), }, { React.createElement("UIPadding", { - PaddingTop = UDim.new(0, 4), - PaddingLeft = UDim.new(0, 4), - PaddingRight = UDim.new(0, 4), - PaddingBottom = UDim.new(0, 4), + PaddingTop = constants.theme.padding, + PaddingLeft = constants.theme.padding, + PaddingRight = constants.theme.padding, + PaddingBottom = constants.theme.padding, }), }) end diff --git a/src/Constants.luau b/src/Constants.luau index f4070812..89a66d99 100644 --- a/src/Constants.luau +++ b/src/Constants.luau @@ -14,12 +14,14 @@ return { -- Colors backgroundColor = Color3.fromRGB(25, 27, 29), + tooltipBackgroundColor = Color3.fromRGB(25, 27, 29), textColor = Color3.fromRGB(255, 255, 255), textStrokeColor = Color3.fromRGB(0, 0, 0), equippedColor = Color3.fromRGB(255, 255, 255), -- Transparency backgroundTransparency = 0.3, + tooltipBackgroundTransparency = 0, textStrokeTransparency = 0.5, }, } From 2c18de08b5a828d3d2651ca466d7d0d8ef78c9fd Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 21:57:51 +0000 Subject: [PATCH 24/95] Update tooltip theme Signed-off-by: GitHub --- src/Components/Tooltip.luau | 2 -- src/Constants.luau | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index cdcab94e..c6d06a2b 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -10,8 +10,6 @@ local function TooltipTextBox(props: { Text = props.text, TextSize = constants.theme.textSizeSmall, TextColor3 = constants.theme.textColor, - TextStrokeColor3 = constants.theme.textStrokeColor, - TextStrokeTransparency = constants.theme.textStrokeTransparency, Font = constants.theme.font, BackgroundColor3 = constants.theme.tooltipBackgroundColor, BackgroundTransparency = constants.theme.tooltipBackgroundTransparency, diff --git a/src/Constants.luau b/src/Constants.luau index 89a66d99..ecde93b9 100644 --- a/src/Constants.luau +++ b/src/Constants.luau @@ -14,7 +14,7 @@ return { -- Colors backgroundColor = Color3.fromRGB(25, 27, 29), - tooltipBackgroundColor = Color3.fromRGB(25, 27, 29), + tooltipBackgroundColor = Color3.fromRGB(38, 40, 48), textColor = Color3.fromRGB(255, 255, 255), textStrokeColor = Color3.fromRGB(0, 0, 0), equippedColor = Color3.fromRGB(255, 255, 255), From a746d81dd417159bd2aa7eca7a800e668809eadd Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 May 2025 22:15:49 +0000 Subject: [PATCH 25/95] Fix linting Signed-off-by: GitHub --- src/Loader.client.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Loader.client.luau b/src/Loader.client.luau index 2d9fa125..3121b0a8 100644 --- a/src/Loader.client.luau +++ b/src/Loader.client.luau @@ -12,4 +12,4 @@ file, You can obtain one at Mozilla Public License Version 2.0. ]] -require(script.Parent) -- Run Satchel \ No newline at end of file +require(script.Parent) -- Run Satchel From b5406ad668888f0885120502ea2b9211bc65d814 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 17:27:01 +0000 Subject: [PATCH 26/95] Add hint slot Signed-off-by: GitHub --- src/Components/HintSlot.luau | 20 ++++++++++++++++++++ src/Stories/HintSlot.story.luau | 26 ++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/Components/HintSlot.luau create mode 100644 src/Stories/HintSlot.story.luau diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau new file mode 100644 index 00000000..d4849400 --- /dev/null +++ b/src/Components/HintSlot.luau @@ -0,0 +1,20 @@ +--!strict + +local UserInputService = game:GetService("UserInputService") + +local React = require("../Packages/React") + +local function SlotButton(props: { + LayoutOrder: number, + image: string, +}) + return React.createElement("ImageLabel", { + LayoutOrder = props.LayoutOrder, + Image = props.image, + ScaleType = Enum.ScaleType.Fit, + BackgroundTransparency = 1, + Size = UDim2.new(0, 60, 0, 37), + }) +end + +return SlotButton diff --git a/src/Stories/HintSlot.story.luau b/src/Stories/HintSlot.story.luau new file mode 100644 index 00000000..d3888822 --- /dev/null +++ b/src/Stories/HintSlot.story.luau @@ -0,0 +1,26 @@ +--!strict + +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Slot = require("../Components/HintSlot") + +local controls = { + image = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", +} + +type Props = { + controls: typeof(controls), +} + +return { + summary = "A hint that goes in the tool slot", + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function(props: Props) + return React.createElement(Slot, { + image = props.controls.image, + }) + end, +} From ad0032f99300a59f04ce00d16fb9000281254fc6 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 17:37:01 +0000 Subject: [PATCH 27/95] Mark types as optional Signed-off-by: GitHub --- src/Components/HintSlot.luau | 4 ++-- src/Components/Slot.luau | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau index d4849400..ed616737 100644 --- a/src/Components/HintSlot.luau +++ b/src/Components/HintSlot.luau @@ -5,11 +5,11 @@ local UserInputService = game:GetService("UserInputService") local React = require("../Packages/React") local function SlotButton(props: { - LayoutOrder: number, + LayoutOrder: number?, image: string, }) return React.createElement("ImageLabel", { - LayoutOrder = props.LayoutOrder, + LayoutOrder = props.LayoutOrder or -1, Image = props.image, ScaleType = Enum.ScaleType.Fit, BackgroundTransparency = 1, diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 812041b9..6998680a 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -4,13 +4,13 @@ local React = require("../Packages/React") local constants = require("../Constants") local function SlotButton(props: { - toolName: string, - textureIcon: string, - tooltip: string, - slotNumber: string, - locked: boolean, - equipped: boolean, - onActivated: () -> (), + toolName: string?, + textureIcon: string?, + tooltip: string?, + slotNumber: string?, + locked: boolean?, + equipped: boolean?, + onActivated: (() -> ())?, }) return React.createElement("TextButton", { BackgroundColor3 = constants.theme.backgroundColor, @@ -20,7 +20,7 @@ local function SlotButton(props: { TextStrokeTransparency = constants.theme.textStrokeTransparency, Font = constants.theme.font, BackgroundTransparency = if props.locked then 0 else constants.theme.backgroundTransparency, - Text = props.toolName, + Text = props.toolName or "", Size = UDim2.new(0, 60, 0, 60), TextScaled = true, [React.Event.Activated] = props.onActivated, @@ -38,7 +38,7 @@ local function SlotButton(props: { }, { React.createElement("ImageLabel", { BackgroundTransparency = 1, - Image = props.textureIcon, + Image = props.textureIcon or "", Size = UDim2.new(1, 0, 1, 0), }, { React.createElement("UICorner", { @@ -56,7 +56,7 @@ local function SlotButton(props: { TextStrokeColor3 = constants.theme.textStrokeColor, TextStrokeTransparency = constants.theme.textStrokeTransparency, Font = constants.theme.fontSmall, - Text = props.slotNumber, + Text = props.slotNumber or "", BackgroundTransparency = 1, Position = UDim2.new(0, 0, 0, 0), Size = UDim2.new(1, 0, 1, 0), @@ -71,7 +71,7 @@ local function SlotButton(props: { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, Thickness = constants.theme.thickness, Color = constants.theme.equippedColor, - Enabled = props.equipped, + Enabled = props.equipped or false, }), }), }) From eefa24688bf4bbee32297c34a880b4e8b51bf52b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 17:55:00 +0000 Subject: [PATCH 28/95] Fix selene Signed-off-by: GitHub --- selene.toml | 2 +- selene_definitions.yml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 selene_definitions.yml diff --git a/selene.toml b/selene.toml index c1911beb..ccadaab7 100644 --- a/selene.toml +++ b/selene.toml @@ -1 +1 @@ -std = "roblox+testez" \ No newline at end of file +std = "selene_definitions" \ No newline at end of file diff --git a/selene_definitions.yml b/selene_definitions.yml new file mode 100644 index 00000000..4bd464f5 --- /dev/null +++ b/selene_definitions.yml @@ -0,0 +1,7 @@ +base: roblox +name: selene_defs +globals: + # override Roblox require style with string requires + require: + args: + - type: string \ No newline at end of file From 4cbb9f0a99b585cf42bd3b4fbec404ebeeb78f26 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 17:55:16 +0000 Subject: [PATCH 29/95] Remove unused getservice Signed-off-by: GitHub --- src/Components/HintSlot.luau | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau index ed616737..a60a6d99 100644 --- a/src/Components/HintSlot.luau +++ b/src/Components/HintSlot.luau @@ -1,7 +1,5 @@ --!strict -local UserInputService = game:GetService("UserInputService") - local React = require("../Packages/React") local function SlotButton(props: { From 3eb2f4d02fab77992c60370ee88ee24d0057db83 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 18:08:09 +0000 Subject: [PATCH 30/95] Hide text when there is textureIcon Signed-off-by: GitHub --- src/Components/Slot.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 6998680a..38fed074 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -20,7 +20,7 @@ local function SlotButton(props: { TextStrokeTransparency = constants.theme.textStrokeTransparency, Font = constants.theme.font, BackgroundTransparency = if props.locked then 0 else constants.theme.backgroundTransparency, - Text = props.toolName or "", + Text = if props.textureIcon then "" else props.toolName or "", Size = UDim2.new(0, 60, 0, 60), TextScaled = true, [React.Event.Activated] = props.onActivated, From 6509cbae8bf412c4027c5f0ace3be0b61370cd78 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 18:38:28 +0000 Subject: [PATCH 31/95] Add background frame Signed-off-by: GitHub --- src/Components/Background.luau | 21 +++++++++++++++++++++ src/Stories/Background.story.luau | 17 +++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/Components/Background.luau create mode 100644 src/Stories/Background.story.luau diff --git a/src/Components/Background.luau b/src/Components/Background.luau new file mode 100644 index 00000000..cb8fe819 --- /dev/null +++ b/src/Components/Background.luau @@ -0,0 +1,21 @@ +--!strict + +local React = require("../Packages/React") +local constants = require("../Constants") + +local function BackgroundFrame(props: { + Size : UDim2, + child: () -> (), +}) + return React.createElement("Frame", { + BackgroundColor3 = constants.theme.backgroundColor, + BackgroundTransparency = constants.theme.backgroundTransparency, + Size = props.Size, + }, { + React.createElement("UICorner", { + CornerRadius = constants.theme.cornerRadius, + }), + }) +end + +return BackgroundFrame diff --git a/src/Stories/Background.story.luau b/src/Stories/Background.story.luau new file mode 100644 index 00000000..ea59d681 --- /dev/null +++ b/src/Stories/Background.story.luau @@ -0,0 +1,17 @@ +--!strict + +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Background = require("../Components/Background") + +return { + summary = "Base background frame", + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(Background, { + Size = UDim2.new(0, 200, 0, 200), + }) + end, +} From e17b1f22431eb8a1aa8261a5ffb8cbebdba5e84b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 16 May 2025 18:56:23 +0000 Subject: [PATCH 32/95] Add hint text Signed-off-by: GitHub --- src/Components/HintText.luau | 38 +++++++++++++++++++++++++++++++++ src/Stories/HintText.story.luau | 26 ++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/Components/HintText.luau create mode 100644 src/Stories/HintText.story.luau diff --git a/src/Components/HintText.luau b/src/Components/HintText.luau new file mode 100644 index 00000000..42a7af57 --- /dev/null +++ b/src/Components/HintText.luau @@ -0,0 +1,38 @@ +--!strict + +local React = require("../Packages/React") +local constants = require("../Constants") + +local function SlotButton(props: { + LayoutOrder: number?, + text: string, + image: string, +}) + return React.createElement("Frame", { + AutomaticSize = Enum.AutomaticSize.X, + LayoutOrder = props.LayoutOrder or 0, + BackgroundTransparency = 1, + Size = UDim2.new(0, 0, 1, 0), + }, { + React.createElement("ImageLabel", { + BackgroundTransparency = 1, + AnchorPoint = Vector2.new(0, 0.5), + Position = UDim2.new(0, 0, 0.5, 0), + Size = UDim2.new(0, 37, 0, 37), + Image = props.image, + }), + }, { + React.createElement("TextLabel", { + AutomaticSize = Enum.AutomaticSize.X, + Position = UDim2.new(0, 42, 0, 0), + Font = constants.theme.font, + TextColor3 = constants.theme.textColor, + BackgroundTransparency = 1, + Text = props.text, + TextSize = constants.theme.textSize, + Size = UDim2.new(0, 0, 1, 0), + }), + }) +end + +return SlotButton diff --git a/src/Stories/HintText.story.luau b/src/Stories/HintText.story.luau new file mode 100644 index 00000000..34a20fc3 --- /dev/null +++ b/src/Stories/HintText.story.luau @@ -0,0 +1,26 @@ +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local HintText = require("../Components/HintText") + +local controls = { + text = "Hint action", + image = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", +} + +type Props = { + controls: typeof(controls), +} + +return { + summary = "Hint text with icon", + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function() + return React.createElement(HintText, { + text = controls.text, + image = controls.image, + }) + end, +} From 2074bb39dc97578f42d46d449aaffb4b35b70497 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 20 May 2025 09:22:05 +0000 Subject: [PATCH 33/95] Remove outdated instance attributes Signed-off-by: GitHub --- src/init.meta.json | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 src/init.meta.json diff --git a/src/init.meta.json b/src/init.meta.json deleted file mode 100644 index 6efa65d8..00000000 --- a/src/init.meta.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "properties": { - "Attributes": { - "BackgroundColor3": { - "Color3": [0.0980392157, 0.105882353, 0.11372549] - }, - "BackgroundTransparency": { - "Float32": 0.3 - }, - "CornerRadius": { - "UDim": [0, 8] - }, - "EquipBorderColor3": { - "Color3": [1, 1, 1] - }, - "EquipBorderSizePixel": { - "Float32": 5 - }, - "InsetIconPadding": { - "Bool": true - }, - "OutlineEquipBorder": { - "Bool": true - }, - "TextColor3": { - "Color3": [1, 1, 1] - }, - "TextSize": { - "Float32": 16 - }, - "TextStrokeColor3": { - "Color3": [0, 0, 0] - }, - "TextStrokeTransparency": { - "Float32": 0.5 - } - } - } -} From 3f374273f70b41770dfa481f3546c144382708db Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 20 May 2025 09:30:47 +0000 Subject: [PATCH 34/95] Fix formatting Signed-off-by: GitHub --- src/Components/Background.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Background.luau b/src/Components/Background.luau index cb8fe819..011d267e 100644 --- a/src/Components/Background.luau +++ b/src/Components/Background.luau @@ -4,7 +4,7 @@ local React = require("../Packages/React") local constants = require("../Constants") local function BackgroundFrame(props: { - Size : UDim2, + Size: UDim2, child: () -> (), }) return React.createElement("Frame", { From 76a08eea0af1a6eb7edf9c980a66a6db929469b7 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 20 May 2025 09:31:48 +0000 Subject: [PATCH 35/95] Add container frame Signed-off-by: GitHub --- src/Components/Container.luau | 27 +++++++++++++++++++++++++++ src/Constants.luau | 6 ++++++ src/Stories/Container.story.luau | 17 +++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 src/Components/Container.luau create mode 100644 src/Stories/Container.story.luau diff --git a/src/Components/Container.luau b/src/Components/Container.luau new file mode 100644 index 00000000..0f432257 --- /dev/null +++ b/src/Components/Container.luau @@ -0,0 +1,27 @@ +--!strict + +local React = require("../Packages/React") +local constants = require("../Constants") + +local function ContainerFrame(props: { + Size: UDim2, + child: () -> (), +}) + return React.createElement("Frame", { + Size = props.Size, + BackgroundTransparency = constants.theme.containerBackgroundTransparency, + BackgroundColor3 = constants.theme.backgroundColor, + }, { + React.createElement("UICorner", { + CornerRadius = constants.theme.cornerRadiusSmall, + }), + }, { + React.createElement("UIStroke", { + ApplyStrokeMode = Enum.ApplyStrokeMode.Border, + Color = constants.theme.containerStrokeColor, + Transparency = constants.theme.containerStrokeTransparency, + }), + }) +end + +return ContainerFrame diff --git a/src/Constants.luau b/src/Constants.luau index ecde93b9..0e3ec331 100644 --- a/src/Constants.luau +++ b/src/Constants.luau @@ -3,6 +3,7 @@ return { -- Spacing thickness = 5, padding = UDim.new(0, 5), + paddingLarge = UDim.new(0, 8), cornerRadius = UDim.new(0, 8), cornerRadiusSmall = UDim.new(0, 3), -- padding - cornerRadius @@ -15,13 +16,18 @@ return { -- Colors backgroundColor = Color3.fromRGB(25, 27, 29), tooltipBackgroundColor = Color3.fromRGB(38, 40, 48), + containerStrokeColor = Color3.fromRGB(255, 255, 255), textColor = Color3.fromRGB(255, 255, 255), textStrokeColor = Color3.fromRGB(0, 0, 0), + containerTextColor = Color3.fromRGB(255, 255, 255), equippedColor = Color3.fromRGB(255, 255, 255), -- Transparency backgroundTransparency = 0.3, + containerBackgroundTransparency = 0.2, tooltipBackgroundTransparency = 0, textStrokeTransparency = 0.5, + containerTextTransparency = 0.5, + containerStrokeTransparency = 0.8, }, } diff --git a/src/Stories/Container.story.luau b/src/Stories/Container.story.luau new file mode 100644 index 00000000..5db4c7ed --- /dev/null +++ b/src/Stories/Container.story.luau @@ -0,0 +1,17 @@ +--!strict + +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local Container = require("../Components/Container") + +return { + summary = "Base container frame", + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(Container, { + Size = UDim2.new(0, 200, 0, 200), + }) + end, +} From 59e3cfeb597b98f697adba5257c36da7c93011c4 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 20 May 2025 09:59:02 +0000 Subject: [PATCH 36/95] Add ten foot interface to slots Signed-off-by: GitHub --- src/Components/Slot.luau | 7 ++++--- src/Constants.luau | 1 + src/Stories/Slot.story.luau | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 38fed074..3726b921 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -4,6 +4,7 @@ local React = require("../Packages/React") local constants = require("../Constants") local function SlotButton(props: { + IsTenFootInterface: boolean?, toolName: string?, textureIcon: string?, tooltip: string?, @@ -21,12 +22,12 @@ local function SlotButton(props: { Font = constants.theme.font, BackgroundTransparency = if props.locked then 0 else constants.theme.backgroundTransparency, Text = if props.textureIcon then "" else props.toolName or "", - Size = UDim2.new(0, 60, 0, 60), + Size = if props.IsTenFootInterface then UDim2.new(0, 100, 0, 100) else UDim2.new(0, 60, 0, 60), TextScaled = true, [React.Event.Activated] = props.onActivated, }, { React.createElement("UITextSizeConstraint", { - MaxTextSize = constants.theme.textSize, + MaxTextSize = if props.IsTenFootInterface then constants.theme.textSizeLarge else constants.theme.textSize, }), }, { React.createElement("UIPadding", { @@ -52,7 +53,7 @@ local function SlotButton(props: { }, { React.createElement("TextLabel", { TextColor3 = constants.theme.textColor, - TextSize = constants.theme.textSizeSmall, + TextSize = if props.IsTenFootInterface then constants.theme.textSize else constants.theme.textSizeSmall, TextStrokeColor3 = constants.theme.textStrokeColor, TextStrokeTransparency = constants.theme.textStrokeTransparency, Font = constants.theme.fontSmall, diff --git a/src/Constants.luau b/src/Constants.luau index 0e3ec331..950e443e 100644 --- a/src/Constants.luau +++ b/src/Constants.luau @@ -11,6 +11,7 @@ return { font = Enum.Font.BuilderSansMedium, fontSmall = Enum.Font.BuilderSansExtraBold, textSize = 18, + textSizeLarge = 24, textSizeSmall = 14, -- Colors diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index b6187424..e01927a2 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -6,6 +6,7 @@ local ReactRoblox = require("../Packages/ReactRoblox") local Slot = require("../Components/Slot") local controls = { + IsTenFootInterface = false, toolName = "Tool name", textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", slotNumber = "0", @@ -24,6 +25,7 @@ return { controls = controls, story = function(props: Props) return React.createElement(Slot, { + IsTenFootInterface = props.controls.IsTenFootInterface, toolName = props.controls.toolName, slotNumber = props.controls.slotNumber, textureIcon = props.controls.textureIcon, From 3d7246436eef704f841d633c427e6ab689138e5e Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 20 May 2025 10:00:05 +0000 Subject: [PATCH 37/95] Add ten foot interface to hint slots Signed-off-by: GitHub --- src/Components/HintSlot.luau | 5 +++-- src/Stories/HintSlot.story.luau | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau index a60a6d99..7f57f356 100644 --- a/src/Components/HintSlot.luau +++ b/src/Components/HintSlot.luau @@ -3,15 +3,16 @@ local React = require("../Packages/React") local function SlotButton(props: { + IsTenFootInterface: boolean?, LayoutOrder: number?, image: string, }) return React.createElement("ImageLabel", { LayoutOrder = props.LayoutOrder or -1, - Image = props.image, + Image = if props.IsTenFootInterface then props.image:gsub("(%.png)$", "@2x%1") else props.image, ScaleType = Enum.ScaleType.Fit, BackgroundTransparency = 1, - Size = UDim2.new(0, 60, 0, 37), + Size = if props.IsTenFootInterface then UDim2.new(0, 100, 0, 73) else UDim2.new(0, 60, 0, 37), }) end diff --git a/src/Stories/HintSlot.story.luau b/src/Stories/HintSlot.story.luau index d3888822..7bed0007 100644 --- a/src/Stories/HintSlot.story.luau +++ b/src/Stories/HintSlot.story.luau @@ -6,6 +6,7 @@ local ReactRoblox = require("../Packages/ReactRoblox") local Slot = require("../Components/HintSlot") local controls = { + IsTenFootInterface = false, image = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", } @@ -20,6 +21,7 @@ return { controls = controls, story = function(props: Props) return React.createElement(Slot, { + IsTenFootInterface = props.controls.IsTenFootInterface, image = props.controls.image, }) end, From 0af2a605e5dce40cc3908ac9677a3258a081e74c Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 26 May 2025 09:05:56 +0000 Subject: [PATCH 38/95] Add version print Signed-off-by: GitHub --- src/init.luau | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/init.luau b/src/init.luau index f4098adb..a30935e7 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,3 +1,5 @@ local module = {} +print("💼 Running Satchel v2.0.0 by WinnersTakesAll") + return module From 0f7659814be8a7b789d2fef1e83292b2a13ca1a3 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 26 May 2025 09:27:43 +0000 Subject: [PATCH 39/95] Fix style Signed-off-by: GitHub --- src/Stories/Storybook.storybook.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau index ac3e01f4..037568b2 100644 --- a/src/Stories/Storybook.storybook.luau +++ b/src/Stories/Storybook.storybook.luau @@ -12,4 +12,4 @@ return { React = React, ReactRoblox = ReactRoblox, }, -} \ No newline at end of file +} From f80e4cbb227f5440131dc6c033e38df5d726b93a Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 26 May 2025 15:38:40 +0000 Subject: [PATCH 40/95] Add search bar Signed-off-by: GitHub --- src/Components/SearchBar.luau | 44 ++++++++++++++++++++++++++++++++ src/Stories/SearchBar.story.luau | 15 +++++++++++ 2 files changed, 59 insertions(+) create mode 100644 src/Components/SearchBar.luau create mode 100644 src/Stories/SearchBar.story.luau diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau new file mode 100644 index 00000000..1781f296 --- /dev/null +++ b/src/Components/SearchBar.luau @@ -0,0 +1,44 @@ +--!strict + +local React = require("../Packages/React") +local constants = require("../Constants") + +local function SearchBarTextBox() + return React.createElement("Frame", { + Size = UDim2.new(0, 190, 0, 30), + BackgroundColor3 = constants.theme.backgroundColor, + BackgroundTransparency = constants.theme.containerBackgroundTransparency, + }, { + React.createElement("UICorner", { + CornerRadius = constants.theme.cornerRadiusSmall, + }), + }, { + React.createElement("UIPadding", { + PaddingBottom = constants.theme.paddingLarge, + PaddingLeft = constants.theme.paddingLarge, + PaddingRight = UDim.new(0, 28), + PaddingTop = constants.theme.paddingLarge, + }), + }, { + React.createElement("UIStroke", { + ApplyStrokeMode = Enum.ApplyStrokeMode.Border, + Color = constants.theme.containerStrokeColor, + Transparency = constants.theme.containerStrokeTransparency, + }), + }, { + React.createElement("TextBox", { + BackgroundTransparency = 1, + Size = UDim2.new(1, 0, 1, 0), + Font = constants.theme.font, + Text = "", + PlaceholderText = "Search", + TextColor3 = constants.theme.textColor, + TextSize = constants.theme.textSize, + TextStrokeTransparency = constants.theme.textStrokeTransparency, + TextStrokeColor3 = constants.theme.textStrokeColor, + TextXAlignment = Enum.TextXAlignment.Left, + }), + }) +end + +return SearchBarTextBox diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau new file mode 100644 index 00000000..80560586 --- /dev/null +++ b/src/Stories/SearchBar.story.luau @@ -0,0 +1,15 @@ +--!strict + +local React = require("../Packages/React") +local ReactRoblox = require("../Packages/ReactRoblox") + +local SearchBar = require("../Components/SearchBar") + +return { + summary = "A search bar for finding tools", + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(SearchBar) + end, +} From 9123fee2284b88263d545416bbb96b6b6a498057 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 15 Jun 2025 22:56:17 +0000 Subject: [PATCH 41/95] Add Input Action System instances Signed-off-by: GitHub --- src/InputActions.client.luau | 180 +++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 src/InputActions.client.luau diff --git a/src/InputActions.client.luau b/src/InputActions.client.luau new file mode 100644 index 00000000..6eb6511e --- /dev/null +++ b/src/InputActions.client.luau @@ -0,0 +1,180 @@ +--!strict + +--[[ + Script to handle inputs for the hotbar and backpack using Input Action System. +]] + +-- When only the hotbar is showing +local hotbarContext = Instance.new("InputContext") +hotbarContext.Name = "HotbarContext" +hotbarContext.Priority = 2000 + +-- Open the backpack +local backpackAction = Instance.new("InputAction") +backpackAction.Name = "OpenBackpackAction" +backpackAction.Parent = hotbarContext + +local backpackKeyBinding = Instance.new("InputBinding") +backpackKeyBinding.Name = "KeyBinding" +backpackKeyBinding.KeyCode = Enum.KeyCode.Backquote +backpackKeyBinding.Parent = backpackAction + +-- Select slot to the left +local slotLeftAction = Instance.new("InputAction") +slotLeftAction.Name = "SlotLeftAction" +slotLeftAction.Parent = hotbarContext + +local slotLeftGamepadBinding = Instance.new("InputBinding") +slotLeftGamepadBinding.Name = "GamepadBinding" +slotLeftGamepadBinding.KeyCode = Enum.KeyCode.ButtonL1 +slotLeftGamepadBinding.Parent = slotLeftAction + +-- Select slot to the right +local slotRightAction = Instance.new("InputAction") +slotRightAction.Name = "SlotRightAction" +slotRightAction.Parent = hotbarContext + +local slotRightGamepadBinding = Instance.new("InputBinding") +slotRightGamepadBinding.Name = "GamepadBinding" +slotRightGamepadBinding.KeyCode = Enum.KeyCode.ButtonR1 +slotRightGamepadBinding.Parent = slotRightAction + +-- Select slot one +local slotOneAction = Instance.new("InputAction") +slotOneAction.Name = "SlotOneAction" +slotOneAction.Parent = hotbarContext + +local slotOneKeyBinding = Instance.new("InputBinding") +slotOneKeyBinding.Name = "KeyBinding" +slotOneKeyBinding.KeyCode = Enum.KeyCode.One +slotOneKeyBinding.Parent = slotOneAction + +-- Select slot two +local slotTwoAction = Instance.new("InputAction") +slotTwoAction.Name = "SlotTwoAction" +slotTwoAction.Parent = hotbarContext + +local slotTwoKeyBinding = Instance.new("InputBinding") +slotTwoKeyBinding.Name = "KeyBinding" +slotTwoKeyBinding.KeyCode = Enum.KeyCode.Two +slotTwoKeyBinding.Parent = slotTwoAction + +-- Select slot three +local slotThreeAction = Instance.new("InputAction") +slotThreeAction.Name = "SlotThreeAction" +slotThreeAction.Parent = hotbarContext + +local slotThreeKeyBinding = Instance.new("InputBinding") +slotThreeKeyBinding.Name = "KeyBinding" +slotThreeKeyBinding.KeyCode = Enum.KeyCode.Three +slotThreeKeyBinding.Parent = slotThreeAction + +-- Select slot four +local slotFourAction = Instance.new("InputAction") +slotFourAction.Name = "SlotFourAction" +slotFourAction.Parent = hotbarContext + +local slotFourKeyBinding = Instance.new("InputBinding") +slotFourKeyBinding.Name = "KeyBinding" +slotFourKeyBinding.KeyCode = Enum.KeyCode.Four +slotFourKeyBinding.Parent = slotFourAction + +-- Select slot five +local slotFiveAction = Instance.new("InputAction") +slotFiveAction.Name = "SlotFiveAction" +slotFiveAction.Parent = hotbarContext + +local slotFiveKeyBinding = Instance.new("InputBinding") +slotFiveKeyBinding.Name = "KeyBinding" +slotFiveKeyBinding.KeyCode = Enum.KeyCode.Five +slotFiveKeyBinding.Parent = slotFiveAction + +-- Select slot six +local slotSixAction = Instance.new("InputAction") +slotSixAction.Name = "SlotSixAction" +slotSixAction.Parent = hotbarContext + +local slotSixKeyBinding = Instance.new("InputBinding") +slotSixKeyBinding.Name = "KeyBinding" +slotSixKeyBinding.KeyCode = Enum.KeyCode.Six +slotSixKeyBinding.Parent = slotSixAction + +-- Select slot seven +local slotSevenAction = Instance.new("InputAction") +slotSevenAction.Name = "SlotSevenAction" +slotSevenAction.Parent = hotbarContext + +local slotSevenKeyBinding = Instance.new("InputBinding") +slotSevenKeyBinding.Name = "KeyBinding" +slotSevenKeyBinding.KeyCode = Enum.KeyCode.Seven +slotSevenKeyBinding.Parent = slotSevenAction + +-- Select slot eight +local slotEightAction = Instance.new("InputAction") +slotEightAction.Name = "SlotEightAction" +slotEightAction.Parent = hotbarContext + +local slotEightKeyBinding = Instance.new("InputBinding") +slotEightKeyBinding.Name = "KeyBinding" +slotEightKeyBinding.KeyCode = Enum.KeyCode.Eight +slotEightKeyBinding.Parent = slotEightAction + +-- Select slot nine +local slotNineAction = Instance.new("InputAction") +slotNineAction.Name = "SlotNineAction" +slotNineAction.Parent = hotbarContext + +local slotNineKeyBinding = Instance.new("InputBinding") +slotNineKeyBinding.Name = "KeyBinding" +slotNineKeyBinding.KeyCode = Enum.KeyCode.Nine +slotNineKeyBinding.Parent = slotNineAction + +-- Select slot zero +local slotZeroAction = Instance.new("InputAction") +slotZeroAction.Name = "SlotZeroAction" +slotZeroAction.Parent = hotbarContext + +local slotZeroKeyBinding = Instance.new("InputBinding") +slotZeroKeyBinding.Name = "KeyBinding" +slotZeroKeyBinding.KeyCode = Enum.KeyCode.Zero +slotZeroKeyBinding.Parent = slotZeroAction + +-- Only when the backpack is open +local backpackContext = Instance.new("InputContext") +backpackContext.Name = "BackpackContext" +backpackContext.Priority = 2000 + +-- Close the backpack +local closeBackpackAction = Instance.new("InputAction") +closeBackpackAction.Name = "CloseBackpackAction" +closeBackpackAction.Parent = backpackContext + +local closeBackpackKeyBinding = Instance.new("InputBinding") +closeBackpackKeyBinding.Name = "KeyBinding" +closeBackpackKeyBinding.KeyCode = Enum.KeyCode.Backquote +closeBackpackKeyBinding.Parent = closeBackpackAction + +local closeBackpackGamepadBinding = Instance.new("InputBinding") +closeBackpackGamepadBinding.Name = "GamepadBinding" +closeBackpackGamepadBinding.KeyCode = Enum.KeyCode.ButtonB +closeBackpackGamepadBinding.Parent = closeBackpackAction + +-- Remove tool from hotbar +local removeFromHotbarAction = Instance.new("InputAction") +removeFromHotbarAction.Name = "RemoveFromHotbarAction" +removeFromHotbarAction.Parent = backpackContext + +local removeFromHotbarGamepadBinding = Instance.new("InputBinding") +removeFromHotbarGamepadBinding.Name = "GamepadBinding" +removeFromHotbarGamepadBinding.KeyCode = Enum.KeyCode.ButtonX +removeFromHotbarGamepadBinding.Parent = removeFromHotbarAction + +-- Select/swap tools +local selectSwapAction = Instance.new("InputAction") +selectSwapAction.Name = "SelectSwapAction" +selectSwapAction.Parent = backpackContext + +local selectSwapGamepadBinding = Instance.new("InputBinding") +selectSwapGamepadBinding.Name = "GamepadBinding" +selectSwapGamepadBinding.KeyCode = Enum.KeyCode.ButtonA +selectSwapGamepadBinding.Parent = selectSwapAction \ No newline at end of file From 1557cbe36b01b1a655dbb785287b6909d2e24130 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 16 Jun 2025 01:21:46 +0000 Subject: [PATCH 42/95] Add new space Signed-off-by: GitHub --- src/InputActions.client.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/InputActions.client.luau b/src/InputActions.client.luau index 6eb6511e..7486f751 100644 --- a/src/InputActions.client.luau +++ b/src/InputActions.client.luau @@ -177,4 +177,4 @@ selectSwapAction.Parent = backpackContext local selectSwapGamepadBinding = Instance.new("InputBinding") selectSwapGamepadBinding.Name = "GamepadBinding" selectSwapGamepadBinding.KeyCode = Enum.KeyCode.ButtonA -selectSwapGamepadBinding.Parent = selectSwapAction \ No newline at end of file +selectSwapGamepadBinding.Parent = selectSwapAction From 8859d6ad5a5b2971f46e1afaaf0b307d3fbb73ab Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 17 Jun 2025 22:09:33 +0000 Subject: [PATCH 43/95] Add base tooltip style Signed-off-by: GitHub --- src/ToolTipStyle.client.luau | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/ToolTipStyle.client.luau diff --git a/src/ToolTipStyle.client.luau b/src/ToolTipStyle.client.luau new file mode 100644 index 00000000..ee452fd1 --- /dev/null +++ b/src/ToolTipStyle.client.luau @@ -0,0 +1,35 @@ +-- Parent this script to a ScreenGui under StarterGui. +local ReplicatedStorage = game:GetService("ReplicatedStorage") + +local screenGui = script.Parent + +-- DesignSheet +local sheet = Instance.new("StyleSheet") +sheet.Parent = ReplicatedStorage + +-- Configure rule +local toolTipRule = Instance.new("StyleRule") +toolTipRule.Selector = "TextLabel" -- Class selector +toolTipRule.Parent = sheet + +-- Set rule properties +toolTipRule:SetProperties({ + ["AnchorPoint"] = Vector2.new(0.5, 1), + ["AutomaticSize"] = Enum.AutomaticSize.XY, + ["BackgroundColor3"] = "$ToolTipBackgroundColor", + ["FontFace"] = "$ToolTipFontFace", + ["Position"] = UDim2.new(0.5, 0, 1, 0), + ["Size"] = UDim2.new(0, 0, 0, 0), + ["TextColor3"] = "$ToolTipTextColor", + ["TextSize"] = "$ToolTipTextSize", +}) + +-- Create a UI +local button = Instance.new("TextButton") +button.Text = "Main Menu" +button.Parent = screenGui + +-- Apply styling to UI +local link = Instance.new("StyleLink") +link.Parent = screenGui +link.StyleSheet = sheet From 64655115d54f74b24dda1c8f592dee516b8418cd Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sat, 21 Jun 2025 23:20:13 +0000 Subject: [PATCH 44/95] Update constants Signed-off-by: GitHub --- src/Components/Background.luau | 8 ++--- src/Components/Container.luau | 12 +++---- src/Components/HintText.luau | 8 ++--- src/Components/SearchBar.luau | 28 ++++++++-------- src/Components/Slot.luau | 46 +++++++++++++-------------- src/Components/Tooltip.luau | 22 ++++++------- src/Constants.luau | 58 +++++++++++++++++++--------------- 7 files changed, 95 insertions(+), 87 deletions(-) diff --git a/src/Components/Background.luau b/src/Components/Background.luau index 011d267e..8926a206 100644 --- a/src/Components/Background.luau +++ b/src/Components/Background.luau @@ -1,19 +1,19 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function BackgroundFrame(props: { Size: UDim2, child: () -> (), }) return React.createElement("Frame", { - BackgroundColor3 = constants.theme.backgroundColor, - BackgroundTransparency = constants.theme.backgroundTransparency, + BackgroundColor3 = Constants.Theme.BackgroundColor, + BackgroundTransparency = Constants.Theme.BackgroundTransparency, Size = props.Size, }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadius, + CornerRadius = Constants.Theme.CornerRadius, }), }) end diff --git a/src/Components/Container.luau b/src/Components/Container.luau index 0f432257..6aef3f8b 100644 --- a/src/Components/Container.luau +++ b/src/Components/Container.luau @@ -1,7 +1,7 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function ContainerFrame(props: { Size: UDim2, @@ -9,17 +9,17 @@ local function ContainerFrame(props: { }) return React.createElement("Frame", { Size = props.Size, - BackgroundTransparency = constants.theme.containerBackgroundTransparency, - BackgroundColor3 = constants.theme.backgroundColor, + BackgroundTransparency = Constants.Theme.ContainerBackgroundTransparency, + BackgroundColor3 = Constants.Theme.BackgroundColor, }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadiusSmall, + CornerRadius = Constants.Theme.CornerRadiusSmall, }), }, { React.createElement("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Color = constants.theme.containerStrokeColor, - Transparency = constants.theme.containerStrokeTransparency, + Color = Constants.Theme.ContainerStrokeColor, + Transparency = Constants.Theme.ContainerStrokeTransparency, }), }) end diff --git a/src/Components/HintText.luau b/src/Components/HintText.luau index 42a7af57..42e4d9dd 100644 --- a/src/Components/HintText.luau +++ b/src/Components/HintText.luau @@ -1,7 +1,7 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function SlotButton(props: { LayoutOrder: number?, @@ -25,11 +25,11 @@ local function SlotButton(props: { React.createElement("TextLabel", { AutomaticSize = Enum.AutomaticSize.X, Position = UDim2.new(0, 42, 0, 0), - Font = constants.theme.font, - TextColor3 = constants.theme.textColor, + Font = Constants.Theme.Font, + TextColor3 = Constants.Theme.TextColor, BackgroundTransparency = 1, Text = props.text, - TextSize = constants.theme.textSize, + TextSize = Constants.Theme.TextSize, Size = UDim2.new(0, 0, 1, 0), }), }) diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index 1781f296..9b4a10c9 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -1,41 +1,41 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function SearchBarTextBox() return React.createElement("Frame", { Size = UDim2.new(0, 190, 0, 30), - BackgroundColor3 = constants.theme.backgroundColor, - BackgroundTransparency = constants.theme.containerBackgroundTransparency, + BackgroundColor3 = Constants.Theme.BackgroundColor, + BackgroundTransparency = Constants.Theme.ContainerBackgroundTransparency, }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadiusSmall, + CornerRadius = Constants.Theme.CornerRadiusSmall, }), }, { React.createElement("UIPadding", { - PaddingBottom = constants.theme.paddingLarge, - PaddingLeft = constants.theme.paddingLarge, + PaddingBottom = Constants.Theme.PaddingLarge, + PaddingLeft = Constants.Theme.PaddingLarge, PaddingRight = UDim.new(0, 28), - PaddingTop = constants.theme.paddingLarge, + PaddingTop = Constants.Theme.PaddingLarge, }), }, { React.createElement("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Color = constants.theme.containerStrokeColor, - Transparency = constants.theme.containerStrokeTransparency, + Color = Constants.Theme.ContainerStrokeColor, + Transparency = Constants.Theme.ContainerStrokeTransparency, }), }, { React.createElement("TextBox", { BackgroundTransparency = 1, Size = UDim2.new(1, 0, 1, 0), - Font = constants.theme.font, + Font = Constants.Theme.Font, Text = "", PlaceholderText = "Search", - TextColor3 = constants.theme.textColor, - TextSize = constants.theme.textSize, - TextStrokeTransparency = constants.theme.textStrokeTransparency, - TextStrokeColor3 = constants.theme.textStrokeColor, + TextColor3 = Constants.Theme.TextColor, + TextSize = Constants.Theme.TextSize, + TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, + TextStrokeColor3 = Constants.Theme.TextStrokeColor, TextXAlignment = Enum.TextXAlignment.Left, }), }) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 3726b921..94cae05e 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,7 +1,7 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function SlotButton(props: { IsTenFootInterface: boolean?, @@ -14,27 +14,27 @@ local function SlotButton(props: { onActivated: (() -> ())?, }) return React.createElement("TextButton", { - BackgroundColor3 = constants.theme.backgroundColor, - TextColor3 = constants.theme.textColor, - TextSize = constants.theme.textSize, - TextStrokeColor3 = constants.theme.textStrokeColor, - TextStrokeTransparency = constants.theme.textStrokeTransparency, - Font = constants.theme.font, - BackgroundTransparency = if props.locked then 0 else constants.theme.backgroundTransparency, + BackgroundColor3 = Constants.Theme.BackgroundColor, + TextColor3 = Constants.Theme.TextColor, + TextSize = Constants.Theme.TextSize, + TextStrokeColor3 = Constants.Theme.TextStrokeColor, + TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, + Font = Constants.Theme.Font, + BackgroundTransparency = if props.locked then 0 else Constants.Theme.BackgroundTransparency, Text = if props.textureIcon then "" else props.toolName or "", Size = if props.IsTenFootInterface then UDim2.new(0, 100, 0, 100) else UDim2.new(0, 60, 0, 60), TextScaled = true, [React.Event.Activated] = props.onActivated, }, { React.createElement("UITextSizeConstraint", { - MaxTextSize = if props.IsTenFootInterface then constants.theme.textSizeLarge else constants.theme.textSize, + MaxTextSize = if props.IsTenFootInterface then Constants.Theme.TextSizeLarge else Constants.Theme.TextSize, }), }, { React.createElement("UIPadding", { - PaddingBottom = constants.theme.padding, - PaddingLeft = constants.theme.padding, - PaddingRight = constants.theme.padding, - PaddingTop = constants.theme.padding, + PaddingBottom = Constants.Theme.Padding, + PaddingLeft = Constants.Theme.Padding, + PaddingRight = Constants.Theme.Padding, + PaddingTop = Constants.Theme.Padding, }), }, { React.createElement("ImageLabel", { @@ -43,20 +43,20 @@ local function SlotButton(props: { Size = UDim2.new(1, 0, 1, 0), }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadiusSmall, + CornerRadius = Constants.Theme.CornerRadiusSmall, }), }), }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadius, + CornerRadius = Constants.Theme.CornerRadius, }), }, { React.createElement("TextLabel", { - TextColor3 = constants.theme.textColor, - TextSize = if props.IsTenFootInterface then constants.theme.textSize else constants.theme.textSizeSmall, - TextStrokeColor3 = constants.theme.textStrokeColor, - TextStrokeTransparency = constants.theme.textStrokeTransparency, - Font = constants.theme.fontSmall, + TextColor3 = Constants.Theme.TextColor, + TextSize = if props.IsTenFootInterface then Constants.Theme.TextSize else Constants.Theme.TextSizeSmall, + TextStrokeColor3 = Constants.Theme.TextStrokeColor, + TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, + Font = Constants.Theme.FontSmall, Text = props.slotNumber or "", BackgroundTransparency = 1, Position = UDim2.new(0, 0, 0, 0), @@ -65,13 +65,13 @@ local function SlotButton(props: { TextYAlignment = Enum.TextYAlignment.Top, }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadiusSmall, + CornerRadius = Constants.Theme.CornerRadiusSmall, }), }, { React.createElement("UIStroke", { ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Thickness = constants.theme.thickness, - Color = constants.theme.equippedColor, + Thickness = Constants.Theme.Thickness, + Color = Constants.Theme.EquippedColor, Enabled = props.equipped or false, }), }), diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index c6d06a2b..9cb51bde 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,31 +1,31 @@ --!strict local React = require("../Packages/React") -local constants = require("../Constants") +local Constants = require("../Constants") local function TooltipTextBox(props: { text: string, }) return React.createElement("TextLabel", { Text = props.text, - TextSize = constants.theme.textSizeSmall, - TextColor3 = constants.theme.textColor, - Font = constants.theme.font, - BackgroundColor3 = constants.theme.tooltipBackgroundColor, - BackgroundTransparency = constants.theme.tooltipBackgroundTransparency, + TextSize = Constants.Theme.TextSizeSmall, + TextColor3 = Constants.Theme.TextColor, + Font = Constants.Theme.Font, + BackgroundColor3 = Constants.Theme.TooltipBackgroundColor, + BackgroundTransparency = Constants.Theme.TooltipBackgroundTransparency, AnchorPoint = Vector2.new(0.5, 1), Position = UDim2.new(0.5, 0, 0, -10), AutomaticSize = Enum.AutomaticSize.XY, }, { React.createElement("UICorner", { - CornerRadius = constants.theme.cornerRadiusSmall, + CornerRadius = Constants.Theme.CornerRadiusSmall, }), }, { React.createElement("UIPadding", { - PaddingTop = constants.theme.padding, - PaddingLeft = constants.theme.padding, - PaddingRight = constants.theme.padding, - PaddingBottom = constants.theme.padding, + PaddingTop = Constants.Theme.Padding, + PaddingLeft = Constants.Theme.Padding, + PaddingRight = Constants.Theme.Padding, + PaddingBottom = Constants.Theme.Padding, }), }) end diff --git a/src/Constants.luau b/src/Constants.luau index 950e443e..4786bde2 100644 --- a/src/Constants.luau +++ b/src/Constants.luau @@ -1,34 +1,42 @@ -return { - theme = { +--!strict + +--[[ + Constants for variables. +--]] + +local Constants = { + Theme = { -- Spacing - thickness = 5, - padding = UDim.new(0, 5), - paddingLarge = UDim.new(0, 8), - cornerRadius = UDim.new(0, 8), - cornerRadiusSmall = UDim.new(0, 3), -- padding - cornerRadius + Thickness = 5, + Padding = UDim.new(0, 5), + PaddingLarge = UDim.new(0, 8), + CornerRadius = UDim.new(0, 8), + CornerRadiusSmall = UDim.new(0, 3), -- padding - cornerRadius -- Font - font = Enum.Font.BuilderSansMedium, - fontSmall = Enum.Font.BuilderSansExtraBold, - textSize = 18, - textSizeLarge = 24, - textSizeSmall = 14, + Font = Enum.Font.BuilderSansMedium, + FontSmall = Enum.Font.BuilderSansExtraBold, + TextSize = 18, + TextSizeLarge = 24, + TextSizeSmall = 14, -- Colors - backgroundColor = Color3.fromRGB(25, 27, 29), - tooltipBackgroundColor = Color3.fromRGB(38, 40, 48), - containerStrokeColor = Color3.fromRGB(255, 255, 255), - textColor = Color3.fromRGB(255, 255, 255), - textStrokeColor = Color3.fromRGB(0, 0, 0), - containerTextColor = Color3.fromRGB(255, 255, 255), - equippedColor = Color3.fromRGB(255, 255, 255), + BackgroundColor = Color3.fromRGB(25, 27, 29), + TooltipBackgroundColor = Color3.fromRGB(38, 40, 48), + ContainerStrokeColor = Color3.fromRGB(255, 255, 255), + TextColor = Color3.fromRGB(255, 255, 255), + TextStrokeColor = Color3.fromRGB(0, 0, 0), + ContainerTextColor = Color3.fromRGB(255, 255, 255), + EquippedColor = Color3.fromRGB(255, 255, 255), -- Transparency - backgroundTransparency = 0.3, - containerBackgroundTransparency = 0.2, - tooltipBackgroundTransparency = 0, - textStrokeTransparency = 0.5, - containerTextTransparency = 0.5, - containerStrokeTransparency = 0.8, + BackgroundTransparency = 0.3, + ContainerBackgroundTransparency = 0.2, + TooltipBackgroundTransparency = 0, + TextStrokeTransparency = 0.5, + ContainerTextTransparency = 0.5, + ContainerStrokeTransparency = 0.8, }, } + +return Constants From f41af70426fc749fdf06b958724a773e9d07e9cc Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sat, 21 Jun 2025 23:48:12 +0000 Subject: [PATCH 45/95] Only attribute not in studio Signed-off-by: GitHub --- src/init.luau | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/init.luau b/src/init.luau index a30935e7..d93cdb29 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,5 +1,5 @@ -local module = {} +local RunService = game:GetService("RunService") -print("💼 Running Satchel v2.0.0 by WinnersTakesAll") - -return module +if not RunService:IsStudio() then + print("💼 Running Satchel v2.0.0 by WinnersTakesAll") +end From 893be38d859a5cced843211fa2b086766df914ec Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 26 Aug 2025 22:22:20 -0700 Subject: [PATCH 46/95] Fix string requires Signed-off-by: Ryan Luu --- selene.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selene.toml b/selene.toml index c4ddb460..e1c4d692 100644 --- a/selene.toml +++ b/selene.toml @@ -1 +1 @@ -std = "roblox" +std = "selene_definitions" From 783f6b5a37a225e4f9cb20de8f6cec7fcfd30c4e Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 26 Aug 2025 22:26:22 -0700 Subject: [PATCH 47/95] Remove duplicate loader Signed-off-by: Ryan Luu --- src/Loader.client.luau | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 src/Loader.client.luau diff --git a/src/Loader.client.luau b/src/Loader.client.luau deleted file mode 100644 index 3121b0a8..00000000 --- a/src/Loader.client.luau +++ /dev/null @@ -1,15 +0,0 @@ ---!strict - ---[[ - Name: Satchel - Description: Loads the Satchel backpack system. - DevForum: https://devforum.roblox.com/t/2451549 -]] - ---[[ - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at Mozilla Public License Version 2.0. -]] - -require(script.Parent) -- Run Satchel From d34c4b38d7b244413d298e37df13b3ea70b24e72 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 26 Aug 2025 22:28:32 -0700 Subject: [PATCH 48/95] Remove old project files Signed-off-by: Ryan Luu --- model.project.json | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 model.project.json diff --git a/model.project.json b/model.project.json deleted file mode 100644 index f4ed174e..00000000 --- a/model.project.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "Satchel", - "tree": { - "$path": "models", - - "Satchel": { - "$path": "src", - - "Packages": { - "$path": "Packages" - } - } - }, - "emitLegacyScripts": false -} \ No newline at end of file From face149168ad13224a7a6b1aa58b48a43b6be559 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 23 Sep 2025 14:31:07 -0700 Subject: [PATCH 49/95] Add creator store Updated installation instructions and links in the README. Signed-off-by: Ryan Luu --- models/README/init.client.luau | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/README/init.client.luau b/models/README/init.client.luau index 60f90d6b..e2fbf968 100644 --- a/models/README/init.client.luau +++ b/models/README/init.client.luau @@ -3,12 +3,12 @@ Satchel is a modern open-source alternative to Roblox's default backpack 🎒 - 🛝 Playground: https://www.roblox.com/games/13592168150 📰 DevForum: https://devforum.roblox.com/t/2451549 - 📂 GitHub: https://github.com/RyanLua/Satchel + 🛍️ Creator Store: https://create.roblox.com/store/asset/13947506401 + 🛝 Playground: https://www.roblox.com/games/13592168150 🔧 Installation: - 1. Move the Satchel module script into StarterPlayerScripts + 1. Move the Satchel module script into ReplicatedStorage 2. Enable AutoUpdate in the Satchel module script package link 3. Edit the Satchel module script attributes to customize the UI 4. Read the documentation to learn how to use Satchel using the above links From d577f26adfb73ae7baabeec25b1ee4807f99e29d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 23 Nov 2025 01:56:35 -0800 Subject: [PATCH 50/95] Remove old assets in preparation for stylesheets Signed-off-by: Ryan Luu --- src/Components/Background.luau | 21 -------- src/Components/Container.luau | 27 ---------- src/Components/HintSlot.luau | 19 ------- src/Components/HintText.luau | 38 ------------- src/Components/Hotbar.luau | 29 ---------- src/Components/SearchBar.luau | 44 --------------- src/Components/Slot.luau | 81 ---------------------------- src/Components/Tooltip.luau | 19 ------- src/Constants.luau | 42 --------------- src/Stories/Background.story.luau | 17 ------ src/Stories/Container.story.luau | 17 ------ src/Stories/HintSlot.story.luau | 28 ---------- src/Stories/HintText.story.luau | 26 --------- src/Stories/Hotbar.story.luau | 21 -------- src/Stories/SearchBar.story.luau | 15 ------ src/Stories/Slot.story.luau | 39 -------------- src/Stories/Storybook.storybook.luau | 15 ------ src/ToolTipStyle.client.luau | 35 ------------ 18 files changed, 533 deletions(-) delete mode 100644 src/Components/Background.luau delete mode 100644 src/Components/Container.luau delete mode 100644 src/Components/HintSlot.luau delete mode 100644 src/Components/HintText.luau delete mode 100644 src/Components/Hotbar.luau delete mode 100644 src/Components/SearchBar.luau delete mode 100644 src/Components/Slot.luau delete mode 100644 src/Constants.luau delete mode 100644 src/Stories/Background.story.luau delete mode 100644 src/Stories/Container.story.luau delete mode 100644 src/Stories/HintSlot.story.luau delete mode 100644 src/Stories/HintText.story.luau delete mode 100644 src/Stories/Hotbar.story.luau delete mode 100644 src/Stories/SearchBar.story.luau delete mode 100644 src/Stories/Slot.story.luau delete mode 100644 src/Stories/Storybook.storybook.luau delete mode 100644 src/ToolTipStyle.client.luau diff --git a/src/Components/Background.luau b/src/Components/Background.luau deleted file mode 100644 index 8926a206..00000000 --- a/src/Components/Background.luau +++ /dev/null @@ -1,21 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local Constants = require("../Constants") - -local function BackgroundFrame(props: { - Size: UDim2, - child: () -> (), -}) - return React.createElement("Frame", { - BackgroundColor3 = Constants.Theme.BackgroundColor, - BackgroundTransparency = Constants.Theme.BackgroundTransparency, - Size = props.Size, - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadius, - }), - }) -end - -return BackgroundFrame diff --git a/src/Components/Container.luau b/src/Components/Container.luau deleted file mode 100644 index 6aef3f8b..00000000 --- a/src/Components/Container.luau +++ /dev/null @@ -1,27 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local Constants = require("../Constants") - -local function ContainerFrame(props: { - Size: UDim2, - child: () -> (), -}) - return React.createElement("Frame", { - Size = props.Size, - BackgroundTransparency = Constants.Theme.ContainerBackgroundTransparency, - BackgroundColor3 = Constants.Theme.BackgroundColor, - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadiusSmall, - }), - }, { - React.createElement("UIStroke", { - ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Color = Constants.Theme.ContainerStrokeColor, - Transparency = Constants.Theme.ContainerStrokeTransparency, - }), - }) -end - -return ContainerFrame diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau deleted file mode 100644 index 7f57f356..00000000 --- a/src/Components/HintSlot.luau +++ /dev/null @@ -1,19 +0,0 @@ ---!strict - -local React = require("../Packages/React") - -local function SlotButton(props: { - IsTenFootInterface: boolean?, - LayoutOrder: number?, - image: string, -}) - return React.createElement("ImageLabel", { - LayoutOrder = props.LayoutOrder or -1, - Image = if props.IsTenFootInterface then props.image:gsub("(%.png)$", "@2x%1") else props.image, - ScaleType = Enum.ScaleType.Fit, - BackgroundTransparency = 1, - Size = if props.IsTenFootInterface then UDim2.new(0, 100, 0, 73) else UDim2.new(0, 60, 0, 37), - }) -end - -return SlotButton diff --git a/src/Components/HintText.luau b/src/Components/HintText.luau deleted file mode 100644 index 42e4d9dd..00000000 --- a/src/Components/HintText.luau +++ /dev/null @@ -1,38 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local Constants = require("../Constants") - -local function SlotButton(props: { - LayoutOrder: number?, - text: string, - image: string, -}) - return React.createElement("Frame", { - AutomaticSize = Enum.AutomaticSize.X, - LayoutOrder = props.LayoutOrder or 0, - BackgroundTransparency = 1, - Size = UDim2.new(0, 0, 1, 0), - }, { - React.createElement("ImageLabel", { - BackgroundTransparency = 1, - AnchorPoint = Vector2.new(0, 0.5), - Position = UDim2.new(0, 0, 0.5, 0), - Size = UDim2.new(0, 37, 0, 37), - Image = props.image, - }), - }, { - React.createElement("TextLabel", { - AutomaticSize = Enum.AutomaticSize.X, - Position = UDim2.new(0, 42, 0, 0), - Font = Constants.Theme.Font, - TextColor3 = Constants.Theme.TextColor, - BackgroundTransparency = 1, - Text = props.text, - TextSize = Constants.Theme.TextSize, - Size = UDim2.new(0, 0, 1, 0), - }), - }) -end - -return SlotButton diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau deleted file mode 100644 index 46a36e5b..00000000 --- a/src/Components/Hotbar.luau +++ /dev/null @@ -1,29 +0,0 @@ ---!strict - -local React = require("../Packages/React") - -local function HotbarFrame(props: { - child: () -> (), -}) - return React.createElement("Frame", { - AutomaticSize = Enum.AutomaticSize.XY, - BackgroundTransparency = 1, - }, { - React.createElement("UIListLayout", { - Padding = UDim.new(0, 5), - FillDirection = Enum.FillDirection.Horizontal, - VerticalAlignment = Enum.VerticalAlignment.Center, - }), - }, { - React.createElement("UIPadding", { - PaddingBottom = UDim.new(0, 0), - PaddingLeft = UDim.new(0, 5), - PaddingRight = UDim.new(0, 5), - PaddingTop = UDim.new(0, 0), - }), - }, { - Child = props.child, - }) -end - -return HotbarFrame diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau deleted file mode 100644 index 9b4a10c9..00000000 --- a/src/Components/SearchBar.luau +++ /dev/null @@ -1,44 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local Constants = require("../Constants") - -local function SearchBarTextBox() - return React.createElement("Frame", { - Size = UDim2.new(0, 190, 0, 30), - BackgroundColor3 = Constants.Theme.BackgroundColor, - BackgroundTransparency = Constants.Theme.ContainerBackgroundTransparency, - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadiusSmall, - }), - }, { - React.createElement("UIPadding", { - PaddingBottom = Constants.Theme.PaddingLarge, - PaddingLeft = Constants.Theme.PaddingLarge, - PaddingRight = UDim.new(0, 28), - PaddingTop = Constants.Theme.PaddingLarge, - }), - }, { - React.createElement("UIStroke", { - ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Color = Constants.Theme.ContainerStrokeColor, - Transparency = Constants.Theme.ContainerStrokeTransparency, - }), - }, { - React.createElement("TextBox", { - BackgroundTransparency = 1, - Size = UDim2.new(1, 0, 1, 0), - Font = Constants.Theme.Font, - Text = "", - PlaceholderText = "Search", - TextColor3 = Constants.Theme.TextColor, - TextSize = Constants.Theme.TextSize, - TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, - TextStrokeColor3 = Constants.Theme.TextStrokeColor, - TextXAlignment = Enum.TextXAlignment.Left, - }), - }) -end - -return SearchBarTextBox diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau deleted file mode 100644 index 94cae05e..00000000 --- a/src/Components/Slot.luau +++ /dev/null @@ -1,81 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local Constants = require("../Constants") - -local function SlotButton(props: { - IsTenFootInterface: boolean?, - toolName: string?, - textureIcon: string?, - tooltip: string?, - slotNumber: string?, - locked: boolean?, - equipped: boolean?, - onActivated: (() -> ())?, -}) - return React.createElement("TextButton", { - BackgroundColor3 = Constants.Theme.BackgroundColor, - TextColor3 = Constants.Theme.TextColor, - TextSize = Constants.Theme.TextSize, - TextStrokeColor3 = Constants.Theme.TextStrokeColor, - TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, - Font = Constants.Theme.Font, - BackgroundTransparency = if props.locked then 0 else Constants.Theme.BackgroundTransparency, - Text = if props.textureIcon then "" else props.toolName or "", - Size = if props.IsTenFootInterface then UDim2.new(0, 100, 0, 100) else UDim2.new(0, 60, 0, 60), - TextScaled = true, - [React.Event.Activated] = props.onActivated, - }, { - React.createElement("UITextSizeConstraint", { - MaxTextSize = if props.IsTenFootInterface then Constants.Theme.TextSizeLarge else Constants.Theme.TextSize, - }), - }, { - React.createElement("UIPadding", { - PaddingBottom = Constants.Theme.Padding, - PaddingLeft = Constants.Theme.Padding, - PaddingRight = Constants.Theme.Padding, - PaddingTop = Constants.Theme.Padding, - }), - }, { - React.createElement("ImageLabel", { - BackgroundTransparency = 1, - Image = props.textureIcon or "", - Size = UDim2.new(1, 0, 1, 0), - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadiusSmall, - }), - }), - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadius, - }), - }, { - React.createElement("TextLabel", { - TextColor3 = Constants.Theme.TextColor, - TextSize = if props.IsTenFootInterface then Constants.Theme.TextSize else Constants.Theme.TextSizeSmall, - TextStrokeColor3 = Constants.Theme.TextStrokeColor, - TextStrokeTransparency = Constants.Theme.TextStrokeTransparency, - Font = Constants.Theme.FontSmall, - Text = props.slotNumber or "", - BackgroundTransparency = 1, - Position = UDim2.new(0, 0, 0, 0), - Size = UDim2.new(1, 0, 1, 0), - TextXAlignment = Enum.TextXAlignment.Left, - TextYAlignment = Enum.TextYAlignment.Top, - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadiusSmall, - }), - }, { - React.createElement("UIStroke", { - ApplyStrokeMode = Enum.ApplyStrokeMode.Border, - Thickness = Constants.Theme.Thickness, - Color = Constants.Theme.EquippedColor, - Enabled = props.equipped or false, - }), - }), - }) -end - -return SlotButton diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 9cb51bde..6ce0b607 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -8,25 +8,6 @@ local function TooltipTextBox(props: { }) return React.createElement("TextLabel", { Text = props.text, - TextSize = Constants.Theme.TextSizeSmall, - TextColor3 = Constants.Theme.TextColor, - Font = Constants.Theme.Font, - BackgroundColor3 = Constants.Theme.TooltipBackgroundColor, - BackgroundTransparency = Constants.Theme.TooltipBackgroundTransparency, - AnchorPoint = Vector2.new(0.5, 1), - Position = UDim2.new(0.5, 0, 0, -10), - AutomaticSize = Enum.AutomaticSize.XY, - }, { - React.createElement("UICorner", { - CornerRadius = Constants.Theme.CornerRadiusSmall, - }), - }, { - React.createElement("UIPadding", { - PaddingTop = Constants.Theme.Padding, - PaddingLeft = Constants.Theme.Padding, - PaddingRight = Constants.Theme.Padding, - PaddingBottom = Constants.Theme.Padding, - }), }) end diff --git a/src/Constants.luau b/src/Constants.luau deleted file mode 100644 index 4786bde2..00000000 --- a/src/Constants.luau +++ /dev/null @@ -1,42 +0,0 @@ ---!strict - ---[[ - Constants for variables. ---]] - -local Constants = { - Theme = { - -- Spacing - Thickness = 5, - Padding = UDim.new(0, 5), - PaddingLarge = UDim.new(0, 8), - CornerRadius = UDim.new(0, 8), - CornerRadiusSmall = UDim.new(0, 3), -- padding - cornerRadius - - -- Font - Font = Enum.Font.BuilderSansMedium, - FontSmall = Enum.Font.BuilderSansExtraBold, - TextSize = 18, - TextSizeLarge = 24, - TextSizeSmall = 14, - - -- Colors - BackgroundColor = Color3.fromRGB(25, 27, 29), - TooltipBackgroundColor = Color3.fromRGB(38, 40, 48), - ContainerStrokeColor = Color3.fromRGB(255, 255, 255), - TextColor = Color3.fromRGB(255, 255, 255), - TextStrokeColor = Color3.fromRGB(0, 0, 0), - ContainerTextColor = Color3.fromRGB(255, 255, 255), - EquippedColor = Color3.fromRGB(255, 255, 255), - - -- Transparency - BackgroundTransparency = 0.3, - ContainerBackgroundTransparency = 0.2, - TooltipBackgroundTransparency = 0, - TextStrokeTransparency = 0.5, - ContainerTextTransparency = 0.5, - ContainerStrokeTransparency = 0.8, - }, -} - -return Constants diff --git a/src/Stories/Background.story.luau b/src/Stories/Background.story.luau deleted file mode 100644 index ea59d681..00000000 --- a/src/Stories/Background.story.luau +++ /dev/null @@ -1,17 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local Background = require("../Components/Background") - -return { - summary = "Base background frame", - react = React, - reactRoblox = ReactRoblox, - story = function() - return React.createElement(Background, { - Size = UDim2.new(0, 200, 0, 200), - }) - end, -} diff --git a/src/Stories/Container.story.luau b/src/Stories/Container.story.luau deleted file mode 100644 index 5db4c7ed..00000000 --- a/src/Stories/Container.story.luau +++ /dev/null @@ -1,17 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local Container = require("../Components/Container") - -return { - summary = "Base container frame", - react = React, - reactRoblox = ReactRoblox, - story = function() - return React.createElement(Container, { - Size = UDim2.new(0, 200, 0, 200), - }) - end, -} diff --git a/src/Stories/HintSlot.story.luau b/src/Stories/HintSlot.story.luau deleted file mode 100644 index 7bed0007..00000000 --- a/src/Stories/HintSlot.story.luau +++ /dev/null @@ -1,28 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local Slot = require("../Components/HintSlot") - -local controls = { - IsTenFootInterface = false, - image = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", -} - -type Props = { - controls: typeof(controls), -} - -return { - summary = "A hint that goes in the tool slot", - react = React, - reactRoblox = ReactRoblox, - controls = controls, - story = function(props: Props) - return React.createElement(Slot, { - IsTenFootInterface = props.controls.IsTenFootInterface, - image = props.controls.image, - }) - end, -} diff --git a/src/Stories/HintText.story.luau b/src/Stories/HintText.story.luau deleted file mode 100644 index 34a20fc3..00000000 --- a/src/Stories/HintText.story.luau +++ /dev/null @@ -1,26 +0,0 @@ -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local HintText = require("../Components/HintText") - -local controls = { - text = "Hint action", - image = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", -} - -type Props = { - controls: typeof(controls), -} - -return { - summary = "Hint text with icon", - react = React, - reactRoblox = ReactRoblox, - controls = controls, - story = function() - return React.createElement(HintText, { - text = controls.text, - image = controls.image, - }) - end, -} diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau deleted file mode 100644 index 4ab32125..00000000 --- a/src/Stories/Hotbar.story.luau +++ /dev/null @@ -1,21 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local Hotbar = require("../Components/Hotbar") -local Slot = require("../Components/Slot") - -return { - summary = "Hotbar which holds tool slots", - react = React, - reactRoblox = ReactRoblox, - story = function() - return React.createElement(Hotbar, { - child = React.createElement(Slot, { - toolName = "Tool", - slotNumber = "0", - }), - }, {}) - end, -} diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau deleted file mode 100644 index 80560586..00000000 --- a/src/Stories/SearchBar.story.luau +++ /dev/null @@ -1,15 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local SearchBar = require("../Components/SearchBar") - -return { - summary = "A search bar for finding tools", - react = React, - reactRoblox = ReactRoblox, - story = function() - return React.createElement(SearchBar) - end, -} diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau deleted file mode 100644 index e01927a2..00000000 --- a/src/Stories/Slot.story.luau +++ /dev/null @@ -1,39 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -local Slot = require("../Components/Slot") - -local controls = { - IsTenFootInterface = false, - toolName = "Tool name", - textureIcon = "rbxasset://textures/ui/GuiImagePlaceholder.png", - slotNumber = "0", - equipped = false, - locked = false, -} - -type Props = { - controls: typeof(controls), -} - -return { - summary = "A slot for a tool", - react = React, - reactRoblox = ReactRoblox, - controls = controls, - story = function(props: Props) - return React.createElement(Slot, { - IsTenFootInterface = props.controls.IsTenFootInterface, - toolName = props.controls.toolName, - slotNumber = props.controls.slotNumber, - textureIcon = props.controls.textureIcon, - equipped = props.controls.equipped, - locked = props.controls.locked, - onActivated = function() - print("Slot activated") - end, - }) - end, -} diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau deleted file mode 100644 index 037568b2..00000000 --- a/src/Stories/Storybook.storybook.luau +++ /dev/null @@ -1,15 +0,0 @@ ---!strict - -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") - -return { - name = script.Parent.Name, - storyRoots = { - script.Parent, - }, - packages = { - React = React, - ReactRoblox = ReactRoblox, - }, -} diff --git a/src/ToolTipStyle.client.luau b/src/ToolTipStyle.client.luau deleted file mode 100644 index ee452fd1..00000000 --- a/src/ToolTipStyle.client.luau +++ /dev/null @@ -1,35 +0,0 @@ --- Parent this script to a ScreenGui under StarterGui. -local ReplicatedStorage = game:GetService("ReplicatedStorage") - -local screenGui = script.Parent - --- DesignSheet -local sheet = Instance.new("StyleSheet") -sheet.Parent = ReplicatedStorage - --- Configure rule -local toolTipRule = Instance.new("StyleRule") -toolTipRule.Selector = "TextLabel" -- Class selector -toolTipRule.Parent = sheet - --- Set rule properties -toolTipRule:SetProperties({ - ["AnchorPoint"] = Vector2.new(0.5, 1), - ["AutomaticSize"] = Enum.AutomaticSize.XY, - ["BackgroundColor3"] = "$ToolTipBackgroundColor", - ["FontFace"] = "$ToolTipFontFace", - ["Position"] = UDim2.new(0.5, 0, 1, 0), - ["Size"] = UDim2.new(0, 0, 0, 0), - ["TextColor3"] = "$ToolTipTextColor", - ["TextSize"] = "$ToolTipTextSize", -}) - --- Create a UI -local button = Instance.new("TextButton") -button.Text = "Main Menu" -button.Parent = screenGui - --- Apply styling to UI -local link = Instance.new("StyleLink") -link.Parent = screenGui -link.StyleSheet = sheet From 1226421eadc7c82cafd16fdaf967f39a21e3b17d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 23 Nov 2025 19:09:54 -0800 Subject: [PATCH 51/95] Add running example Signed-off-by: Ryan Luu --- src/Components/Tooltip.luau | 3 +-- src/Stories/Tooltip.story.luau | 4 ++-- src/init.luau | 21 ++++++++++++++++++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 6ce0b607..c7f7da2c 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,7 +1,6 @@ --!strict -local React = require("../Packages/React") -local Constants = require("../Constants") +local React = require("../../react") local function TooltipTextBox(props: { text: string, diff --git a/src/Stories/Tooltip.story.luau b/src/Stories/Tooltip.story.luau index f9d4d649..edc5e04d 100644 --- a/src/Stories/Tooltip.story.luau +++ b/src/Stories/Tooltip.story.luau @@ -1,7 +1,7 @@ --!strict -local React = require("../Packages/React") -local ReactRoblox = require("../Packages/ReactRoblox") +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") local Tooltip = require("../Components/Tooltip") diff --git a/src/init.luau b/src/init.luau index d93cdb29..582b0c9c 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,5 +1,20 @@ -local RunService = game:GetService("RunService") +local ReplicatedStorage = game:GetService("ReplicatedStorage") +local Players = game:GetService("Players") -if not RunService:IsStudio() then - print("💼 Running Satchel v2.0.0 by WinnersTakesAll") +local React = require("./react") +local ReactRoblox = require("./react-roblox") + +local tooltip = require("@self/Components/Tooltip") + +local Satchel = {} + +local function runExample() + local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui) + local root = ReactRoblox.createRoot(handle) + + root:render(React.createElement(tooltip, {})) end + +runExample() + +return Satchel From a5f80dc7fe822ba6e6b1be9efd67fcebf2224115 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 23 Nov 2025 19:40:57 -0800 Subject: [PATCH 52/95] Add tags Signed-off-by: Ryan Luu --- src/Components/Tooltip.luau | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index c7f7da2c..249f5f31 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,5 +1,7 @@ --!strict +local ReplicatedStorage = game:GetService("ReplicatedStorage") + local React = require("../../react") local function TooltipTextBox(props: { @@ -7,6 +9,7 @@ local function TooltipTextBox(props: { }) return React.createElement("TextLabel", { Text = props.text, + tag = "tooltip", }) end From 6ad10e6d3f47a8ca33d145640acf2e1106f8a928 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 23:38:14 +0000 Subject: [PATCH 53/95] Add basic render Signed-off-by: GitHub --- src/Components/Tooltip.luau | 2 +- src/init.luau | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 249f5f31..4f1171c3 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -9,7 +9,7 @@ local function TooltipTextBox(props: { }) return React.createElement("TextLabel", { Text = props.text, - tag = "tooltip", + [React.Tag] = "tooltip", }) end diff --git a/src/init.luau b/src/init.luau index 582b0c9c..b04c0c28 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,20 +1,19 @@ -local ReplicatedStorage = game:GetService("ReplicatedStorage") +--!strict + local Players = game:GetService("Players") local React = require("./react") local ReactRoblox = require("./react-roblox") -local tooltip = require("@self/Components/Tooltip") - -local Satchel = {} +local player = Players.LocalPlayer :: Player +local playerGui = player.PlayerGui -local function runExample() - local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui) - local root = ReactRoblox.createRoot(handle) - - root:render(React.createElement(tooltip, {})) -end +local tooltip = require("@self/Components/Tooltip") -runExample() +local handle = Instance.new("ScreenGui") +handle.Name = "SatchelGui" +handle.Parent = playerGui +local root = ReactRoblox.createRoot(handle) +root:render(tooltip({ text = "Hello world!" })) -return Satchel +return {} From ed9296d9e39b9f97e8c2cd7b8737f29bc8ea192b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 23:47:51 +0000 Subject: [PATCH 54/95] Use createElement Signed-off-by: GitHub --- src/init.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/init.luau b/src/init.luau index b04c0c28..7897c360 100644 --- a/src/init.luau +++ b/src/init.luau @@ -14,6 +14,6 @@ local handle = Instance.new("ScreenGui") handle.Name = "SatchelGui" handle.Parent = playerGui local root = ReactRoblox.createRoot(handle) -root:render(tooltip({ text = "Hello world!" })) +root:render(React.createElement(tooltip, { text = "Hello world!" })) return {} From cffb48efb41e84ae6efc3dd8a57dbd1bf11415c2 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 20:05:05 -0800 Subject: [PATCH 55/95] Export types Signed-off-by: Ryan Luu --- src/Components/Tooltip.luau | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 4f1171c3..5af4813b 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -4,13 +4,15 @@ local ReplicatedStorage = game:GetService("ReplicatedStorage") local React = require("../../react") -local function TooltipTextBox(props: { +export type TooltipTextLabel = { text: string, -}) +} + +local function TooltipTextLabel(props: TooltipTextLabel) return React.createElement("TextLabel", { Text = props.text, [React.Tag] = "tooltip", }) end -return TooltipTextBox +return TooltipTextLabel From 445bf0b86410d3c4263117bcdf4dc87311524f82 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 20:19:06 -0800 Subject: [PATCH 56/95] Add slot component Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 32 ++++++++++++++++++++++++++++++++ src/Components/Tooltip.luau | 2 -- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/Components/Slot.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau new file mode 100644 index 00000000..fa2988d9 --- /dev/null +++ b/src/Components/Slot.luau @@ -0,0 +1,32 @@ +--!strict + +local React = require("../../react") + +export type TooltipTextLabel = { + toolName: string, + toolImage: string?, + slotNumber: number?, + unlocked: boolean?, + equipped: boolean?, +} + +local function TooltipTextLabel(props: TooltipTextLabel) + local isUnlocked = props.unlocked or false + local isEquipped = props.equipped or false + + -- Determine tags based on slot state + local tags = "slot" + if isUnlocked then + tags = tags .. " unlocked" + end + if isEquipped then + tags = tags .. " equipped" + end + + return React.createElement("TextLabel", { + Text = props.toolName, + [React.Tag] = tags, + }) +end + +return TooltipTextLabel diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 5af4813b..40c6d35f 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -1,7 +1,5 @@ --!strict -local ReplicatedStorage = game:GetService("ReplicatedStorage") - local React = require("../../react") export type TooltipTextLabel = { From b4ad7d59564ea8e0d660988e9b1647cc782918ee Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 21:17:53 -0800 Subject: [PATCH 57/95] Refactor Slot and Tooltip components for improved type definitions and prop handling Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 35 +++++++++++++++++++++++------------ src/Components/Tooltip.luau | 8 ++++---- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index fa2988d9..66d523d6 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -2,31 +2,42 @@ local React = require("../../react") -export type TooltipTextLabel = { - toolName: string, +local Tooltip = require("./Tooltip") + +export type SlotTextLabelProps = { + equipped: boolean?, + unlocked: boolean?, + toolImage: string?, + toolName: string?, slotNumber: number?, - unlocked: boolean?, - equipped: boolean?, + tooltipText: string?, } -local function TooltipTextLabel(props: TooltipTextLabel) - local isUnlocked = props.unlocked or false - local isEquipped = props.equipped or false - +local function SlotTextLabel(props: SlotTextLabelProps) -- Determine tags based on slot state local tags = "slot" - if isUnlocked then + if props.unlocked then tags = tags .. " unlocked" end - if isEquipped then + if props.equipped then tags = tags .. " equipped" end return React.createElement("TextLabel", { - Text = props.toolName, + Text = props.toolName or "", [React.Tag] = tags, + }, { + React.createElement("TextLabel", { + Text = props.slotNumber or 0, + }), + React.createElement("ImageLabel", { + Image = props.toolImage or "", + }), + React.createElement(Tooltip, { + text = props.tooltipText, + }), }) end -return TooltipTextLabel +return SlotTextLabel diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau index 40c6d35f..477c9dd1 100644 --- a/src/Components/Tooltip.luau +++ b/src/Components/Tooltip.luau @@ -2,13 +2,13 @@ local React = require("../../react") -export type TooltipTextLabel = { - text: string, +export type TooltipTextLabelProps = { + text: string?, } -local function TooltipTextLabel(props: TooltipTextLabel) +local function TooltipTextLabel(props: TooltipTextLabelProps) return React.createElement("TextLabel", { - Text = props.text, + Text = props.text or "", [React.Tag] = "tooltip", }) end From dc4d4630983cc198efba6bb304a98c0dfabdf54a Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 21:34:09 -0800 Subject: [PATCH 58/95] Merge slot and tooltip component Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 20 +++++++++----------- src/Components/Tooltip.luau | 16 ---------------- src/Stories/Tooltip.story.luau | 26 -------------------------- src/init.luau | 4 ++-- 4 files changed, 11 insertions(+), 55 deletions(-) delete mode 100644 src/Components/Tooltip.luau delete mode 100644 src/Stories/Tooltip.story.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 66d523d6..c13a9dde 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -2,20 +2,17 @@ local React = require("../../react") -local Tooltip = require("./Tooltip") - export type SlotTextLabelProps = { - equipped: boolean?, - unlocked: boolean?, - - toolImage: string?, toolName: string?, slotNumber: number?, + toolImage: string?, tooltipText: string?, + + equipped: boolean?, + unlocked: boolean?, } local function SlotTextLabel(props: SlotTextLabelProps) - -- Determine tags based on slot state local tags = "slot" if props.unlocked then tags = tags .. " unlocked" @@ -28,14 +25,15 @@ local function SlotTextLabel(props: SlotTextLabelProps) Text = props.toolName or "", [React.Tag] = tags, }, { - React.createElement("TextLabel", { + Number = React.createElement("TextLabel", { Text = props.slotNumber or 0, }), - React.createElement("ImageLabel", { + TextureIcon = React.createElement("ImageLabel", { Image = props.toolImage or "", }), - React.createElement(Tooltip, { - text = props.tooltipText, + ToolTip = React.createElement("TextLabel", { + Text = props.tooltipText or "", + [React.Tag] = "tooltip", }), }) end diff --git a/src/Components/Tooltip.luau b/src/Components/Tooltip.luau deleted file mode 100644 index 477c9dd1..00000000 --- a/src/Components/Tooltip.luau +++ /dev/null @@ -1,16 +0,0 @@ ---!strict - -local React = require("../../react") - -export type TooltipTextLabelProps = { - text: string?, -} - -local function TooltipTextLabel(props: TooltipTextLabelProps) - return React.createElement("TextLabel", { - Text = props.text or "", - [React.Tag] = "tooltip", - }) -end - -return TooltipTextLabel diff --git a/src/Stories/Tooltip.story.luau b/src/Stories/Tooltip.story.luau deleted file mode 100644 index edc5e04d..00000000 --- a/src/Stories/Tooltip.story.luau +++ /dev/null @@ -1,26 +0,0 @@ ---!strict - -local React = require("../../react") -local ReactRoblox = require("../../react-roblox") - -local Tooltip = require("../Components/Tooltip") - -local controls = { - text = "Tool Tip", -} - -type Props = { - controls: typeof(controls), -} - -return { - summary = "A tooltip for a tool slot", - react = React, - reactRoblox = ReactRoblox, - controls = controls, - story = function(props: Props) - return React.createElement(Tooltip, { - text = props.controls.text, - }) - end, -} diff --git a/src/init.luau b/src/init.luau index 7897c360..2c9239d2 100644 --- a/src/init.luau +++ b/src/init.luau @@ -8,12 +8,12 @@ local ReactRoblox = require("./react-roblox") local player = Players.LocalPlayer :: Player local playerGui = player.PlayerGui -local tooltip = require("@self/Components/Tooltip") +local Slot = require("@self/Components/Slot") local handle = Instance.new("ScreenGui") handle.Name = "SatchelGui" handle.Parent = playerGui local root = ReactRoblox.createRoot(handle) -root:render(React.createElement(tooltip, { text = "Hello world!" })) +root:render(React.createElement(Slot, { toolName = "Hello world!" })) return {} From f0eeaca4c97dc6e667243b930a9ab1174a066727 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 21:48:36 -0800 Subject: [PATCH 59/95] Add storybook Signed-off-by: Ryan Luu --- src/Stories/Slot.story.luau | 16 ++++++++++++++++ src/Stories/Storybook.storybook.luau | 15 +++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/Stories/Slot.story.luau create mode 100644 src/Stories/Storybook.storybook.luau diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau new file mode 100644 index 00000000..e2f42a84 --- /dev/null +++ b/src/Stories/Slot.story.luau @@ -0,0 +1,16 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local Slot = require("../Components/Slot") + +return function(target) + local root = ReactRoblox.createRoot(target) + + root:render(React.createElement(Slot, { toolName = "Hello world!" })) + + return function() + root:unmount() + end +end diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau new file mode 100644 index 00000000..bd5390f9 --- /dev/null +++ b/src/Stories/Storybook.storybook.luau @@ -0,0 +1,15 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +return { + name = "Satchel", + storyRoots = { + script.Parent, + }, + packages = { + React = React, + ReactRoblox = ReactRoblox, + }, +} From 7d2c81157a77aee78de3a5cce1d9abb75a4829fb Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 21:54:59 -0800 Subject: [PATCH 60/95] Use UI Labs for storybooks Signed-off-by: Ryan Luu --- src/Stories/Slot.story.luau | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index e2f42a84..5c372133 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -5,12 +5,30 @@ local ReactRoblox = require("../../react-roblox") local Slot = require("../Components/Slot") -return function(target) - local root = ReactRoblox.createRoot(target) +local controls = { + toolName = "Sword", + slotNumber = "9", + toolImage = "rbxasset://Textures/Sword128.png", + tooltipText = "A classic sword", + equipped = false, + unlocked = false, +} - root:render(React.createElement(Slot, { toolName = "Hello world!" })) - - return function() - root:unmount() - end -end +return { + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function(props) + return React.createElement(Slot, { + toolName = props.controls.toolName, + slotNumber = props.controls.slotNumber, + toolImage = props.controls.toolImage, + tooltipText = props.controls.tooltipText, + equipped = props.controls.equipped, + unlocked = props.controls.unlocked, + onActivated = function() + print("Slot activated") + end, + }) + end, +} From afba92b40836a0ded9643fbfe5bbd807bd3e0678 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 23:31:54 -0800 Subject: [PATCH 61/95] Rename props Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index c13a9dde..809d0962 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -2,7 +2,7 @@ local React = require("../../react") -export type SlotTextLabelProps = { +export type Props = { toolName: string?, slotNumber: number?, toolImage: string?, @@ -12,7 +12,7 @@ export type SlotTextLabelProps = { unlocked: boolean?, } -local function SlotTextLabel(props: SlotTextLabelProps) +local function SlotTextLabel(props: Props) local tags = "slot" if props.unlocked then tags = tags .. " unlocked" From cd71260d1c40bf68f7debc85964d8a5baa26c0f6 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 30 Nov 2025 23:46:28 -0800 Subject: [PATCH 62/95] Add return type Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 809d0962..b27bc623 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -12,7 +12,7 @@ export type Props = { unlocked: boolean?, } -local function SlotTextLabel(props: Props) +local function SlotTextLabel(props: Props): React.ReactNode local tags = "slot" if props.unlocked then tags = tags .. " unlocked" From 96753f66ccafbfa105137f05cc121fd7dc6e4e9f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 20:59:58 -0800 Subject: [PATCH 63/95] Fix types Signed-off-by: Ryan Luu --- rokit.toml | 1 + src/Components/Slot.luau | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rokit.toml b/rokit.toml index bb87fd07..caac08a9 100644 --- a/rokit.toml +++ b/rokit.toml @@ -3,3 +3,4 @@ rojo = "rojo-rbx/rojo@7.6.1" selene = "Kampfkarren/selene@0.29.0" stylua = "JohnnyMorganz/stylua@2.3.1" wally = "UpliftGames/wally@0.3.2" +wally-package-types = "JohnnyMorganz/wally-package-types@1.6.2" diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index b27bc623..902ca360 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -12,7 +12,7 @@ export type Props = { unlocked: boolean?, } -local function SlotTextLabel(props: Props): React.ReactNode +local function SlotTextLabel(props: Props): React.ReactElement -- TODO: Update to use proper types when React Luau is on Wally. local tags = "slot" if props.unlocked then tags = tags .. " unlocked" From 7bdc84173a0e8f603ddf7d35daf8832f8f757639 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 21:29:36 -0800 Subject: [PATCH 64/95] Remove activated event Signed-off-by: Ryan Luu --- src/Stories/Slot.story.luau | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 5c372133..b0e86b1b 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -26,9 +26,6 @@ return { tooltipText = props.controls.tooltipText, equipped = props.controls.equipped, unlocked = props.controls.unlocked, - onActivated = function() - print("Slot activated") - end, }) end, } From d27cc90a2ee7db77788fe7e27cdaea41468ab99f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 22:51:52 -0800 Subject: [PATCH 65/95] Add backpack frame Signed-off-by: Ryan Luu --- src/Components/Backpack.luau | 17 +++++++++++++++++ src/Components/Slot.luau | 2 +- src/Stories/Backpack.story.luau | 14 ++++++++++++++ src/init.luau | 4 ++-- 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/Components/Backpack.luau create mode 100644 src/Stories/Backpack.story.luau diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau new file mode 100644 index 00000000..32af3da1 --- /dev/null +++ b/src/Components/Backpack.luau @@ -0,0 +1,17 @@ +--!strict + +local React = require("../../react") + +local Slot = require("../Components/Slot") + +local function BackpackFrame(): React.ReactElement -- TODO: Update to use proper types when React Luau is on Wally. + return React.createElement("Frame", { + [React.Tag] = "backpack", + }, { + Slot = React.createElement(Slot, { + toolName = "Hello world!", + }), + }) +end + +return BackpackFrame diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 902ca360..ef65755a 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -25,7 +25,7 @@ local function SlotTextLabel(props: Props): React.ReactElement -- TODO: Upd Text = props.toolName or "", [React.Tag] = tags, }, { - Number = React.createElement("TextLabel", { + NumberHint = React.createElement("TextLabel", { Text = props.slotNumber or 0, }), TextureIcon = React.createElement("ImageLabel", { diff --git a/src/Stories/Backpack.story.luau b/src/Stories/Backpack.story.luau new file mode 100644 index 00000000..1221f3ec --- /dev/null +++ b/src/Stories/Backpack.story.luau @@ -0,0 +1,14 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local Backpack = require("../Components/Backpack") + +return { + react = React, + reactRoblox = ReactRoblox, + story = function() + return React.createElement(Backpack) + end, +} diff --git a/src/init.luau b/src/init.luau index 2c9239d2..2b851180 100644 --- a/src/init.luau +++ b/src/init.luau @@ -8,12 +8,12 @@ local ReactRoblox = require("./react-roblox") local player = Players.LocalPlayer :: Player local playerGui = player.PlayerGui -local Slot = require("@self/Components/Slot") +local Backpack = require("@self/Components/Backpack") local handle = Instance.new("ScreenGui") handle.Name = "SatchelGui" handle.Parent = playerGui local root = ReactRoblox.createRoot(handle) -root:render(React.createElement(Slot, { toolName = "Hello world!" })) +root:render({ Backpack = React.createElement(Backpack) }) return {} From ec72d7387b66ff956d2b8632b4a5852e12c5ed8e Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 23:34:27 -0800 Subject: [PATCH 66/95] Add stylesheets Signed-off-by: Ryan Luu --- src/Components/Backpack.luau | 5 +++-- src/Components/Slot.luau | 23 +++++++++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index 32af3da1..3f16c28b 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -4,9 +4,10 @@ local React = require("../../react") local Slot = require("../Components/Slot") -local function BackpackFrame(): React.ReactElement -- TODO: Update to use proper types when React Luau is on Wally. +-- TODO: Update to use proper types when React Luau is on Wally. +local function BackpackFrame(): React.ReactElement return React.createElement("Frame", { - [React.Tag] = "backpack", + [React.Tag] = "Backpack", }, { Slot = React.createElement(Slot, { toolName = "Hello world!", diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index ef65755a..ba378233 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -12,30 +12,37 @@ export type Props = { unlocked: boolean?, } -local function SlotTextLabel(props: Props): React.ReactElement -- TODO: Update to use proper types when React Luau is on Wally. - local tags = "slot" +-- TODO: Update to use proper types when React Luau is on Wally. +local function SlotButton(props: Props): React.ReactElement + local tags = "Slot" if props.unlocked then - tags = tags .. " unlocked" + tags = tags .. " Unlocked" end if props.equipped then - tags = tags .. " equipped" + tags = tags .. " Equipped" end - return React.createElement("TextLabel", { - Text = props.toolName or "", + local slotText = if props.toolImage == nil or "" then "" else props.toolName or "" + + return React.createElement("TextButton", { + Text = slotText, [React.Tag] = tags, }, { NumberHint = React.createElement("TextLabel", { Text = props.slotNumber or 0, + [React.Tag] = "SlotNumber", }), TextureIcon = React.createElement("ImageLabel", { Image = props.toolImage or "", }), ToolTip = React.createElement("TextLabel", { Text = props.tooltipText or "", - [React.Tag] = "tooltip", + [React.Tag] = "ToolTip", + }), + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, }), }) end -return SlotTextLabel +return SlotButton From ce02857abaeaf1d6781407f97e3001a84160cd3b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 23:45:24 -0800 Subject: [PATCH 67/95] Add stylesheets base code Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 2 +- src/StyleSheets/Rules/Tooltip.luau | 41 +++++++++++++++ src/StyleSheets/Themes/DefaultThemeStyle.luau | 7 +++ src/StyleSheets/Themes/LegacyThemeStyle.luau | 28 ++++++++++ src/StyleSheets/Tokens/BaseTokenSheet.luau | 52 +++++++++++++++++++ src/StyleSheets/Tokens/DesignTokenSheet.luau | 14 +++++ 6 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 src/StyleSheets/Rules/Tooltip.luau create mode 100644 src/StyleSheets/Themes/DefaultThemeStyle.luau create mode 100644 src/StyleSheets/Themes/LegacyThemeStyle.luau create mode 100644 src/StyleSheets/Tokens/BaseTokenSheet.luau create mode 100644 src/StyleSheets/Tokens/DesignTokenSheet.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index ba378233..39bcdddd 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -37,7 +37,7 @@ local function SlotButton(props: Props): React.ReactElement }), ToolTip = React.createElement("TextLabel", { Text = props.tooltipText or "", - [React.Tag] = "ToolTip", + [React.Tag] = "Tooltip", }), StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, diff --git a/src/StyleSheets/Rules/Tooltip.luau b/src/StyleSheets/Rules/Tooltip.luau new file mode 100644 index 00000000..40beaffa --- /dev/null +++ b/src/StyleSheets/Rules/Tooltip.luau @@ -0,0 +1,41 @@ +-- TextLabel rule +local textLabelRule = Instance.new("StyleRule") +textLabelRule.Selector = "TextLabel" +-- textLabelRule.Parent = designSheet + +-- Tooltip rule +local tooltipRule = Instance.new("StyleRule") +tooltipRule.Selector = ".Tooltip" +tooltipRule.Parent = textLabelRule + +tooltipRule:SetProperties({ + ["AnchorPoint"] = UDim.new(1, 0.5), + ["AutomaticSize"] = Enum.AutomaticSize.XY, + ["BackgroundColor3"] = "$ToolTipBackgroundColor", + ["BackgroundTransparency"] = "$ToolTipBackgroundTransparency", + ["FontFace"] = "$ToolTipFontFace", + ["Position"] = UDim2.new(0.5, 0, 0.5, -10), + ["Size"] = UDim2.new(0, 0, 0, 0), + ["TextColor3"] = "$ToolTipTextColor", + ["TextSize"] = "$ToolTipTextSize", +}) + +-- Pseudo instances +local uiCorner = Instance.new("StyleRule") +uiCorner.Selector = "::UICorner" +uiCorner.Parent = tooltipRule + +uiCorner:SetProperties({ + ["CornerRadius"] = "$ToolTipCornerRadius", +}) + +local uiPadding = Instance.new("StyleRule") +uiPadding.Selector = "::UIPadding" +uiPadding.Parent = tooltipRule + +uiPadding:SetProperties({ + ["PaddingBottom"] = "$ToolTipPadding", + ["PaddingLeft"] = "$ToolTipPadding", + ["PaddingRight"] = "$ToolTipPadding", + ["PaddingTop"] = "$ToolTipPadding", +}) diff --git a/src/StyleSheets/Themes/DefaultThemeStyle.luau b/src/StyleSheets/Themes/DefaultThemeStyle.luau new file mode 100644 index 00000000..cffab584 --- /dev/null +++ b/src/StyleSheets/Themes/DefaultThemeStyle.luau @@ -0,0 +1,7 @@ +local defaultTheme = Instance.new("StyleSheet") +defaultTheme.Name = "DefaultThemeStyle" +-- theme.Parent = ReplicatedStorage +local tokensDerive = Instance.new("StyleDerive") +-- tokensDerive.StyleSheet = baseTokens +tokensDerive.Parent = defaultTheme +defaultTheme:SetAttribute("StyleCategory", "Themes") diff --git a/src/StyleSheets/Themes/LegacyThemeStyle.luau b/src/StyleSheets/Themes/LegacyThemeStyle.luau new file mode 100644 index 00000000..b078b41f --- /dev/null +++ b/src/StyleSheets/Themes/LegacyThemeStyle.luau @@ -0,0 +1,28 @@ +local legacyTheme = Instance.new("StyleSheet") +legacyTheme.Name = "LegacyThemeStyle" +-- theme.Parent = ReplicatedStorage +local tokensDerive = Instance.new("StyleDerive") +-- tokensDerive.StyleSheet = baseTokens +tokensDerive.Parent = legacyTheme +legacyTheme:SetAttribute("StyleCategory", "Themes") + +legacyTheme:SetAttribute("ContainerBackgroundColor", Color3.fromRGB(94, 94, 94)) +legacyTheme:SetAttribute("ContainerStrokeTransparency", 1) +legacyTheme:SetAttribute("CornerRadius", UDim.new()) +legacyTheme:SetAttribute("FontFace", Font.fromEnum(Enum.Font.SourceSans)) +legacyTheme:SetAttribute("HintFontFace", Font.fromEnum(Enum.Font.SourceSansBold)) +legacyTheme:SetAttribute("HintTextSize", 24) +legacyTheme:SetAttribute("SearchPadding", UDim.new()) +legacyTheme:SetAttribute("SearchPlaceholderColor", Color3.new(1, 1, 1)) +legacyTheme:SetAttribute("SearchTextSize", 24) +legacyTheme:SetAttribute("SlotBackgroundColor", Color3.fromRGB(31, 31, 31)) +legacyTheme:SetAttribute("SlotEquipStrokeColor", Color3.fromRGB(90, 142, 233)) +legacyTheme:SetAttribute("SlotEquipStrokeThickness", 5) +legacyTheme:SetAttribute("SlotPadding", UDim.new(0, 6)) +legacyTheme:SetAttribute("SlotUnlockBackgroundColor", Color3.fromRGB(49, 49, 49)) +legacyTheme:SetAttribute("SmallCornerRadius", UDim.new()) +legacyTheme:SetAttribute("SmallTextSize", 14) +legacyTheme:SetAttribute("TextSize", 14) +legacyTheme:SetAttribute("TextStrokeTransparency", 1) +legacyTheme:SetAttribute("ToolTipBackgroundColor", Color3.fromRGB(102, 102, 102)) +legacyTheme:SetAttribute("ToolTipPadding", UDim.new(0, 2)) diff --git a/src/StyleSheets/Tokens/BaseTokenSheet.luau b/src/StyleSheets/Tokens/BaseTokenSheet.luau new file mode 100644 index 00000000..75ff43ef --- /dev/null +++ b/src/StyleSheets/Tokens/BaseTokenSheet.luau @@ -0,0 +1,52 @@ +local baseTokens = Instance.new("StyleSheet") +baseTokens.Name = "BaseTokenSheet" +-- tokens.Parent = ReplicatedStorage +local tokensDerive = Instance.new("StyleDerive") +-- tokensDerive.StyleSheet = baseTokens +tokensDerive.Parent = baseTokens +baseTokens:SetAttribute("StyleCategory", "Tokens") + +baseTokens:SetAttribute("ContainerBackgroundColor", "$BackgroundColor") +baseTokens:SetAttribute("ContainerBackgroundTransparency", 0.2) +baseTokens:SetAttribute("ContainerCornerRadius", "$SmallCornerRadius") +baseTokens:SetAttribute("ContainerStrokeColor", Color3.new(1, 1, 1)) +baseTokens:SetAttribute("ContainerStrokeTransparency", 0.8) +baseTokens:SetAttribute("HintFontFace", "$FontFace") +baseTokens:SetAttribute("HintTextColor", "$TextColor") +baseTokens:SetAttribute("HintTextSize", "$TextSize") +baseTokens:SetAttribute("SearchFontFace", "$FontFace") +baseTokens:SetAttribute("SearchPadding", UDim.new(0, 8)) +baseTokens:SetAttribute("SearchPlaceholderColor", Color3.fromRGB(178, 178, 178)) +baseTokens:SetAttribute("SearchTextColor", "$TextColor") +baseTokens:SetAttribute("SearchTextSize", "$TextSize") +baseTokens:SetAttribute("SearchTextStrokeTransparency", "$TextStrokeTransparency") +baseTokens:SetAttribute("SlotBackgroundColor", Color3.fromRGB(25, 27, 29)) +baseTokens:SetAttribute("SlotBackgroundTransparency", 0.3) +baseTokens:SetAttribute("SlotCornerRadius", "$SmallCornerRadius") +baseTokens:SetAttribute("SlotEquipStrokeColor", Color3.new(1, 1, 1)) +baseTokens:SetAttribute("SlotEquipStrokeThickness", 4) +baseTokens:SetAttribute("SlotFontFace", "$FontFace") +baseTokens:SetAttribute("SlotIconCornerRadius", UDim.new()) +baseTokens:SetAttribute("SlotNumberFontFace", "$FontFace") +baseTokens:SetAttribute("SlotNumberStrokeColor", "$TextStrokeColor") +baseTokens:SetAttribute("SlotNumberStrokeTransparency", "$TextStrokeTransparency") +baseTokens:SetAttribute("SlotNumberTextColor", "$TextColor") +baseTokens:SetAttribute("SlotNumberTextSize", "$SmallTextSize") +baseTokens:SetAttribute("SlotPadding", UDim.new(0, 5)) +baseTokens:SetAttribute("SlotPressStrokeColor", Color3.new(1, 1, 1)) +baseTokens:SetAttribute("SlotTextColor", "$TextColor") +baseTokens:SetAttribute("SlotTextSize", "$TextSize") +baseTokens:SetAttribute("SlotTextStrokeColor", "$TextStrokeColor") +baseTokens:SetAttribute("SlotTextStrokeTransparency", "$TextStrokeTransparency") +baseTokens:SetAttribute("SlotUnlockBackgroundColor", "$SlotBackgroundColor") +baseTokens:SetAttribute("SurfaceBackgroundColor", "$BackgroundColor") +baseTokens:SetAttribute("SurfaceBackgroundTransparency", 0.3) +baseTokens:SetAttribute("SurfaceCornerRadius", "$CornerRadius") +baseTokens:SetAttribute("SurfacePadding", UDim.new(0, 5)) +baseTokens:SetAttribute("ToolTipBackgroundColor", Color3.fromRGB(38, 40, 48)) +baseTokens:SetAttribute("ToolTipBackgroundTranparency", 0) +baseTokens:SetAttribute("ToolTipCornerRadius", "$SmallCornerRadius") +baseTokens:SetAttribute("ToolTipFontFace", "$FontFace") +baseTokens:SetAttribute("ToolTipPadding", UDim.new(0, 4)) +baseTokens:SetAttribute("ToolTipTextColor", "$TextColor") +baseTokens:SetAttribute("ToolTipTextSize", "$SmallTextSize") diff --git a/src/StyleSheets/Tokens/DesignTokenSheet.luau b/src/StyleSheets/Tokens/DesignTokenSheet.luau new file mode 100644 index 00000000..848f2a61 --- /dev/null +++ b/src/StyleSheets/Tokens/DesignTokenSheet.luau @@ -0,0 +1,14 @@ +local designTokens = Instance.new("StyleSheet") +designTokens.Name = "DesignTokenSheet" +-- tokens.Parent = ReplicatedStorage +designTokens:SetAttribute("StyleCategory", "Tokens") + +designTokens:SetAttribute("BackgroundColor", Color3.fromRGB(25, 27, 29)) +designTokens:SetAttribute("CornerRadius", UDim.new(0, 8)) +designTokens:SetAttribute("FontFace", Font.fromEnum(Enum.Font.BuilderSansMedium)) +designTokens:SetAttribute("SmallCornerRadius", UDim.new(0, 4)) +designTokens:SetAttribute("SmallTextSize", 15) +designTokens:SetAttribute("TextColor", Color3.new(1, 1, 1)) +designTokens:SetAttribute("TextSize", 18) +designTokens:SetAttribute("TextStrokeColor", Color3.new()) +designTokens:SetAttribute("TextStrokeTransparency", 0.5) From 8542438e8ca48159ec0f669b9a1e0e3be7de571f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 23:46:26 -0800 Subject: [PATCH 68/95] Delete assets/SatchelGuiReference.rbxmx Signed-off-by: Ryan Luu --- assets/SatchelGuiReference.rbxmx | 2687 ------------------------------ 1 file changed, 2687 deletions(-) delete mode 100644 assets/SatchelGuiReference.rbxmx diff --git a/assets/SatchelGuiReference.rbxmx b/assets/SatchelGuiReference.rbxmx deleted file mode 100644 index f8b08916..00000000 --- a/assets/SatchelGuiReference.rbxmx +++ /dev/null @@ -1,2687 +0,0 @@ - - true - null - nil - - - - true - 0 - false - false - 120 - true - SatchelGui - true - null - 0 - 2 - 0 - 0 - 0 - 0 - false - -1 - - 1 - - - - false - - 0.5 - 1 - - - true - 0 - - 1 - 1 - 1 - - 0 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Backpack - null - null - null - null - - 0.5 - 0 - 1 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 655 - 0 - 0 - - 0 - -1 - 0 - - true - 1 - - - - false - - 0 - 0 - - - true - 3 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 1 - Hotbar - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 0 - 65 - - 0 - -1 - 0 - - true - 1 - - - - - 0 - false - 0 - 1 - 0 - 0 - UIListLayout - - 0 - 5 - - 2 - -1 - - 0 - 0 - false - - - - - false - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - -1 - Hint - null - null - null - null - - 0.479999989 - 0 - 0 - 0 - - 0 - null - 0 - 3 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 60 - 0 - 37 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - false - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 100 - Hint - null - null - null - null - - 0.479999989 - 0 - 0 - 0 - - 0 - null - 0 - 3 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 60 - 0 - 37 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - - 0 - false - UIPadding - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - - 0 - 0 - - -1 - - - - - - true - - 0 - 0 - - - true - true - 0 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 500 - - - null - true - 0 - 1 - - - -1 - false - Item - null - null - null - null - - - 0 - 0 - 0 - 1 - - null - false - null - 0 - true - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 60 - 0 - 60 - - 0 - -1 - 0 - - Tool - - 1 - 1 - 1 - - 0 - true - 18 - - 0 - 0 - 0 - - 0.5 - 0 - 0 - true - 2 - 1 - true - 1 - - - - - 0 - - 0 - 8 - - false - Corner - -1 - - - - - - - - 0 - null - 0 - - false - - 1 - 0 - - 0 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - - true - 0 - - 0 - 0 - 0 - 0 - - 0 - - 0 - 0 - 0 - 0 - - UIDragDetector - null - 0 - - 0 - 300 - 0 - 300 - - 90 - -1 - - 0 - - - - - - 0 - false - UIPadding - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - -1 - - - - - - false - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 0 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/GuiImagePlaceholder.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 0 - TextureIcon - null - null - null - null - - 0 - 0 - 0 - 0 - - 0 - null - 0 - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 1 - 0 - 1 - 0 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - 0 - - 0 - 3 - - false - Corner - -1 - - - - - - - false - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 800 - - - true - 0 - 1 - - - -1 - Number - null - null - null - null - - - 0 - 0 - 0 - 0 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 1 - 0 - 1 - 0 - - 0 - -1 - - 1 - - 1 - 1 - 1 - - 0 - false - 14 - - 0 - 0 - 0 - - 0.5 - 0 - 0 - false - 0 - 0 - true - 1 - - - - 1 - - 0 - - 1 - 1 - 1 - - false - false - 0 - UIStroke - -1 - - 5 - 0 - - - - - - 0 - - 0 - 3 - - false - Corner - -1 - - - - - - - - 0 - false - 18 - 1 - UITextSizeConstraint - -1 - - - - - - false - - 0.5 - 1 - - - true - 3 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 400 - - - true - 0 - 1 - - - -1 - ToolTip - null - null - null - null - - - 0.5 - 0 - 0 - -10 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 0 - 0 - - 0 - -1 - - Tool Tip - - 1 - 1 - 1 - - 0 - false - 16 - - 0 - 0 - 0 - - 1 - 0 - 0 - false - 2 - 1 - false - 1 - - - - - 0 - - 0 - 4 - - false - UICorner - -1 - - - - - - - 0 - false - UIPadding - - 0 - 2 - - - 0 - 2 - - - 0 - 2 - - - 0 - 2 - - -1 - - - - - - - - - - 0 - false - 1 - 0 - 0 - 0 - UIListLayout - - 0 - 5 - - 2 - -1 - - 2 - 0 - false - - - - - false - - 0 - 0 - - - true - 0 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0.300000012 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Inventory - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 1 - 0 - 0 - 320 - - 0 - -1 - 0 - - true - 1 - - - - - 0 - false - UIPadding - - 0 - 0 - - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - -1 - - - - - - false - - 0 - 0 - - - true - 2 - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - rbxasset://textures/ui/Scroll/scroll-bottom.png - - 0 - 0 - - - 0 - 0 - 0 - 0 - - 0 - true - false - false - 0 - 0 - true - 0 - rbxasset://textures/ui/Scroll/scroll-middle.png - ScrollingFrame - null - null - null - null - - 0 - 0 - 0 - 35 - - null - 0 - - 0.815686285 - 0.847058833 - 0.980392158 - - 0 - 8 - 2 - true - false - 0 - 0 - 0 - 0 - true - null - 0 - - 1 - 18 - 1 - -35 - - 0 - -1 - - rbxasset://textures/ui/Scroll/scroll-top.png - 0 - 0 - true - 1 - - - - - 0 - false - 0 - 1 - 0 - 0 - UIListLayout - - 0 - 5 - - 2 - -1 - - 1 - 0 - true - - - - - - - 0 - - 0 - 8 - - false - UICorner - -1 - - - - - - false - - 1 - 0 - - - true - 0 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0.200000003 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Search - null - null - null - null - - 1 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 190 - 0 - 30 - - 0 - -1 - 0 - - true - 1 - - - - - 0 - - 0 - 4 - - false - UICorner - -1 - - - - - - - 0 - false - UIPadding - - 0 - 9 - - - 0 - 8 - - - 0 - 28 - - - 0 - 9 - - -1 - - - - - - 1 - - 0 - - 1 - 1 - 1 - - false - true - 0 - UIStroke - -1 - - 1 - 0.800000012 - - - - - true - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - true - false - false - false - - rbxassetid://16658221428 - 500 - - - true - 0 - 1 - - - -1 - false - SearchBox - null - null - null - null - - - 0.698039234 - 0.698039234 - 0.698039234 - - Search - - 0 - 0 - 0 - 0 - - false - null - 0 - true - 0 - 0 - 0 - 0 - false - null - 0 - true - - 1 - 0 - 1 - 0 - - 0 - -1 - - - - 1 - 1 - 1 - - 0 - true - false - 18 - - 0 - 0 - 0 - - 0.5 - 0 - 0 - false - 0 - 1 - true - 1 - - - - - true - - 0 - 0.5 - - - true - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - null - - rbxasset://textures/ui/InspectMenu/x.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 0 - false - Clear - null - null - null - null - - 1 - 8 - 0.5 - 0 - - null - - 0 - null - 0 - 0 - true - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 12 - 0 - 12 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - 0 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - - false - - 0 - 0 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 500 - - - true - 0 - 1 - - - -1 - Header - null - null - null - null - - - 0 - 0 - 0 - 0 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 190 - 0 - 30 - - 0 - -1 - - Satchel v2.0 - - 1 - 1 - 1 - - 0 - false - 18 - - 0 - 0 - 0 - - 0.5 - 0 - 1 - false - 0 - 1 - true - 1 - - - - - 0 - false - UIPadding - - 0 - 0 - - - 0 - 8 - - - 0 - 0 - - - 0 - 0 - - -1 - - - - - - - false - - 1 - 1 - - - true - 0 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0.200000003 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 700 - - - true - 0 - 1 - - - -1 - DropTool - null - null - null - null - - - 1 - 0 - 1 - -5 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 1 - 0 - 0 - 50 - - 0 - -1 - - Drop Tool - - 1 - 1 - 1 - - 0 - false - 18 - - 0 - 0 - 0 - - 0.5 - 0.5 - 0 - false - 2 - 1 - true - 1 - - - - - 0 - - 0 - 5 - - false - Corner - -1 - - - - - - 1 - - 0 - - 1 - 1 - 1 - - false - true - 0 - UIStroke - -1 - - 1 - 0.800000012 - - - - - - - false - - 0 - 0 - - - true - 1 - - 0.0980392173 - 0.105882354 - 0.113725491 - - 0.300000012 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - -2 - Hints - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 1 - 0 - 0 - 50 - - 0 - -1 - 0 - - true - 1 - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Hint - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - 0 - - true - 1 - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 500 - - - true - 0 - 1 - - - -1 - TextLabel - null - null - null - null - - - 0 - 42 - 0 - 0 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - - Remove from Hotbar - - 1 - 1 - 1 - - 0 - false - 18 - - 0 - 0 - 0 - - 1 - 0 - 0 - false - 2 - 1 - true - 1 - - - - - false - - 0 - 0.5 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 0 - ImageLabel - null - null - null - null - - 0 - 0 - 0.5 - 0 - - 0 - null - 0 - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 37 - 0 - 37 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - - - 0 - false - 0 - 0 - 4 - 0 - UIListLayout - - 0 - 5 - - 2 - -1 - - 1 - 0 - false - - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Hint - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - 0 - - true - 1 - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 500 - - - true - 0 - 1 - - - -1 - TextLabel - null - null - null - null - - - 0 - 42 - 0 - 0 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - - Select/Swap - - 1 - 1 - 1 - - 0 - false - 18 - - 0 - 0 - 0 - - 1 - 0 - 0 - false - 2 - 1 - true - 1 - - - - - false - - 0 - 0.5 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/Controls/DesignSystem/ButtonA.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 0 - ImageLabel - null - null - null - null - - 0 - 0 - 0.5 - 0 - - 0 - null - 0 - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 37 - 0 - 37 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - true - 0 - Hint - null - null - null - null - - 0 - 0 - 0 - 0 - - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - 0 - - true - 1 - - - - false - - 0 - 0 - - - true - 1 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - - rbxassetid://16658221428 - 500 - - - true - 0 - 1 - - - -1 - TextLabel - null - null - null - null - - - 0 - 42 - 0 - 0 - - false - null - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 0 - 1 - 0 - - 0 - -1 - - Close Backpack - - 1 - 1 - 1 - - 0 - false - 18 - - 0 - 0 - 0 - - 1 - 0 - 0 - false - 2 - 1 - true - 1 - - - - - false - - 0 - 0.5 - - - true - 0 - - 1 - 1 - 1 - - 1 - - 0 - 0 - 0 - - 0 - 0 - 0 - false - false - false - rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png - - 1 - 1 - 1 - - - 0 - 0 - - - 0 - 0 - - 0 - true - 0 - ImageLabel - null - null - null - null - - 0 - 0 - 0.5 - 0 - - 0 - null - 0 - 0 - false - 0 - 0 - 0 - 0 - false - null - 0 - - 0 - 37 - 0 - 37 - - 0 - - - 0 - 0 - - - 0 - 0 - - - 1 - -1 - - - 1 - 0 - 1 - 0 - - true - 1 - - - - - - - 0 - false - UIPadding - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - - 0 - 5 - - -1 - - - - - - - 0 - - 0 - 8 - - false - UICorner - -1 - - - - - - - \ No newline at end of file From 1605562a970ab011eea2e7e37447c2b9f5689fc9 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Mon, 1 Dec 2025 23:48:47 -0800 Subject: [PATCH 69/95] Remove selene workaround Signed-off-by: Ryan Luu --- selene.toml | 2 +- selene_definitions.yml | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 selene_definitions.yml diff --git a/selene.toml b/selene.toml index e1c4d692..c4ddb460 100644 --- a/selene.toml +++ b/selene.toml @@ -1 +1 @@ -std = "selene_definitions" +std = "roblox" diff --git a/selene_definitions.yml b/selene_definitions.yml deleted file mode 100644 index 4bd464f5..00000000 --- a/selene_definitions.yml +++ /dev/null @@ -1,7 +0,0 @@ -base: roblox -name: selene_defs -globals: - # override Roblox require style with string requires - require: - args: - - type: string \ No newline at end of file From daed1f42a2dadcd0b0469cdb2bc037c57f9e36f1 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 2 Dec 2025 14:08:49 -0800 Subject: [PATCH 70/95] Remove return types Signed-off-by: Ryan Luu --- src/Components/Backpack.luau | 3 +-- src/Components/Slot.luau | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index 3f16c28b..afc6d8be 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -4,8 +4,7 @@ local React = require("../../react") local Slot = require("../Components/Slot") --- TODO: Update to use proper types when React Luau is on Wally. -local function BackpackFrame(): React.ReactElement +local function BackpackFrame() return React.createElement("Frame", { [React.Tag] = "Backpack", }, { diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 39bcdddd..785ede51 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -12,8 +12,7 @@ export type Props = { unlocked: boolean?, } --- TODO: Update to use proper types when React Luau is on Wally. -local function SlotButton(props: Props): React.ReactElement +local function SlotButton(props: Props) local tags = "Slot" if props.unlocked then tags = tags .. " Unlocked" From 50116a35b2502bedd65f22c21714bcc5e0a8037b Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 2 Dec 2025 14:42:41 -0800 Subject: [PATCH 71/95] Return component variable Signed-off-by: Ryan Luu --- src/Components/Slot.luau | 2 +- src/Stories/Backpack.story.luau | 4 +++- src/Stories/Slot.story.luau | 28 +++++++++++++++------------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 785ede51..2d9fa0ba 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -36,7 +36,7 @@ local function SlotButton(props: Props) }), ToolTip = React.createElement("TextLabel", { Text = props.tooltipText or "", - [React.Tag] = "Tooltip", + [React.Tag] = "ToolTip", }), StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, diff --git a/src/Stories/Backpack.story.luau b/src/Stories/Backpack.story.luau index 1221f3ec..152c6fb0 100644 --- a/src/Stories/Backpack.story.luau +++ b/src/Stories/Backpack.story.luau @@ -9,6 +9,8 @@ return { react = React, reactRoblox = ReactRoblox, story = function() - return React.createElement(Backpack) + local component = React.createElement(Backpack, {}) + + return component end, } diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index b0e86b1b..a085c4a9 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -6,12 +6,12 @@ local ReactRoblox = require("../../react-roblox") local Slot = require("../Components/Slot") local controls = { - toolName = "Sword", - slotNumber = "9", - toolImage = "rbxasset://Textures/Sword128.png", - tooltipText = "A classic sword", - equipped = false, - unlocked = false, + ToolName = "Sword", + SlotNumber = 9, + ToolImage = "rbxasset://Textures/Sword128.png", + TooltipText = "A classic sword", + Equipped = false, + Unlocked = false, } return { @@ -19,13 +19,15 @@ return { reactRoblox = ReactRoblox, controls = controls, story = function(props) - return React.createElement(Slot, { - toolName = props.controls.toolName, - slotNumber = props.controls.slotNumber, - toolImage = props.controls.toolImage, - tooltipText = props.controls.tooltipText, - equipped = props.controls.equipped, - unlocked = props.controls.unlocked, + local component = React.createElement(Slot, { + toolName = props.controls.ToolName, + slotNumber = props.controls.SlotNumber, + toolImage = props.controls.ToolImage, + tooltipText = props.controls.TooltipText, + equipped = props.controls.Equipped, + unlocked = props.controls.Unlocked, }) + + return component end, } From 1f89839207f7209b35ae08c8e160ef6cc6e4cf7d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 7 Dec 2025 18:18:32 -0800 Subject: [PATCH 72/95] Add SearchBar component Signed-off-by: Ryan Luu --- src/Components/SearchBar.luau | 16 ++++++++++++++++ src/Stories/SearchBar.story.luau | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/Components/SearchBar.luau create mode 100644 src/Stories/SearchBar.story.luau diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau new file mode 100644 index 00000000..5fc33289 --- /dev/null +++ b/src/Components/SearchBar.luau @@ -0,0 +1,16 @@ +--!strict + +local React = require("../../react") + +export type Props = { + size: UDim2?, +} + +local function SearchBarTextBox(props: Props) + return React.createElement("TextBox", { + Size = props.size, + [React.Tag] = "SearchBar", + }) +end + +return SearchBarTextBox diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau new file mode 100644 index 00000000..be6f9e25 --- /dev/null +++ b/src/Stories/SearchBar.story.luau @@ -0,0 +1,18 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local SearchBar = require("../Components/SearchBar") + +return { + react = React, + reactRoblox = ReactRoblox, + story = function() + local component = React.createElement(SearchBar, { + size = UDim2.fromOffset(190, 30), + }) + + return component + end, +} From 88c7abdc60cf64605d7190a26e707c6d17c102f1 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 9 Dec 2025 21:56:41 +0000 Subject: [PATCH 73/95] Move StyleLink to story children Signed-off-by: GitHub --- src/Components/Slot.luau | 6 ++---- src/Stories/Slot.story.luau | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 2d9fa0ba..92fc42e1 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -10,6 +10,7 @@ export type Props = { equipped: boolean?, unlocked: boolean?, + children: any?, } local function SlotButton(props: Props) @@ -38,10 +39,7 @@ local function SlotButton(props: Props) Text = props.tooltipText or "", [React.Tag] = "ToolTip", }), - StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, - }), - }) + }, props.children) end return SlotButton diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index a085c4a9..18eae826 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -26,6 +26,10 @@ return { tooltipText = props.controls.TooltipText, equipped = props.controls.Equipped, unlocked = props.controls.Unlocked, + }, { + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), }) return component From 0498fe7ea822c518d98d12d44fd51c87117a2446 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 9 Dec 2025 21:59:05 +0000 Subject: [PATCH 74/95] Add stylelink to searchbar Signed-off-by: GitHub --- src/Components/SearchBar.luau | 3 ++- src/Stories/SearchBar.story.luau | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index 5fc33289..a41ab150 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -4,13 +4,14 @@ local React = require("../../react") export type Props = { size: UDim2?, + children: any?, } local function SearchBarTextBox(props: Props) return React.createElement("TextBox", { Size = props.size, [React.Tag] = "SearchBar", - }) + }, props.children) end return SearchBarTextBox diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau index be6f9e25..d1f83331 100644 --- a/src/Stories/SearchBar.story.luau +++ b/src/Stories/SearchBar.story.luau @@ -11,6 +11,10 @@ return { story = function() local component = React.createElement(SearchBar, { size = UDim2.fromOffset(190, 30), + }, { + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), }) return component From af23050918270a41426bcf9efd92dc74ca0cd47e Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 9 Dec 2025 22:10:15 +0000 Subject: [PATCH 75/95] Add HintSlot Signed-off-by: GitHub --- src/Components/HintSlot.luau | 18 ++++++++++++++++++ src/Components/SearchBar.luau | 1 + src/Components/Slot.luau | 1 + src/Stories/HintSlot.story.luau | 27 +++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 src/Components/HintSlot.luau create mode 100644 src/Stories/HintSlot.story.luau diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau new file mode 100644 index 00000000..bb68ca51 --- /dev/null +++ b/src/Components/HintSlot.luau @@ -0,0 +1,18 @@ +--!strict + +local React = require("../../react") + +export type Props = { + hintImage: string, + + children: any?, +} + +local function HintSlotImageLabel(props: Props) + return React.createElement("ImageLabel", { + Image = props.hintImage, + [React.Tag] = "HintSlot", + }, props.children) +end + +return HintSlotImageLabel diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index a41ab150..afac4948 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -4,6 +4,7 @@ local React = require("../../react") export type Props = { size: UDim2?, + children: any?, } diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 92fc42e1..f91f6f7c 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -10,6 +10,7 @@ export type Props = { equipped: boolean?, unlocked: boolean?, + children: any?, } diff --git a/src/Stories/HintSlot.story.luau b/src/Stories/HintSlot.story.luau new file mode 100644 index 00000000..98cca793 --- /dev/null +++ b/src/Stories/HintSlot.story.luau @@ -0,0 +1,27 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local HintSlot = require("../Components/HintSlot") + +local controls = { + HintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", +} + +return { + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function(props) + local component = React.createElement(HintSlot, { + hintImage = props.controls.HintImage, + }, { + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), + }) + + return component + end, +} From 8424ef9b1055fa0b3430b3ee282b8e66732fd80f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 9 Dec 2025 22:34:24 +0000 Subject: [PATCH 76/95] Add hotbar Signed-off-by: GitHub --- src/Components/HintSlot.luau | 2 ++ src/Components/Hotbar.luau | 15 ++++++++++++++ src/Components/Slot.luau | 2 ++ src/Stories/Hotbar.story.luau | 37 +++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 src/Components/Hotbar.luau create mode 100644 src/Stories/Hotbar.story.luau diff --git a/src/Components/HintSlot.luau b/src/Components/HintSlot.luau index bb68ca51..1786058c 100644 --- a/src/Components/HintSlot.luau +++ b/src/Components/HintSlot.luau @@ -4,6 +4,7 @@ local React = require("../../react") export type Props = { hintImage: string, + order: number?, children: any?, } @@ -11,6 +12,7 @@ export type Props = { local function HintSlotImageLabel(props: Props) return React.createElement("ImageLabel", { Image = props.hintImage, + LayoutOrder = props.order, [React.Tag] = "HintSlot", }, props.children) end diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau new file mode 100644 index 00000000..c569a907 --- /dev/null +++ b/src/Components/Hotbar.luau @@ -0,0 +1,15 @@ +--!strict + +local React = require("../../react") + +export type Props = { + children: any?, +} + +local function HotbarFrame(props: Props) + return React.createElement("Frame", { + [React.Tag] = "Hotbar", + }, props.children) +end + +return HotbarFrame diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index f91f6f7c..a3c0fbed 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -10,6 +10,7 @@ export type Props = { equipped: boolean?, unlocked: boolean?, + order: number?, children: any?, } @@ -27,6 +28,7 @@ local function SlotButton(props: Props) return React.createElement("TextButton", { Text = slotText, + LayoutOrder = props.order, [React.Tag] = tags, }, { NumberHint = React.createElement("TextLabel", { diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau new file mode 100644 index 00000000..2a045db0 --- /dev/null +++ b/src/Stories/Hotbar.story.luau @@ -0,0 +1,37 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local Hotbar = require("../Components/Hotbar") +local HintSlot = require("../Components/HintSlot") +local Slot = require("../Components/Slot") + +return { + react = React, + reactRoblox = ReactRoblox, + story = function() + local component = React.createElement(Hotbar, {}, { + HintSlotL1 = React.createElement(HintSlot, { + hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png", + order = -1, + }), + Tool = React.createElement(Slot, { + toolName = "Classic Sword", + tooltipText = "A classic sword", + slotNumber = 1, + toolImage = "rbxasset://Textures/Sword128.png", + order = 1, + }), + HintSlotR1 = React.createElement(HintSlot, { + hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", + order = 100, + }), + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), + }) + + return component + end, +} From 8a3afdecf6246882103f66fd75664cbc0aa8ed73 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Tue, 9 Dec 2025 23:02:13 +0000 Subject: [PATCH 77/95] Add activated event Signed-off-by: GitHub --- src/Components/Slot.luau | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index a3c0fbed..fece4a81 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -11,6 +11,7 @@ export type Props = { equipped: boolean?, unlocked: boolean?, order: number?, + onActivated: (() -> ())?, children: any?, } @@ -30,6 +31,7 @@ local function SlotButton(props: Props) Text = slotText, LayoutOrder = props.order, [React.Tag] = tags, + [React.Event.Activated] = props.onActivated, }, { NumberHint = React.createElement("TextLabel", { Text = props.slotNumber or 0, From 1d8ad18a5e72ce095c0cf51e69dcfd3cb9d05207 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 04:38:18 +0000 Subject: [PATCH 78/95] Hide slot text if no image Signed-off-by: GitHub --- src/Components/Slot.luau | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index fece4a81..a984f13d 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -17,6 +17,7 @@ export type Props = { } local function SlotButton(props: Props) + -- Generate tags based on state local tags = "Slot" if props.unlocked then tags = tags .. " Unlocked" @@ -25,7 +26,11 @@ local function SlotButton(props: Props) tags = tags .. " Equipped" end - local slotText = if props.toolImage == nil or "" then "" else props.toolName or "" + -- Hide the name if there is an image + local slotText = props.toolName + if props.toolImage and props.toolImage ~= "" then + slotText = "" + end return React.createElement("TextButton", { Text = slotText, From 53dc27afc7952df0230e1f4060ba44d644c7a41f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 04:45:28 +0000 Subject: [PATCH 79/95] Add tooltip component Signed-off-by: GitHub --- src/Components/Slot.luau | 9 +++++---- src/Components/ToolTip.luau | 22 ++++++++++++++++++++++ src/Stories/ToolTip.story.luau | 27 +++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 src/Components/ToolTip.luau create mode 100644 src/Stories/ToolTip.story.luau diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index a984f13d..6680e9cf 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -2,6 +2,8 @@ local React = require("../../react") +local ToolTip = require("./ToolTip") + export type Props = { toolName: string?, slotNumber: number?, @@ -26,7 +28,7 @@ local function SlotButton(props: Props) tags = tags .. " Equipped" end - -- Hide the name if there is an image + -- Hide name if there is an image local slotText = props.toolName if props.toolImage and props.toolImage ~= "" then slotText = "" @@ -45,9 +47,8 @@ local function SlotButton(props: Props) TextureIcon = React.createElement("ImageLabel", { Image = props.toolImage or "", }), - ToolTip = React.createElement("TextLabel", { - Text = props.tooltipText or "", - [React.Tag] = "ToolTip", + ToolTip = React.createElement(ToolTip, { + text = props.tooltipText, }), }, props.children) end diff --git a/src/Components/ToolTip.luau b/src/Components/ToolTip.luau new file mode 100644 index 00000000..9f77972d --- /dev/null +++ b/src/Components/ToolTip.luau @@ -0,0 +1,22 @@ +--!strict + +local React = require("../../react") + +export type Props = { + text: string?, + children: any?, +} + +local function ToolTip(props: Props) + -- Hide tooltip if there is no text + if not props.text or props.text == "" then + return nil + end + + return React.createElement("TextLabel", { + Text = props.text, + [React.Tag] = "ToolTip", + }, props.children) +end + +return ToolTip diff --git a/src/Stories/ToolTip.story.luau b/src/Stories/ToolTip.story.luau new file mode 100644 index 00000000..2103aa46 --- /dev/null +++ b/src/Stories/ToolTip.story.luau @@ -0,0 +1,27 @@ +--!strict + +local React = require("../../react") +local ReactRoblox = require("../../react-roblox") + +local ToolTip = require("../Components/ToolTip") + +local controls = { + Text = "TEH EPIK DUCK IS COMING!!!", +} + +return { + react = React, + reactRoblox = ReactRoblox, + controls = controls, + story = function(props) + local component = React.createElement(ToolTip, { + text = props.controls.Text, + }, { + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), + }) + + return component + end, +} From c66573b312af60a8d5920f963301700db1698144 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 20:37:24 +0000 Subject: [PATCH 80/95] Rename components Signed-off-by: GitHub --- src/Components/Backpack.luau | 4 ++-- src/Components/Hotbar.luau | 4 ++-- src/Components/{HintSlot.luau => HotbarHint.luau} | 4 ++-- src/Components/SearchBar.luau | 4 ++-- src/Components/Slot.luau | 4 ++-- src/Stories/Hotbar.story.luau | 6 +++--- src/Stories/{HintSlot.story.luau => HotbarHint.story.luau} | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) rename src/Components/{HintSlot.luau => HotbarHint.luau} (79%) rename src/Stories/{HintSlot.story.luau => HotbarHint.story.luau} (82%) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index afc6d8be..db053a16 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -4,7 +4,7 @@ local React = require("../../react") local Slot = require("../Components/Slot") -local function BackpackFrame() +local function Backpack() return React.createElement("Frame", { [React.Tag] = "Backpack", }, { @@ -14,4 +14,4 @@ local function BackpackFrame() }) end -return BackpackFrame +return Backpack diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index c569a907..90ef3ce2 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -6,10 +6,10 @@ export type Props = { children: any?, } -local function HotbarFrame(props: Props) +local function Hotbar(props: Props) return React.createElement("Frame", { [React.Tag] = "Hotbar", }, props.children) end -return HotbarFrame +return Hotbar diff --git a/src/Components/HintSlot.luau b/src/Components/HotbarHint.luau similarity index 79% rename from src/Components/HintSlot.luau rename to src/Components/HotbarHint.luau index 1786058c..2abcdf67 100644 --- a/src/Components/HintSlot.luau +++ b/src/Components/HotbarHint.luau @@ -9,7 +9,7 @@ export type Props = { children: any?, } -local function HintSlotImageLabel(props: Props) +local function HotbarHint(props: Props) return React.createElement("ImageLabel", { Image = props.hintImage, LayoutOrder = props.order, @@ -17,4 +17,4 @@ local function HintSlotImageLabel(props: Props) }, props.children) end -return HintSlotImageLabel +return HotbarHint diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index afac4948..f5abc503 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -8,11 +8,11 @@ export type Props = { children: any?, } -local function SearchBarTextBox(props: Props) +local function SearchBar(props: Props) return React.createElement("TextBox", { Size = props.size, [React.Tag] = "SearchBar", }, props.children) end -return SearchBarTextBox +return SearchBar diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 6680e9cf..16bc567a 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -18,7 +18,7 @@ export type Props = { children: any?, } -local function SlotButton(props: Props) +local function Slot(props: Props) -- Generate tags based on state local tags = "Slot" if props.unlocked then @@ -53,4 +53,4 @@ local function SlotButton(props: Props) }, props.children) end -return SlotButton +return Slot diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 2a045db0..3a0dfdb6 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -4,7 +4,7 @@ local React = require("../../react") local ReactRoblox = require("../../react-roblox") local Hotbar = require("../Components/Hotbar") -local HintSlot = require("../Components/HintSlot") +local HotbarHint = require("../Components/HotbarHint") local Slot = require("../Components/Slot") return { @@ -12,7 +12,7 @@ return { reactRoblox = ReactRoblox, story = function() local component = React.createElement(Hotbar, {}, { - HintSlotL1 = React.createElement(HintSlot, { + HintSlotL1 = React.createElement(HotbarHint, { hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png", order = -1, }), @@ -23,7 +23,7 @@ return { toolImage = "rbxasset://Textures/Sword128.png", order = 1, }), - HintSlotR1 = React.createElement(HintSlot, { + HintSlotR1 = React.createElement(HotbarHint, { hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", order = 100, }), diff --git a/src/Stories/HintSlot.story.luau b/src/Stories/HotbarHint.story.luau similarity index 82% rename from src/Stories/HintSlot.story.luau rename to src/Stories/HotbarHint.story.luau index 98cca793..84f65c3d 100644 --- a/src/Stories/HintSlot.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -3,7 +3,7 @@ local React = require("../../react") local ReactRoblox = require("../../react-roblox") -local HintSlot = require("../Components/HintSlot") +local HotbarHint = require("../Components/HotbarHint") local controls = { HintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", @@ -14,7 +14,7 @@ return { reactRoblox = ReactRoblox, controls = controls, story = function(props) - local component = React.createElement(HintSlot, { + local component = React.createElement(HotbarHint, { hintImage = props.controls.HintImage, }, { StyleLink = React.createElement("StyleLink", { From 424ecf8d1109e273827bb7204aeab59afc76705d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 20:50:24 +0000 Subject: [PATCH 81/95] Move hints into hotbar component Signed-off-by: GitHub --- src/Components/Hotbar.luau | 11 +++++++++++ src/Stories/Hotbar.story.luau | 9 --------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 90ef3ce2..35d3ebc1 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -2,6 +2,8 @@ local React = require("../../react") +local HotbarHint = require("./HotbarHint") + export type Props = { children: any?, } @@ -9,6 +11,15 @@ export type Props = { local function Hotbar(props: Props) return React.createElement("Frame", { [React.Tag] = "Hotbar", + }, { + SlotLeftHint = React.createElement(HotbarHint, { + hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png", + order = -1, + }), + SlotRightHint = React.createElement(HotbarHint, { + hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", + order = 100, + }), }, props.children) end diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 3a0dfdb6..f98ad3f7 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -4,7 +4,6 @@ local React = require("../../react") local ReactRoblox = require("../../react-roblox") local Hotbar = require("../Components/Hotbar") -local HotbarHint = require("../Components/HotbarHint") local Slot = require("../Components/Slot") return { @@ -12,10 +11,6 @@ return { reactRoblox = ReactRoblox, story = function() local component = React.createElement(Hotbar, {}, { - HintSlotL1 = React.createElement(HotbarHint, { - hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png", - order = -1, - }), Tool = React.createElement(Slot, { toolName = "Classic Sword", tooltipText = "A classic sword", @@ -23,10 +18,6 @@ return { toolImage = "rbxasset://Textures/Sword128.png", order = 1, }), - HintSlotR1 = React.createElement(HotbarHint, { - hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", - order = 100, - }), StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, }), From fdfa528300da10a7335237da9469a3437a6c7e59 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 21:14:22 +0000 Subject: [PATCH 82/95] Only show hotbar hints on gamepad Signed-off-by: GitHub --- src/Components/HotbarHint.luau | 29 +++++++++++++++++++++++++++++ src/Stories/HotbarHint.story.luau | 2 ++ 2 files changed, 31 insertions(+) diff --git a/src/Components/HotbarHint.luau b/src/Components/HotbarHint.luau index 2abcdf67..34d675c1 100644 --- a/src/Components/HotbarHint.luau +++ b/src/Components/HotbarHint.luau @@ -1,18 +1,47 @@ --!strict +local UserInputService = game:GetService("UserInputService") + local React = require("../../react") export type Props = { hintImage: string, order: number?, + forceVisible: boolean?, children: any?, } local function HotbarHint(props: Props) + local isGamepadPreferred, setIsGamepadPreferred = + React.useState(UserInputService.PreferredInput == Enum.PreferredInput.Gamepad) + + React.useEffect(function() + local function preferredInputChanged() + local preferredInput = UserInputService.PreferredInput + + if preferredInput == Enum.PreferredInput.Gamepad then + setIsGamepadPreferred(true) + else + setIsGamepadPreferred(false) + end + end + + preferredInputChanged() + local signal: RBXScriptConnection = UserInputService:GetPropertyChangedSignal("PreferredInput") + :Connect(preferredInputChanged) + + return function() + signal:Disconnect() + end + end, {}) + + local visible = props.forceVisible == true or isGamepadPreferred + return React.createElement("ImageLabel", { Image = props.hintImage, LayoutOrder = props.order, + Visible = visible, [React.Tag] = "HintSlot", }, props.children) end diff --git a/src/Stories/HotbarHint.story.luau b/src/Stories/HotbarHint.story.luau index 84f65c3d..77832dcc 100644 --- a/src/Stories/HotbarHint.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -7,6 +7,7 @@ local HotbarHint = require("../Components/HotbarHint") local controls = { HintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", + Visible = true, } return { @@ -16,6 +17,7 @@ return { story = function(props) local component = React.createElement(HotbarHint, { hintImage = props.controls.HintImage, + forceVisible = props.controls.Visible, }, { StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, From bee4b8100299ffaed21909eeb1bca40a5eb2c41a Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 21:15:06 +0000 Subject: [PATCH 83/95] Use hotbar Signed-off-by: GitHub --- src/Components/Backpack.luau | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index db053a16..7d6771eb 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -2,15 +2,17 @@ local React = require("../../react") -local Slot = require("../Components/Slot") +local Hotbar = require("./Hotbar") -local function Backpack() +export type Props = { + children: any?, +} + +local function Backpack(props: Props) return React.createElement("Frame", { [React.Tag] = "Backpack", }, { - Slot = React.createElement(Slot, { - toolName = "Hello world!", - }), + Hotbar = React.createElement(Hotbar, props.children), }) end From 038fe9d0668e67ad9b6253b4924ae22cec4637ce Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 21:23:21 +0000 Subject: [PATCH 84/95] Add forceHintVisible prop to Hotbar and update story Signed-off-by: GitHub --- src/Components/Hotbar.luau | 9 +++++++-- src/Stories/Hotbar.story.luau | 11 +++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 35d3ebc1..30a750df 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -1,10 +1,13 @@ --!strict +local UserInputService = game:GetService("UserInputService") + local React = require("../../react") local HotbarHint = require("./HotbarHint") export type Props = { + forceHintVisible: boolean?, children: any?, } @@ -13,11 +16,13 @@ local function Hotbar(props: Props) [React.Tag] = "Hotbar", }, { SlotLeftHint = React.createElement(HotbarHint, { - hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonL1.png", + hintImage = UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonL1), + forceVisible = props.forceHintVisible, order = -1, }), SlotRightHint = React.createElement(HotbarHint, { - hintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonR1.png", + hintImage = UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonR1), + forceVisible = props.forceHintVisible, order = 100, }), }, props.children) diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index f98ad3f7..2e5004eb 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -6,11 +6,18 @@ local ReactRoblox = require("../../react-roblox") local Hotbar = require("../Components/Hotbar") local Slot = require("../Components/Slot") +local controls = { + Visible = true, +} + return { react = React, reactRoblox = ReactRoblox, - story = function() - local component = React.createElement(Hotbar, {}, { + controls = controls, + story = function(props) + local component = React.createElement(Hotbar, { + forceHintVisible = props.controls.Visible, + }, { Tool = React.createElement(Slot, { toolName = "Classic Sword", tooltipText = "A classic sword", From 16a96083029af4b11ec6cb9e759e0101c9b9a660 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Wed, 10 Dec 2025 21:28:07 +0000 Subject: [PATCH 85/95] Use keycode for hints instead of image Signed-off-by: GitHub --- src/Components/Hotbar.luau | 4 ++-- src/Components/HotbarHint.luau | 4 ++-- src/Stories/HotbarHint.story.luau | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 30a750df..dd1fc5dd 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -16,12 +16,12 @@ local function Hotbar(props: Props) [React.Tag] = "Hotbar", }, { SlotLeftHint = React.createElement(HotbarHint, { - hintImage = UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonL1), + hintKey = Enum.KeyCode.ButtonL1, forceVisible = props.forceHintVisible, order = -1, }), SlotRightHint = React.createElement(HotbarHint, { - hintImage = UserInputService:GetImageForKeyCode(Enum.KeyCode.ButtonR1), + hintKey = Enum.KeyCode.ButtonR1, forceVisible = props.forceHintVisible, order = 100, }), diff --git a/src/Components/HotbarHint.luau b/src/Components/HotbarHint.luau index 34d675c1..d91e44b4 100644 --- a/src/Components/HotbarHint.luau +++ b/src/Components/HotbarHint.luau @@ -5,7 +5,7 @@ local UserInputService = game:GetService("UserInputService") local React = require("../../react") export type Props = { - hintImage: string, + hintKey: Enum.KeyCode, order: number?, forceVisible: boolean?, @@ -39,7 +39,7 @@ local function HotbarHint(props: Props) local visible = props.forceVisible == true or isGamepadPreferred return React.createElement("ImageLabel", { - Image = props.hintImage, + Image = UserInputService:GetImageForKeyCode(props.hintKey), LayoutOrder = props.order, Visible = visible, [React.Tag] = "HintSlot", diff --git a/src/Stories/HotbarHint.story.luau b/src/Stories/HotbarHint.story.luau index 77832dcc..879164d7 100644 --- a/src/Stories/HotbarHint.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -6,7 +6,6 @@ local ReactRoblox = require("../../react-roblox") local HotbarHint = require("../Components/HotbarHint") local controls = { - HintImage = "rbxasset://textures/ui/Controls/DesignSystem/ButtonX.png", Visible = true, } @@ -16,7 +15,7 @@ return { controls = controls, story = function(props) local component = React.createElement(HotbarHint, { - hintImage = props.controls.HintImage, + hintKey = Enum.KeyCode.ButtonX, forceVisible = props.controls.Visible, }, { StyleLink = React.createElement("StyleLink", { From 3e23d9f84d404d3f31dc3c3863de30e57e533cb9 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 11 Dec 2025 21:06:17 +0000 Subject: [PATCH 86/95] Refactor Hotbar and Slot components to use forceVisible prop Signed-off-by: GitHub --- src/Components/Hotbar.luau | 2 -- src/Components/HotbarHint.luau | 1 + src/Components/Slot.luau | 30 ++++++++++++++++++++++++++++++ src/Stories/Hotbar.story.luau | 4 ++-- src/Stories/HotbarHint.story.luau | 4 ++-- src/Stories/Slot.story.luau | 2 ++ 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index dd1fc5dd..599fed35 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -1,7 +1,5 @@ --!strict -local UserInputService = game:GetService("UserInputService") - local React = require("../../react") local HotbarHint = require("./HotbarHint") diff --git a/src/Components/HotbarHint.luau b/src/Components/HotbarHint.luau index d91e44b4..f6ace382 100644 --- a/src/Components/HotbarHint.luau +++ b/src/Components/HotbarHint.luau @@ -13,6 +13,7 @@ export type Props = { } local function HotbarHint(props: Props) + -- Only show hint if gamepad is preferred or forced visible local isGamepadPreferred, setIsGamepadPreferred = React.useState(UserInputService.PreferredInput == Enum.PreferredInput.Gamepad) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 16bc567a..d6ca7f50 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,5 +1,7 @@ --!strict +local UserInputService = game:GetService("UserInputService") + local React = require("../../react") local ToolTip = require("./ToolTip") @@ -10,6 +12,7 @@ export type Props = { toolImage: string?, tooltipText: string?, + forceVisible: boolean?, equipped: boolean?, unlocked: boolean?, order: number?, @@ -19,6 +22,32 @@ export type Props = { } local function Slot(props: Props) + -- Only show hint if keyboard and mouse is preferred or forced visible + local isKeyboardAndMousePreferred, setIsKeyboardAndMousePreferred = + React.useState(UserInputService.PreferredInput == Enum.PreferredInput.KeyboardAndMouse) + + React.useEffect(function() + local function preferredInputChanged() + local preferredInput = UserInputService.PreferredInput + + if preferredInput == Enum.PreferredInput.KeyboardAndMouse then + setIsKeyboardAndMousePreferred(true) + else + setIsKeyboardAndMousePreferred(false) + end + end + + preferredInputChanged() + local signal: RBXScriptConnection = UserInputService:GetPropertyChangedSignal("PreferredInput") + :Connect(preferredInputChanged) + + return function() + signal:Disconnect() + end + end, {}) + + local visible = props.forceVisible == true or isKeyboardAndMousePreferred + -- Generate tags based on state local tags = "Slot" if props.unlocked then @@ -37,6 +66,7 @@ local function Slot(props: Props) return React.createElement("TextButton", { Text = slotText, LayoutOrder = props.order, + Visible = visible, [React.Tag] = tags, [React.Event.Activated] = props.onActivated, }, { diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 2e5004eb..eaa39bc0 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -7,7 +7,7 @@ local Hotbar = require("../Components/Hotbar") local Slot = require("../Components/Slot") local controls = { - Visible = true, + ForceHintVisible = true, } return { @@ -16,7 +16,7 @@ return { controls = controls, story = function(props) local component = React.createElement(Hotbar, { - forceHintVisible = props.controls.Visible, + forceHintVisible = props.controls.ForceHintVisible, }, { Tool = React.createElement(Slot, { toolName = "Classic Sword", diff --git a/src/Stories/HotbarHint.story.luau b/src/Stories/HotbarHint.story.luau index 879164d7..a63ea4cc 100644 --- a/src/Stories/HotbarHint.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -6,7 +6,7 @@ local ReactRoblox = require("../../react-roblox") local HotbarHint = require("../Components/HotbarHint") local controls = { - Visible = true, + ForceHintVisible = true, } return { @@ -16,7 +16,7 @@ return { story = function(props) local component = React.createElement(HotbarHint, { hintKey = Enum.KeyCode.ButtonX, - forceVisible = props.controls.Visible, + forceVisible = props.controls.ForceHintVisible, }, { StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 18eae826..00473bc3 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -12,6 +12,7 @@ local controls = { TooltipText = "A classic sword", Equipped = false, Unlocked = false, + ForceNumberVisible = true, } return { @@ -26,6 +27,7 @@ return { tooltipText = props.controls.TooltipText, equipped = props.controls.Equipped, unlocked = props.controls.Unlocked, + forceVisible = props.controls.ForceNumberVisible, }, { StyleLink = React.createElement("StyleLink", { StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, From 79f6be5eab7c2fff3701a7a88366667a62ee8e32 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 11 Dec 2025 21:11:01 +0000 Subject: [PATCH 87/95] Sort props Signed-off-by: GitHub --- src/Components/HotbarHint.luau | 3 +-- src/Components/SearchBar.luau | 1 - src/Components/Slot.luau | 6 ++---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Components/HotbarHint.luau b/src/Components/HotbarHint.luau index f6ace382..fb4e7b8f 100644 --- a/src/Components/HotbarHint.luau +++ b/src/Components/HotbarHint.luau @@ -6,9 +6,8 @@ local React = require("../../react") export type Props = { hintKey: Enum.KeyCode, - order: number?, forceVisible: boolean?, - + order: number?, children: any?, } diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index f5abc503..628c146b 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -4,7 +4,6 @@ local React = require("../../react") export type Props = { size: UDim2?, - children: any?, } diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index d6ca7f50..6883f391 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -7,17 +7,15 @@ local React = require("../../react") local ToolTip = require("./ToolTip") export type Props = { - toolName: string?, slotNumber: number?, toolImage: string?, + toolName: string?, tooltipText: string?, - - forceVisible: boolean?, equipped: boolean?, + forceVisible: boolean?, unlocked: boolean?, order: number?, onActivated: (() -> ())?, - children: any?, } From facf746a0a8e5971e1db1539eed0164ad952d670 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 11 Dec 2025 21:18:10 +0000 Subject: [PATCH 88/95] Pass tools in props Signed-off-by: GitHub --- src/Components/Slot.luau | 16 +++++++++------- src/Stories/Hotbar.story.luau | 9 ++++++--- src/Stories/Slot.story.luau | 9 ++++++--- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index 6883f391..b25ddfa7 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -7,10 +7,8 @@ local React = require("../../react") local ToolTip = require("./ToolTip") export type Props = { + tool: Tool?, slotNumber: number?, - toolImage: string?, - toolName: string?, - tooltipText: string?, equipped: boolean?, forceVisible: boolean?, unlocked: boolean?, @@ -20,6 +18,10 @@ export type Props = { } local function Slot(props: Props) + local toolName = props.tool and props.tool.Name + local toolImage = props.tool and props.tool.TextureId + local tooltipText = props.tool and props.tool.ToolTip + -- Only show hint if keyboard and mouse is preferred or forced visible local isKeyboardAndMousePreferred, setIsKeyboardAndMousePreferred = React.useState(UserInputService.PreferredInput == Enum.PreferredInput.KeyboardAndMouse) @@ -56,8 +58,8 @@ local function Slot(props: Props) end -- Hide name if there is an image - local slotText = props.toolName - if props.toolImage and props.toolImage ~= "" then + local slotText = toolName + if toolImage ~= "" then slotText = "" end @@ -73,10 +75,10 @@ local function Slot(props: Props) [React.Tag] = "SlotNumber", }), TextureIcon = React.createElement("ImageLabel", { - Image = props.toolImage or "", + Image = toolImage or "", }), ToolTip = React.createElement(ToolTip, { - text = props.tooltipText, + text = tooltipText, }), }, props.children) end diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index eaa39bc0..34922322 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -15,14 +15,17 @@ return { reactRoblox = ReactRoblox, controls = controls, story = function(props) + local Tool = Instance.new("Tool") + Tool.Name = props.controls.ToolName + Tool.TextureId = props.controls.ToolImage + Tool.ToolTip = props.controls.TooltipText + local component = React.createElement(Hotbar, { forceHintVisible = props.controls.ForceHintVisible, }, { Tool = React.createElement(Slot, { - toolName = "Classic Sword", - tooltipText = "A classic sword", + tool = Tool, slotNumber = 1, - toolImage = "rbxasset://Textures/Sword128.png", order = 1, }), StyleLink = React.createElement("StyleLink", { diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 00473bc3..244b2a81 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -20,11 +20,14 @@ return { reactRoblox = ReactRoblox, controls = controls, story = function(props) + local Tool = Instance.new("Tool") + Tool.Name = props.controls.ToolName + Tool.TextureId = props.controls.ToolImage + Tool.ToolTip = props.controls.TooltipText + local component = React.createElement(Slot, { - toolName = props.controls.ToolName, + tool = Tool, slotNumber = props.controls.SlotNumber, - toolImage = props.controls.ToolImage, - tooltipText = props.controls.TooltipText, equipped = props.controls.Equipped, unlocked = props.controls.Unlocked, forceVisible = props.controls.ForceNumberVisible, From b1d8ea89b767d02712f4eeaadb1e536a8e0cca3d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 11 Dec 2025 22:18:54 +0000 Subject: [PATCH 89/95] Generate Wally types Signed-off-by: GitHub --- .devcontainer/devcontainer.json | 16 ++++------------ .github/workflows/release.yml | 7 +++++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2a22fbc9..461824ab 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,32 +2,24 @@ // README at: https://github.com/ryanlua/templates/tree/main/src/roblox { "name": "Roblox", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfil + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { - "ghcr.io/ryanlua/features/rojo:0.2.1": { - "version": "latest", - "toolchainManager": "rokit" - }, + "ghcr.io/ryanlua/features/rojo:0.2.1": {}, "ghcr.io/devcontainers/features/python:1": {} }, // Configure tool-specific properties. "customizations": { // Configure properties specific to VS Code. - "codespaces": { - "openFiles": [ - "src/init.luau" - ] - }, "vscode": { // Add the IDs of extensions you want installed when the container is created. "extensions": [ "kampfkarren.selene-vscode", "johnnymorganz.stylua", "johnnymorganz.luau-lsp", - "DavidAnson.vscode-markdownlint" + "redhat.vscode-yaml" ] } }, @@ -48,7 +40,7 @@ }, // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "pip install mkdocs-material mike --break-system-packages && rokit install --no-trust-check && wally install", + "postCreateCommand": "pip install mkdocs-material --break-system-packages && rokit install --no-trust-check && wally install && rojo sourcemap develop.project.json --output sourcemap.json && wally-package-types --sourcemap sourcemap.json Packages/", // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. "remoteUser": "root" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f5df6b6e..97a62c51 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,13 +20,16 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Rokit uses: CompeyDev/setup-rokit@v0.1.2 - name: Setup Wally - run: wally install + run: | + wally install + rojo sourcemap develop.project.json --output sourcemap.json + wally-package-types --sourcemap sourcemap.json Packages/ - name: Build using Rojo run: | From cf85e6470a324cf39dd3379c8fc902c85d61a3db Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 14 Dec 2025 10:13:08 +0000 Subject: [PATCH 90/95] Add stylelink Signed-off-by: GitHub --- src/Components/Backpack.luau | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index 7d6771eb..b4878788 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -13,6 +13,9 @@ local function Backpack(props: Props) [React.Tag] = "Backpack", }, { Hotbar = React.createElement(Hotbar, props.children), + StyleLink = React.createElement("StyleLink", { + StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + }), }) end From 92f2b71437382a28052da98232e690e31efc782d Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sat, 20 Dec 2025 06:49:21 +0000 Subject: [PATCH 91/95] Remove strict type checking Signed-off-by: GitHub --- src/Components/Backpack.luau | 2 -- src/Components/Hotbar.luau | 2 -- src/Components/HotbarHint.luau | 2 -- src/Components/SearchBar.luau | 2 -- src/Components/Slot.luau | 2 -- src/Components/ToolTip.luau | 2 -- src/InputActions.client.luau | 2 -- src/Stories/Backpack.story.luau | 2 -- src/Stories/Hotbar.story.luau | 2 -- src/Stories/HotbarHint.story.luau | 2 -- src/Stories/SearchBar.story.luau | 2 -- src/Stories/Slot.story.luau | 2 -- src/Stories/Storybook.storybook.luau | 2 -- src/Stories/ToolTip.story.luau | 2 -- src/init.luau | 2 -- 15 files changed, 30 deletions(-) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index b4878788..ea94f405 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local Hotbar = require("./Hotbar") diff --git a/src/Components/Hotbar.luau b/src/Components/Hotbar.luau index 599fed35..32faa78f 100644 --- a/src/Components/Hotbar.luau +++ b/src/Components/Hotbar.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local HotbarHint = require("./HotbarHint") diff --git a/src/Components/HotbarHint.luau b/src/Components/HotbarHint.luau index fb4e7b8f..2a303b4e 100644 --- a/src/Components/HotbarHint.luau +++ b/src/Components/HotbarHint.luau @@ -1,5 +1,3 @@ ---!strict - local UserInputService = game:GetService("UserInputService") local React = require("../../react") diff --git a/src/Components/SearchBar.luau b/src/Components/SearchBar.luau index 628c146b..97e8cc33 100644 --- a/src/Components/SearchBar.luau +++ b/src/Components/SearchBar.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") export type Props = { diff --git a/src/Components/Slot.luau b/src/Components/Slot.luau index b25ddfa7..66433acb 100644 --- a/src/Components/Slot.luau +++ b/src/Components/Slot.luau @@ -1,5 +1,3 @@ ---!strict - local UserInputService = game:GetService("UserInputService") local React = require("../../react") diff --git a/src/Components/ToolTip.luau b/src/Components/ToolTip.luau index 9f77972d..5eafad34 100644 --- a/src/Components/ToolTip.luau +++ b/src/Components/ToolTip.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") export type Props = { diff --git a/src/InputActions.client.luau b/src/InputActions.client.luau index 7486f751..47e665e5 100644 --- a/src/InputActions.client.luau +++ b/src/InputActions.client.luau @@ -1,5 +1,3 @@ ---!strict - --[[ Script to handle inputs for the hotbar and backpack using Input Action System. ]] diff --git a/src/Stories/Backpack.story.luau b/src/Stories/Backpack.story.luau index 152c6fb0..65c27824 100644 --- a/src/Stories/Backpack.story.luau +++ b/src/Stories/Backpack.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 34922322..579dc92d 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/HotbarHint.story.luau b/src/Stories/HotbarHint.story.luau index a63ea4cc..26b6ac76 100644 --- a/src/Stories/HotbarHint.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau index d1f83331..d1118c79 100644 --- a/src/Stories/SearchBar.story.luau +++ b/src/Stories/SearchBar.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 244b2a81..7b057ed3 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/Storybook.storybook.luau b/src/Stories/Storybook.storybook.luau index bd5390f9..ab07b40b 100644 --- a/src/Stories/Storybook.storybook.luau +++ b/src/Stories/Storybook.storybook.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/Stories/ToolTip.story.luau b/src/Stories/ToolTip.story.luau index 2103aa46..512f965b 100644 --- a/src/Stories/ToolTip.story.luau +++ b/src/Stories/ToolTip.story.luau @@ -1,5 +1,3 @@ ---!strict - local React = require("../../react") local ReactRoblox = require("../../react-roblox") diff --git a/src/init.luau b/src/init.luau index 2b851180..f11f8646 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,5 +1,3 @@ ---!strict - local Players = game:GetService("Players") local React = require("./react") From 76eac0b9148b54282ab699d30c92d20939f2b607 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 21 Dec 2025 23:36:28 +0000 Subject: [PATCH 92/95] Add style link for root Signed-off-by: GitHub --- src/StyleSheets.rbxmx | 1214 +++++++++++++++++ src/StyleSheets/Rules/Tooltip.luau | 41 - src/StyleSheets/Themes/DefaultThemeStyle.luau | 7 - src/StyleSheets/Themes/LegacyThemeStyle.luau | 28 - src/StyleSheets/Tokens/BaseTokenSheet.luau | 52 - src/StyleSheets/Tokens/DesignTokenSheet.luau | 14 - src/init.luau | 5 + 7 files changed, 1219 insertions(+), 142 deletions(-) create mode 100644 src/StyleSheets.rbxmx delete mode 100644 src/StyleSheets/Rules/Tooltip.luau delete mode 100644 src/StyleSheets/Themes/DefaultThemeStyle.luau delete mode 100644 src/StyleSheets/Themes/LegacyThemeStyle.luau delete mode 100644 src/StyleSheets/Tokens/BaseTokenSheet.luau delete mode 100644 src/StyleSheets/Tokens/DesignTokenSheet.luau diff --git a/src/StyleSheets.rbxmx b/src/StyleSheets.rbxmx new file mode 100644 index 00000000..6826b54e --- /dev/null +++ b/src/StyleSheets.rbxmx @@ -0,0 +1,1214 @@ + + true + null + nil + + + + 0 + false + StyleSheets + -1 + + + + + + 0 + false + SatchelStyleSheet + -1 + + + + + 12 + AAAAAA== + Frame + + 0 + false + Frame + -1 + + + + + 2 + + .Hint + + 0 + false + .Hint + -1 + + + + + 3 + + >TextLabel + + 0 + false + >TextLabel + -1 + + + + + + 4 + + >ImageLabel + + 0 + false + >ImageLabel + -1 + + + + + 1 + AAAAAA== + ::UIAspectRatioConstraint + + 0 + false + ::UIAspectRatioConstraint + -1 + + + + + + + + + 11 + AAAAAA== + ScrollingFrame + + 0 + false + ScrollingFrame + -1 + + + + + + 10 + AAAAAA== + TextLabel + + 0 + false + TextLabel + -1 + + + + + 9 + + .ToolTip + + 0 + false + .ToolTip + -1 + + + + + 1 + AQAAAAwAAABDb3JuZXJSYWRpdXMCFAAAACRUb29sVGlwQ29ybmVyUmFkaXVz + ::UICorner + + 0 + false + ::UICorner + -1 + + + + + + 2 + + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + + + 8 + AAAAAA== + TextButton + + 0 + false + TextButton + -1 + + + + + 2 + + .Slot + + 0 + false + .Slot + -1 + + + + + 10 + AAAAAA== + .Equipped + + 0 + false + .Equipped + -1 + + + + + 1 + + ::UIStroke + + 0 + false + ::UIStroke + -1 + + + + + + + 8 + AAAAAA== + :Hover + + 0 + false + :Hover + -1 + + + + + 1 + AQAAAAcAAABWaXNpYmxlAwE= + >.ToolTip + + 0 + false + >.ToolTip + -1 + + + + + + + 7 + + >ImageLabel + + 0 + false + >ImageLabel + -1 + + + + + 1 + AQAAAAwAAABDb3JuZXJSYWRpdXMCFQAAACRTbG90SWNvbkNvcm5lclJhZGl1cw== + ::UICorner + + 0 + false + ::UICorner + -1 + + + + + + + 6 + + ::UITextSizeConstraint + + 0 + false + ::UITextSizeConstraint + -1 + + + + + + 5 + + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + 4 + AQAAAAQAAABTaXplCgAAAAAAAAAAAAAAAAAAAAA= + >TextLabel + + 0 + false + >TextLabel + -1 + + + + + 9 + AQAAAAcAAABWaXNpYmxlAwA= + .ToolTip + + 0 + false + .ToolTip + -1 + + + + + + 1 + + .SlotNumber + + 0 + false + .SlotNumber + -1 + + + + + + + 1 + AQAAAAwAAABDb3JuZXJSYWRpdXMCEQAAACRTbG90Q29ybmVyUmFkaXVz + ::UICorner + + 0 + false + ::UICorner + -1 + + + + + + 11 + + .Unlocked + + 0 + false + .Unlocked + -1 + + + + + 9 + AAAAAA== + :Press + + 0 + false + :Press + -1 + + + + + 1 + + ::UIStroke + + 0 + false + ::UIStroke + -1 + + + + + + + + 9 + AAAAAA== + :Press + + 0 + false + :Press + -1 + + + + + 2 + AQAAAAcAAABWaXNpYmxlAwE= + >.ToolTip + + 0 + false + >.ToolTip + -1 + + + + + + + + + 7 + AAAAAA== + TextBox + + 0 + false + TextBox + -1 + + + + + 2 + + .SearchBar + + 0 + false + .SearchBar + -1 + + + + + 1 + + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + 3 + + >ImageButton + + 0 + false + >ImageButton + -1 + + + + + 1 + AAAAAA== + ::UIAspectRatioConstraint + + 0 + false + ::UIAspectRatioConstraint + -1 + + + + + + + + + 6 + AAAAAA== + ImageButton + + 0 + false + ImageButton + -1 + + + + + + 5 + AAAAAA== + ImageLabel + + 0 + false + ImageLabel + -1 + + + + + 1 + + .HintSlot + + 0 + false + .HintSlot + -1 + + + + + 1 + AQAAAAsAAABBc3BlY3RSYXRpbwYAAAAAAAAAQA== + ::UIAspectRatioConstraint + + 0 + false + ::UIAspectRatioConstraint + -1 + + + + + + + + 1 + RBX551A91E21149401EBB451F11ACC4116A + + 0 + false + Derive from BaseStyleSheet + -1 + + + + + + 0 + RBX1A83A5F422C64C4A839C0EE03B906222 + + 0 + false + Derive from DefaultTheme + -1 + + + + + + 5 + + .Hotbar + + 0 + false + .Hotbar + -1 + + + + + 1 + + ::UIListLayout + + 0 + false + ::UIListLayout + -1 + + + + + + + 3 + + .Container,.SearchBar + + 0 + false + .Container,.SearchBar + -1 + + + + + 2 + + ::UIStroke + + 0 + false + ::UIStroke + -1 + + + + + + 1 + AQAAAAwAAABDb3JuZXJSYWRpdXMCFgAAACRDb250YWluZXJDb3JuZXJSYWRpdXM= + ::UICorner + + 0 + false + ::UICorner + -1 + + + + + + 2 + + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + + 3 + + .Surface,.Hints,.Inventory + + 0 + false + .Surface,.Hints,.Inventory + -1 + + + + + 1 + AQAAAAwAAABDb3JuZXJSYWRpdXMCFAAAACRTdXJmYWNlQ29ybmVyUmFkaXVz + ::UICorner + + 0 + false + ::UICorner + -1 + + + + + + 2 + + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + + 0 + null + + 0 + false + Derive from StyleSheet + -1 + + + + + + 6 + + .Hints + + 0 + false + .Hints + -1 + + + + + 1 + + ::UIListLayout + + 0 + false + ::UIListLayout + -1 + + + + + + + 7 + AQAAAAsAAABMYXlvdXRPcmRlcgYAAAAAAAAAAA== + .Inventory + + 0 + false + .Inventory + -1 + + + + + 1 + AQAAAAcAAABQYWRkaW5nCQAAAAAFAAAA + ::UIListLayout + + 0 + false + ::UIListLayout + -1 + + + + + + 1 + + >ScrollingFrame + + 0 + false + >ScrollingFrame + -1 + + + + + 2 + + ::UIListLayout + + 0 + false + ::UIListLayout + -1 + + + + + + + + 8 + + .Backpack + + 0 + false + .Backpack + -1 + + + + + 1 + + ::UIListLayout + + 0 + false + ::UIListLayout + -1 + + + + + + 2 + AQAAAA0AAABQYWRkaW5nQm90dG9tCQAAAAAFAAAA + ::UIPadding + + 0 + false + ::UIPadding + -1 + + + + + + + + + 0 + false + BaseTokens + -1 + + + + + 0 + RBX3FCD09B5CC5E49539C0DDCA0030578EE + + 0 + false + Derive from DesignTokens + -1 + + + + + + + + 0 + false + DesignTokens + -1 + + + + + + AQAAAA0AAABTdHlsZUNhdGVnb3J5AgYAAABUaGVtZXM= + 0 + false + DefaultTheme + -1 + + + + + 0 + RBX5386E31C9C0C4A45B50A17CA8B9D2965 + + 0 + false + Derive from BaseTokens + -1 + + + + + + + + 0 + false + LegacyTheme + -1 + + + + + 0 + RBX5386E31C9C0C4A45B50A17CA8B9D2965 + + 0 + false + Derive from BaseTokens + -1 + + + + + + + + 0 + false + BaseStyleSheet + -1 + + + + + 0 + + Frame + + 0 + false + Frame + -1 + + + + + + 1 + + ScrollingFrame + + 0 + false + ScrollingFrame + -1 + + + + + + 2 + + TextLabel + + 0 + false + TextLabel + -1 + + + + + + 3 + + TextButton + + 0 + false + TextButton + -1 + + + + + + 4 + + TextBox + + 0 + false + TextBox + -1 + + + + + + 5 + + ImageButton + + 0 + false + ImageButton + -1 + + + + + + 6 + + ImageLabel + + 0 + false + ImageLabel + -1 + + + + + + 7 + + ViewportFrame + + 0 + false + ViewportFrame + -1 + + + + + + 8 + + VideoFrame + + 0 + false + VideoFrame + -1 + + + + + + 9 + + CanvasGroup + + 0 + false + CanvasGroup + -1 + + + + + + 10 + AQAAAAkAAABTb3J0T3JkZXIVCQAAAFNvcnRPcmRlcgIAAAA= + UIListLayout + + 0 + false + UIListLayout + -1 + + + + + + 11 + AQAAAAkAAABTb3J0T3JkZXIVCQAAAFNvcnRPcmRlcgIAAAA= + UIGridLayout + + 0 + false + UIGridLayout + -1 + + + + + + 12 + AQAAAAkAAABTb3J0T3JkZXIVCQAAAFNvcnRPcmRlcgIAAAA= + UIPageLayout + + 0 + false + UIPageLayout + -1 + + + + + + 13 + AQAAAAkAAABTb3J0T3JkZXIVCQAAAFNvcnRPcmRlcgIAAAA= + UITableLayout + + 0 + false + UITableLayout + -1 + + + + + + \ No newline at end of file diff --git a/src/StyleSheets/Rules/Tooltip.luau b/src/StyleSheets/Rules/Tooltip.luau deleted file mode 100644 index 40beaffa..00000000 --- a/src/StyleSheets/Rules/Tooltip.luau +++ /dev/null @@ -1,41 +0,0 @@ --- TextLabel rule -local textLabelRule = Instance.new("StyleRule") -textLabelRule.Selector = "TextLabel" --- textLabelRule.Parent = designSheet - --- Tooltip rule -local tooltipRule = Instance.new("StyleRule") -tooltipRule.Selector = ".Tooltip" -tooltipRule.Parent = textLabelRule - -tooltipRule:SetProperties({ - ["AnchorPoint"] = UDim.new(1, 0.5), - ["AutomaticSize"] = Enum.AutomaticSize.XY, - ["BackgroundColor3"] = "$ToolTipBackgroundColor", - ["BackgroundTransparency"] = "$ToolTipBackgroundTransparency", - ["FontFace"] = "$ToolTipFontFace", - ["Position"] = UDim2.new(0.5, 0, 0.5, -10), - ["Size"] = UDim2.new(0, 0, 0, 0), - ["TextColor3"] = "$ToolTipTextColor", - ["TextSize"] = "$ToolTipTextSize", -}) - --- Pseudo instances -local uiCorner = Instance.new("StyleRule") -uiCorner.Selector = "::UICorner" -uiCorner.Parent = tooltipRule - -uiCorner:SetProperties({ - ["CornerRadius"] = "$ToolTipCornerRadius", -}) - -local uiPadding = Instance.new("StyleRule") -uiPadding.Selector = "::UIPadding" -uiPadding.Parent = tooltipRule - -uiPadding:SetProperties({ - ["PaddingBottom"] = "$ToolTipPadding", - ["PaddingLeft"] = "$ToolTipPadding", - ["PaddingRight"] = "$ToolTipPadding", - ["PaddingTop"] = "$ToolTipPadding", -}) diff --git a/src/StyleSheets/Themes/DefaultThemeStyle.luau b/src/StyleSheets/Themes/DefaultThemeStyle.luau deleted file mode 100644 index cffab584..00000000 --- a/src/StyleSheets/Themes/DefaultThemeStyle.luau +++ /dev/null @@ -1,7 +0,0 @@ -local defaultTheme = Instance.new("StyleSheet") -defaultTheme.Name = "DefaultThemeStyle" --- theme.Parent = ReplicatedStorage -local tokensDerive = Instance.new("StyleDerive") --- tokensDerive.StyleSheet = baseTokens -tokensDerive.Parent = defaultTheme -defaultTheme:SetAttribute("StyleCategory", "Themes") diff --git a/src/StyleSheets/Themes/LegacyThemeStyle.luau b/src/StyleSheets/Themes/LegacyThemeStyle.luau deleted file mode 100644 index b078b41f..00000000 --- a/src/StyleSheets/Themes/LegacyThemeStyle.luau +++ /dev/null @@ -1,28 +0,0 @@ -local legacyTheme = Instance.new("StyleSheet") -legacyTheme.Name = "LegacyThemeStyle" --- theme.Parent = ReplicatedStorage -local tokensDerive = Instance.new("StyleDerive") --- tokensDerive.StyleSheet = baseTokens -tokensDerive.Parent = legacyTheme -legacyTheme:SetAttribute("StyleCategory", "Themes") - -legacyTheme:SetAttribute("ContainerBackgroundColor", Color3.fromRGB(94, 94, 94)) -legacyTheme:SetAttribute("ContainerStrokeTransparency", 1) -legacyTheme:SetAttribute("CornerRadius", UDim.new()) -legacyTheme:SetAttribute("FontFace", Font.fromEnum(Enum.Font.SourceSans)) -legacyTheme:SetAttribute("HintFontFace", Font.fromEnum(Enum.Font.SourceSansBold)) -legacyTheme:SetAttribute("HintTextSize", 24) -legacyTheme:SetAttribute("SearchPadding", UDim.new()) -legacyTheme:SetAttribute("SearchPlaceholderColor", Color3.new(1, 1, 1)) -legacyTheme:SetAttribute("SearchTextSize", 24) -legacyTheme:SetAttribute("SlotBackgroundColor", Color3.fromRGB(31, 31, 31)) -legacyTheme:SetAttribute("SlotEquipStrokeColor", Color3.fromRGB(90, 142, 233)) -legacyTheme:SetAttribute("SlotEquipStrokeThickness", 5) -legacyTheme:SetAttribute("SlotPadding", UDim.new(0, 6)) -legacyTheme:SetAttribute("SlotUnlockBackgroundColor", Color3.fromRGB(49, 49, 49)) -legacyTheme:SetAttribute("SmallCornerRadius", UDim.new()) -legacyTheme:SetAttribute("SmallTextSize", 14) -legacyTheme:SetAttribute("TextSize", 14) -legacyTheme:SetAttribute("TextStrokeTransparency", 1) -legacyTheme:SetAttribute("ToolTipBackgroundColor", Color3.fromRGB(102, 102, 102)) -legacyTheme:SetAttribute("ToolTipPadding", UDim.new(0, 2)) diff --git a/src/StyleSheets/Tokens/BaseTokenSheet.luau b/src/StyleSheets/Tokens/BaseTokenSheet.luau deleted file mode 100644 index 75ff43ef..00000000 --- a/src/StyleSheets/Tokens/BaseTokenSheet.luau +++ /dev/null @@ -1,52 +0,0 @@ -local baseTokens = Instance.new("StyleSheet") -baseTokens.Name = "BaseTokenSheet" --- tokens.Parent = ReplicatedStorage -local tokensDerive = Instance.new("StyleDerive") --- tokensDerive.StyleSheet = baseTokens -tokensDerive.Parent = baseTokens -baseTokens:SetAttribute("StyleCategory", "Tokens") - -baseTokens:SetAttribute("ContainerBackgroundColor", "$BackgroundColor") -baseTokens:SetAttribute("ContainerBackgroundTransparency", 0.2) -baseTokens:SetAttribute("ContainerCornerRadius", "$SmallCornerRadius") -baseTokens:SetAttribute("ContainerStrokeColor", Color3.new(1, 1, 1)) -baseTokens:SetAttribute("ContainerStrokeTransparency", 0.8) -baseTokens:SetAttribute("HintFontFace", "$FontFace") -baseTokens:SetAttribute("HintTextColor", "$TextColor") -baseTokens:SetAttribute("HintTextSize", "$TextSize") -baseTokens:SetAttribute("SearchFontFace", "$FontFace") -baseTokens:SetAttribute("SearchPadding", UDim.new(0, 8)) -baseTokens:SetAttribute("SearchPlaceholderColor", Color3.fromRGB(178, 178, 178)) -baseTokens:SetAttribute("SearchTextColor", "$TextColor") -baseTokens:SetAttribute("SearchTextSize", "$TextSize") -baseTokens:SetAttribute("SearchTextStrokeTransparency", "$TextStrokeTransparency") -baseTokens:SetAttribute("SlotBackgroundColor", Color3.fromRGB(25, 27, 29)) -baseTokens:SetAttribute("SlotBackgroundTransparency", 0.3) -baseTokens:SetAttribute("SlotCornerRadius", "$SmallCornerRadius") -baseTokens:SetAttribute("SlotEquipStrokeColor", Color3.new(1, 1, 1)) -baseTokens:SetAttribute("SlotEquipStrokeThickness", 4) -baseTokens:SetAttribute("SlotFontFace", "$FontFace") -baseTokens:SetAttribute("SlotIconCornerRadius", UDim.new()) -baseTokens:SetAttribute("SlotNumberFontFace", "$FontFace") -baseTokens:SetAttribute("SlotNumberStrokeColor", "$TextStrokeColor") -baseTokens:SetAttribute("SlotNumberStrokeTransparency", "$TextStrokeTransparency") -baseTokens:SetAttribute("SlotNumberTextColor", "$TextColor") -baseTokens:SetAttribute("SlotNumberTextSize", "$SmallTextSize") -baseTokens:SetAttribute("SlotPadding", UDim.new(0, 5)) -baseTokens:SetAttribute("SlotPressStrokeColor", Color3.new(1, 1, 1)) -baseTokens:SetAttribute("SlotTextColor", "$TextColor") -baseTokens:SetAttribute("SlotTextSize", "$TextSize") -baseTokens:SetAttribute("SlotTextStrokeColor", "$TextStrokeColor") -baseTokens:SetAttribute("SlotTextStrokeTransparency", "$TextStrokeTransparency") -baseTokens:SetAttribute("SlotUnlockBackgroundColor", "$SlotBackgroundColor") -baseTokens:SetAttribute("SurfaceBackgroundColor", "$BackgroundColor") -baseTokens:SetAttribute("SurfaceBackgroundTransparency", 0.3) -baseTokens:SetAttribute("SurfaceCornerRadius", "$CornerRadius") -baseTokens:SetAttribute("SurfacePadding", UDim.new(0, 5)) -baseTokens:SetAttribute("ToolTipBackgroundColor", Color3.fromRGB(38, 40, 48)) -baseTokens:SetAttribute("ToolTipBackgroundTranparency", 0) -baseTokens:SetAttribute("ToolTipCornerRadius", "$SmallCornerRadius") -baseTokens:SetAttribute("ToolTipFontFace", "$FontFace") -baseTokens:SetAttribute("ToolTipPadding", UDim.new(0, 4)) -baseTokens:SetAttribute("ToolTipTextColor", "$TextColor") -baseTokens:SetAttribute("ToolTipTextSize", "$SmallTextSize") diff --git a/src/StyleSheets/Tokens/DesignTokenSheet.luau b/src/StyleSheets/Tokens/DesignTokenSheet.luau deleted file mode 100644 index 848f2a61..00000000 --- a/src/StyleSheets/Tokens/DesignTokenSheet.luau +++ /dev/null @@ -1,14 +0,0 @@ -local designTokens = Instance.new("StyleSheet") -designTokens.Name = "DesignTokenSheet" --- tokens.Parent = ReplicatedStorage -designTokens:SetAttribute("StyleCategory", "Tokens") - -designTokens:SetAttribute("BackgroundColor", Color3.fromRGB(25, 27, 29)) -designTokens:SetAttribute("CornerRadius", UDim.new(0, 8)) -designTokens:SetAttribute("FontFace", Font.fromEnum(Enum.Font.BuilderSansMedium)) -designTokens:SetAttribute("SmallCornerRadius", UDim.new(0, 4)) -designTokens:SetAttribute("SmallTextSize", 15) -designTokens:SetAttribute("TextColor", Color3.new(1, 1, 1)) -designTokens:SetAttribute("TextSize", 18) -designTokens:SetAttribute("TextStrokeColor", Color3.new()) -designTokens:SetAttribute("TextStrokeTransparency", 0.5) diff --git a/src/init.luau b/src/init.luau index f11f8646..9aed6414 100644 --- a/src/init.luau +++ b/src/init.luau @@ -11,6 +11,11 @@ local Backpack = require("@self/Components/Backpack") local handle = Instance.new("ScreenGui") handle.Name = "SatchelGui" handle.Parent = playerGui + +local styleLink = Instance.new("StyleLink") +styleLink.StyleSheet = script.StyleSheets.SatchelStyleSheet +styleLink.Parent = handle + local root = ReactRoblox.createRoot(handle) root:render({ Backpack = React.createElement(Backpack) }) From 76867d1af40bea50605c60dc4f1595f3daa9a12f Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Sun, 21 Dec 2025 23:45:53 +0000 Subject: [PATCH 93/95] Fix stylesheet references Signed-off-by: GitHub --- src/Components/Backpack.luau | 2 +- src/Stories/Hotbar.story.luau | 2 +- src/Stories/HotbarHint.story.luau | 2 +- src/Stories/SearchBar.story.luau | 2 +- src/Stories/Slot.story.luau | 2 +- src/Stories/ToolTip.story.luau | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Components/Backpack.luau b/src/Components/Backpack.luau index ea94f405..69a26035 100644 --- a/src/Components/Backpack.luau +++ b/src/Components/Backpack.luau @@ -12,7 +12,7 @@ local function Backpack(props: Props) }, { Hotbar = React.createElement(Hotbar, props.children), StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) end diff --git a/src/Stories/Hotbar.story.luau b/src/Stories/Hotbar.story.luau index 579dc92d..b1881666 100644 --- a/src/Stories/Hotbar.story.luau +++ b/src/Stories/Hotbar.story.luau @@ -27,7 +27,7 @@ return { order = 1, }), StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) diff --git a/src/Stories/HotbarHint.story.luau b/src/Stories/HotbarHint.story.luau index 26b6ac76..a1b03c00 100644 --- a/src/Stories/HotbarHint.story.luau +++ b/src/Stories/HotbarHint.story.luau @@ -17,7 +17,7 @@ return { forceVisible = props.controls.ForceHintVisible, }, { StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) diff --git a/src/Stories/SearchBar.story.luau b/src/Stories/SearchBar.story.luau index d1118c79..61f88bb4 100644 --- a/src/Stories/SearchBar.story.luau +++ b/src/Stories/SearchBar.story.luau @@ -11,7 +11,7 @@ return { size = UDim2.fromOffset(190, 30), }, { StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) diff --git a/src/Stories/Slot.story.luau b/src/Stories/Slot.story.luau index 7b057ed3..c32d5760 100644 --- a/src/Stories/Slot.story.luau +++ b/src/Stories/Slot.story.luau @@ -31,7 +31,7 @@ return { forceVisible = props.controls.ForceNumberVisible, }, { StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) diff --git a/src/Stories/ToolTip.story.luau b/src/Stories/ToolTip.story.luau index 512f965b..940bff88 100644 --- a/src/Stories/ToolTip.story.luau +++ b/src/Stories/ToolTip.story.luau @@ -16,7 +16,7 @@ return { text = props.controls.Text, }, { StyleLink = React.createElement("StyleLink", { - StyleSheet = game.ReplicatedStorage.Design.SatchelStyleSheet, + StyleSheet = script.Parent.Parent.StyleSheets.SatchelStyleSheet, }), }) From 5ef7f799f6cc6bcd62d9c0862e71840267cc775a Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 Jan 2026 09:45:13 +0000 Subject: [PATCH 94/95] Add icon for toggling CoreGui backpack Signed-off-by: GitHub --- tests/ToggleCoreGuiBackpackIcon.client.luau | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/ToggleCoreGuiBackpackIcon.client.luau diff --git a/tests/ToggleCoreGuiBackpackIcon.client.luau b/tests/ToggleCoreGuiBackpackIcon.client.luau new file mode 100644 index 00000000..a1d89c4d --- /dev/null +++ b/tests/ToggleCoreGuiBackpackIcon.client.luau @@ -0,0 +1,14 @@ +--!strict + +local StarterGui = game:GetService("StarterGui") +local ReplicatedStorage = game:GetService("ReplicatedStorage") + +local Icon = require(ReplicatedStorage.Packages.topbarplus) + +local icon = Icon.new() +icon:setLabel("Toggle CoreGui Backpack") +icon:align("Right") +icon:bindEvent("deselected", function() + StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, not StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Backpack)) +end) +icon:oneClick() From 94d961f86a3af053e78dae96cc98a2cc03140591 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Thu, 15 Jan 2026 09:46:41 +0000 Subject: [PATCH 95/95] Add icon for debugging tools Signed-off-by: GitHub --- tests/DebugBackpackIcon.client.luau | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/DebugBackpackIcon.client.luau diff --git a/tests/DebugBackpackIcon.client.luau b/tests/DebugBackpackIcon.client.luau new file mode 100644 index 00000000..5b3b0741 --- /dev/null +++ b/tests/DebugBackpackIcon.client.luau @@ -0,0 +1,37 @@ +--!strict + +local Players = game:GetService("Players") +local ReplicatedStorage = game:GetService("ReplicatedStorage") + +local Icon = require(ReplicatedStorage.Packages.topbarplus) + +local player = Players.LocalPlayer :: Player + +local toolIcon = Icon.new() +toolIcon:setLabel("Backpack Options") +toolIcon:align("Right") +toolIcon:setDropdown({ + Icon.new() + :setLabel("Add Tool") + :bindEvent("deselected", function() + local backpack = player:FindFirstChildOfClass("Backpack") :: Backpack + local tool = Instance.new("Tool") + tool.Parent = backpack + end) + :oneClick(), + Icon.new() + :setLabel("Add HopperBin") + :bindEvent("deselected", function() + local backpack = player:FindFirstChildOfClass("Backpack") :: Backpack + local hopperBin = Instance.new("HopperBin") + hopperBin.Parent = backpack + end) + :oneClick(), + Icon.new() + :setLabel("Clear Backpack") + :bindEvent("deselected", function() + local backpack = player:FindFirstChildOfClass("Backpack") :: Backpack + backpack:ClearAllChildren() + end) + :oneClick(), +})