diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml
new file mode 100644
index 0000000..1dabce0
--- /dev/null
+++ b/.github/workflows/beta.yml
@@ -0,0 +1,30 @@
+name: Beta Release
+
+on:
+ push:
+ branches:
+ - master
+ workflow_dispatch:
+
+jobs:
+ ci:
+ name: CI and Deployment
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+
+ - uses: Roblox/setup-foreman@v1
+ with:
+ version: "^1.0.0"
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Report tool versions
+ run: rojo --version
+
+ - name: Deploy
+ run: rojo upload --cookie "$ROBLOSECURITY" --asset_id 6605037523 default.project.json
+ env:
+ ROBLOSECURITY: ${{ secrets.ROBLOSECURITY }}
\ No newline at end of file
diff --git a/.github/workflows/stable.yml b/.github/workflows/stable.yml
new file mode 100644
index 0000000..a68b401
--- /dev/null
+++ b/.github/workflows/stable.yml
@@ -0,0 +1,29 @@
+name: Stable Release
+
+on:
+ release:
+ types: [released]
+ workflow_dispatch:
+
+jobs:
+ ci:
+ name: CI and Deployment
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v1
+ with:
+ submodules: true
+
+ - uses: Roblox/setup-foreman@v1
+ with:
+ version: "^1.0.0"
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Report tool versions
+ run: rojo --version
+
+ - name: Deploy
+ run: rojo upload --cookie "$ROBLOSECURITY" --asset_id 6605034516 default.project.json
+ env:
+ ROBLOSECURITY: ${{ secrets.ROBLOSECURITY }}
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7e9257c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,50 @@
+
+
+# LundstrongOrders
+A beautiful ordering system, designed for your Roblox Cafes.
+
+
+
+
+
+## Getting Started
+
+### Prerequisites
+
+None.
+
+### Installation
+
+
+
+#### Roblox
+
+ * Search `Lundstrong Orders` in the toolbox, and insert the model made by `LundBot`
+
+#### GitHub
+
+* Type in: `git clone https://github.com/Lundstrong/LundstrongOrders.git`
+
+#### More
+
+* More Installion methods are avaliable in the docs.
+
+## Usage
+
+Open up the configuration file and configure it up to your needs!
+
+## Roadmap
+The Roadmap for this project is on GitHub Pages. If you have any ideas please let us know on the discord or open an issue!
+
+## Contributing
+We love contributions! Pull requests are warmly welcomed and highly appriciated. For major changes, please open an issue first or discuss on the discord to let us know what you would like to change.
+
+## Support
+Join the [Lundstrong Discord](https://discord.gg/2w9PmHZPwX). A channel will be opened up in the near-future for support.
+
+## License
+FOSSA Coming soon.
+
+## Acknowledgements
+
+This Product has been expanded by the [DataStore2](https://kampfkarren.github.io/Roblox/) library. If it wasn't for them - the cases of data loss may be an issue.
\ No newline at end of file
diff --git a/default.project.json b/default.project.json
new file mode 100644
index 0000000..48c95be
--- /dev/null
+++ b/default.project.json
@@ -0,0 +1,6 @@
+{
+ "name": "MainModule",
+ "tree": {
+ "$path": "src"
+ }
+}
diff --git a/development.project.json b/development.project.json
new file mode 100644
index 0000000..98fe090
--- /dev/null
+++ b/development.project.json
@@ -0,0 +1,21 @@
+{
+ "name": "LundstrongOrders Development",
+ "tree": {
+ "$className": "DataModel",
+ "ReplicatedStorage": {
+ "$className": "ReplicatedStorage",
+ "$ignoreUnknownInstances": true,
+ "$path": "src/ReplicatedStorage"
+ },
+ "StarterGui": {
+ "$className": "StarterGui",
+ "$ignoreUnknownInstances": true,
+ "$path": "src/StarterGui"
+ },
+ "ServerScriptService": {
+ "$className": "ServerScriptService",
+ "$ignoreUnknownInstances": true,
+ "$path": "src/Server"
+ }
+ }
+}
\ No newline at end of file
diff --git a/foreman.toml b/foreman.toml
new file mode 100644
index 0000000..3fefb42
--- /dev/null
+++ b/foreman.toml
@@ -0,0 +1,3 @@
+[tools]
+rojo = { source = "rojo-rbx/rojo", version = "6.0.2" }
+selene = { source = "Kampfkarren/selene", version = "0.11.0" }
diff --git a/roblox.toml b/roblox.toml
new file mode 100644
index 0000000..f060efe
--- /dev/null
+++ b/roblox.toml
@@ -0,0 +1,9060 @@
+# This file was @generated by generate-roblox-std at 2021-01-25 17:05:53.488408800 +10:00
+[selene]
+base = "lua51"
+name = "roblox"
+[selene.structs.BasePart."*"]
+struct = "Instance"
+
+[selene.structs.BasePart.AncestryChanged]
+struct = "Event"
+
+[selene.structs.BasePart.Anchored]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.ApplyAngularImpulse]
+method = true
+
+[[selene.structs.BasePart.ApplyAngularImpulse.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.ApplyImpulse]
+method = true
+
+[[selene.structs.BasePart.ApplyImpulse.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.ApplyImpulseAtPosition]
+method = true
+
+[[selene.structs.BasePart.ApplyImpulseAtPosition.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.ApplyImpulseAtPosition.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.AssemblyAngularVelocity]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.AssemblyCenterOfMass]
+property = true
+
+[selene.structs.BasePart.AssemblyLinearVelocity]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.AssemblyMass]
+property = true
+
+[selene.structs.BasePart.AssemblyRootPart]
+struct = "BasePart"
+
+[selene.structs.BasePart.AttributeChanged]
+struct = "Event"
+
+[selene.structs.BasePart.BackParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BackParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BackSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BackSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BottomParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BottomParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BottomSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BottomSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.BreakJoints]
+method = true
+args = []
+
+[selene.structs.BasePart.BrickColor]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CFrame]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CanCollide]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CanCollideWith]
+method = true
+
+[[selene.structs.BasePart.CanCollideWith.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.CanSetNetworkOwnership]
+method = true
+args = []
+
+[selene.structs.BasePart.CanTouch]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CastShadow]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CenterOfMass]
+property = true
+
+[selene.structs.BasePart.Changed]
+struct = "Event"
+
+[selene.structs.BasePart.ChildAdded]
+struct = "Event"
+
+[selene.structs.BasePart.ChildRemoved]
+struct = "Event"
+
+[selene.structs.BasePart.ClassName]
+property = true
+
+[selene.structs.BasePart.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.BasePart.Clone]
+method = true
+args = []
+
+[selene.structs.BasePart.CollisionGroupId]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Color]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.CustomPhysicalProperties]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.DescendantAdded]
+struct = "Event"
+
+[selene.structs.BasePart.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.BasePart.Destroy]
+method = true
+args = []
+
+[selene.structs.BasePart.FindFirstAncestor]
+method = true
+
+[[selene.structs.BasePart.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.BasePart.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.BasePart.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FindFirstChild]
+method = true
+
+[[selene.structs.BasePart.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.BasePart.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.BasePart.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.FrontParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.FrontParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.FrontSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.FrontSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.GetActor]
+method = true
+args = []
+
+[selene.structs.BasePart.GetAttribute]
+method = true
+
+[[selene.structs.BasePart.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.BasePart.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.GetAttributes]
+method = true
+args = []
+
+[selene.structs.BasePart.GetChildren]
+method = true
+args = []
+
+[selene.structs.BasePart.GetConnectedParts]
+method = true
+
+[[selene.structs.BasePart.GetConnectedParts.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.GetDebugId]
+method = true
+
+[[selene.structs.BasePart.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.GetDescendants]
+method = true
+args = []
+
+[selene.structs.BasePart.GetFullName]
+method = true
+args = []
+
+[selene.structs.BasePart.GetJoints]
+method = true
+args = []
+
+[selene.structs.BasePart.GetMass]
+method = true
+args = []
+
+[selene.structs.BasePart.GetNetworkOwner]
+method = true
+args = []
+
+[selene.structs.BasePart.GetNetworkOwnershipAuto]
+method = true
+args = []
+
+[selene.structs.BasePart.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.BasePart.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.GetRootPart]
+method = true
+args = []
+
+[selene.structs.BasePart.GetTouchingParts]
+method = true
+args = []
+
+[selene.structs.BasePart.IsA]
+method = true
+
+[[selene.structs.BasePart.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.IsAncestorOf]
+method = true
+
+[[selene.structs.BasePart.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.IsDescendantOf]
+method = true
+
+[[selene.structs.BasePart.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.IsGrounded]
+method = true
+args = []
+
+[selene.structs.BasePart.LeftParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.LeftParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.LeftSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.LeftSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.LocalTransparencyModifier]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Locked]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.MakeJoints]
+method = true
+args = []
+
+[selene.structs.BasePart.Mass]
+property = true
+
+[selene.structs.BasePart.Massless]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Material]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Orientation]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Parent]
+struct = "Instance"
+
+[selene.structs.BasePart.Position]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.ReceiveAge]
+property = true
+
+[selene.structs.BasePart.Reflectance]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Resize]
+method = true
+
+[[selene.structs.BasePart.Resize.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.Resize.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.ResizeIncrement]
+property = true
+
+[selene.structs.BasePart.ResizeableFaces]
+property = true
+
+[selene.structs.BasePart.RightParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.RightParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.RightSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.RightSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.RootPriority]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.RotVelocity]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.Rotation]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.SetAttribute]
+method = true
+
+[[selene.structs.BasePart.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.SetNetworkOwner]
+method = true
+
+[[selene.structs.BasePart.SetNetworkOwner.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.SetNetworkOwnershipAuto]
+method = true
+args = []
+
+[selene.structs.BasePart.Size]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.SubtractAsync]
+method = true
+
+[[selene.structs.BasePart.SubtractAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.SubtractAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.SubtractAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.TopParamA]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.TopParamB]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.TopSurface]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.TopSurfaceInput]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.TouchEnded]
+struct = "Event"
+
+[selene.structs.BasePart.Touched]
+struct = "Event"
+
+[selene.structs.BasePart.Transparency]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.UnionAsync]
+method = true
+
+[[selene.structs.BasePart.UnionAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.UnionAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.UnionAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.BasePart.Velocity]
+property = true
+writable = "overridden"
+
+[selene.structs.BasePart.WaitForChild]
+method = true
+
+[[selene.structs.BasePart.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.BasePart.WaitForChild.args]]
+required = false
+type = "any"
+[selene.structs.Camera."*"]
+struct = "Instance"
+
+[selene.structs.Camera.AncestryChanged]
+struct = "Event"
+
+[selene.structs.Camera.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.AttributeChanged]
+struct = "Event"
+
+[selene.structs.Camera.CFrame]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.CameraSubject]
+struct = "Instance"
+
+[selene.structs.Camera.CameraType]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.Changed]
+struct = "Event"
+
+[selene.structs.Camera.ChildAdded]
+struct = "Event"
+
+[selene.structs.Camera.ChildRemoved]
+struct = "Event"
+
+[selene.structs.Camera.ClassName]
+property = true
+
+[selene.structs.Camera.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.Camera.Clone]
+method = true
+args = []
+
+[selene.structs.Camera.DescendantAdded]
+struct = "Event"
+
+[selene.structs.Camera.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.Camera.Destroy]
+method = true
+args = []
+
+[selene.structs.Camera.DiagonalFieldOfView]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.FieldOfView]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.FieldOfViewMode]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.FindFirstAncestor]
+method = true
+
+[[selene.structs.Camera.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.Camera.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.Camera.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FindFirstChild]
+method = true
+
+[[selene.structs.Camera.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.Camera.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.Camera.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.FirstPersonTransition]
+struct = "Event"
+
+[selene.structs.Camera.Focus]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.GetActor]
+method = true
+args = []
+
+[selene.structs.Camera.GetAttribute]
+method = true
+
+[[selene.structs.Camera.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.Camera.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.GetAttributes]
+method = true
+args = []
+
+[selene.structs.Camera.GetChildren]
+method = true
+args = []
+
+[selene.structs.Camera.GetDebugId]
+method = true
+
+[[selene.structs.Camera.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.GetDescendants]
+method = true
+args = []
+
+[selene.structs.Camera.GetFullName]
+method = true
+args = []
+
+[selene.structs.Camera.GetPanSpeed]
+method = true
+args = []
+
+[selene.structs.Camera.GetPartsObscuringTarget]
+method = true
+
+[[selene.structs.Camera.GetPartsObscuringTarget.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.GetPartsObscuringTarget.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.Camera.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.GetRenderCFrame]
+method = true
+args = []
+
+[selene.structs.Camera.GetRoll]
+method = true
+args = []
+
+[selene.structs.Camera.GetTiltSpeed]
+method = true
+args = []
+
+[selene.structs.Camera.HeadLocked]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.HeadScale]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.InterpolationFinished]
+struct = "Event"
+
+[selene.structs.Camera.IsA]
+method = true
+
+[[selene.structs.Camera.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.IsAncestorOf]
+method = true
+
+[[selene.structs.Camera.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.IsDescendantOf]
+method = true
+
+[[selene.structs.Camera.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.MaxAxisFieldOfView]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.Camera.NearPlaneZ]
+property = true
+
+[selene.structs.Camera.Parent]
+struct = "Instance"
+
+[selene.structs.Camera.ScreenPointToRay]
+method = true
+
+[[selene.structs.Camera.ScreenPointToRay.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.ScreenPointToRay.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.ScreenPointToRay.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.SetAttribute]
+method = true
+
+[[selene.structs.Camera.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.SetCameraPanMode]
+method = true
+
+[[selene.structs.Camera.SetCameraPanMode.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.SetImageServerView]
+method = true
+
+[[selene.structs.Camera.SetImageServerView.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.SetRoll]
+method = true
+
+[[selene.structs.Camera.SetRoll.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.ViewportPointToRay]
+method = true
+
+[[selene.structs.Camera.ViewportPointToRay.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.ViewportPointToRay.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.ViewportPointToRay.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.ViewportSize]
+property = true
+
+[selene.structs.Camera.WaitForChild]
+method = true
+
+[[selene.structs.Camera.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Camera.WaitForChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.WorldToScreenPoint]
+method = true
+
+[[selene.structs.Camera.WorldToScreenPoint.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.WorldToViewportPoint]
+method = true
+
+[[selene.structs.Camera.WorldToViewportPoint.args]]
+required = false
+type = "any"
+
+[selene.structs.Camera.Zoom]
+method = true
+
+[[selene.structs.Camera.Zoom.args]]
+required = false
+type = "any"
+[selene.structs.DataModel."*"]
+struct = "Instance"
+
+[selene.structs.DataModel.AncestryChanged]
+struct = "Event"
+
+[selene.structs.DataModel.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.DataModel.AttributeChanged]
+struct = "Event"
+
+[selene.structs.DataModel.BindToClose]
+method = true
+
+[[selene.structs.DataModel.BindToClose.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.Changed]
+struct = "Event"
+
+[selene.structs.DataModel.ChildAdded]
+struct = "Event"
+
+[selene.structs.DataModel.ChildRemoved]
+struct = "Event"
+
+[selene.structs.DataModel.ClassName]
+property = true
+
+[selene.structs.DataModel.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.DataModel.Clone]
+method = true
+args = []
+
+[selene.structs.DataModel.Close]
+struct = "Event"
+
+[selene.structs.DataModel.CloseLate]
+struct = "Event"
+
+[selene.structs.DataModel.CreatorId]
+property = true
+
+[selene.structs.DataModel.CreatorType]
+property = true
+
+[selene.structs.DataModel.DefineFastFlag]
+method = true
+
+[[selene.structs.DataModel.DefineFastFlag.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.DefineFastFlag.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.DefineFastInt]
+method = true
+
+[[selene.structs.DataModel.DefineFastInt.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.DefineFastInt.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.DefineFastString]
+method = true
+
+[[selene.structs.DataModel.DefineFastString.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.DefineFastString.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.DescendantAdded]
+struct = "Event"
+
+[selene.structs.DataModel.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.DataModel.Destroy]
+method = true
+args = []
+
+[selene.structs.DataModel.FindFirstAncestor]
+method = true
+
+[[selene.structs.DataModel.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.DataModel.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.DataModel.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindFirstChild]
+method = true
+
+[[selene.structs.DataModel.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.DataModel.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.DataModel.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.FindService]
+method = true
+
+[[selene.structs.DataModel.FindService.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GameId]
+property = true
+
+[selene.structs.DataModel.Genre]
+property = true
+
+[selene.structs.DataModel.GetActor]
+method = true
+args = []
+
+[selene.structs.DataModel.GetAttribute]
+method = true
+
+[[selene.structs.DataModel.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.DataModel.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetAttributes]
+method = true
+args = []
+
+[selene.structs.DataModel.GetChildren]
+method = true
+args = []
+
+[selene.structs.DataModel.GetDebugId]
+method = true
+
+[[selene.structs.DataModel.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetDescendants]
+method = true
+args = []
+
+[selene.structs.DataModel.GetEngineFeature]
+method = true
+
+[[selene.structs.DataModel.GetEngineFeature.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetFastFlag]
+method = true
+
+[[selene.structs.DataModel.GetFastFlag.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetFastInt]
+method = true
+
+[[selene.structs.DataModel.GetFastInt.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetFastString]
+method = true
+
+[[selene.structs.DataModel.GetFastString.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetFullName]
+method = true
+args = []
+
+[selene.structs.DataModel.GetJobsInfo]
+method = true
+args = []
+
+[selene.structs.DataModel.GetObjects]
+method = true
+
+[[selene.structs.DataModel.GetObjects.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetObjectsAsync]
+method = true
+
+[[selene.structs.DataModel.GetObjectsAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetObjectsList]
+method = true
+
+[[selene.structs.DataModel.GetObjectsList.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.DataModel.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.GetService]
+method = true
+
+[[selene.structs.DataModel.GetService.args]]
+type = ["ABTestService", "AdService", "AnalyticsService", "AppUpdateService", "AssetCounterService", "AssetDeliveryProxy", "AssetManagerService", "AssetService", "AvatarEditorService", "BadgeService", "CoreGui", "StarterGui", "BrowserService", "BulkImportService", "CacheableContentProvider", "MeshContentProvider", "SolidModelContentProvider", "ChangeHistoryService", "Chat", "ClusterPacketCache", "CollectionService", "ContentProvider", "ContextActionService", "ControllerService", "CookiesService", "CorePackages", "CoreScriptSyncService", "DataStoreService", "Debris", "DraftsService", "EventIngestService", "FlagStandService", "FlyweightService", "CSGDictionaryService", "NonReplicatedCSGDictionaryService", "FriendService", "GamePassService", "GamepadService", "Geometry", "GoogleAnalyticsConfiguration", "GroupService", "GuiService", "GuidRegistryService", "HapticService", "HeightmapImporterService", "Hopper", "HttpRbxApiService", "HttpService", "ILegacyStudioBridge", "LegacyStudioBridge", "InsertService", "InternalContainer", "JointsService", "KeyboardService", "KeyframeSequenceProvider", "LanguageService", "Lighting", "LocalStorageService", "AppStorageService", "UserStorageService", "LocalizationService", "LogService", "LoginService", "LuaWebService", "MarketplaceService", "MemStorageService", "MessagingService", "MouseService", "NetworkClient", "NetworkServer", "NetworkSettings", "NotificationService", "Workspace", "PackageService", "PathfindingService", "PermissionsService", "PhysicsService", "PlayerEmulatorService", "Players", "PluginDebugService", "PluginGuiService", "PointsService", "PolicyService", "ProximityPromptService", "RbxAnalyticsService", "RenderSettings", "ReplicatedFirst", "ReplicatedScriptService", "ReplicatedStorage", "RobloxPluginGuiService", "RobloxReplicatedStorage", "RunService", "RuntimeScriptService", "ScriptContext", "ScriptService", "Selection", "ServerScriptService", "ServerStorage", "SessionService", "SocialService", "SoundService", "SpawnerService", "StarterPack", "StarterPlayer", "Stats", "StopWatchReporter", "Studio", "StudioData", "StudioService", "TaskScheduler", "Teams", "TeleportService", "TestService", "TextService", "ThirdPartyUserService", "TimerService", "TouchInputService", "TracerService", "TweenService", "UGCValidationService", "UnvalidatedAssetService", "UserInputService", "UserService", "VRService", "VersionControlService", "VirtualInputManager", "VirtualUser", "Visit"]
+
+[selene.structs.DataModel.GraphicsQualityChangeRequest]
+struct = "Event"
+
+[selene.structs.DataModel.HttpGetAsync]
+method = true
+
+[[selene.structs.DataModel.HttpGetAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.HttpGetAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.HttpPostAsync]
+method = true
+
+[[selene.structs.DataModel.HttpPostAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.HttpPostAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.HttpPostAsync.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.HttpPostAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.InsertObjectsAndJoinIfLegacyAsync]
+method = true
+
+[[selene.structs.DataModel.InsertObjectsAndJoinIfLegacyAsync.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.IsA]
+method = true
+
+[[selene.structs.DataModel.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.IsAncestorOf]
+method = true
+
+[[selene.structs.DataModel.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.IsDescendantOf]
+method = true
+
+[[selene.structs.DataModel.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.IsLoaded]
+method = true
+args = []
+
+[selene.structs.DataModel.JobId]
+property = true
+
+[selene.structs.DataModel.Load]
+method = true
+
+[[selene.structs.DataModel.Load.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.Loaded]
+struct = "Event"
+
+[selene.structs.DataModel.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.DataModel.OpenScreenshotsFolder]
+method = true
+args = []
+
+[selene.structs.DataModel.OpenVideosFolder]
+method = true
+args = []
+
+[selene.structs.DataModel.Parent]
+struct = "Instance"
+
+[selene.structs.DataModel.PlaceId]
+property = true
+
+[selene.structs.DataModel.PlaceVersion]
+property = true
+
+[selene.structs.DataModel.PrivateServerId]
+property = true
+
+[selene.structs.DataModel.PrivateServerOwnerId]
+property = true
+
+[selene.structs.DataModel.ReportInGoogleAnalytics]
+method = true
+
+[[selene.structs.DataModel.ReportInGoogleAnalytics.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.ReportInGoogleAnalytics.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.ReportInGoogleAnalytics.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.ReportInGoogleAnalytics.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.ScreenshotReady]
+struct = "Event"
+
+[selene.structs.DataModel.ServiceAdded]
+struct = "Event"
+
+[selene.structs.DataModel.ServiceRemoving]
+struct = "Event"
+
+[selene.structs.DataModel.SetAttribute]
+method = true
+
+[[selene.structs.DataModel.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.SetFastFlagForTesting]
+method = true
+
+[[selene.structs.DataModel.SetFastFlagForTesting.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.SetFastFlagForTesting.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.SetFastIntForTesting]
+method = true
+
+[[selene.structs.DataModel.SetFastIntForTesting.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.SetFastIntForTesting.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.SetFastStringForTesting]
+method = true
+
+[[selene.structs.DataModel.SetFastStringForTesting.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.SetFastStringForTesting.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.SetPlaceId]
+method = true
+
+[[selene.structs.DataModel.SetPlaceId.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.SetUniverseId]
+method = true
+
+[[selene.structs.DataModel.SetUniverseId.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.Shutdown]
+method = true
+args = []
+
+[selene.structs.DataModel.WaitForChild]
+method = true
+
+[[selene.structs.DataModel.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.DataModel.WaitForChild.args]]
+required = false
+type = "any"
+
+[selene.structs.DataModel.Workspace]
+struct = "Workspace"
+[selene.structs.EnumItem.Name]
+property = true
+
+[selene.structs.EnumItem.Value]
+property = true
+[selene.structs.Event.Connect]
+method = true
+
+[[selene.structs.Event.Connect.args]]
+type = "function"
+
+[selene.structs.Event.Wait]
+method = true
+args = []
+[selene.structs.Instance."*"]
+any = true
+[selene.structs.Plugin."*"]
+struct = "Instance"
+
+[selene.structs.Plugin.Activate]
+method = true
+
+[[selene.structs.Plugin.Activate.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.AncestryChanged]
+struct = "Event"
+
+[selene.structs.Plugin.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.Plugin.AttributeChanged]
+struct = "Event"
+
+[selene.structs.Plugin.Changed]
+struct = "Event"
+
+[selene.structs.Plugin.ChildAdded]
+struct = "Event"
+
+[selene.structs.Plugin.ChildRemoved]
+struct = "Event"
+
+[selene.structs.Plugin.ClassName]
+property = true
+
+[selene.structs.Plugin.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.Plugin.Clone]
+method = true
+args = []
+
+[selene.structs.Plugin.CollisionEnabled]
+property = true
+
+[selene.structs.Plugin.CreateDockWidgetPluginGui]
+method = true
+
+[[selene.structs.Plugin.CreateDockWidgetPluginGui.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreateDockWidgetPluginGui.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.CreatePluginAction]
+method = true
+
+[[selene.structs.Plugin.CreatePluginAction.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginAction.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginAction.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginAction.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginAction.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.CreatePluginMenu]
+method = true
+
+[[selene.structs.Plugin.CreatePluginMenu.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginMenu.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreatePluginMenu.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.CreateQWidgetPluginGui]
+method = true
+
+[[selene.structs.Plugin.CreateQWidgetPluginGui.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.CreateQWidgetPluginGui.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.CreateToolbar]
+method = true
+
+[[selene.structs.Plugin.CreateToolbar.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Deactivate]
+method = true
+args = []
+
+[selene.structs.Plugin.Deactivation]
+struct = "Event"
+
+[selene.structs.Plugin.DescendantAdded]
+struct = "Event"
+
+[selene.structs.Plugin.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.Plugin.Destroy]
+method = true
+args = []
+
+[selene.structs.Plugin.FindFirstAncestor]
+method = true
+
+[[selene.structs.Plugin.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.Plugin.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.Plugin.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.FindFirstChild]
+method = true
+
+[[selene.structs.Plugin.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.Plugin.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.Plugin.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetActor]
+method = true
+args = []
+
+[selene.structs.Plugin.GetAttribute]
+method = true
+
+[[selene.structs.Plugin.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.Plugin.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetAttributes]
+method = true
+args = []
+
+[selene.structs.Plugin.GetChildren]
+method = true
+args = []
+
+[selene.structs.Plugin.GetDebugId]
+method = true
+
+[[selene.structs.Plugin.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetDescendants]
+method = true
+args = []
+
+[selene.structs.Plugin.GetFullName]
+method = true
+args = []
+
+[selene.structs.Plugin.GetItem]
+method = true
+
+[[selene.structs.Plugin.GetItem.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.GetItem.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetJoinMode]
+method = true
+args = []
+
+[selene.structs.Plugin.GetMouse]
+method = true
+args = []
+
+[selene.structs.Plugin.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.Plugin.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GetSelectedRibbonTool]
+method = true
+args = []
+
+[selene.structs.Plugin.GetSetting]
+method = true
+
+[[selene.structs.Plugin.GetSetting.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.GridSize]
+property = true
+
+[selene.structs.Plugin.ImportFbxAnimation]
+method = true
+
+[[selene.structs.Plugin.ImportFbxAnimation.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.ImportFbxAnimation.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.ImportFbxRig]
+method = true
+
+[[selene.structs.Plugin.ImportFbxRig.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Invoke]
+method = true
+
+[[selene.structs.Plugin.Invoke.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.Invoke.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.IsA]
+method = true
+
+[[selene.structs.Plugin.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.IsActivated]
+method = true
+args = []
+
+[selene.structs.Plugin.IsActivatedWithExclusiveMouse]
+method = true
+args = []
+
+[selene.structs.Plugin.IsAncestorOf]
+method = true
+
+[[selene.structs.Plugin.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.IsDescendantOf]
+method = true
+
+[[selene.structs.Plugin.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.Plugin.Negate]
+method = true
+
+[[selene.structs.Plugin.Negate.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.OnInvoke]
+method = true
+
+[[selene.structs.Plugin.OnInvoke.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.OnInvoke.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.OnSetItem]
+method = true
+
+[[selene.structs.Plugin.OnSetItem.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.OnSetItem.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.OpenScript]
+method = true
+
+[[selene.structs.Plugin.OpenScript.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.OpenScript.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.OpenWikiPage]
+method = true
+
+[[selene.structs.Plugin.OpenWikiPage.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Parent]
+struct = "Instance"
+
+[selene.structs.Plugin.PauseSound]
+method = true
+
+[[selene.structs.Plugin.PauseSound.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.PlaySound]
+method = true
+
+[[selene.structs.Plugin.PlaySound.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.PlaySound.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.PromptForExistingAssetId]
+method = true
+
+[[selene.structs.Plugin.PromptForExistingAssetId.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.PromptSaveSelection]
+method = true
+
+[[selene.structs.Plugin.PromptSaveSelection.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.ResumeSound]
+method = true
+
+[[selene.structs.Plugin.ResumeSound.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.SaveSelectedToRoblox]
+method = true
+args = []
+
+[selene.structs.Plugin.SelectRibbonTool]
+method = true
+
+[[selene.structs.Plugin.SelectRibbonTool.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.SelectRibbonTool.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Separate]
+method = true
+
+[[selene.structs.Plugin.Separate.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.SetAttribute]
+method = true
+
+[[selene.structs.Plugin.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.SetItem]
+method = true
+
+[[selene.structs.Plugin.SetItem.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.SetItem.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.SetSetting]
+method = true
+
+[[selene.structs.Plugin.SetSetting.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.SetSetting.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.StartDecalDrag]
+method = true
+
+[[selene.structs.Plugin.StartDecalDrag.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.StartDrag]
+method = true
+
+[[selene.structs.Plugin.StartDrag.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.StopAllSounds]
+method = true
+args = []
+
+[selene.structs.Plugin.Union]
+method = true
+
+[[selene.structs.Plugin.Union.args]]
+required = false
+type = "any"
+
+[selene.structs.Plugin.Unloading]
+struct = "Event"
+
+[selene.structs.Plugin.WaitForChild]
+method = true
+
+[[selene.structs.Plugin.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Plugin.WaitForChild.args]]
+required = false
+type = "any"
+[selene.structs.Script."*"]
+struct = "Instance"
+
+[selene.structs.Script.AncestryChanged]
+struct = "Event"
+
+[selene.structs.Script.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.Script.AttributeChanged]
+struct = "Event"
+
+[selene.structs.Script.Changed]
+struct = "Event"
+
+[selene.structs.Script.ChildAdded]
+struct = "Event"
+
+[selene.structs.Script.ChildRemoved]
+struct = "Event"
+
+[selene.structs.Script.ClassName]
+property = true
+
+[selene.structs.Script.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.Script.Clone]
+method = true
+args = []
+
+[selene.structs.Script.CurrentEditor]
+struct = "Instance"
+
+[selene.structs.Script.DescendantAdded]
+struct = "Event"
+
+[selene.structs.Script.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.Script.Destroy]
+method = true
+args = []
+
+[selene.structs.Script.Disabled]
+property = true
+writable = "overridden"
+
+[selene.structs.Script.FindFirstAncestor]
+method = true
+
+[[selene.structs.Script.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.Script.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.Script.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.FindFirstChild]
+method = true
+
+[[selene.structs.Script.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Script.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.Script.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.Script.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.Script.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.GetActor]
+method = true
+args = []
+
+[selene.structs.Script.GetAttribute]
+method = true
+
+[[selene.structs.Script.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.Script.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.GetAttributes]
+method = true
+args = []
+
+[selene.structs.Script.GetChildren]
+method = true
+args = []
+
+[selene.structs.Script.GetDebugId]
+method = true
+
+[[selene.structs.Script.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.GetDescendants]
+method = true
+args = []
+
+[selene.structs.Script.GetFullName]
+method = true
+args = []
+
+[selene.structs.Script.GetHash]
+method = true
+args = []
+
+[selene.structs.Script.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.Script.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.IsA]
+method = true
+
+[[selene.structs.Script.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.IsAncestorOf]
+method = true
+
+[[selene.structs.Script.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.IsDescendantOf]
+method = true
+
+[[selene.structs.Script.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.LinkedSource]
+property = true
+writable = "overridden"
+
+[selene.structs.Script.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.Script.Parent]
+struct = "Instance"
+
+[selene.structs.Script.SetAttribute]
+method = true
+
+[[selene.structs.Script.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.Script.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Script.WaitForChild]
+method = true
+
+[[selene.structs.Script.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Script.WaitForChild.args]]
+required = false
+type = "any"
+[selene.structs.Workspace."*"]
+struct = "Instance"
+
+[selene.structs.Workspace.AllowThirdPartySales]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.AncestryChanged]
+struct = "Event"
+
+[selene.structs.Workspace.Archivable]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.ArePartsTouchingOthers]
+method = true
+
+[[selene.structs.Workspace.ArePartsTouchingOthers.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.ArePartsTouchingOthers.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.AttributeChanged]
+struct = "Event"
+
+[selene.structs.Workspace.BreakJoints]
+method = true
+args = []
+
+[selene.structs.Workspace.BulkMoveTo]
+method = true
+
+[[selene.structs.Workspace.BulkMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.BulkMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.BulkMoveTo.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.CalculateJumpDistance]
+method = true
+
+[[selene.structs.Workspace.CalculateJumpDistance.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.CalculateJumpDistance.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.CalculateJumpDistance.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.CalculateJumpHeight]
+method = true
+
+[[selene.structs.Workspace.CalculateJumpHeight.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.CalculateJumpHeight.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.CalculateJumpPower]
+method = true
+
+[[selene.structs.Workspace.CalculateJumpPower.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.CalculateJumpPower.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.Changed]
+struct = "Event"
+
+[selene.structs.Workspace.ChildAdded]
+struct = "Event"
+
+[selene.structs.Workspace.ChildRemoved]
+struct = "Event"
+
+[selene.structs.Workspace.ClassName]
+property = true
+
+[selene.structs.Workspace.ClearAllChildren]
+method = true
+args = []
+
+[selene.structs.Workspace.Clone]
+method = true
+args = []
+
+[selene.structs.Workspace.CurrentCamera]
+struct = "Camera"
+
+[selene.structs.Workspace.DescendantAdded]
+struct = "Event"
+
+[selene.structs.Workspace.DescendantRemoving]
+struct = "Event"
+
+[selene.structs.Workspace.Destroy]
+method = true
+args = []
+
+[selene.structs.Workspace.DistributedGameTime]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.ExperimentalSolverIsEnabled]
+method = true
+args = []
+
+[selene.structs.Workspace.FindFirstAncestor]
+method = true
+
+[[selene.structs.Workspace.FindFirstAncestor.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindFirstAncestorOfClass]
+method = true
+
+[[selene.structs.Workspace.FindFirstAncestorOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindFirstAncestorWhichIsA]
+method = true
+
+[[selene.structs.Workspace.FindFirstAncestorWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindFirstChild]
+method = true
+
+[[selene.structs.Workspace.FindFirstChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindFirstChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindFirstChildOfClass]
+method = true
+
+[[selene.structs.Workspace.FindFirstChildOfClass.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindFirstChildWhichIsA]
+method = true
+
+[[selene.structs.Workspace.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindFirstChildWhichIsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindPartsInRegion3]
+method = true
+
+[[selene.structs.Workspace.FindPartsInRegion3.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindPartsInRegion3WithIgnoreList]
+method = true
+
+[[selene.structs.Workspace.FindPartsInRegion3WithIgnoreList.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3WithIgnoreList.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3WithIgnoreList.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.FindPartsInRegion3WithWhiteList]
+method = true
+
+[[selene.structs.Workspace.FindPartsInRegion3WithWhiteList.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3WithWhiteList.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.FindPartsInRegion3WithWhiteList.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.GetActor]
+method = true
+args = []
+
+[selene.structs.Workspace.GetAttribute]
+method = true
+
+[[selene.structs.Workspace.GetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.GetAttributeChangedSignal]
+method = true
+
+[[selene.structs.Workspace.GetAttributeChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.GetAttributes]
+method = true
+args = []
+
+[selene.structs.Workspace.GetBoundingBox]
+method = true
+args = []
+
+[selene.structs.Workspace.GetChildren]
+method = true
+args = []
+
+[selene.structs.Workspace.GetDebugId]
+method = true
+
+[[selene.structs.Workspace.GetDebugId.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.GetDescendants]
+method = true
+args = []
+
+[selene.structs.Workspace.GetExtentsSize]
+method = true
+args = []
+
+[selene.structs.Workspace.GetFullName]
+method = true
+args = []
+
+[selene.structs.Workspace.GetNumAwakeParts]
+method = true
+args = []
+
+[selene.structs.Workspace.GetPhysicsThrottling]
+method = true
+args = []
+
+[selene.structs.Workspace.GetPrimaryPartCFrame]
+method = true
+args = []
+
+[selene.structs.Workspace.GetPropertyChangedSignal]
+method = true
+
+[[selene.structs.Workspace.GetPropertyChangedSignal.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.GetRealPhysicsFPS]
+method = true
+args = []
+
+[selene.structs.Workspace.Gravity]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.IKMoveTo]
+method = true
+
+[[selene.structs.Workspace.IKMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IKMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IKMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IKMoveTo.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IKMoveTo.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.IsA]
+method = true
+
+[[selene.structs.Workspace.IsA.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.IsAncestorOf]
+method = true
+
+[[selene.structs.Workspace.IsAncestorOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.IsDescendantOf]
+method = true
+
+[[selene.structs.Workspace.IsDescendantOf.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.IsRegion3Empty]
+method = true
+
+[[selene.structs.Workspace.IsRegion3Empty.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IsRegion3Empty.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.IsRegion3EmptyWithIgnoreList]
+method = true
+
+[[selene.structs.Workspace.IsRegion3EmptyWithIgnoreList.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.IsRegion3EmptyWithIgnoreList.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.JoinToOutsiders]
+method = true
+
+[[selene.structs.Workspace.JoinToOutsiders.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.JoinToOutsiders.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.MakeJoints]
+method = true
+args = []
+
+[selene.structs.Workspace.MeshPartHeads]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.MoveTo]
+method = true
+
+[[selene.structs.Workspace.MoveTo.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.Name]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.PGSIsEnabled]
+method = true
+args = []
+
+[selene.structs.Workspace.Parent]
+struct = "Instance"
+
+[selene.structs.Workspace.PhysicsSimulationRate]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.PrimaryPart]
+struct = "BasePart"
+
+[selene.structs.Workspace.Raycast]
+method = true
+
+[[selene.structs.Workspace.Raycast.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.Raycast.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.Raycast.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.SetAttribute]
+method = true
+
+[[selene.structs.Workspace.SetAttribute.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.SetAttribute.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.SetInsertPoint]
+method = true
+
+[[selene.structs.Workspace.SetInsertPoint.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.SetInsertPoint.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.SetMeshPartHeads]
+method = true
+
+[[selene.structs.Workspace.SetMeshPartHeads.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.SetPhysicsThrottleEnabled]
+method = true
+
+[[selene.structs.Workspace.SetPhysicsThrottleEnabled.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.SetPrimaryPartCFrame]
+method = true
+
+[[selene.structs.Workspace.SetPrimaryPartCFrame.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.StreamingMinRadius]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.StreamingPauseMode]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.StreamingTargetRadius]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.Terrain]
+struct = "Instance"
+
+[selene.structs.Workspace.TouchesUseCollisionGroups]
+property = true
+writable = "overridden"
+
+[selene.structs.Workspace.TranslateBy]
+method = true
+
+[[selene.structs.Workspace.TranslateBy.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.UnjoinFromOutsiders]
+method = true
+
+[[selene.structs.Workspace.UnjoinFromOutsiders.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.WaitForChild]
+method = true
+
+[[selene.structs.Workspace.WaitForChild.args]]
+required = false
+type = "any"
+
+[[selene.structs.Workspace.WaitForChild.args]]
+required = false
+type = "any"
+
+[selene.structs.Workspace.ZoomToExtents]
+method = true
+args = []
+[[Axes.new.args]]
+type = "..."
+[BrickColor.Black]
+args = []
+
+[BrickColor.Blue]
+args = []
+
+[BrickColor.DarkGray]
+args = []
+
+[BrickColor.Gray]
+args = []
+
+[BrickColor.Green]
+args = []
+
+[BrickColor.Red]
+args = []
+
+[BrickColor.White]
+args = []
+
+[BrickColor.Yellow]
+args = []
+[[BrickColor.new.args]]
+type = "any"
+
+[[BrickColor.new.args]]
+required = false
+type = "number"
+
+[[BrickColor.new.args]]
+required = false
+type = "number"
+[[BrickColor.palette.args]]
+type = "number"
+
+[BrickColor.random]
+args = []
+[[CFrame.Angles.args]]
+required = false
+type = "number"
+
+[[CFrame.Angles.args]]
+required = false
+type = "number"
+
+[[CFrame.Angles.args]]
+required = false
+type = "number"
+[[CFrame.fromAxisAngle.args]]
+[CFrame.fromAxisAngle.args.type]
+display = "Vector3"
+
+[[CFrame.fromAxisAngle.args]]
+type = "number"
+[[CFrame.fromEulerAnglesXYZ.args]]
+type = "number"
+
+[[CFrame.fromEulerAnglesXYZ.args]]
+type = "number"
+
+[[CFrame.fromEulerAnglesXYZ.args]]
+type = "number"
+[[CFrame.fromEulerAnglesYXZ.args]]
+type = "number"
+
+[[CFrame.fromEulerAnglesYXZ.args]]
+type = "number"
+
+[[CFrame.fromEulerAnglesYXZ.args]]
+type = "number"
+[[CFrame.fromMatrix.args]]
+[CFrame.fromMatrix.args.type]
+display = "Vector3"
+
+[[CFrame.fromMatrix.args]]
+[CFrame.fromMatrix.args.type]
+display = "Vector3"
+
+[[CFrame.fromMatrix.args]]
+[CFrame.fromMatrix.args.type]
+display = "Vector3"
+
+[[CFrame.fromMatrix.args]]
+required = false
+
+[CFrame.fromMatrix.args.type]
+display = "Vector3"
+[[CFrame.fromOrientation.args]]
+type = "number"
+
+[[CFrame.fromOrientation.args]]
+type = "number"
+
+[[CFrame.fromOrientation.args]]
+type = "number"
+[[CFrame.lookAt.args]]
+[CFrame.lookAt.args.type]
+display = "Vector3"
+
+[[CFrame.lookAt.args]]
+[CFrame.lookAt.args.type]
+display = "Vector3"
+
+[[CFrame.lookAt.args]]
+required = false
+
+[CFrame.lookAt.args.type]
+display = "Vector3"
+[[CFrame.new.args]]
+required = false
+type = "any"
+
+[[CFrame.new.args]]
+required = false
+type = "any"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+
+[[CFrame.new.args]]
+required = false
+type = "number"
+[[Color3.fromHSV.args]]
+type = "number"
+
+[[Color3.fromHSV.args]]
+type = "number"
+
+[[Color3.fromHSV.args]]
+type = "number"
+[[Color3.fromRGB.args]]
+type = "number"
+
+[[Color3.fromRGB.args]]
+type = "number"
+
+[[Color3.fromRGB.args]]
+type = "number"
+[[Color3.new.args]]
+required = false
+type = "number"
+
+[[Color3.new.args]]
+required = false
+type = "number"
+
+[[Color3.new.args]]
+required = false
+type = "number"
+[[Color3.toHSV.args]]
+[Color3.toHSV.args.type]
+display = "Color3"
+[[ColorSequence.new.args]]
+type = "any"
+
+[[ColorSequence.new.args]]
+required = false
+
+[ColorSequence.new.args.type]
+display = "Color3"
+[[ColorSequenceKeypoint.new.args]]
+type = "number"
+
+[[ColorSequenceKeypoint.new.args]]
+[ColorSequenceKeypoint.new.args.type]
+display = "Color3"
+[[DateTime.fromIsoDate.args]]
+type = "string"
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromLocalTime.args]]
+required = false
+type = "number"
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+
+[[DateTime.fromUniversalTime.args]]
+required = false
+type = "number"
+[[DateTime.fromUnixTimestamp.args]]
+type = "number"
+[[DateTime.fromUnixTimestampMillis.args]]
+type = "number"
+
+[DateTime.now]
+args = []
+
+[DebuggerManager]
+args = []
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+
+[DockWidgetPluginGuiInfo.new.args.type]
+display = "InitialDockState"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "bool"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "bool"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "number"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "number"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "number"
+
+[[DockWidgetPluginGuiInfo.new.args]]
+required = false
+type = "number"
+[Enum.ABTestLoadingStatus.Error]
+struct = "EnumItem"
+
+[Enum.ABTestLoadingStatus.GetEnumItems]
+args = []
+method = true
+
+[Enum.ABTestLoadingStatus.Initialized]
+struct = "EnumItem"
+
+[Enum.ABTestLoadingStatus.None]
+struct = "EnumItem"
+
+[Enum.ABTestLoadingStatus.Pending]
+struct = "EnumItem"
+
+[Enum.ABTestLoadingStatus.ShutOff]
+struct = "EnumItem"
+
+[Enum.ABTestLoadingStatus.TimedOut]
+struct = "EnumItem"
+[Enum.ActionType.Draw]
+struct = "EnumItem"
+
+[Enum.ActionType.GetEnumItems]
+args = []
+method = 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
+
+[Enum.ActuatorRelativeTo.World]
+struct = "EnumItem"
+[Enum.ActuatorType.GetEnumItems]
+args = []
+method = true
+
+[Enum.ActuatorType.Motor]
+struct = "EnumItem"
+
+[Enum.ActuatorType.None]
+struct = "EnumItem"
+
+[Enum.ActuatorType.Servo]
+struct = "EnumItem"
+[Enum.AdornCullingMode.Automatic]
+struct = "EnumItem"
+
+[Enum.AdornCullingMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.AdornCullingMode.Never]
+struct = "EnumItem"
+[Enum.AlignType.GetEnumItems]
+args = []
+method = true
+
+[Enum.AlignType.Parallel]
+struct = "EnumItem"
+
+[Enum.AlignType.Perpendicular]
+struct = "EnumItem"
+[Enum.AlphaMode.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[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
+[Enum.AnimationPriority.Action]
+struct = "EnumItem"
+
+[Enum.AnimationPriority.Core]
+struct = "EnumItem"
+
+[Enum.AnimationPriority.GetEnumItems]
+args = []
+method = true
+
+[Enum.AnimationPriority.Idle]
+struct = "EnumItem"
+
+[Enum.AnimationPriority.Movement]
+struct = "EnumItem"
+[Enum.AppShellActionType.AvatarEditorPageLoaded]
+struct = "EnumItem"
+
+[Enum.AppShellActionType.GamePageLoaded]
+struct = "EnumItem"
+
+[Enum.AppShellActionType.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.AppUpdateStatus.NotAvailable]
+struct = "EnumItem"
+
+[Enum.AppUpdateStatus.NotSupported]
+struct = "EnumItem"
+
+[Enum.AppUpdateStatus.Unknown]
+struct = "EnumItem"
+[Enum.AspectType.FitWithinMaxSize]
+struct = "EnumItem"
+
+[Enum.AspectType.GetEnumItems]
+args = []
+method = true
+
+[Enum.AspectType.ScaleWithParentSize]
+struct = "EnumItem"
+[Enum.AssetFetchStatus.Failure]
+struct = "EnumItem"
+
+[Enum.AssetFetchStatus.GetEnumItems]
+args = []
+method = true
+
+[Enum.AssetFetchStatus.Success]
+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.EarAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.EmoteAnimation]
+struct = "EnumItem"
+
+[Enum.AssetType.EyeAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.Face]
+struct = "EnumItem"
+
+[Enum.AssetType.FaceAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.FallAnimation]
+struct = "EnumItem"
+
+[Enum.AssetType.FrontAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.GamePass]
+struct = "EnumItem"
+
+[Enum.AssetType.Gear]
+struct = "EnumItem"
+
+[Enum.AssetType.GetEnumItems]
+args = []
+method = 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.JumpAnimation]
+struct = "EnumItem"
+
+[Enum.AssetType.LeftArm]
+struct = "EnumItem"
+
+[Enum.AssetType.LeftLeg]
+struct = "EnumItem"
+
+[Enum.AssetType.Lua]
+struct = "EnumItem"
+
+[Enum.AssetType.Mesh]
+struct = "EnumItem"
+
+[Enum.AssetType.MeshPart]
+struct = "EnumItem"
+
+[Enum.AssetType.Model]
+struct = "EnumItem"
+
+[Enum.AssetType.NeckAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.Package]
+struct = "EnumItem"
+
+[Enum.AssetType.Pants]
+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.RunAnimation]
+struct = "EnumItem"
+
+[Enum.AssetType.Shirt]
+struct = "EnumItem"
+
+[Enum.AssetType.ShoulderAccessory]
+struct = "EnumItem"
+
+[Enum.AssetType.SwimAnimation]
+struct = "EnumItem"
+
+[Enum.AssetType.TeeShirt]
+struct = "EnumItem"
+
+[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
+[Enum.AutoIndentRule.Absolute]
+struct = "EnumItem"
+
+[Enum.AutoIndentRule.GetEnumItems]
+args = []
+method = true
+
+[Enum.AutoIndentRule.Off]
+struct = "EnumItem"
+
+[Enum.AutoIndentRule.Relative]
+struct = "EnumItem"
+[Enum.AutomaticSize.GetEnumItems]
+args = []
+method = 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.EmoteAnimation]
+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
+
+[Enum.AvatarAssetType.HairAccessory]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.Hat]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.Head]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.IdleAnimation]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.JumpAnimation]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.LeftArm]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.LeftLeg]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.NeckAccessory]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.Pants]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.RightArm]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.RightLeg]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.RunAnimation]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.Shirt]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.ShoulderAccessory]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.SwimAnimation]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.TShirt]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.Torso]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.WaistAccessory]
+struct = "EnumItem"
+
+[Enum.AvatarAssetType.WalkAnimation]
+struct = "EnumItem"
+[Enum.AvatarContextMenuOption.Chat]
+struct = "EnumItem"
+
+[Enum.AvatarContextMenuOption.Emote]
+struct = "EnumItem"
+
+[Enum.AvatarContextMenuOption.Friend]
+struct = "EnumItem"
+
+[Enum.AvatarContextMenuOption.GetEnumItems]
+args = []
+method = true
+
+[Enum.AvatarContextMenuOption.InspectMenu]
+struct = "EnumItem"
+[Enum.AvatarItemType.Asset]
+struct = "EnumItem"
+
+[Enum.AvatarItemType.Bundle]
+struct = "EnumItem"
+
+[Enum.AvatarItemType.GetEnumItems]
+args = []
+method = true
+[Enum.AvatarJointPositionType.ArtistIntent]
+struct = "EnumItem"
+
+[Enum.AvatarJointPositionType.Fixed]
+struct = "EnumItem"
+
+[Enum.AvatarJointPositionType.GetEnumItems]
+args = []
+method = true
+[Enum.AvatarPromptResult.Failed]
+struct = "EnumItem"
+
+[Enum.AvatarPromptResult.GetEnumItems]
+args = []
+method = true
+
+[Enum.AvatarPromptResult.PermissionDenied]
+struct = "EnumItem"
+
+[Enum.AvatarPromptResult.Success]
+struct = "EnumItem"
+[Enum.Axis.GetEnumItems]
+args = []
+method = true
+
+[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
+
+[Enum.BinType.Grab]
+struct = "EnumItem"
+
+[Enum.BinType.Hammer]
+struct = "EnumItem"
+
+[Enum.BinType.Script]
+struct = "EnumItem"
+[Enum.BodyPart.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[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
+
+[Enum.BreakReason.Other]
+struct = "EnumItem"
+
+[Enum.BreakReason.SpecialBreakpoint]
+struct = "EnumItem"
+
+[Enum.BreakReason.UserBreakpoint]
+struct = "EnumItem"
+[Enum.BulkMoveMode.FireAllEvents]
+struct = "EnumItem"
+
+[Enum.BulkMoveMode.FireCFrameChanged]
+struct = "EnumItem"
+
+[Enum.BulkMoveMode.GetEnumItems]
+args = []
+method = true
+[Enum.BundleType.Animations]
+struct = "EnumItem"
+
+[Enum.BundleType.BodyParts]
+struct = "EnumItem"
+
+[Enum.BundleType.GetEnumItems]
+args = []
+method = true
+[Enum.Button.Dismount]
+struct = "EnumItem"
+
+[Enum.Button.GetEnumItems]
+args = []
+method = true
+
+[Enum.Button.Jump]
+struct = "EnumItem"
+[Enum.ButtonStyle.Custom]
+struct = "EnumItem"
+
+[Enum.ButtonStyle.GetEnumItems]
+args = []
+method = 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.CameraMode.Classic]
+struct = "EnumItem"
+
+[Enum.CameraMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.CameraMode.LockFirstPerson]
+struct = "EnumItem"
+[Enum.CameraPanMode.Classic]
+struct = "EnumItem"
+
+[Enum.CameraPanMode.EdgeBump]
+struct = "EnumItem"
+
+[Enum.CameraPanMode.GetEnumItems]
+args = []
+method = true
+[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
+
+[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
+
+[Enum.CatalogCategoryFilter.None]
+struct = "EnumItem"
+
+[Enum.CatalogCategoryFilter.Premium]
+struct = "EnumItem"
+[Enum.CatalogSortType.GetEnumItems]
+args = []
+method = true
+
+[Enum.CatalogSortType.MostFavorited]
+struct = "EnumItem"
+
+[Enum.CatalogSortType.PriceHighToLow]
+struct = "EnumItem"
+
+[Enum.CatalogSortType.PriceLowToHigh]
+struct = "EnumItem"
+
+[Enum.CatalogSortType.RecentlyUpdated]
+struct = "EnumItem"
+
+[Enum.CatalogSortType.Relevance]
+struct = "EnumItem"
+[Enum.CellBlock.CornerWedge]
+struct = "EnumItem"
+
+[Enum.CellBlock.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[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
+
+[Enum.CenterDialogType.ModalDialog]
+struct = "EnumItem"
+
+[Enum.CenterDialogType.PlayerInitiatedDialog]
+struct = "EnumItem"
+
+[Enum.CenterDialogType.QuitDialog]
+struct = "EnumItem"
+
+[Enum.CenterDialogType.UnsolicitedDialog]
+struct = "EnumItem"
+[Enum.ChatCallbackType.GetEnumItems]
+args = []
+method = 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
+
+[Enum.ChatColor.Green]
+struct = "EnumItem"
+
+[Enum.ChatColor.Red]
+struct = "EnumItem"
+
+[Enum.ChatColor.White]
+struct = "EnumItem"
+[Enum.ChatMode.GetEnumItems]
+args = []
+method = 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
+
+[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
+[Enum.CollisionFidelity.Box]
+struct = "EnumItem"
+
+[Enum.CollisionFidelity.Default]
+struct = "EnumItem"
+
+[Enum.CollisionFidelity.GetEnumItems]
+args = []
+method = true
+
+[Enum.CollisionFidelity.Hull]
+struct = "EnumItem"
+
+[Enum.CollisionFidelity.PreciseConvexDecomposition]
+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
+
+[Enum.ComputerCameraMovementMode.Orbital]
+struct = "EnumItem"
+[Enum.ComputerMovementMode.ClickToMove]
+struct = "EnumItem"
+
+[Enum.ComputerMovementMode.Default]
+struct = "EnumItem"
+
+[Enum.ComputerMovementMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.ComputerMovementMode.KeyboardMouse]
+struct = "EnumItem"
+[Enum.ConnectionError.DisconnectBadhash]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectBlockedIP]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectBySecurityPolicy]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectCloudEditKick]
+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.DisconnectNewSecurityKeyMismatch]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectOnRemoteSysStats]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectPlayerless]
+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.DisconnectSecurityKeyMismatch]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectSendPacketError]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectTimeout]
+struct = "EnumItem"
+
+[Enum.ConnectionError.DisconnectWrongVersion]
+struct = "EnumItem"
+
+[Enum.ConnectionError.GetEnumItems]
+args = []
+method = true
+
+[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.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.ConnectionState.Connected]
+struct = "EnumItem"
+
+[Enum.ConnectionState.Disconnected]
+struct = "EnumItem"
+
+[Enum.ConnectionState.GetEnumItems]
+args = []
+method = true
+[Enum.ContextActionPriority.Default]
+struct = "EnumItem"
+
+[Enum.ContextActionPriority.GetEnumItems]
+args = []
+method = true
+
+[Enum.ContextActionPriority.High]
+struct = "EnumItem"
+
+[Enum.ContextActionPriority.Low]
+struct = "EnumItem"
+
+[Enum.ContextActionPriority.Medium]
+struct = "EnumItem"
+[Enum.ContextActionResult.GetEnumItems]
+args = []
+method = true
+
+[Enum.ContextActionResult.Pass]
+struct = "EnumItem"
+
+[Enum.ContextActionResult.Sink]
+struct = "EnumItem"
+[Enum.ControlMode.Classic]
+struct = "EnumItem"
+
+[Enum.ControlMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.ControlMode.MouseLockSwitch]
+struct = "EnumItem"
+[Enum.CoreGuiType.All]
+struct = "EnumItem"
+
+[Enum.CoreGuiType.Backpack]
+struct = "EnumItem"
+
+[Enum.CoreGuiType.Chat]
+struct = "EnumItem"
+
+[Enum.CoreGuiType.EmotesMenu]
+struct = "EnumItem"
+
+[Enum.CoreGuiType.GetEnumItems]
+args = []
+method = true
+
+[Enum.CoreGuiType.Health]
+struct = "EnumItem"
+
+[Enum.CoreGuiType.PlayerList]
+struct = "EnumItem"
+[Enum.CreatorType.GetEnumItems]
+args = []
+method = true
+
+[Enum.CreatorType.Group]
+struct = "EnumItem"
+
+[Enum.CreatorType.User]
+struct = "EnumItem"
+[Enum.CurrencyType.Default]
+struct = "EnumItem"
+
+[Enum.CurrencyType.GetEnumItems]
+args = []
+method = 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
+[Enum.DataStoreRequestType.GetAsync]
+struct = "EnumItem"
+
+[Enum.DataStoreRequestType.GetEnumItems]
+args = []
+method = true
+
+[Enum.DataStoreRequestType.GetSortedAsync]
+struct = "EnumItem"
+
+[Enum.DataStoreRequestType.OnUpdate]
+struct = "EnumItem"
+
+[Enum.DataStoreRequestType.SetIncrementAsync]
+struct = "EnumItem"
+
+[Enum.DataStoreRequestType.SetIncrementSortedAsync]
+struct = "EnumItem"
+
+[Enum.DataStoreRequestType.UpdateAsync]
+struct = "EnumItem"
+[Enum.DevCameraOcclusionMode.GetEnumItems]
+args = []
+method = 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
+
+[Enum.DevComputerCameraMovementMode.Orbital]
+struct = "EnumItem"
+
+[Enum.DevComputerCameraMovementMode.UserChoice]
+struct = "EnumItem"
+[Enum.DevComputerMovementMode.ClickToMove]
+struct = "EnumItem"
+
+[Enum.DevComputerMovementMode.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[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.GetEnumItems]
+args = []
+method = 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
+
+[Enum.DeviceType.Phone]
+struct = "EnumItem"
+
+[Enum.DeviceType.Tablet]
+struct = "EnumItem"
+
+[Enum.DeviceType.Unknown]
+struct = "EnumItem"
+[Enum.DialogBehaviorType.GetEnumItems]
+args = []
+method = true
+
+[Enum.DialogBehaviorType.MultiplePlayers]
+struct = "EnumItem"
+
+[Enum.DialogBehaviorType.SinglePlayer]
+struct = "EnumItem"
+[Enum.DialogPurpose.GetEnumItems]
+args = []
+method = 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
+
+[Enum.DialogTone.Neutral]
+struct = "EnumItem"
+[Enum.DominantAxis.GetEnumItems]
+args = []
+method = 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
+
+[Enum.DraftStatusCode.OK]
+struct = "EnumItem"
+
+[Enum.DraftStatusCode.ScriptRemoved]
+struct = "EnumItem"
+[Enum.EasingDirection.GetEnumItems]
+args = []
+method = 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
+
+[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.ElasticBehavior.Always]
+struct = "EnumItem"
+
+[Enum.ElasticBehavior.GetEnumItems]
+args = []
+method = 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
+
+[Enum.EnviromentalPhysicsThrottle.Skip16]
+struct = "EnumItem"
+
+[Enum.EnviromentalPhysicsThrottle.Skip2]
+struct = "EnumItem"
+
+[Enum.EnviromentalPhysicsThrottle.Skip4]
+struct = "EnumItem"
+
+[Enum.EnviromentalPhysicsThrottle.Skip8]
+struct = "EnumItem"
+[Enum.ExplosionType.Craters]
+struct = "EnumItem"
+
+[Enum.ExplosionType.GetEnumItems]
+args = []
+method = true
+
+[Enum.ExplosionType.NoCraters]
+struct = "EnumItem"
+[Enum.FieldOfViewMode.Diagonal]
+struct = "EnumItem"
+
+[Enum.FieldOfViewMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.FieldOfViewMode.MaxAxis]
+struct = "EnumItem"
+
+[Enum.FieldOfViewMode.Vertical]
+struct = "EnumItem"
+[Enum.FillDirection.GetEnumItems]
+args = []
+method = true
+
+[Enum.FillDirection.Horizontal]
+struct = "EnumItem"
+
+[Enum.FillDirection.Vertical]
+struct = "EnumItem"
+[Enum.FilterResult.Accepted]
+struct = "EnumItem"
+
+[Enum.FilterResult.GetEnumItems]
+args = []
+method = true
+
+[Enum.FilterResult.Rejected]
+struct = "EnumItem"
+[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
+
+[Enum.Font.Gotham]
+struct = "EnumItem"
+
+[Enum.Font.GothamBlack]
+struct = "EnumItem"
+
+[Enum.Font.GothamBold]
+struct = "EnumItem"
+
+[Enum.Font.GothamSemibold]
+struct = "EnumItem"
+
+[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.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.FontSize.GetEnumItems]
+args = []
+method = 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.FormFactor.Brick]
+struct = "EnumItem"
+
+[Enum.FormFactor.Custom]
+struct = "EnumItem"
+
+[Enum.FormFactor.GetEnumItems]
+args = []
+method = 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
+
+[Enum.FrameStyle.RobloxRound]
+struct = "EnumItem"
+
+[Enum.FrameStyle.RobloxSquare]
+struct = "EnumItem"
+[Enum.FramerateManagerMode.Automatic]
+struct = "EnumItem"
+
+[Enum.FramerateManagerMode.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.FriendStatus.NotFriend]
+struct = "EnumItem"
+
+[Enum.FriendStatus.Unknown]
+struct = "EnumItem"
+[Enum.FunctionalTestResult.Error]
+struct = "EnumItem"
+
+[Enum.FunctionalTestResult.GetEnumItems]
+args = []
+method = true
+
+[Enum.FunctionalTestResult.Passed]
+struct = "EnumItem"
+
+[Enum.FunctionalTestResult.Warning]
+struct = "EnumItem"
+[Enum.GameAvatarType.GetEnumItems]
+args = []
+method = 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
+
+[Enum.GearGenreSetting.MatchingGenreOnly]
+struct = "EnumItem"
+[Enum.GearType.BuildingTools]
+struct = "EnumItem"
+
+[Enum.GearType.Explosives]
+struct = "EnumItem"
+
+[Enum.GearType.GetEnumItems]
+args = []
+method = 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
+
+[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.GraphicsMode.Automatic]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.Direct3D11]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.Direct3D9]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.GraphicsMode.Metal]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.NoGraphics]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.OpenGL]
+struct = "EnumItem"
+
+[Enum.GraphicsMode.Vulkan]
+struct = "EnumItem"
+[Enum.HandlesStyle.GetEnumItems]
+args = []
+method = true
+
+[Enum.HandlesStyle.Movement]
+struct = "EnumItem"
+
+[Enum.HandlesStyle.Resize]
+struct = "EnumItem"
+[Enum.HorizontalAlignment.Center]
+struct = "EnumItem"
+
+[Enum.HorizontalAlignment.GetEnumItems]
+args = []
+method = true
+
+[Enum.HorizontalAlignment.Left]
+struct = "EnumItem"
+
+[Enum.HorizontalAlignment.Right]
+struct = "EnumItem"
+[Enum.HoverAnimateSpeed.Fast]
+struct = "EnumItem"
+
+[Enum.HoverAnimateSpeed.GetEnumItems]
+args = []
+method = 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
+
+[Enum.HttpCachePolicy.InternalRedirectRefresh]
+struct = "EnumItem"
+
+[Enum.HttpCachePolicy.None]
+struct = "EnumItem"
+[Enum.HttpContentType.ApplicationJson]
+struct = "EnumItem"
+
+[Enum.HttpContentType.ApplicationUrlEncoded]
+struct = "EnumItem"
+
+[Enum.HttpContentType.ApplicationXml]
+struct = "EnumItem"
+
+[Enum.HttpContentType.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.HttpRequestType.Localization]
+struct = "EnumItem"
+
+[Enum.HttpRequestType.MarketplaceService]
+struct = "EnumItem"
+
+[Enum.HttpRequestType.Players]
+struct = "EnumItem"
+[Enum.HumanoidCollisionType.GetEnumItems]
+args = []
+method = true
+
+[Enum.HumanoidCollisionType.InnerBox]
+struct = "EnumItem"
+
+[Enum.HumanoidCollisionType.OuterBox]
+struct = "EnumItem"
+[Enum.HumanoidDisplayDistanceType.GetEnumItems]
+args = []
+method = 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
+[Enum.HumanoidRigType.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.IKCollisionsMode.IncludeContactedMechanisms]
+struct = "EnumItem"
+
+[Enum.IKCollisionsMode.NoCollisions]
+struct = "EnumItem"
+
+[Enum.IKCollisionsMode.OtherMechanismsAnchored]
+struct = "EnumItem"
+[Enum.InOut.Center]
+struct = "EnumItem"
+
+[Enum.InOut.Edge]
+struct = "EnumItem"
+
+[Enum.InOut.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.InitialDockState.Left]
+struct = "EnumItem"
+
+[Enum.InitialDockState.Right]
+struct = "EnumItem"
+
+[Enum.InitialDockState.Top]
+struct = "EnumItem"
+[Enum.InputType.Constant]
+struct = "EnumItem"
+
+[Enum.InputType.GetEnumItems]
+args = []
+method = true
+
+[Enum.InputType.NoInput]
+struct = "EnumItem"
+
+[Enum.InputType.Sin]
+struct = "EnumItem"
+[Enum.InterpolationThrottlingMode.Default]
+struct = "EnumItem"
+
+[Enum.InterpolationThrottlingMode.Disabled]
+struct = "EnumItem"
+
+[Enum.InterpolationThrottlingMode.Enabled]
+struct = "EnumItem"
+
+[Enum.InterpolationThrottlingMode.GetEnumItems]
+args = []
+method = true
+[Enum.JointCreationMode.All]
+struct = "EnumItem"
+
+[Enum.JointCreationMode.GetEnumItems]
+args = []
+method = 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
+
+[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.KeywordFilterType.Exclude]
+struct = "EnumItem"
+
+[Enum.KeywordFilterType.GetEnumItems]
+args = []
+method = true
+
+[Enum.KeywordFilterType.Include]
+struct = "EnumItem"
+[Enum.Language.Default]
+struct = "EnumItem"
+
+[Enum.Language.GetEnumItems]
+args = []
+method = true
+[Enum.LanguagePreference.English]
+struct = "EnumItem"
+
+[Enum.LanguagePreference.GetEnumItems]
+args = []
+method = true
+
+[Enum.LanguagePreference.Korean]
+struct = "EnumItem"
+
+[Enum.LanguagePreference.SimplifiedChinese]
+struct = "EnumItem"
+
+[Enum.LanguagePreference.SystemDefault]
+struct = "EnumItem"
+[Enum.LeftRight.Center]
+struct = "EnumItem"
+
+[Enum.LeftRight.GetEnumItems]
+args = []
+method = true
+
+[Enum.LeftRight.Left]
+struct = "EnumItem"
+
+[Enum.LeftRight.Right]
+struct = "EnumItem"
+[Enum.LevelOfDetailSetting.GetEnumItems]
+args = []
+method = true
+
+[Enum.LevelOfDetailSetting.High]
+struct = "EnumItem"
+
+[Enum.LevelOfDetailSetting.Low]
+struct = "EnumItem"
+
+[Enum.LevelOfDetailSetting.Medium]
+struct = "EnumItem"
+[Enum.Limb.GetEnumItems]
+args = []
+method = 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.ListDisplayMode.GetEnumItems]
+args = []
+method = 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
+
+[Enum.ListenerType.ObjectCFrame]
+struct = "EnumItem"
+
+[Enum.ListenerType.ObjectPosition]
+struct = "EnumItem"
+[Enum.Material.Air]
+struct = "EnumItem"
+
+[Enum.Material.Asphalt]
+struct = "EnumItem"
+
+[Enum.Material.Basalt]
+struct = "EnumItem"
+
+[Enum.Material.Brick]
+struct = "EnumItem"
+
+[Enum.Material.Cobblestone]
+struct = "EnumItem"
+
+[Enum.Material.Concrete]
+struct = "EnumItem"
+
+[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
+
+[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.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.Plastic]
+struct = "EnumItem"
+
+[Enum.Material.Rock]
+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.MembershipType.BuildersClub]
+struct = "EnumItem"
+
+[Enum.MembershipType.GetEnumItems]
+args = []
+method = 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
+
+[Enum.MeshPartDetailLevel.Level01]
+struct = "EnumItem"
+
+[Enum.MeshPartDetailLevel.Level02]
+struct = "EnumItem"
+
+[Enum.MeshPartDetailLevel.Level03]
+struct = "EnumItem"
+
+[Enum.MeshPartDetailLevel.Level04]
+struct = "EnumItem"
+[Enum.MeshPartHeads.Default]
+struct = "EnumItem"
+
+[Enum.MeshPartHeads.Disabled]
+struct = "EnumItem"
+
+[Enum.MeshPartHeads.Enabled]
+struct = "EnumItem"
+
+[Enum.MeshPartHeads.GetEnumItems]
+args = []
+method = true
+[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
+
+[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
+
+[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
+
+[Enum.ModelLevelOfDetail.StreamingMesh]
+struct = "EnumItem"
+[Enum.ModifierKey.Alt]
+struct = "EnumItem"
+
+[Enum.ModifierKey.Ctrl]
+struct = "EnumItem"
+
+[Enum.ModifierKey.GetEnumItems]
+args = []
+method = true
+
+[Enum.ModifierKey.Meta]
+struct = "EnumItem"
+
+[Enum.ModifierKey.Shift]
+struct = "EnumItem"
+[Enum.MouseBehavior.Default]
+struct = "EnumItem"
+
+[Enum.MouseBehavior.GetEnumItems]
+args = []
+method = 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
+
+[Enum.MoveState.Pushing]
+struct = "EnumItem"
+
+[Enum.MoveState.Stopped]
+struct = "EnumItem"
+
+[Enum.MoveState.Stopping]
+struct = "EnumItem"
+[Enum.NameOcclusion.EnemyOcclusion]
+struct = "EnumItem"
+
+[Enum.NameOcclusion.GetEnumItems]
+args = []
+method = true
+
+[Enum.NameOcclusion.NoOcclusion]
+struct = "EnumItem"
+
+[Enum.NameOcclusion.OccludeAll]
+struct = "EnumItem"
+[Enum.NetworkOwnership.Automatic]
+struct = "EnumItem"
+
+[Enum.NetworkOwnership.GetEnumItems]
+args = []
+method = true
+
+[Enum.NetworkOwnership.Manual]
+struct = "EnumItem"
+
+[Enum.NetworkOwnership.OnContact]
+struct = "EnumItem"
+[Enum.NormalId.Back]
+struct = "EnumItem"
+
+[Enum.NormalId.Bottom]
+struct = "EnumItem"
+
+[Enum.NormalId.Front]
+struct = "EnumItem"
+
+[Enum.NormalId.GetEnumItems]
+args = []
+method = true
+
+[Enum.NormalId.Left]
+struct = "EnumItem"
+
+[Enum.NormalId.Right]
+struct = "EnumItem"
+
+[Enum.NormalId.Top]
+struct = "EnumItem"
+[Enum.OutputLayoutMode.GetEnumItems]
+args = []
+method = 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
+
+[Enum.OverrideMouseIconBehavior.None]
+struct = "EnumItem"
+[Enum.PacketPriority.GetEnumItems]
+args = []
+method = true
+
+[Enum.PacketPriority.HIGH_PRIORITY]
+struct = "EnumItem"
+
+[Enum.PacketPriority.IMMEDIATE_PRIORITY]
+struct = "EnumItem"
+
+[Enum.PacketPriority.LOW_PRIORITY]
+struct = "EnumItem"
+
+[Enum.PacketPriority.MEDIUM_PRIORITY]
+struct = "EnumItem"
+[Enum.PartType.Ball]
+struct = "EnumItem"
+
+[Enum.PartType.Block]
+struct = "EnumItem"
+
+[Enum.PartType.Cylinder]
+struct = "EnumItem"
+
+[Enum.PartType.GetEnumItems]
+args = []
+method = true
+[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
+
+[Enum.PathStatus.NoPath]
+struct = "EnumItem"
+
+[Enum.PathStatus.Success]
+struct = "EnumItem"
+[Enum.PathWaypointAction.GetEnumItems]
+args = []
+method = true
+
+[Enum.PathWaypointAction.Jump]
+struct = "EnumItem"
+
+[Enum.PathWaypointAction.Walk]
+struct = "EnumItem"
+[Enum.PermissionLevelShown.Game]
+struct = "EnumItem"
+
+[Enum.PermissionLevelShown.GetEnumItems]
+args = []
+method = 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
+[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
+
+[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.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
+
+[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
+[Enum.PlayerChatType.All]
+struct = "EnumItem"
+
+[Enum.PlayerChatType.GetEnumItems]
+args = []
+method = true
+
+[Enum.PlayerChatType.Team]
+struct = "EnumItem"
+
+[Enum.PlayerChatType.Whisper]
+struct = "EnumItem"
+[Enum.PoseEasingDirection.GetEnumItems]
+args = []
+method = 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
+
+[Enum.PoseEasingStyle.Linear]
+struct = "EnumItem"
+[Enum.PrivilegeType.Admin]
+struct = "EnumItem"
+
+[Enum.PrivilegeType.Banned]
+struct = "EnumItem"
+
+[Enum.PrivilegeType.GetEnumItems]
+args = []
+method = true
+
+[Enum.PrivilegeType.Member]
+struct = "EnumItem"
+
+[Enum.PrivilegeType.Owner]
+struct = "EnumItem"
+
+[Enum.PrivilegeType.Visitor]
+struct = "EnumItem"
+[Enum.ProductPurchaseDecision.GetEnumItems]
+args = []
+method = true
+
+[Enum.ProductPurchaseDecision.NotProcessedYet]
+struct = "EnumItem"
+
+[Enum.ProductPurchaseDecision.PurchaseGranted]
+struct = "EnumItem"
+[Enum.ProximityPromptExclusivity.AlwaysShow]
+struct = "EnumItem"
+
+[Enum.ProximityPromptExclusivity.GetEnumItems]
+args = []
+method = true
+
+[Enum.ProximityPromptExclusivity.OneGlobally]
+struct = "EnumItem"
+
+[Enum.ProximityPromptExclusivity.OnePerButton]
+struct = "EnumItem"
+[Enum.ProximityPromptInputType.Gamepad]
+struct = "EnumItem"
+
+[Enum.ProximityPromptInputType.GetEnumItems]
+args = []
+method = 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
+[Enum.QualityLevel.Automatic]
+struct = "EnumItem"
+
+[Enum.QualityLevel.GetEnumItems]
+args = []
+method = true
+
+[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
+
+[Enum.R15CollisionType.InnerBox]
+struct = "EnumItem"
+
+[Enum.R15CollisionType.OuterBox]
+struct = "EnumItem"
+[Enum.RaycastFilterType.Blacklist]
+struct = "EnumItem"
+
+[Enum.RaycastFilterType.GetEnumItems]
+args = []
+method = true
+
+[Enum.RaycastFilterType.Whitelist]
+struct = "EnumItem"
+[Enum.RenderFidelity.Automatic]
+struct = "EnumItem"
+
+[Enum.RenderFidelity.GetEnumItems]
+args = []
+method = 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
+
+[Enum.RenderPriority.Input]
+struct = "EnumItem"
+
+[Enum.RenderPriority.Last]
+struct = "EnumItem"
+[Enum.RenderingTestComparisonMethod.GetEnumItems]
+args = []
+method = true
+
+[Enum.RenderingTestComparisonMethod.diff]
+struct = "EnumItem"
+
+[Enum.RenderingTestComparisonMethod.psnr]
+struct = "EnumItem"
+[Enum.ReturnKeyType.Default]
+struct = "EnumItem"
+
+[Enum.ReturnKeyType.Done]
+struct = "EnumItem"
+
+[Enum.ReturnKeyType.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.RibbonTool.Group]
+struct = "EnumItem"
+
+[Enum.RibbonTool.MaterialPicker]
+struct = "EnumItem"
+
+[Enum.RibbonTool.Move]
+struct = "EnumItem"
+
+[Enum.RibbonTool.None]
+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.RollOffMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.RollOffMode.Inverse]
+struct = "EnumItem"
+
+[Enum.RollOffMode.InverseTapered]
+struct = "EnumItem"
+
+[Enum.RollOffMode.Linear]
+struct = "EnumItem"
+
+[Enum.RollOffMode.LinearSquare]
+struct = "EnumItem"
+[Enum.RotationType.CameraRelative]
+struct = "EnumItem"
+
+[Enum.RotationType.GetEnumItems]
+args = []
+method = true
+
+[Enum.RotationType.MovementRelative]
+struct = "EnumItem"
+[Enum.RuntimeUndoBehavior.Aggregate]
+struct = "EnumItem"
+
+[Enum.RuntimeUndoBehavior.GetEnumItems]
+args = []
+method = true
+
+[Enum.RuntimeUndoBehavior.Hybrid]
+struct = "EnumItem"
+
+[Enum.RuntimeUndoBehavior.Snapshot]
+struct = "EnumItem"
+[Enum.SaveFilter.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.ScaleType.Slice]
+struct = "EnumItem"
+
+[Enum.ScaleType.Stretch]
+struct = "EnumItem"
+
+[Enum.ScaleType.Tile]
+struct = "EnumItem"
+[Enum.ScreenOrientation.GetEnumItems]
+args = []
+method = 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
+
+[Enum.ScrollBarInset.None]
+struct = "EnumItem"
+
+[Enum.ScrollBarInset.ScrollBar]
+struct = "EnumItem"
+[Enum.ScrollingDirection.GetEnumItems]
+args = []
+method = true
+
+[Enum.ScrollingDirection.X]
+struct = "EnumItem"
+
+[Enum.ScrollingDirection.XY]
+struct = "EnumItem"
+
+[Enum.ScrollingDirection.Y]
+struct = "EnumItem"
+[Enum.ServerAudioBehavior.Enabled]
+struct = "EnumItem"
+
+[Enum.ServerAudioBehavior.GetEnumItems]
+args = []
+method = true
+
+[Enum.ServerAudioBehavior.Muted]
+struct = "EnumItem"
+
+[Enum.ServerAudioBehavior.OnlineGame]
+struct = "EnumItem"
+[Enum.SizeConstraint.GetEnumItems]
+args = []
+method = true
+
+[Enum.SizeConstraint.RelativeXX]
+struct = "EnumItem"
+
+[Enum.SizeConstraint.RelativeXY]
+struct = "EnumItem"
+
+[Enum.SizeConstraint.RelativeYY]
+struct = "EnumItem"
+[Enum.SortOrder.Custom]
+struct = "EnumItem"
+
+[Enum.SortOrder.GetEnumItems]
+args = []
+method = true
+
+[Enum.SortOrder.LayoutOrder]
+struct = "EnumItem"
+
+[Enum.SortOrder.Name]
+struct = "EnumItem"
+[Enum.SoundType.Boing]
+struct = "EnumItem"
+
+[Enum.SoundType.Bomb]
+struct = "EnumItem"
+
+[Enum.SoundType.Break]
+struct = "EnumItem"
+
+[Enum.SoundType.Click]
+struct = "EnumItem"
+
+[Enum.SoundType.Clock]
+struct = "EnumItem"
+
+[Enum.SoundType.GetEnumItems]
+args = []
+method = true
+
+[Enum.SoundType.NoSound]
+struct = "EnumItem"
+
+[Enum.SoundType.Page]
+struct = "EnumItem"
+
+[Enum.SoundType.Ping]
+struct = "EnumItem"
+
+[Enum.SoundType.Slingshot]
+struct = "EnumItem"
+
+[Enum.SoundType.Snap]
+struct = "EnumItem"
+
+[Enum.SoundType.Splat]
+struct = "EnumItem"
+
+[Enum.SoundType.Step]
+struct = "EnumItem"
+
+[Enum.SoundType.StepOn]
+struct = "EnumItem"
+
+[Enum.SoundType.Swoosh]
+struct = "EnumItem"
+
+[Enum.SoundType.Victory]
+struct = "EnumItem"
+[Enum.SpecialKey.ChatHotkey]
+struct = "EnumItem"
+
+[Enum.SpecialKey.End]
+struct = "EnumItem"
+
+[Enum.SpecialKey.GetEnumItems]
+args = []
+method = 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
+
+[Enum.StartCorner.TopLeft]
+struct = "EnumItem"
+
+[Enum.StartCorner.TopRight]
+struct = "EnumItem"
+[Enum.Status.Confusion]
+struct = "EnumItem"
+
+[Enum.Status.GetEnumItems]
+args = []
+method = true
+
+[Enum.Status.Poison]
+struct = "EnumItem"
+[Enum.StreamingPauseMode.ClientPhysicsPause]
+struct = "EnumItem"
+
+[Enum.StreamingPauseMode.Default]
+struct = "EnumItem"
+
+[Enum.StreamingPauseMode.Disabled]
+struct = "EnumItem"
+
+[Enum.StreamingPauseMode.GetEnumItems]
+args = []
+method = true
+[Enum.StudioDataModelType.Edit]
+struct = "EnumItem"
+
+[Enum.StudioDataModelType.GetEnumItems]
+args = []
+method = true
+
+[Enum.StudioDataModelType.None]
+struct = "EnumItem"
+
+[Enum.StudioDataModelType.PlayClient]
+struct = "EnumItem"
+
+[Enum.StudioDataModelType.PlayServer]
+struct = "EnumItem"
+
+[Enum.StudioDataModelType.RobloxPlugin]
+struct = "EnumItem"
+
+[Enum.StudioDataModelType.UserPlugin]
+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.Error]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.FindSelectionBackground]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.Function]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.FunctionName]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.GetEnumItems]
+args = []
+method = true
+
+[Enum.StudioScriptEditorColorCategories.Keyword]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.Local]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.LuauKeyword]
+struct = "EnumItem"
+
+[Enum.StudioScriptEditorColorCategories.MatchingWordBackground]
+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
+
+[Enum.StudioScriptEditorColorPresets.RobloxDefault]
+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.Dropdown]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.EmulatorBar]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.EmulatorDropDown]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.ErrorText]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.GameSettingsTableItem]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.GameSettingsTooltip]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideColor.GetEnumItems]
+args = []
+method = 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.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.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
+
+[Enum.StudioStyleGuideModifier.Hover]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideModifier.Pressed]
+struct = "EnumItem"
+
+[Enum.StudioStyleGuideModifier.Selected]
+struct = "EnumItem"
+[Enum.Style.AlternatingSupports]
+struct = "EnumItem"
+
+[Enum.Style.BridgeStyleSupports]
+struct = "EnumItem"
+
+[Enum.Style.GetEnumItems]
+args = []
+method = true
+
+[Enum.Style.NoSupports]
+struct = "EnumItem"
+[Enum.SurfaceConstraint.GetEnumItems]
+args = []
+method = true
+
+[Enum.SurfaceConstraint.Hinge]
+struct = "EnumItem"
+
+[Enum.SurfaceConstraint.Motor]
+struct = "EnumItem"
+
+[Enum.SurfaceConstraint.None]
+struct = "EnumItem"
+
+[Enum.SurfaceConstraint.SteppingMotor]
+struct = "EnumItem"
+[Enum.SurfaceGuiSizingMode.FixedSize]
+struct = "EnumItem"
+
+[Enum.SurfaceGuiSizingMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.SurfaceGuiSizingMode.PixelsPerStud]
+struct = "EnumItem"
+[Enum.SurfaceType.GetEnumItems]
+args = []
+method = 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.SteppingMotor]
+struct = "EnumItem"
+
+[Enum.SurfaceType.Studs]
+struct = "EnumItem"
+
+[Enum.SurfaceType.Universal]
+struct = "EnumItem"
+
+[Enum.SurfaceType.Weld]
+struct = "EnumItem"
+[Enum.SwipeDirection.Down]
+struct = "EnumItem"
+
+[Enum.SwipeDirection.GetEnumItems]
+args = []
+method = 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
+
+[Enum.TableMajorAxis.RowMajor]
+struct = "EnumItem"
+[Enum.Technology.Compatibility]
+struct = "EnumItem"
+
+[Enum.Technology.Future]
+struct = "EnumItem"
+
+[Enum.Technology.GetEnumItems]
+args = []
+method = true
+
+[Enum.Technology.Legacy]
+struct = "EnumItem"
+
+[Enum.Technology.ShadowMap]
+struct = "EnumItem"
+
+[Enum.Technology.Voxel]
+struct = "EnumItem"
+[Enum.TeleportMethod.GetEnumItems]
+args = []
+method = true
+
+[Enum.TeleportMethod.TeleportPartyAsync]
+struct = "EnumItem"
+
+[Enum.TeleportMethod.TeleportToPlaceInstance]
+struct = "EnumItem"
+
+[Enum.TeleportMethod.TeleportToPrivateServer]
+struct = "EnumItem"
+
+[Enum.TeleportMethod.TeleportToSpawnByName]
+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
+
+[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
+
+[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
+
+[Enum.TeleportType.ToInstance]
+struct = "EnumItem"
+
+[Enum.TeleportType.ToPlace]
+struct = "EnumItem"
+
+[Enum.TeleportType.ToReservedServer]
+struct = "EnumItem"
+[Enum.TextFilterContext.GetEnumItems]
+args = []
+method = 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
+
+[Enum.TextInputType.NoSuggestions]
+struct = "EnumItem"
+
+[Enum.TextInputType.Number]
+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
+
+[Enum.TextTruncate.None]
+struct = "EnumItem"
+[Enum.TextXAlignment.Center]
+struct = "EnumItem"
+
+[Enum.TextXAlignment.GetEnumItems]
+args = []
+method = 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
+
+[Enum.TextYAlignment.Top]
+struct = "EnumItem"
+[Enum.TextureMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.TextureMode.Static]
+struct = "EnumItem"
+
+[Enum.TextureMode.Stretch]
+struct = "EnumItem"
+
+[Enum.TextureMode.Wrap]
+struct = "EnumItem"
+[Enum.TextureQueryType.GetEnumItems]
+args = []
+method = 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
+
+[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
+[Enum.ThumbnailSize.GetEnumItems]
+args = []
+method = 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
+
+[Enum.ThumbnailType.HeadShot]
+struct = "EnumItem"
+[Enum.TickCountSampleMethod.Benchmark]
+struct = "EnumItem"
+
+[Enum.TickCountSampleMethod.Fast]
+struct = "EnumItem"
+
+[Enum.TickCountSampleMethod.GetEnumItems]
+args = []
+method = true
+
+[Enum.TickCountSampleMethod.Precise]
+struct = "EnumItem"
+[Enum.TopBottom.Bottom]
+struct = "EnumItem"
+
+[Enum.TopBottom.Center]
+struct = "EnumItem"
+
+[Enum.TopBottom.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[Enum.TouchMovementMode.Thumbpad]
+struct = "EnumItem"
+
+[Enum.TouchMovementMode.Thumbstick]
+struct = "EnumItem"
+[Enum.TriStateBoolean.False]
+struct = "EnumItem"
+
+[Enum.TriStateBoolean.GetEnumItems]
+args = []
+method = 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
+[Enum.UITheme.Dark]
+struct = "EnumItem"
+
+[Enum.UITheme.GetEnumItems]
+args = []
+method = true
+
+[Enum.UITheme.Light]
+struct = "EnumItem"
+[Enum.UiMessageType.GetEnumItems]
+args = []
+method = true
+
+[Enum.UiMessageType.UiMessageError]
+struct = "EnumItem"
+
+[Enum.UiMessageType.UiMessageInfo]
+struct = "EnumItem"
+[Enum.UserCFrame.GetEnumItems]
+args = []
+method = 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
+
+[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
+
+[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.VRTouchpad.GetEnumItems]
+args = []
+method = true
+
+[Enum.VRTouchpad.Left]
+struct = "EnumItem"
+
+[Enum.VRTouchpad.Right]
+struct = "EnumItem"
+[Enum.VRTouchpadMode.ABXY]
+struct = "EnumItem"
+
+[Enum.VRTouchpadMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.VRTouchpadMode.Touch]
+struct = "EnumItem"
+
+[Enum.VRTouchpadMode.VirtualThumbstick]
+struct = "EnumItem"
+[Enum.VerticalAlignment.Bottom]
+struct = "EnumItem"
+
+[Enum.VerticalAlignment.Center]
+struct = "EnumItem"
+
+[Enum.VerticalAlignment.GetEnumItems]
+args = []
+method = true
+
+[Enum.VerticalAlignment.Top]
+struct = "EnumItem"
+[Enum.VerticalScrollBarPosition.GetEnumItems]
+args = []
+method = true
+
+[Enum.VerticalScrollBarPosition.Left]
+struct = "EnumItem"
+
+[Enum.VerticalScrollBarPosition.Right]
+struct = "EnumItem"
+[Enum.VibrationMotor.GetEnumItems]
+args = []
+method = 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.VirtualInputMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.VirtualInputMode.None]
+struct = "EnumItem"
+
+[Enum.VirtualInputMode.Playing]
+struct = "EnumItem"
+
+[Enum.VirtualInputMode.Recording]
+struct = "EnumItem"
+[Enum.WaterDirection.GetEnumItems]
+args = []
+method = 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
+
+[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.WrapLayerDebugMode.BoundCage]
+struct = "EnumItem"
+
+[Enum.WrapLayerDebugMode.BoundCageAndLinks]
+struct = "EnumItem"
+
+[Enum.WrapLayerDebugMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.WrapLayerDebugMode.LayerCage]
+struct = "EnumItem"
+
+[Enum.WrapLayerDebugMode.None]
+struct = "EnumItem"
+
+[Enum.WrapLayerDebugMode.Reference]
+struct = "EnumItem"
+[Enum.WrapTargetDebugMode.GetEnumItems]
+args = []
+method = true
+
+[Enum.WrapTargetDebugMode.None]
+struct = "EnumItem"
+
+[Enum.WrapTargetDebugMode.TargetCage]
+struct = "EnumItem"
+[Enum.ZIndexBehavior.GetEnumItems]
+args = []
+method = true
+
+[Enum.ZIndexBehavior.Global]
+struct = "EnumItem"
+
+[Enum.ZIndexBehavior.Sibling]
+struct = "EnumItem"
+[[Faces.new.args]]
+type = "..."
+[[Instance.new.args]]
+type = ["Accoutrement", "Accessory", "Hat", "AdvancedDragger", "AnalyticsService", "Animation", "AnimationController", "Animator", "Atmosphere", "Attachment", "Bone", "Backpack", "HopperBin", "Tool", "Flag", "WrapLayer", "WrapTarget", "Beam", "BindableEvent", "BindableFunction", "BodyAngularVelocity", "BodyForce", "BodyGyro", "BodyPosition", "BodyThrust", "BodyVelocity", "RocketPropulsion", "Camera", "BodyColors", "CharacterMesh", "Pants", "Shirt", "ShirtGraphic", "Skin", "ClickDetector", "Clouds", "Configuration", "AlignOrientation", "AlignPosition", "AngularVelocity", "BallSocketConstraint", "HingeConstraint", "LineForce", "RodConstraint", "RopeConstraint", "CylindricalConstraint", "PrismaticConstraint", "SpringConstraint", "Torque", "UniversalConstraint", "VectorForce", "HumanoidController", "SkateboardController", "VehicleController", "CustomEvent", "CustomEventReceiver", "BlockMesh", "CylinderMesh", "FileMesh", "SpecialMesh", "DebuggerWatch", "Dialog", "DialogChoice", "Dragger", "Explosion", "Decal", "Texture", "Hole", "MotorFeature", "Fire", "FlyweightService", "CSGDictionaryService", "NonReplicatedCSGDictionaryService", "Folder", "ForceField", "FunctionalTest", "Frame", "ImageButton", "TextButton", "ImageLabel", "TextLabel", "ScrollingFrame", "TextBox", "VideoFrame", "ViewportFrame", "BillboardGui", "ScreenGui", "GuiMain", "SurfaceGui", "FloorWire", "SelectionBox", "BoxHandleAdornment", "ConeHandleAdornment", "CylinderHandleAdornment", "ImageHandleAdornment", "LineHandleAdornment", "SphereHandleAdornment", "ParabolaAdornment", "SelectionSphere", "ArcHandles", "Handles", "SurfaceSelection", "SelectionPartLasso", "SelectionPointLasso", "HeightmapImporterService", "Humanoid", "HumanoidDescription", "RotateP", "RotateV", "Glue", "ManualGlue", "ManualWeld", "Motor", "Motor6D", "Rotate", "Snap", "VelocityMotor", "Weld", "Keyframe", "KeyframeMarker", "KeyframeSequence", "PointLight", "SpotLight", "SurfaceLight", "LocalizationTable", "Script", "LocalScript", "ModuleScript", "Message", "Hint", "NoCollisionConstraint", "CornerWedgePart", "Part", "FlagStand", "Seat", "SkateboardPlatform", "SpawnLocation", "WedgePart", "MeshPart", "PartOperation", "NegateOperation", "UnionOperation", "TrussPart", "VehicleSeat", "Model", "Actor", "WorldModel", "PartOperationAsset", "ParticleEmitter", "Player", "PluginAction", "NumberPose", "Pose", "BloomEffect", "BlurEffect", "ColorCorrectionEffect", "DepthOfFieldEffect", "SunRaysEffect", "ProximityPrompt", "ProximityPromptService", "ReflectionMetadata", "ReflectionMetadataCallbacks", "ReflectionMetadataClasses", "ReflectionMetadataEnums", "ReflectionMetadataEvents", "ReflectionMetadataFunctions", "ReflectionMetadataClass", "ReflectionMetadataEnum", "ReflectionMetadataEnumItem", "ReflectionMetadataMember", "ReflectionMetadataProperties", "ReflectionMetadataYieldFunctions", "RemoteEvent", "RemoteFunction", "RenderingTest", "Sky", "Smoke", "Sound", "ChorusSoundEffect", "CompressorSoundEffect", "DistortionSoundEffect", "EchoSoundEffect", "EqualizerSoundEffect", "FlangeSoundEffect", "PitchShiftSoundEffect", "ReverbSoundEffect", "TremoloSoundEffect", "SoundGroup", "Sparkles", "StandalonePluginScripts", "StarterGear", "SurfaceAppearance", "Team", "TeleportOptions", "TerrainRegion", "TestService", "Trail", "Tween", "UIAspectRatioConstraint", "UISizeConstraint", "UITextSizeConstraint", "UICorner", "UIGradient", "UIGridLayout", "UIListLayout", "UIPageLayout", "UITableLayout", "UIPadding", "UIScale", "BinaryStringValue", "BoolValue", "BrickColorValue", "CFrameValue", "Color3Value", "DoubleConstrainedValue", "IntConstrainedValue", "IntValue", "NumberValue", "ObjectValue", "RayValue", "StringValue", "Vector3Value", "VirtualInputManager", "WeldConstraint"]
+[[NumberRange.new.args]]
+type = "number"
+
+[[NumberRange.new.args]]
+required = false
+type = "number"
+[[NumberSequence.new.args]]
+type = "any"
+
+[[NumberSequence.new.args]]
+required = false
+type = "number"
+[[NumberSequenceKeypoint.new.args]]
+type = "number"
+
+[[NumberSequenceKeypoint.new.args]]
+type = "number"
+
+[[NumberSequenceKeypoint.new.args]]
+required = false
+type = "number"
+[[PathWaypoint.new.args]]
+required = false
+
+[PathWaypoint.new.args.type]
+display = "Vector3"
+
+[[PathWaypoint.new.args]]
+required = false
+
+[PathWaypoint.new.args.type]
+display = "PathWaypointAction"
+[[PhysicalProperties.new.args]]
+type = "any"
+
+[[PhysicalProperties.new.args]]
+required = false
+type = "number"
+
+[[PhysicalProperties.new.args]]
+required = false
+type = "number"
+
+[[PhysicalProperties.new.args]]
+required = false
+type = "number"
+
+[[PhysicalProperties.new.args]]
+required = false
+type = "number"
+[[Random.new.args]]
+required = false
+type = "number"
+[[Ray.new.args]]
+[Ray.new.args.type]
+display = "Vector3"
+
+[[Ray.new.args]]
+[Ray.new.args.type]
+display = "Vector3"
+[RaycastParams.new]
+args = []
+[[Rect.new.args]]
+type = "any"
+
+[[Rect.new.args]]
+type = "any"
+
+[[Rect.new.args]]
+required = false
+type = "number"
+
+[[Rect.new.args]]
+required = false
+type = "number"
+[[Region3.new.args]]
+[Region3.new.args.type]
+display = "Vector3"
+
+[[Region3.new.args]]
+[Region3.new.args.type]
+display = "Vector3"
+[[Region3int16.new.args]]
+required = false
+
+[Region3int16.new.args.type]
+display = "Vector3"
+
+[[Region3int16.new.args]]
+required = false
+
+[Region3int16.new.args.type]
+display = "Vector3"
+[[TweenInfo.new.args]]
+required = false
+type = "number"
+
+[[TweenInfo.new.args]]
+required = false
+
+[TweenInfo.new.args.type]
+display = "EasingStyle"
+
+[[TweenInfo.new.args]]
+required = false
+
+[TweenInfo.new.args.type]
+display = "EasingDirection"
+
+[[TweenInfo.new.args]]
+required = false
+type = "number"
+
+[[TweenInfo.new.args]]
+required = false
+type = "bool"
+
+[[TweenInfo.new.args]]
+required = false
+type = "number"
+[[UDim.new.args]]
+required = false
+type = "number"
+
+[[UDim.new.args]]
+required = false
+type = "number"
+[[UDim2.fromOffset.args]]
+required = "use UDim2.new() if you want an empty UDim2"
+type = "number"
+
+[[UDim2.fromOffset.args]]
+required = false
+type = "number"
+[[UDim2.fromScale.args]]
+required = "use UDim2.new() if you want an empty UDim2"
+type = "number"
+
+[[UDim2.fromScale.args]]
+required = false
+type = "number"
+[[UDim2.new.args]]
+required = false
+type = "any"
+
+[[UDim2.new.args]]
+required = false
+type = "any"
+
+[[UDim2.new.args]]
+required = false
+type = "number"
+
+[[UDim2.new.args]]
+required = false
+type = "number"
+
+[UserSettings]
+args = []
+[[Vector2.new.args]]
+required = false
+type = "number"
+
+[[Vector2.new.args]]
+required = false
+type = "number"
+[[Vector2int16.new.args]]
+required = false
+type = "number"
+
+[[Vector2int16.new.args]]
+required = false
+type = "number"
+[[Vector3.FromAxis.args]]
+[Vector3.FromAxis.args.type]
+display = "Axis"
+[[Vector3.FromNormalId.args]]
+[Vector3.FromNormalId.args.type]
+display = "NormalId"
+[[Vector3.new.args]]
+required = false
+type = "number"
+
+[[Vector3.new.args]]
+required = false
+type = "number"
+
+[[Vector3.new.args]]
+required = false
+type = "number"
+[[Vector3int16.new.args]]
+required = false
+type = "number"
+
+[[Vector3int16.new.args]]
+required = false
+type = "number"
+
+[[Vector3int16.new.args]]
+required = false
+type = "number"
+[[bit32.arshift.args]]
+type = "number"
+
+[[bit32.arshift.args]]
+type = "number"
+[[bit32.band.args]]
+type = "..."
+[[bit32.bnot.args]]
+type = "number"
+[[bit32.bor.args]]
+type = "..."
+[[bit32.btest.args]]
+type = "..."
+[[bit32.bxor.args]]
+type = "..."
+[[bit32.extract.args]]
+type = "number"
+
+[[bit32.extract.args]]
+type = "number"
+
+[[bit32.extract.args]]
+required = false
+type = "number"
+[[bit32.lrotate.args]]
+type = "number"
+
+[[bit32.lrotate.args]]
+type = "number"
+[[bit32.lshift.args]]
+type = "number"
+
+[[bit32.lshift.args]]
+type = "number"
+[[bit32.replace.args]]
+type = "number"
+
+[[bit32.replace.args]]
+type = "number"
+
+[[bit32.replace.args]]
+required = false
+type = "number"
+[[bit32.rrotate.args]]
+type = "number"
+
+[[bit32.rrotate.args]]
+type = "number"
+[[bit32.rshift.args]]
+type = "number"
+
+[[bit32.rshift.args]]
+type = "number"
+[[collectgarbage.args]]
+type = ["count"]
+[coroutine.isyieldable]
+args = []
+[debug.debug]
+removed = true
+
+[debug.getfenv]
+removed = true
+
+[debug.gethook]
+removed = true
+
+[debug.getinfo]
+removed = true
+
+[debug.getlocal]
+removed = true
+
+[debug.getmetatable]
+removed = true
+
+[debug.getregistry]
+removed = true
+
+[debug.getupvalue]
+removed = true
+[[debug.profilebegin.args]]
+type = "string"
+
+[debug.profileend]
+args = []
+
+[debug.setfenv]
+removed = true
+
+[debug.sethook]
+removed = true
+
+[debug.setlocal]
+removed = true
+
+[debug.setmetatable]
+removed = true
+
+[debug.setupvalue]
+removed = true
+[[delay.args]]
+type = "number"
+
+[[delay.args]]
+type = "function"
+
+[dofile]
+removed = true
+
+[elapsedTime]
+args = []
+[[error.args]]
+required = "Erroring without an explanation is unhelpful to users."
+type = "any"
+
+[[error.args]]
+required = false
+type = "number"
+
+[game]
+struct = "DataModel"
+
+[io]
+removed = true
+
+[load]
+removed = true
+
+[loadfile]
+removed = true
+[[math.clamp.args]]
+type = "number"
+
+[[math.clamp.args]]
+type = "number"
+
+[[math.clamp.args]]
+type = "number"
+[[math.log.args]]
+type = "number"
+
+[[math.log.args]]
+required = false
+type = "number"
+[[math.noise.args]]
+type = "number"
+
+[[math.noise.args]]
+required = false
+type = "number"
+
+[[math.noise.args]]
+required = false
+type = "number"
+[[math.round.args]]
+type = "number"
+[[math.sign.args]]
+type = "number"
+
+[module]
+removed = true
+[os.execute]
+removed = true
+
+[os.exit]
+removed = true
+
+[os.getenv]
+removed = true
+
+[os.remove]
+removed = true
+
+[os.rename]
+removed = true
+
+[os.setlocale]
+removed = true
+
+[os.tmpname]
+removed = true
+
+[package]
+removed = true
+
+[plugin]
+struct = "Plugin"
+[[require.args]]
+type = "number"
+
+[script]
+struct = "Script"
+
+[settings]
+args = []
+
+[shared]
+property = true
+writable = "new-fields"
+[[spawn.args]]
+type = "function"
+[string.dump]
+removed = true
+[[string.pack.args]]
+type = "string"
+
+[[string.pack.args]]
+type = "..."
+[[string.packsize.args]]
+type = "string"
+[[string.split.args]]
+type = "string"
+
+[[string.split.args]]
+required = false
+type = "string"
+[[string.unpack.args]]
+type = "string"
+
+[[string.unpack.args]]
+type = "string"
+
+[[string.unpack.args]]
+required = false
+type = "number"
+[[table.clear.args]]
+type = "table"
+[[table.create.args]]
+type = "number"
+
+[[table.create.args]]
+required = false
+type = "any"
+[[table.find.args]]
+type = "table"
+
+[[table.find.args]]
+type = "any"
+
+[[table.find.args]]
+required = false
+type = "number"
+[[table.move.args]]
+type = "table"
+
+[[table.move.args]]
+type = "number"
+
+[[table.move.args]]
+type = "number"
+
+[[table.move.args]]
+type = "number"
+
+[[table.move.args]]
+required = false
+type = "table"
+[[table.pack.args]]
+type = "..."
+[[table.unpack.args]]
+type = "table"
+
+[[table.unpack.args]]
+required = false
+type = "number"
+
+[[table.unpack.args]]
+required = false
+type = "number"
+
+[tick]
+args = []
+
+[time]
+args = []
+[[typeof.args]]
+type = "any"
+[[utf8.char.args]]
+required = "utf8.char should be used with an argument despite it not throwing"
+type = "number"
+
+[[utf8.char.args]]
+required = false
+type = "..."
+
+[utf8.charpattern]
+property = true
+[[utf8.codepoint.args]]
+type = "string"
+
+[[utf8.codepoint.args]]
+required = false
+type = "number"
+
+[[utf8.codepoint.args]]
+required = false
+type = "number"
+[[utf8.codes.args]]
+type = "string"
+[[utf8.graphemes.args]]
+type = "string"
+
+[[utf8.graphemes.args]]
+required = false
+type = "number"
+
+[[utf8.graphemes.args]]
+required = false
+type = "number"
+[[utf8.len.args]]
+type = "string"
+
+[[utf8.len.args]]
+required = false
+type = "number"
+
+[[utf8.len.args]]
+required = false
+type = "number"
+[[utf8.nfcnormalize.args]]
+type = "string"
+[[utf8.nfdnormalize.args]]
+type = "string"
+[[utf8.offset.args]]
+type = "string"
+
+[[utf8.offset.args]]
+required = false
+type = "number"
+
+[[utf8.offset.args]]
+required = false
+type = "number"
+[[wait.args]]
+required = false
+type = "number"
+[[warn.args]]
+type = "string"
+
+[[warn.args]]
+required = false
+type = "..."
+
+[workspace]
+struct = "Workspace"
diff --git a/selene.toml b/selene.toml
new file mode 100644
index 0000000..ce33831
--- /dev/null
+++ b/selene.toml
@@ -0,0 +1,4 @@
+std = "roblox"
+
+[rules]
+parenthese_conditions = "allow"
diff --git a/src/ReplicatedStorage/LundstrongOrders/Events.model.json b/src/ReplicatedStorage/LundstrongOrders/Events.model.json
new file mode 100644
index 0000000..497003f
--- /dev/null
+++ b/src/ReplicatedStorage/LundstrongOrders/Events.model.json
@@ -0,0 +1,29 @@
+{
+ "ClassName": "Folder",
+ "Children": [
+ {
+ "Name": "claimOrder",
+ "ClassName": "RemoteEvent"
+ },
+ {
+ "Name": "completeOrder",
+ "ClassName": "RemoteEvent"
+ },
+ {
+ "Name": "createOrder",
+ "ClassName": "RemoteFunction"
+ },
+ {
+ "Name": "orderList",
+ "ClassName": "RemoteEvent"
+ },
+ {
+ "Name": "enableGui",
+ "ClassName": "RemoteEvent"
+ },
+ {
+ "Name": "sendNotification",
+ "ClassName": "RemoteEvent"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/ReplicatedStorage/LundstrongOrders/init.meta.json b/src/ReplicatedStorage/LundstrongOrders/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/ReplicatedStorage/LundstrongOrders/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/ReplicatedStorage/LundstrongOrders/notifHandler.lua b/src/ReplicatedStorage/LundstrongOrders/notifHandler.lua
new file mode 100644
index 0000000..ca4d64b
--- /dev/null
+++ b/src/ReplicatedStorage/LundstrongOrders/notifHandler.lua
@@ -0,0 +1,38 @@
+local tweenService = game:GetService("TweenService")
+local module = {}
+local path = {
+ ["Container"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.notification.notification.Container
+}
+
+function module:CreateNotification(notificationText: string, notificationTime: number?)
+ local clone = path.Container.Demo:Clone()
+ clone.Parent = path.Container
+ clone.Name = "Notification"
+ clone.Frame.textFrame.TextLabel.Text = notificationText
+
+ local tween1 = tweenService:Create(clone.Frame, TweenInfo.new(1), {
+ Position = UDim2.new(0.1, 0, 0.1, 0)
+ })
+ local tween2 = tweenService:Create(clone.Frame.Frame, TweenInfo.new(notificationTime or 5, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {
+ BackgroundColor3 = Color3.fromRGB(90, 137, 149),
+ Size = UDim2.new(0, 0, 0.05, 0)
+ })
+ local tween3 = tweenService:Create(clone.Frame, TweenInfo.new(1), {
+ Position = UDim2.new(0.1, 0, 1.1, 0)
+ })
+
+ tween1:Play()
+ game.Players.LocalPlayer.PlayerGui.LundstrongOrders.notification.Sound:Play()
+ tween1.Completed:Connect(function()
+ tween2:Play()
+ end)
+ tween2.Completed:Connect(function()
+ tween3:Play()
+ end)
+ tween3.Completed:Connect(function()
+ clone:Destroy()
+ end)
+end
+
+
+return module
diff --git a/src/ReplicatedStorage/LundstrongOrders/tween.lua b/src/ReplicatedStorage/LundstrongOrders/tween.lua
new file mode 100644
index 0000000..33ab4ca
--- /dev/null
+++ b/src/ReplicatedStorage/LundstrongOrders/tween.lua
@@ -0,0 +1,58 @@
+local tween = game:GetService("TweenService")
+local tweeninfo = TweenInfo.new(.75)
+local module = {}
+
+function module:Create(currentFrame: Frame, newFrame: Frame)
+ local tween1 = tween:Create(currentFrame.animFrame, tweeninfo, {Transparency = 0})
+ local tween2 = tween:Create(currentFrame.bgGreenAnim, tweeninfo, {ImageTransparency = 0})
+ local tween3 = tween:Create(currentFrame.exitButton, tweeninfo, {BackgroundTransparency = 1})
+ local tween4 = tween:Create(currentFrame.exitButton.TextButton, tweeninfo, {TextTransparency = 1})
+ local tween5 = tween:Create(newFrame.animFrame, tweeninfo, {Transparency = 1})
+ local tween6 = tween:Create(newFrame.bgGreenAnim, tweeninfo, {ImageTransparency = 1})
+ local tween7 = tween:Create(newFrame.exitButton, tweeninfo, {BackgroundTransparency = 0})
+ local tween8 = tween:Create(newFrame.exitButton.TextButton, tweeninfo, {TextTransparency = 0})
+ newFrame.animFrame.Transparency = 0
+ newFrame.bgGreenAnim.ImageTransparency = 0
+ newFrame.exitButton.BackgroundTransparency = 1
+ newFrame.exitButton.TextButton.TextTransparency = 1
+ tween1:Play()
+ tween2:Play()
+ tween3:Play()
+ tween4:Play()
+ tween4.Completed:Connect(function()
+ currentFrame.Visible = false
+ newFrame.Visible = true
+ wait(0.1)
+ tween5:Play()
+ tween6:Play()
+ tween7:Play()
+ tween8:Play()
+ end)
+ tween8.Completed:Connect(function()
+ print("Animation Complete")
+ currentFrame.animFrame.Transparency = 1
+ currentFrame.bgGreenAnim.ImageTransparency = 1
+ currentFrame.exitButton.BackgroundTransparency = 0
+ currentFrame.exitButton.TextButton.TextTransparency = 0
+ end)
+end
+
+function module:CreateExitTween(currentFrame: Frame)
+ local tween1 = tween:Create(currentFrame.animFrame, tweeninfo, {Transparency = 0})
+ local tween2 = tween:Create(currentFrame.bgGreenAnim, tweeninfo, {ImageTransparency = 0})
+ local tween3 = tween:Create(currentFrame.exitButton, tweeninfo, {BackgroundTransparency = 1})
+ local tween4 = tween:Create(currentFrame.exitButton.TextButton, tweeninfo, {TextTransparency = 1})
+ tween1:Play()
+ tween2:Play()
+ tween3:Play()
+ tween4:Play()
+ tween4.Completed:Connect(function()
+ currentFrame.Visible = false
+ currentFrame.animFrame.Transparency = 1
+ currentFrame.bgGreenAnim.ImageTransparency = 1
+ currentFrame.exitButton.BackgroundTransparency = 0
+ currentFrame.exitButton.TextButton.TextTransparency = 0
+ end)
+end
+
+return module
\ No newline at end of file
diff --git a/src/Server/LundstrongOrders/DataStore2/Constants.lua b/src/Server/LundstrongOrders/DataStore2/Constants.lua
new file mode 100644
index 0000000..4be6b10
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/Constants.lua
@@ -0,0 +1,13 @@
+local function symbol(text)
+ local symbol = newproxy(true)
+ getmetatable(symbol).__tostring = function() return text end
+ return symbol
+end
+
+return {
+ SaveFailure = {
+ BeforeSaveError = symbol("BeforeSaveError"),
+ DataStoreFailure = symbol("DataStoreFailure"),
+ InvalidData = symbol("InvalidData"),
+ }
+}
diff --git a/src/Server/LundstrongOrders/DataStore2/Promise.lua b/src/Server/LundstrongOrders/DataStore2/Promise.lua
new file mode 100644
index 0000000..25b994d
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/Promise.lua
@@ -0,0 +1,672 @@
+--[[
+ An implementation of Promises similar to Promise/A+.
+ Implemented by evaera/roblox-lua-promise
+ Licensed under the MIT license
+]]
+
+local RunService = game:GetService("RunService")
+local PROMISE_DEBUG = false
+
+--[[
+ Packs a number of arguments into a table and returns its length.
+
+ Used to cajole varargs without dropping sparse values.
+]]
+local function pack(...)
+ local len = select("#", ...)
+
+ return len, { ... }
+end
+
+--[[
+ wpcallPacked is a version of xpcall that:
+ * Returns the length of the result first
+ * Returns the result packed into a table
+ * Passes extra arguments through to the passed function; xpcall doesn't
+ * Issues a warning if PROMISE_DEBUG is enabled
+]]
+local function wpcallPacked(f, ...)
+ local argsLength, args = pack(...)
+
+ local body = function()
+ return f(unpack(args, 1, argsLength))
+ end
+
+ local resultLength, result = pack(xpcall(body, debug.traceback))
+
+ -- If promise debugging is on, warn whenever a pcall fails.
+ -- This is useful for debugging issues within the Promise implementation
+ -- itself.
+ if PROMISE_DEBUG and not result[1] then
+ warn(result[2])
+ end
+
+ return resultLength, result
+end
+
+--[[
+ Creates a function that invokes a callback with correct error handling and
+ resolution mechanisms.
+]]
+local function createAdvancer(callback, resolve, reject)
+ return function(...)
+ local resultLength, result = wpcallPacked(callback, ...)
+ local ok = result[1]
+
+ if ok then
+ resolve(unpack(result, 2, resultLength))
+ else
+ reject(unpack(result, 2, resultLength))
+ end
+ end
+end
+
+local function isEmpty(t)
+ return next(t) == nil
+end
+
+local function createSymbol(name)
+ assert(type(name) == "string", "createSymbol requires `name` to be a string.")
+
+ local symbol = newproxy(true)
+
+ getmetatable(symbol).__tostring = function()
+ return ("Symbol(%s)"):format(name)
+ end
+
+ return symbol
+end
+
+local PromiseMarker = createSymbol("PromiseMarker")
+
+local Promise = {}
+Promise.prototype = {}
+Promise.__index = Promise.prototype
+
+Promise.Status = {
+ Started = createSymbol("Started"),
+ Resolved = createSymbol("Resolved"),
+ Rejected = createSymbol("Rejected"),
+ Cancelled = createSymbol("Cancelled"),
+}
+
+--[[
+ Constructs a new Promise with the given initializing callback.
+
+ This is generally only called when directly wrapping a non-promise API into
+ a promise-based version.
+
+ The callback will receive 'resolve' and 'reject' methods, used to start
+ invoking the promise chain.
+
+ For example:
+
+ local function get(url)
+ return Promise.new(function(resolve, reject)
+ spawn(function()
+ resolve(HttpService:GetAsync(url))
+ end)
+ end)
+ end
+
+ get("https://google.com")
+ :andThen(function(stuff)
+ print("Got some stuff!", stuff)
+ end)
+
+ Second parameter, parent, is used internally for tracking the "parent" in a
+ promise chain. External code shouldn't need to worry about this.
+]]
+function Promise.new(callback, parent)
+ if parent ~= nil and not Promise.is(parent) then
+ error("Argument #2 to Promise.new must be a promise or nil", 2)
+ end
+
+ local self = {
+ -- Used to locate where a promise was created
+ _source = debug.traceback(),
+
+ -- A tag to identify us as a promise
+ [PromiseMarker] = true,
+
+ _status = Promise.Status.Started,
+
+ -- A table containing a list of all results, whether success or failure.
+ -- Only valid if _status is set to something besides Started
+ _values = nil,
+
+ -- Lua doesn't like sparse arrays very much, so we explicitly store the
+ -- length of _values to handle middle nils.
+ _valuesLength = -1,
+
+ -- Tracks if this Promise has no error observers..
+ _unhandledRejection = true,
+
+ -- Queues representing functions we should invoke when we update!
+ _queuedResolve = {},
+ _queuedReject = {},
+ _queuedFinally = {},
+
+ -- The function to run when/if this promise is cancelled.
+ _cancellationHook = nil,
+
+ -- The "parent" of this promise in a promise chain. Required for
+ -- cancellation propagation.
+ _parent = parent,
+
+ _consumers = setmetatable({}, {
+ __mode = "k";
+ }),
+ }
+
+ if parent and parent._status == Promise.Status.Started then
+ parent._consumers[self] = true
+ end
+
+ setmetatable(self, Promise)
+
+ local function resolve(...)
+ self:_resolve(...)
+ end
+
+ local function reject(...)
+ self:_reject(...)
+ end
+
+ local function onCancel(cancellationHook)
+ if cancellationHook then
+ if self._status == Promise.Status.Cancelled then
+ cancellationHook()
+ else
+ self._cancellationHook = cancellationHook
+ end
+ end
+
+ return self._status == Promise.Status.Cancelled
+ end
+
+ local _, result = wpcallPacked(callback, resolve, reject, onCancel)
+ local ok = result[1]
+ local err = result[2]
+
+ if not ok and self._status == Promise.Status.Started then
+ reject(err)
+ end
+
+ return self
+end
+
+--[[
+ Promise.new, except Promise.spawn is implicit.
+]]
+function Promise.async(callback)
+ return Promise.new(function(...)
+ return Promise.spawn(callback, ...)
+ end)
+end
+
+--[[
+ Spawns a thread with predictable timing.
+]]
+function Promise.spawn(callback, ...)
+ local args = { ... }
+ local length = select("#", ...)
+
+ local connection
+ connection = RunService.Heartbeat:Connect(function()
+ connection:Disconnect()
+ callback(unpack(args, 1, length))
+ end)
+end
+
+--[[
+ Create a promise that represents the immediately resolved value.
+]]
+function Promise.resolve(value)
+ return Promise.new(function(resolve)
+ resolve(value)
+ end)
+end
+
+--[[
+ Create a promise that represents the immediately rejected value.
+]]
+function Promise.reject(value)
+ return Promise.new(function(_, reject)
+ reject(value)
+ end)
+end
+
+--[[
+ Returns a new promise that:
+ * is resolved when all input promises resolve
+ * is rejected if ANY input promises reject
+]]
+function Promise.all(promises)
+ if type(promises) ~= "table" then
+ error("Please pass a list of promises to Promise.all", 2)
+ end
+
+ -- If there are no values then return an already resolved promise.
+ if #promises == 0 then
+ return Promise.resolve({})
+ end
+
+ -- We need to check that each value is a promise here so that we can produce
+ -- a proper error rather than a rejected promise with our error.
+ for i = 1, #promises do
+ if not Promise.is(promises[i]) then
+ error(("Non-promise value passed into Promise.all at index #%d"):format(i), 2)
+ end
+ end
+
+ return Promise.new(function(resolve, reject)
+ -- An array to contain our resolved values from the given promises.
+ local resolvedValues = {}
+
+ -- Keep a count of resolved promises because just checking the resolved
+ -- values length wouldn't account for promises that resolve with nil.
+ local resolvedCount = 0
+
+ -- Called when a single value is resolved and resolves if all are done.
+ local function resolveOne(i, ...)
+ resolvedValues[i] = ...
+ resolvedCount = resolvedCount + 1
+
+ if resolvedCount == #promises then
+ resolve(resolvedValues)
+ end
+ end
+
+ -- We can assume the values inside `promises` are all promises since we
+ -- checked above.
+ for i = 1, #promises do
+ promises[i]:andThen(
+ function(...)
+ resolveOne(i, ...)
+ end,
+ function(...)
+ reject(...)
+ end
+ )
+ end
+ end)
+end
+
+--[[
+ Races a set of Promises and returns the first one that resolves,
+ cancelling the others.
+]]
+function Promise.race(promises)
+ assert(type(promises) == "table", "Please pass a list of promises to Promise.race")
+
+ for i, promise in ipairs(promises) do
+ assert(Promise.is(promise), ("Non-promise value passed into Promise.race at index #%d"):format(i))
+ end
+
+ return Promise.new(function(resolve, reject, onCancel)
+ local function finalize(callback)
+ return function (...)
+ for _, promise in ipairs(promises) do
+ promise:cancel()
+ end
+
+ return callback(...)
+ end
+ end
+
+ onCancel(finalize(reject))
+
+ for _, promise in ipairs(promises) do
+ promise:andThen(finalize(resolve), finalize(reject))
+ end
+ end)
+end
+
+--[[
+ Is the given object a Promise instance?
+]]
+function Promise.is(object)
+ if type(object) ~= "table" then
+ return false
+ end
+
+ return object[PromiseMarker] == true
+end
+
+--[[
+ Converts a yielding function into a Promise-returning one.
+]]
+function Promise.promisify(callback, selfValue)
+ return function(...)
+ local length, values = pack(...)
+ return Promise.async(function(resolve)
+ if selfValue == nil then
+ resolve(callback(unpack(values, 1, length)))
+ else
+ resolve(callback(selfValue, unpack(values, 1, length)))
+ end
+ end)
+ end
+end
+
+function Promise.prototype:getStatus()
+ return self._status
+end
+
+--[[
+ Creates a new promise that receives the result of this promise.
+
+ The given callbacks are invoked depending on that result.
+]]
+function Promise.prototype:andThen(successHandler, failureHandler)
+ self._unhandledRejection = false
+
+ -- Create a new promise to follow this part of the chain
+ return Promise.new(function(resolve, reject)
+ -- Our default callbacks just pass values onto the next promise.
+ -- This lets success and failure cascade correctly!
+
+ local successCallback = resolve
+ if successHandler then
+ successCallback = createAdvancer(successHandler, resolve, reject)
+ end
+
+ local failureCallback = reject
+ if failureHandler then
+ failureCallback = createAdvancer(failureHandler, resolve, reject)
+ end
+
+ if self._status == Promise.Status.Started then
+ -- If we haven't resolved yet, put ourselves into the queue
+ table.insert(self._queuedResolve, successCallback)
+ table.insert(self._queuedReject, failureCallback)
+ elseif self._status == Promise.Status.Resolved then
+ -- This promise has already resolved! Trigger success immediately.
+ successCallback(unpack(self._values, 1, self._valuesLength))
+ elseif self._status == Promise.Status.Rejected then
+ -- This promise died a terrible death! Trigger failure immediately.
+ failureCallback(unpack(self._values, 1, self._valuesLength))
+ elseif self._status == Promise.Status.Cancelled then
+ -- We don't want to call the success handler or the failure handler,
+ -- we just reject this promise outright.
+ reject("Promise is cancelled")
+ end
+ end, self)
+end
+
+--[[
+ Used to catch any errors that may have occurred in the promise.
+]]
+function Promise.prototype:catch(failureCallback)
+ return self:andThen(nil, failureCallback)
+end
+
+--[[
+ Calls a callback on `andThen` with specific arguments.
+]]
+function Promise.prototype:andThenCall(callback, ...)
+ local length, values = pack(...)
+ return self:andThen(function()
+ return callback(unpack(values, 1, length))
+ end)
+end
+
+--[[
+ Cancels the promise, disallowing it from rejecting or resolving, and calls
+ the cancellation hook if provided.
+]]
+function Promise.prototype:cancel()
+ if self._status ~= Promise.Status.Started then
+ return
+ end
+
+ self._status = Promise.Status.Cancelled
+
+ if self._cancellationHook then
+ self._cancellationHook()
+ end
+
+ if self._parent then
+ self._parent:_consumerCancelled(self)
+ end
+
+ for child in pairs(self._consumers) do
+ child:cancel()
+ end
+
+ self:_finalize()
+end
+
+--[[
+ Used to decrease the number of consumers by 1, and if there are no more,
+ cancel this promise.
+]]
+function Promise.prototype:_consumerCancelled(consumer)
+ if self._status ~= Promise.Status.Started then
+ return
+ end
+
+ self._consumers[consumer] = nil
+
+ if next(self._consumers) == nil then
+ self:cancel()
+ end
+end
+
+--[[
+ Used to set a handler for when the promise resolves, rejects, or is
+ cancelled. Returns a new promise chained from this promise.
+]]
+function Promise.prototype:finally(finallyHandler)
+ self._unhandledRejection = false
+
+ -- Return a promise chained off of this promise
+ return Promise.new(function(resolve, reject)
+ local finallyCallback = resolve
+ if finallyHandler then
+ finallyCallback = createAdvancer(finallyHandler, resolve, reject)
+ end
+
+ if self._status == Promise.Status.Started then
+ -- The promise is not settled, so queue this.
+ table.insert(self._queuedFinally, finallyCallback)
+ else
+ -- The promise already settled or was cancelled, run the callback now.
+ finallyCallback(self._status)
+ end
+ end, self)
+end
+
+--[[
+ Calls a callback on `finally` with specific arguments.
+]]
+function Promise.prototype:finallyCall(callback, ...)
+ local length, values = pack(...)
+ return self:finally(function()
+ return callback(unpack(values, 1, length))
+ end)
+end
+
+--[[
+ Yield until the promise is completed.
+
+ This matches the execution model of normal Roblox functions.
+]]
+function Promise.prototype:awaitStatus()
+ self._unhandledRejection = false
+
+ if self._status == Promise.Status.Started then
+ local bindable = Instance.new("BindableEvent")
+
+ self:finally(function()
+ bindable:Fire()
+ end)
+
+ bindable.Event:Wait()
+ bindable:Destroy()
+ end
+
+ if self._status == Promise.Status.Resolved then
+ return self._status, unpack(self._values, 1, self._valuesLength)
+ elseif self._status == Promise.Status.Rejected then
+ return self._status, unpack(self._values, 1, self._valuesLength)
+ end
+
+ return self._status
+end
+
+--[[
+ Calls awaitStatus internally, returns (isResolved, values...)
+]]
+function Promise.prototype:await(...)
+ local length, result = pack(self:awaitStatus(...))
+ local status = table.remove(result, 1)
+
+ return status == Promise.Status.Resolved, unpack(result, 1, length - 1)
+end
+
+--[[
+ Calls await and only returns if the Promise resolves.
+ Throws if the Promise rejects or gets cancelled.
+]]
+function Promise.prototype:awaitValue(...)
+ local length, result = pack(self:awaitStatus(...))
+ local status = table.remove(result, 1)
+
+ assert(
+ status == Promise.Status.Resolved,
+ tostring(result[1] == nil and "" or result[1])
+ )
+
+ return unpack(result, 1, length - 1)
+end
+
+--[[
+ Intended for use in tests.
+
+ Similar to await(), but instead of yielding if the promise is unresolved,
+ _unwrap will throw. This indicates an assumption that a promise has
+ resolved.
+]]
+function Promise.prototype:_unwrap()
+ if self._status == Promise.Status.Started then
+ error("Promise has not resolved or rejected.", 2)
+ end
+
+ local success = self._status == Promise.Status.Resolved
+
+ return success, unpack(self._values, 1, self._valuesLength)
+end
+
+function Promise.prototype:_resolve(...)
+ if self._status ~= Promise.Status.Started then
+ if Promise.is((...)) then
+ (...):_consumerCancelled(self)
+ end
+ return
+ end
+
+ -- If the resolved value was a Promise, we chain onto it!
+ if Promise.is((...)) then
+ -- Without this warning, arguments sometimes mysteriously disappear
+ if select("#", ...) > 1 then
+ local message = (
+ "When returning a Promise from andThen, extra arguments are " ..
+ "discarded! See:\n\n%s"
+ ):format(
+ self._source
+ )
+ warn(message)
+ end
+
+ local promise = (...):andThen(
+ function(...)
+ self:_resolve(...)
+ end,
+ function(...)
+ self:_reject(...)
+ end
+ )
+
+ if promise._status == Promise.Status.Cancelled then
+ self:cancel()
+ elseif promise._status == Promise.Status.Started then
+ -- Adopt ourselves into promise for cancellation propagation.
+ self._parent = promise
+ promise._consumers[self] = true
+ end
+
+ return
+ end
+
+ self._status = Promise.Status.Resolved
+ self._valuesLength, self._values = pack(...)
+
+ -- We assume that these callbacks will not throw errors.
+ for _, callback in ipairs(self._queuedResolve) do
+ callback(...)
+ end
+
+ self:_finalize()
+end
+
+function Promise.prototype:_reject(...)
+ if self._status ~= Promise.Status.Started then
+ return
+ end
+
+ self._status = Promise.Status.Rejected
+ self._valuesLength, self._values = pack(...)
+
+ -- If there are any rejection handlers, call those!
+ if not isEmpty(self._queuedReject) then
+ -- We assume that these callbacks will not throw errors.
+ for _, callback in ipairs(self._queuedReject) do
+ callback(...)
+ end
+ else
+ -- At this point, no one was able to observe the error.
+ -- An error handler might still be attached if the error occurred
+ -- synchronously. We'll wait one tick, and if there are still no
+ -- observers, then we should put a message in the console.
+
+ local err = tostring((...))
+
+ spawn(function()
+ -- Someone observed the error, hooray!
+ if not self._unhandledRejection then
+ return
+ end
+
+ -- Build a reasonable message
+ local message = ("Unhandled promise rejection:\n\n%s\n\n%s"):format(
+ err,
+ self._source
+ )
+ warn(message)
+ end)
+ end
+
+ self:_finalize()
+end
+
+--[[
+ Calls any :finally handlers. We need this to be a separate method and
+ queue because we must call all of the finally callbacks upon a success,
+ failure, *and* cancellation.
+]]
+function Promise.prototype:_finalize()
+ for _, callback in ipairs(self._queuedFinally) do
+ -- Purposefully not passing values to callbacks here, as it could be the
+ -- resolved values, or rejected errors. If the developer needs the values,
+ -- they should use :andThen or :catch explicitly.
+ callback(self._status)
+ end
+
+ -- Allow family to be buried
+ self._parent = nil
+ self._consumers = nil
+end
+
+return Promise
\ No newline at end of file
diff --git a/src/Server/LundstrongOrders/DataStore2/SavingMethods/OrderedBackups.lua b/src/Server/LundstrongOrders/DataStore2/SavingMethods/OrderedBackups.lua
new file mode 100644
index 0000000..47d05a8
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/SavingMethods/OrderedBackups.lua
@@ -0,0 +1,72 @@
+--[[
+ berezaa's method of saving data (from the dev forum):
+
+ What I do and this might seem a little over-the-top but it's fine as long as you're not using datastores
+ excessively elsewhere is have a datastore and an ordereddatastore for each player. When you perform a save,
+ add a key (can be anything) with the value of os.time() to the ordereddatastore and save a key with the os.time()
+ and the value of the player's data to the regular datastore. Then, when loading data, get the highest number from
+ the ordered data store (most recent save) and load the data with that as a key.
+
+ Ever since I implemented this, pretty much no one has ever lost data. There's no caches to worry about either
+ because you're never overriding any keys. Plus, it has the added benefit of allowing you to restore lost data,
+ since every save doubles as a backup which can be easily found with the ordereddatastore
+
+ edit: while there's no official comment on this, many developers including myself have noticed really bad cache
+ times and issues with using the same datastore keys to save data across multiple places in the same game. With
+ this method, data is almost always instantly accessible immediately after a player teleports, making it useful
+ for multi-place games.
+--]]
+
+local DataStoreService = game:GetService("DataStoreService")
+local Promise = require(script.Parent.Parent.Promise)
+
+local OrderedBackups = {}
+OrderedBackups.__index = OrderedBackups
+
+function OrderedBackups:Get()
+ return Promise.async(function(resolve)
+ resolve(self.orderedDataStore:GetSortedAsync(false, 1):GetCurrentPage()[1])
+ end):andThen(function(mostRecentKeyPage)
+ if mostRecentKeyPage then
+ local recentKey = mostRecentKeyPage.value
+ self.dataStore2:Debug("most recent key", mostRecentKeyPage)
+ self.mostRecentKey = recentKey
+
+ return Promise.async(function(resolve)
+ resolve(self.dataStore:GetAsync(recentKey))
+ end)
+ else
+ self.dataStore2:Debug("no recent key")
+ return nil
+ end
+ end)
+end
+
+function OrderedBackups:Set(value)
+ local key = (self.mostRecentKey or 0) + 1
+
+ return Promise.async(function(resolve)
+ self.dataStore:SetAsync(key, value)
+ resolve()
+ end):andThen(function()
+ return Promise.promisify(function()
+ self.orderedDataStore:SetAsync(key, key)
+ end)()
+ end):andThen(function()
+ self.mostRecentKey = key
+ end)
+end
+
+function OrderedBackups.new(dataStore2)
+ local dataStoreKey = dataStore2.Name .. "/" .. dataStore2.UserId
+
+ local info = {
+ dataStore2 = dataStore2,
+ dataStore = DataStoreService:GetDataStore(dataStoreKey),
+ orderedDataStore = DataStoreService:GetOrderedDataStore(dataStoreKey),
+ }
+
+ return setmetatable(info, OrderedBackups)
+end
+
+return OrderedBackups
diff --git a/src/Server/LundstrongOrders/DataStore2/SavingMethods/Standard.lua b/src/Server/LundstrongOrders/DataStore2/SavingMethods/Standard.lua
new file mode 100644
index 0000000..8427fe3
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/SavingMethods/Standard.lua
@@ -0,0 +1,33 @@
+-- Standard saving of data stores
+-- The key you provide to DataStore2 is the name of the store with GetDataStore
+-- GetAsync/UpdateAsync are then called based on the user ID
+local DataStoreService = game:GetService("DataStoreService")
+local Promise = require(script.Parent.Parent.Promise)
+
+local Standard = {}
+Standard.__index = Standard
+
+function Standard:Get()
+ return Promise.async(function(resolve)
+ resolve(self.dataStore:GetAsync(self.userId))
+ end)
+end
+
+function Standard:Set(value)
+ return Promise.async(function(resolve)
+ self.dataStore:UpdateAsync(self.userId, function()
+ return value
+ end)
+
+ resolve()
+ end)
+end
+
+function Standard.new(dataStore2)
+ return setmetatable({
+ dataStore = DataStoreService:GetDataStore(dataStore2.Name),
+ userId = dataStore2.UserId,
+ }, Standard)
+end
+
+return Standard
diff --git a/src/Server/LundstrongOrders/DataStore2/SavingMethods/init.lua b/src/Server/LundstrongOrders/DataStore2/SavingMethods/init.lua
new file mode 100644
index 0000000..b10cfb0
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/SavingMethods/init.lua
@@ -0,0 +1,4 @@
+return {
+ Standard = require(script.Standard),
+ OrderedBackups = require(script.OrderedBackups),
+}
diff --git a/src/Server/LundstrongOrders/DataStore2/Settings.lua b/src/Server/LundstrongOrders/DataStore2/Settings.lua
new file mode 100644
index 0000000..b94bddb
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/Settings.lua
@@ -0,0 +1,7 @@
+return {
+ -- What saving method you would like to use
+ -- Possible options:
+ -- OrderedBackups: The berezaa method that ensures prevention of data loss
+ -- Standard: Standard data stores. Equivalent to :GetDataStore(key):GetAsync(UserId)
+ SavingMethod = "OrderedBackups",
+}
diff --git a/src/Server/LundstrongOrders/DataStore2/TableUtil.lua b/src/Server/LundstrongOrders/DataStore2/TableUtil.lua
new file mode 100644
index 0000000..ddaeb33
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/TableUtil.lua
@@ -0,0 +1,17 @@
+local TableUtil = {}
+
+function TableUtil.clone(tbl)
+ local clone = {}
+
+ for key, value in pairs(tbl) do
+ if typeof(value) == "table" then
+ clone[key] = TableUtil.clone(value)
+ else
+ clone[key] = value
+ end
+ end
+
+ return clone
+end
+
+return TableUtil
diff --git a/src/Server/LundstrongOrders/DataStore2/Verifier.lua b/src/Server/LundstrongOrders/DataStore2/Verifier.lua
new file mode 100644
index 0000000..1832a4f
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/Verifier.lua
@@ -0,0 +1,80 @@
+-- Written by Coercii
+
+local Verifier = {}
+
+function Verifier.typeValid(data)
+ return type(data) ~= "userdata", typeof(data)
+end
+
+function Verifier.scanValidity(tbl, passed, path)
+ if type(tbl) ~= "table" then
+ return Verifier.scanValidity({input = tbl}, {}, {})
+ end
+ passed, path = passed or {}, path or {"input"}
+ passed[tbl] = true
+ local tblType
+ do
+ local key = next(tbl)
+ if type(key) == "number" then
+ tblType = "Array"
+ else
+ tblType = "Dictionary"
+ end
+ end
+ local last = 0
+ for key, value in next, tbl do
+ path[#path + 1] = tostring(key)
+ if type(key) == "number" then
+ if tblType == "Dictionary" then
+ return false, path, "Mixed Array/Dictionary"
+ elseif key%1 ~= 0 then -- if not an integer
+ return false, path, "Non-integer index"
+ elseif key == math.huge or key == -math.huge then
+ return false, path, "(-)Infinity index"
+ end
+ elseif type(key) ~= "string" then
+ return false, path, "Non-string key", typeof(key)
+ elseif tblType == "Array" then
+ return false, path, "Mixed Array/Dictionary"
+ end
+ if tblType == "Array" then
+ if last ~= key - 1 then
+ return false, path, "Array with non-sequential indexes"
+ end
+ last = key
+ end
+ local isTypeValid, valueType = Verifier.typeValid(value)
+ if not isTypeValid then
+ return false, path, "Invalid type", valueType
+ end
+ if type(value) == "table" then
+ if passed[value] then
+ return false, path, "Cyclic"
+ end
+ local isValid, keyPath, reason, extra = Verifier.scanValidity(value, passed, path)
+ if not isValid then
+ return isValid, keyPath, reason, extra
+ end
+ end
+ path[#path] = nil
+ end
+ passed[tbl] = nil
+ return true
+end
+
+function Verifier.getStringPath(path)
+ return table.concat(path, ".")
+end
+
+function Verifier.testValidity(input)
+ local isValid, keyPath, reason, extra = Verifier.scanValidity(input)
+ if not isValid then
+ if extra then
+ return "Invalid at "..Verifier.getStringPath(keyPath).." because: "..reason.." ("..tostring(extra)..")"
+ else
+ return "Invalid at "..Verifier.getStringPath(keyPath).." because: "..reason
+ end
+ end
+end
+
+return Verifier
diff --git a/src/Server/LundstrongOrders/DataStore2/init.lua b/src/Server/LundstrongOrders/DataStore2/init.lua
new file mode 100644
index 0000000..0e305fb
--- /dev/null
+++ b/src/Server/LundstrongOrders/DataStore2/init.lua
@@ -0,0 +1,592 @@
+--[[
+ DataStore2: A wrapper for data stores that caches, saves player's data, and uses berezaa's method of saving data.
+ Use require(1936396537) to have an updated version of DataStore2.
+
+ DataStore2(dataStoreName, player) - Returns a DataStore2 DataStore
+
+ DataStore2 DataStore:
+ - Get([defaultValue])
+ - Set(value)
+ - Update(updateFunc)
+ - Increment(value, defaultValue)
+ - BeforeInitialGet(modifier)
+ - BeforeSave(modifier)
+ - Save()
+ - SaveAsync()
+ - OnUpdate(callback)
+ - BindToClose(callback)
+
+ local coinStore = DataStore2("Coins", player)
+
+ To give a player coins:
+
+ coinStore:Increment(50)
+
+ To get the current player's coins:
+
+ coinStore:Get()
+--]]
+
+local Players = game:GetService("Players")
+local RunService = game:GetService("RunService")
+local ServerStorage = game:GetService("ServerStorage")
+
+local Constants = require(script.Constants)
+local Promise = require(script.Promise)
+local SavingMethods = require(script.SavingMethods)
+local Settings = require(script.Settings)
+local TableUtil = require(script.TableUtil)
+local Verifier = require(script.Verifier)
+
+local SaveInStudioObject = ServerStorage:FindFirstChild("SaveInStudio")
+local SaveInStudio = SaveInStudioObject and SaveInStudioObject.Value
+
+local function clone(value)
+ if typeof(value) == "table" then
+ return TableUtil.clone(value)
+ else
+ return value
+ end
+end
+
+--DataStore object
+local DataStore = {}
+
+--Internal functions
+function DataStore:Debug(...)
+ if self.debug then
+ print(...)
+ end
+end
+
+function DataStore:_GetRaw()
+ if self.getRawPromise then
+ return self.getRawPromise
+ end
+
+ self.getRawPromise = self.savingMethod:Get():andThen(function(value)
+ self.value = value
+ self:Debug("value received")
+ self.haveValue = true
+ end):finally(function()
+ self.getting = false
+ end)
+
+ return self.getRawPromise
+end
+
+function DataStore:_Update(dontCallOnUpdate)
+ if not dontCallOnUpdate then
+ for _,callback in pairs(self.callbacks) do
+ callback(self.value, self)
+ end
+ end
+
+ self.haveValue = true
+ self.valueUpdated = true
+end
+
+--Public functions
+
+function DataStore:Get(defaultValue, dontAttemptGet)
+ if dontAttemptGet then
+ return self.value
+ end
+
+ local backupCount = 0
+
+ if not self.haveValue then
+ while not self.haveValue do
+ local success, error = self:_GetRaw():await()
+
+ if not success then
+ if self.backupRetries then
+ backupCount = backupCount + 1
+
+ if backupCount >= self.backupRetries then
+ self.backup = true
+ self.haveValue = true
+ self.value = self.backupValue
+ break
+ end
+ end
+
+ self:Debug("Get returned error:", error)
+ end
+ end
+
+ if self.value ~= nil then
+ for _,modifier in pairs(self.beforeInitialGet) do
+ self.value = modifier(self.value, self)
+ end
+ end
+ end
+
+ local value
+
+ if self.value == nil and defaultValue ~= nil then --not using "not" because false is a possible value
+ value = defaultValue
+ else
+ value = self.value
+ end
+
+ value = clone(value)
+
+ self.value = value
+
+ return value
+end
+
+function DataStore:GetAsync(...)
+ local args = { ... }
+ return Promise.async(function(resolve)
+ resolve(self:Get(unpack(args)))
+ end)
+end
+
+function DataStore:GetTable(default, ...)
+ local success, result = self:GetTableAsync(default, ...):await()
+ if not success then
+ error(result)
+ end
+ return result
+end
+
+function DataStore:GetTableAsync(default, ...)
+ assert(default ~= nil, "You must provide a default value.")
+
+ return self:GetAsync(default, ...):andThen(function(result)
+ return Promise.async(function(resolve)
+ local changed = false
+ assert(
+ typeof(result) == "table",
+ ":GetTable/:GetTableAsync was used when the value in the data store isn't a table."
+ )
+
+ for defaultKey, defaultValue in pairs(default) do
+ if result[defaultKey] == nil then
+ result[defaultKey] = defaultValue
+ changed = true
+ end
+ end
+
+ if changed then
+ self:Set(result)
+ end
+
+ resolve(result)
+ end)
+ end)
+end
+
+function DataStore:Set(value, _dontCallOnUpdate)
+ self.value = clone(value)
+ self:_Update(_dontCallOnUpdate)
+end
+
+function DataStore:Update(updateFunc)
+ self.value = updateFunc(self.value)
+ self:_Update()
+end
+
+function DataStore:Increment(value, defaultValue)
+ self:Set(self:Get(defaultValue) + value)
+end
+
+function DataStore:IncrementAsync(add, defaultValue)
+ self:GetAsync(defaultValue):andThen(function(value)
+ return Promise.promisify(function()
+ self:Set(value + add)
+ end)()
+ end)
+end
+
+function DataStore:OnUpdate(callback)
+ table.insert(self.callbacks, callback)
+end
+
+function DataStore:BeforeInitialGet(modifier)
+ table.insert(self.beforeInitialGet, modifier)
+end
+
+function DataStore:BeforeSave(modifier)
+ self.beforeSave = modifier
+end
+
+function DataStore:AfterSave(callback)
+ table.insert(self.afterSave, callback)
+end
+
+--[[**
+
+ Adds a backup to the data store if :Get() fails a specified amount of times.
+ Will return the value provided (if the value is nil, then the default value of :Get() will be returned)
+ and mark the data store as a backup store, and attempts to :Save() will not truly save.
+
+
+
+ Number of retries before the backup will be used.
+
+
+
+ The value to return to :Get() in the case of a failure.
+ You can keep this blank and the default value you provided with :Get() will be used instead.
+
+**--]]
+function DataStore:SetBackup(retries, value)
+ self.backupRetries = retries
+ self.backupValue = value
+end
+
+--[[**
+
+ Unmark the data store as a backup data store and tell :Get() and reset values to nil.
+
+**--]]
+function DataStore:ClearBackup()
+ self.backup = nil
+ self.haveValue = false
+ self.value = nil
+end
+
+--[[**
+
+ Whether or not the data store is a backup data store and thus won't save during :Save() or call :AfterSave().
+
+**--]]
+function DataStore:IsBackup()
+ return self.backup ~= nil --some people haven't learned if x then yet, and will do if x == false then.
+end
+
+--[[**
+
+ Saves the data to the data store. Called when a player leaves.
+
+**--]]
+function DataStore:Save()
+ local success, result = self:SaveAsync():await()
+
+ if success then
+ print("saved " .. self.Name)
+ else
+ error(result)
+ end
+end
+
+--[[**
+
+ Asynchronously saves the data to the data store.
+
+**--]]
+function DataStore:SaveAsync()
+ return Promise.async(function(resolve, reject)
+ if not self.valueUpdated then
+ warn(("Data store %s was not saved as it was not updated."):format(self.Name))
+ resolve(false)
+ return
+ end
+
+ if RunService:IsStudio() and not SaveInStudio then
+ warn(("Data store %s attempted to save in studio while SaveInStudio is false."):format(self.Name))
+ if not SaveInStudioObject then
+ warn("You can set the value of this by creating a BoolValue named SaveInStudio in ServerStorage.")
+ end
+ resolve(false)
+ return
+ end
+
+ if self.backup then
+ warn("This data store is a backup store, and thus will not be saved.")
+ resolve(false)
+ return
+ end
+
+ if self.value ~= nil then
+ local save = clone(self.value)
+
+ if self.beforeSave then
+ local success, result = pcall(self.beforeSave, save, self)
+
+ if success then
+ save = result
+ else
+ reject(result, Constants.SaveFailure.BeforeSaveError)
+ return
+ end
+ end
+
+ local problem = Verifier.testValidity(save)
+ if problem then
+ reject(problem, Constants.SaveFailure.InvalidData)
+ return
+ end
+
+ return self.savingMethod:Set(save):andThen(function()
+ resolve(true, save)
+ end)
+ end
+ end):andThen(function(saved, save)
+ if saved then
+ for _, afterSave in pairs(self.afterSave) do
+ local success, err = pcall(afterSave, save, self)
+
+ if not success then
+ warn("Error on AfterSave: "..err)
+ end
+ end
+
+ self.valueUpdated = false
+ end
+ end)
+end
+
+function DataStore:BindToClose(callback)
+ table.insert(self.bindToClose, callback)
+end
+
+function DataStore:GetKeyValue(key)
+ return (self.value or {})[key]
+end
+
+function DataStore:SetKeyValue(key, newValue)
+ if not self.value then
+ self.value = self:Get({})
+ end
+
+ self.value[key] = newValue
+end
+
+local CombinedDataStore = {}
+
+do
+ function CombinedDataStore:BeforeInitialGet(modifier)
+ self.combinedBeforeInitialGet = modifier
+ end
+
+ function CombinedDataStore:BeforeSave(modifier)
+ self.combinedBeforeSave = modifier
+ end
+
+ function CombinedDataStore:Get(defaultValue, dontAttemptGet)
+ local tableResult = self.combinedStore:Get({})
+ local tableValue = tableResult[self.combinedName]
+
+ if not dontAttemptGet then
+ if tableValue == nil then
+ tableValue = defaultValue
+ else
+ if self.combinedBeforeInitialGet and not self.combinedInitialGot then
+ tableValue = self.combinedBeforeInitialGet(tableValue)
+ end
+ end
+ end
+
+ self.combinedInitialGot = true
+ tableResult[self.combinedName] = clone(tableValue)
+ self.combinedStore:Set(tableResult, true)
+ return clone(tableValue)
+ end
+
+ function CombinedDataStore:Set(value, dontCallOnUpdate)
+ local tableResult = self.combinedStore:GetTable({})
+ tableResult[self.combinedName] = value
+ self.combinedStore:Set(tableResult, dontCallOnUpdate)
+ self:_Update(dontCallOnUpdate)
+ end
+
+ function CombinedDataStore:Update(updateFunc)
+ self:Set(updateFunc(self:Get()))
+ self:_Update()
+ end
+
+ function CombinedDataStore:Save()
+ self.combinedStore:Save()
+ end
+
+ function CombinedDataStore:OnUpdate(callback)
+ if not self.onUpdateCallbacks then
+ self.onUpdateCallbacks = { callback }
+ else
+ self.onUpdateCallbacks[#self.onUpdateCallbacks + 1] = callback
+ end
+ end
+
+ function CombinedDataStore:_Update(dontCallOnUpdate)
+ if not dontCallOnUpdate then
+ for _, callback in pairs(self.onUpdateCallbacks or {}) do
+ callback(self:Get(), self)
+ end
+ end
+
+ self.combinedStore:_Update(true)
+ end
+
+ function CombinedDataStore:SetBackup(retries)
+ self.combinedStore:SetBackup(retries)
+ end
+end
+
+local DataStoreMetatable = {}
+
+DataStoreMetatable.__index = DataStore
+
+--Library
+local DataStoreCache = {}
+
+local DataStore2 = {}
+local combinedDataStoreInfo = {}
+
+--[[**
+
+ Run this once to combine all keys provided into one "main key".
+ Internally, this means that data will be stored in a table with the key mainKey.
+ This is used to get around the 2-DataStore2 reliability caveat.
+
+
+
+ The key that will be used to house the table.
+
+
+
+ All the keys to combine under one table.
+
+**--]]
+function DataStore2.Combine(mainKey, ...)
+ for _, name in pairs({...}) do
+ combinedDataStoreInfo[name] = mainKey
+ end
+end
+
+function DataStore2.ClearCache()
+ DataStoreCache = {}
+end
+
+function DataStore2.SaveAll(player)
+ if DataStoreCache[player] then
+ for _, dataStore in pairs(DataStoreCache[player]) do
+ if dataStore.combinedStore == nil then
+ dataStore:Save()
+ end
+ end
+ end
+end
+
+function DataStore2.PatchGlobalSettings(patch)
+ for key, value in pairs(patch) do
+ assert(Settings[key] ~= nil, "No such key exists: " .. key)
+ -- TODO: Implement type checking with this when osyris' t is in
+ Settings[key] = value
+ end
+end
+
+function DataStore2.__call(_, dataStoreName, player)
+ assert(
+ typeof(dataStoreName) == "string" and typeof(player) == "Instance",
+ ("DataStore2() API call expected {string dataStoreName, Instance player}, got {%s, %s}")
+ :format(
+ typeof(dataStoreName),
+ typeof(player)
+ )
+ )
+
+ if DataStoreCache[player] and DataStoreCache[player][dataStoreName] then
+ return DataStoreCache[player][dataStoreName]
+ elseif combinedDataStoreInfo[dataStoreName] then
+ local dataStore = DataStore2(combinedDataStoreInfo[dataStoreName], player)
+
+ dataStore:BeforeSave(function(combinedData)
+ for key in pairs(combinedData) do
+ if combinedDataStoreInfo[key] then
+ local combinedStore = DataStore2(key, player)
+ local value = combinedStore:Get(nil, true)
+ if value ~= nil then
+ if combinedStore.combinedBeforeSave then
+ value = combinedStore.combinedBeforeSave(clone(value))
+ end
+ combinedData[key] = value
+ end
+ end
+ end
+
+ return combinedData
+ end)
+
+ local combinedStore = setmetatable({
+ combinedName = dataStoreName,
+ combinedStore = dataStore,
+ }, {
+ __index = function(_, key)
+ return CombinedDataStore[key] or dataStore[key]
+ end
+ })
+
+ if not DataStoreCache[player] then
+ DataStoreCache[player] = {}
+ end
+
+ DataStoreCache[player][dataStoreName] = combinedStore
+ return combinedStore
+ end
+
+ local dataStore = {}
+
+ dataStore.Name = dataStoreName
+ dataStore.UserId = player.UserId
+
+ dataStore.callbacks = {}
+ dataStore.beforeInitialGet = {}
+ dataStore.afterSave = {}
+ dataStore.bindToClose = {}
+ dataStore.savingMethod = SavingMethods[Settings.SavingMethod].new(dataStore)
+
+ setmetatable(dataStore, DataStoreMetatable)
+
+ local event, fired = Instance.new("BindableEvent"), false
+
+ game:BindToClose(function()
+ if not fired then
+ spawn(function()
+ player.Parent = nil -- Forces AncestryChanged to fire and save the data
+ end)
+
+ event.Event:wait()
+ end
+
+ local value = dataStore:Get(nil, true)
+
+ for _, bindToClose in pairs(dataStore.bindToClose) do
+ bindToClose(player, value)
+ end
+ end)
+
+ local playerLeavingConnection
+ playerLeavingConnection = player.AncestryChanged:Connect(function()
+ if player:IsDescendantOf(game) then return end
+ playerLeavingConnection:Disconnect()
+ dataStore:SaveAsync():andThen(function()
+ print("player left, saved " .. dataStoreName)
+ end):catch(function(error)
+ -- TODO: Something more elegant
+ warn("error when player left! " .. error)
+ end):finally(function()
+ event:Fire()
+ fired = true
+ end)
+
+ delay(40, function() --Give a long delay for people who haven't figured out the cache :^(
+ DataStoreCache[player] = nil
+ end)
+ end)
+
+ if not DataStoreCache[player] then
+ DataStoreCache[player] = {}
+ end
+
+ DataStoreCache[player][dataStoreName] = dataStore
+
+ return dataStore
+end
+
+DataStore2.Constants = Constants
+
+return setmetatable(DataStore2, DataStore2)
diff --git a/src/Server/LundstrongOrders/creator.server.lua b/src/Server/LundstrongOrders/creator.server.lua
new file mode 100644
index 0000000..6075fc6
--- /dev/null
+++ b/src/Server/LundstrongOrders/creator.server.lua
@@ -0,0 +1,69 @@
+-- * CREATE REP STORAGE ASSETS
+local Configuration = require(workspace.LundstrongOrders.Configuration)
+local PlayersService = game:GetService("Players")
+local MarketplaceService = game:GetService("MarketplaceService")
+local eventsFolder = game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events")
+local enableGui = eventsFolder.enableGui
+if (workspace.LundstrongOrders:FindFirstChild("Models")) then
+ for _,v in pairs(workspace.LundstrongOrders.Models:GetChildren()) do
+ if (v.Name == "Register") then
+ v.mainPart.mainGui.Enabled = true
+ v.mainPart.mainGui.Frame.ImageLabel.Image = Configuration.Branding.ImageId
+ local clickDetector = Instance.new("ClickDetector")
+ clickDetector.Parent = v.mainPart
+ clickDetector.MouseClick:Connect(function(plr)
+ if (Configuration.CashierSettings.GroupID) then
+ if (Configuration.CashierSettings.MinimumRankEnabled) then
+ if (plr:GetRankInGroup(Configuration.CashierSettings.GroupID) >= Configuration.CashierSettings.MinimumRank) then
+ print("Firing client with cashierGui")
+ enableGui:FireClient(plr, "cashierGui")
+ end
+ else
+ if (table.find(Configuration.CashierSettings.RankTable, plr:GetRankInGroup(Configuration.CashierSettings.GroupID))) then
+ print("Firing client with cashierGui")
+ enableGui:FireClient(plr, "cashierGui")
+ end
+ end
+ else
+ print("Firing client with cashierGui")
+ enableGui:FireClient(plr, "cashierGui")
+ end
+ end)
+ elseif (v.Name == "Kiosk") then
+ v.mainPart.mainGui.Enabled = true
+ v.mainPart.mainGui.Frame.ImageLabel.Image = Configuration.Branding.ImageId
+ local clickDetector = Instance.new("ClickDetector")
+ clickDetector.Parent = v.mainPart
+ clickDetector.MouseClick:Connect(function(plr)
+ if (Configuration.KioskSettings.GamepassRequired) then
+ if (MarketplaceService:UserOwnsGamePassAsync(plr.UserId, Configuration.KioskSettings.GamepassID)) then
+ print("Firing client with kioskGui")
+ enableGui:FireClient(plr, "kioskGui")
+ else
+ if (Configuration.KioskSettings.PromptPurchase) then
+ MarketplaceService:PromptGamePassPurchase(plr, Configuration.KioskSettings.GamepassID)
+ end
+ end
+ else
+ print("Firing client with kioskGui")
+ enableGui:FireClient(plr, "kioskGui")
+ end
+ end)
+ elseif (v.Name == "PickuPlayersServicecreen") then
+ -- Not done!!
+ elseif (v.Name == "OrderDisplay") then
+ for _,player in pairs(PlayersService:GetPlayers()) do
+ local clone = player.PlayerGui.LundstrongOrders.chefClaimGui.chefClaimGuiClone:Clone()
+ clone.Parent = player.PlayerGui.LundstrongOrders.chefClaimGui
+ clone.Name = "chefClaimGui"
+ clone.Adornee = v.mainPart
+ end
+ local clone = game.StarterGui.LundstrongOrders.chefClaimGui.chefClaimGuiClone:Clone()
+ clone.Parent = game.StarterGui.LundstrongOrders.chefClaimGui
+ clone.Name = "chefClaimGui"
+ clone.Adornee = v.mainPart
+ end
+ end
+else
+ error("[Lundstrongorders] Unable to find models. Please make sure they are under the Models folder of Lundstrong Orders")
+end
diff --git a/src/Server/LundstrongOrders/order.lua b/src/Server/LundstrongOrders/order.lua
new file mode 100644
index 0000000..f7a01e3
--- /dev/null
+++ b/src/Server/LundstrongOrders/order.lua
@@ -0,0 +1,68 @@
+local Order = {}
+Order.__index = Order
+local orders = {}
+local DataStore2 = require(game.ServerScriptService.LundstrongOrders.DataStore2)
+local Players = game:GetService("Players")
+local config = require(workspace.LundstrongOrders.Configuration)
+
+-- constructor
+function Order.new(creator: Player, receiver: string, items: { [number] : string })
+ local newOrder = setmetatable({},Order)
+ local receiverPlayer
+ for _,v in pairs(Players:GetPlayers()) do
+ if (v.Name == receiver) then
+ receiverPlayer = v
+ end
+ end
+ if (not receiverPlayer) then
+ error("[LundstrongOrders] Unable to find player "..receiver)
+ end
+ -- Properties
+ newOrder.orderReceiver = receiverPlayer
+ newOrder.orderCreator = creator
+ newOrder.orderClaimer = false
+ newOrder.id = #orders + 1
+ -- States
+ newOrder.isClaimed = false
+ newOrder.isCompleted = false
+
+ -- Items
+ newOrder.items = items
+
+ print("Give point to creator?")
+
+ if (creator.Name ~= receiver) then
+ if (config.PointsSettings.PointsEnabled) then
+ local pointsStore = DataStore2("points", creator)
+ pointsStore:Increment(config.PointsSettings.PointsAwarded)
+ end
+ end
+
+ print("INSERT?")
+ table.insert(orders, newOrder)
+
+ return newOrder
+end
+
+-- Methods
+function Order:Claim(player: Player)
+ self.isClaimed = true
+ self.orderClaimer = player
+ orders[self.id] = self
+end
+
+function Order:Complete()
+ self.isCompleted = true
+ print("Give point to self.orderClaimer")
+ if (config.PointsSettings.PointsEnabled) then
+ local pointsStore = DataStore2("points", self.orderClaimer)
+ pointsStore:Increment(config.PointsSettings.PointsAwarded)
+ end
+ orders[self.id] = self
+end
+
+function Order:GetOrders()
+ return orders
+end
+
+return Order
diff --git a/src/Server/LundstrongOrders/remoteHandler.server.lua b/src/Server/LundstrongOrders/remoteHandler.server.lua
new file mode 100644
index 0000000..2e219c9
--- /dev/null
+++ b/src/Server/LundstrongOrders/remoteHandler.server.lua
@@ -0,0 +1,149 @@
+-- Remote event handler
+local Order = require(game.ServerScriptService.LundstrongOrders.order)
+local DataStore2 = require(game.ServerScriptService.LundstrongOrders.DataStore2)
+local config = require(workspace.LundstrongOrders.Configuration)
+local Players = game:GetService("Players")
+local runService = game:GetService("RunService")
+local debounce = {}
+
+DataStore2.Combine("DATA", "points")
+
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("createOrder").OnServerInvoke = function(creator: Player, receiver: string, items: {[number]: string})
+ if (not debounce[creator.Name] or debounce[creator.Name] == false) then
+ debounce[creator.Name] = true
+ local newOrder = Order.new(creator, receiver, items)
+ print("NEW ORDER:", newOrder.id)
+ game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("orderList"):FireAllClients(Order:GetOrders())
+ if (creator.Name ~= receiver) then -- Cashier GUI order
+ game.ReplicatedStorage.LundstrongOrders.Events.sendNotification:FireClient(newOrder.orderReceiver, creator.Name.." has created an order for you.", 10)
+ coroutine.resume(coroutine.create(function()
+ wait(config.CashierSettings.OrderCooldown)
+ debounce[creator.Name] = false
+ end))
+ else -- Kiosk Order
+ coroutine.resume(coroutine.create(function()
+ wait(config.KioskSettings.OrderCooldown)
+ debounce[creator.Name] = false
+ end))
+ end
+ return true
+ else
+ return "Slow down! Your order cooldown hasn't expired!"
+ end
+end
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("claimOrder").OnServerEvent:Connect(function(plr, id)
+ local orderFound = false
+ for _,v in pairs(Order:GetOrders()) do
+ if (v.id == id) then
+ if (not v.isCompleted) then
+ if (config.OrderBoardSettings.GroupID) then
+ if (config.OrderBoardSettings.MinimumRankEnabled) then
+ if (plr:GetRankInGroup(config.OrderBoardSettings.GroupID) >= config.OrderBoardSettings.MinimumRank) then
+ v:Claim(plr)
+ orderFound = v
+ end
+ else
+ if (table.find(config.OrderBoardSettings.RankTable, plr:GetRankInGroup(config.OrderBoardSettings.GroupID))) then
+ v:Claim(plr)
+ orderFound = v
+ end
+ end
+ else
+ v:Claim(plr)
+ orderFound = v
+ end
+ game.ReplicatedStorage.LundstrongOrders.Events.sendNotification:FireClient(v.orderReceiver, "Your order has been claimed by "..plr.Name..".", 10)
+ else
+ error("[LundstrongOrders] Cannot claim completed order "..id)
+ end
+ end
+ end
+ print(orderFound)
+ if (orderFound) then
+ game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("orderList"):FireAllClients(Order:GetOrders())
+ game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("completeOrder"):FireClient(plr, orderFound)
+ else
+ warn("[LundstrongOrders] No order found with ID "..id)
+ end
+end)
+game.Players.PlayerAdded:Connect(function(plr)
+ local pointsStore = DataStore2("points", plr)
+
+ local leaderstats = Instance.new("Folder")
+ leaderstats.Name = "leaderstats"
+
+ local points = Instance.new("NumberValue")
+ points.Name = "Points"
+ points.Value = pointsStore:Get(0) -- The "0" means that by default, they'll have 0 points
+ points.Parent = leaderstats
+
+ pointsStore:OnUpdate(function(newPoints)
+ -- This function runs every time the value inside the data store changes.
+ points.Value = newPoints
+ end)
+
+ leaderstats.Parent = plr
+
+ if (runService:IsStudio()) then
+ game.ReplicatedStorage.LundstrongOrders.Events.sendNotification:FireClient(plr, "LundstrongOrders does work in studio, but will not save points.", 45)
+ end
+end)
+for _,plr in pairs(Players:GetPlayers()) do
+ local pointsStore = DataStore2("points", plr)
+
+ local leaderstats = Instance.new("Folder")
+ leaderstats.Name = "leaderstats"
+
+ local points = Instance.new("NumberValue")
+ points.Name = "Points"
+ points.Value = pointsStore:Get(0) -- The "0" means that by default, they'll have 0 points
+ points.Parent = leaderstats
+
+ pointsStore:OnUpdate(function(newPoints)
+ -- This function runs every time the value inside the data store changes.
+ points.Value = newPoints
+ end)
+
+ leaderstats.Parent = plr
+
+ if (runService:IsStudio()) then
+ game.ReplicatedStorage.LundstrongOrders.Events.sendNotification:FireClient(plr, "LundstrongOrders does work in studio, but will not save points.", 45)
+ end
+end
+game.Players.PlayerRemoving:Connect(function(plr)
+ local orderFound = false
+ for _,v in pairs(Order:GetOrders()) do
+ if (v.orderReceiver == plr) then
+ if (not v.isClaimed) then
+ v:Complete()
+ orderFound = v
+ end
+ end
+ end
+ print(orderFound)
+ if (orderFound) then
+ game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("orderList"):FireAllClients(Order:GetOrders())
+ else
+ print("[LundstrongOrders] No orders found for leaving player "..plr.Name)
+ end
+end)
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("completeOrder").OnServerEvent:Connect(function(_, id)
+ local orderFound = false
+ for _,v in pairs(Order:GetOrders()) do
+ if (v.id == id) then
+ if (v.isClaimed) then
+ v:Complete()
+ game.ReplicatedStorage.LundstrongOrders.Events.sendNotification:FireClient(v.orderReceiver, "Your order has completed.", 20)
+ orderFound = v
+ else
+ error("[LundstrongOrders] Cannot complete unclaimed order "..id)
+ end
+ end
+ end
+ print(orderFound)
+ if (orderFound) then
+ game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("orderList"):FireAllClients(Order:GetOrders())
+ else
+ warn("[LundstrongOrders] No order found with ID "..id)
+ end
+end)
diff --git a/src/StarterGui/LundstrongOrders/cashierGui/buttonHandler.client.lua b/src/StarterGui/LundstrongOrders/cashierGui/buttonHandler.client.lua
new file mode 100644
index 0000000..6f36963
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/cashierGui/buttonHandler.client.lua
@@ -0,0 +1,199 @@
+local path = require(game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.filePaths)
+local tween = require(game.ReplicatedStorage.LundstrongOrders.tween)
+local Nofications = require(game.ReplicatedStorage.LundstrongOrders.notifHandler)
+local tweenService = game:GetService("TweenService")
+local tweeninfo = TweenInfo.new(.75)
+local openBounce = false
+
+-- * Button Handlers
+ -- Home
+path.cashierGui.home.buttonFrame.createOrderButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.home, path.cashierGui.createOrder)
+end)
+path.cashierGui.home.buttonFrame.reportBugButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.home, path.cashierGui.reportBugs)
+end)
+path.cashierGui.home.buttonFrame.viewMenuButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.home, path.cashierGui.viewMenu)
+end)
+path.cashierGui.home.settingButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.home, path.cashierGui.settings)
+end)
+path.cashierGui.home.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.home)
+end)
+path.cashierGui.home.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.home)
+end)
+ -- createOrder
+path.cashierGui.createOrder.homeIcon.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.createOrder, path.cashierGui.home)
+end)
+path.cashierGui.createOrder.homeIcon.homeButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.createOrder, path.cashierGui.home)
+end)
+ -- Cat. Selector
+local function catSelect()
+ -- Bg
+ local tween1 = tweenService:Create(path.cashierGui.createOrder.categoryAnim, tweeninfo, { BackgroundTransparency = .2 })
+ -- Rotate
+ local tween2 = tweenService:Create(path.cashierGui.createOrder.Categories.Categories.selectedCategory.dropdownButton, tweeninfo, { Rotation = 0 })
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ path.cashierGui.createOrder.Categories.Visible = true
+ wait(0.5)
+ tween2:Play()
+ end)
+end
+path.cashierGui.createOrder.Category.MouseButton1Up:Connect(catSelect)
+path.cashierGui.createOrder.Category.usernameText.MouseButton1Up:Connect(catSelect)
+path.cashierGui.createOrder.Category.dropdownButton.MouseButton1Up:Connect(catSelect)
+path.cashierGui.createOrder.ScrollingFrame.UIGridLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.cashierGui.createOrder.ScrollingFrame.UIGridLayout.AbsoluteContentSize
+ path.cashierGui.createOrder.ScrollingFrame.CanvasSize = UDim2.new(0, absoluteSize.X, 0, absoluteSize.Y)
+end)
+path.cashierGui.createOrder.summaryFrame.ScrollingFrame.UIGridLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.cashierGui.createOrder.summaryFrame.ScrollingFrame.UIGridLayout.AbsoluteContentSize
+ path.cashierGui.createOrder.summaryFrame.ScrollingFrame.CanvasSize = UDim2.new(0, absoluteSize.X, 0, absoluteSize.Y)
+end)
+path.cashierGui.createOrder.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.createOrder)
+end)
+path.cashierGui.createOrder.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.createOrder)
+end)
+path.cashierGui.createOrder.buttonFrame.clearAllItemsButton.MouseButton1Up:Connect(function()
+ for _,v in pairs(path.cashierGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if (v:IsA("TextButton")) then
+ if (v.Name == "itemFrame") then
+ v:Destroy()
+ end
+ end
+ end
+end)
+path.cashierGui.createOrder.buttonFrame.submitOrderButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.createOrder, path.cashierGui.usernamePrompt)
+end)
+path.cashierGui.usernamePrompt.buttonFrame.backButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.usernamePrompt, path.cashierGui.createOrder)
+end)
+local createOrderDebounce = false -- OrderCooldown is dealt with on the server to prevent exploiters. This is just to stop the script from breaking.
+path.cashierGui.usernamePrompt.buttonFrame.submitOrderButton.MouseButton1Up:Connect(function()
+ if (createOrderDebounce == false) then
+ createOrderDebounce = true
+ local items = {}
+ for _,v in pairs(path.cashierGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if v.Name == "itemFrame" and v:IsA("TextButton") then
+ table.insert(items, v.TextLabel.Text)
+ end
+ end
+ print(items)
+ local orderSubmitted = game.ReplicatedStorage.LundstrongOrders.Events.createOrder:InvokeServer(path.cashierGui.usernamePrompt.usernameFrame.usernamePrompt.Text, items)
+ if (orderSubmitted == true) then
+ for _,v in pairs(path.cashierGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if (v:IsA("TextButton")) then
+ if (v.Name == "itemFrame") then
+ v:Destroy()
+ end
+ end
+ end
+ path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text = ""
+ createOrderDebounce = false
+ Nofications:CreateNotification("The order has been submitted!")
+ else
+ createOrderDebounce = false
+ Nofications:CreateNotification(orderSubmitted)
+ end
+ tween:Create(path.cashierGui.usernamePrompt, path.cashierGui.createOrder)
+ end
+end)
+path.cashierGui.usernamePrompt.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.reportBugs)
+end)
+path.cashierGui.usernamePrompt.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.reportBugs)
+end)
+ -- reportBugs
+path.cashierGui.reportBugs.homeIcon.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.reportBugs, path.cashierGui.home)
+end)
+path.cashierGui.reportBugs.homeIcon.homeButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.reportBugs, path.cashierGui.home)
+end)
+path.cashierGui.reportBugs.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.reportBugs)
+end)
+path.cashierGui.reportBugs.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.reportBugs)
+end)
+ -- settings
+path.cashierGui.settings.homeIcon.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.settings, path.cashierGui.home)
+end)
+path.cashierGui.settings.homeIcon.homeButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.settings, path.cashierGui.home)
+end)
+path.cashierGui.settings.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.settings)
+end)
+path.cashierGui.settings.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.settings)
+end)
+ -- viewMenu
+path.cashierGui.viewMenu.homeIcon.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.viewMenu, path.cashierGui.home)
+end)
+path.cashierGui.viewMenu.homeIcon.homeButton.MouseButton1Up:Connect(function()
+ tween:Create(path.cashierGui.viewMenu, path.cashierGui.home)
+end)
+path.cashierGui.viewMenu.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.viewMenu)
+end)
+path.cashierGui.viewMenu.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.cashierGui.viewMenu)
+end)
+path.cashierGui.viewMenu.ScrollingFrame.UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.cashierGui.viewMenu.ScrollingFrame.UIListLayout.AbsoluteContentSize
+ path.cashierGui.viewMenu.ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, absoluteSize.Y)
+end)
+-- * Fade IN
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("enableGui").OnClientEvent:Connect(function(gui)
+ if (gui == "cashierGui") then
+ if (openBounce == false) then
+ openBounce = true
+ local tween1 = tweenService:Create(path.cashierGui.home.animFrame, tweeninfo, {Transparency = 0})
+ local tween2 = tweenService:Create(path.cashierGui.home.bgGreenAnim, tweeninfo, {ImageTransparency = 0})
+ local tween5 = tweenService:Create(path.cashierGui.home.animFrame, tweeninfo, {Transparency = 1})
+ local tween6 = tweenService:Create(path.cashierGui.home.bgGreenAnim, tweeninfo, {ImageTransparency = 1})
+ local tween7 = tweenService:Create(path.cashierGui.home.exitButton, tweeninfo, {BackgroundTransparency = 0})
+ local tween8 = tweenService:Create(path.cashierGui.home.exitButton.TextButton, tweeninfo, {TextTransparency = 0})
+ path.cashierGui.home.animFrame.Transparency = 0
+ path.cashierGui.home.bgGreenAnim.ImageTransparency = 0
+ path.cashierGui.home.exitButton.BackgroundTransparency = 1
+ path.cashierGui.home.exitButton.TextButton.TextTransparency = 1
+ path.cashierGuiFolder.cashierGui.Enabled = true
+ tween1:Play()
+ tween2:Play()
+ tween2.Completed:Connect(function()
+ path.cashierGui.home.Visible = true
+ wait(0.2)
+ tween5:Play()
+ tween6:Play()
+ tween7:Play()
+ tween8:Play()
+ end)
+ end
+ end
+end)
diff --git a/src/StarterGui/LundstrongOrders/cashierGui/cashierGui.rbxmx b/src/StarterGui/LundstrongOrders/cashierGui/cashierGui.rbxmx
new file mode 100644
index 0000000..ad3fa11
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/cashierGui/cashierGui.rbxmx
@@ -0,0 +1,10702 @@
+
+ true
+ null
+ nil
+ -
+
+
+ true
+ 0
+ false
+ false
+ cashierGui
+ true
+
[null]
+ -1
+
+ 1
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ settings
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67234385
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ welcomeLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.797172666
+ 0
+ 0.0384615399
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.183962926
+ 0
+ 0.142533958
+ 0
+
+ 0
+ -1
+
+ Settings
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 2
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 700
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ content
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.385961413
+ 0
+ 0.180995479
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.533853173
+ 0
+ 0.76696831
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ themes
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0
+ 150
+
+ 0
+ -1
+ 0
+
+ false
+ 2
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.396078438
+ 0.600000024
+ 0.65882355
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ light
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.446666658
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.447947979
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Light
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ dark
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.548048079
+ 0
+ 0.446666658
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.447947979
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Dark
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.998498559
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+
+ Themes
+
+ 0
+ 0
+ 0
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ languages
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 150
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0
+ 150
+
+ 0
+ -1
+ 0
+
+ false
+ 2
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Greek
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.446666658
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.447947979
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Greek
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Flipino
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.548048079
+ 0
+ 0.446666658
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.447947979
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Flipino
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.998498559
+ 0
+ 0.266666681
+ 0
+
+ 0
+ -1
+
+ Languages
+
+ 0
+ 0
+ 0
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ credits
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 300
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0
+ 700
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0.0670000017
+ 0
+
+ 0
+ -1
+
+ Credits
+
+ 0
+ 0
+ 0
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0.933000028
+ 0
+
+ 0
+ -1
+
+
+
+ 0
+ 0
+ 0
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+
+ 1
+ 1
+ UIListLayout
+
+
0
+ 0
+
+ 2
+ -1
+
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ homeIcon
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0240474418
+ 0
+ 0.861990929
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.0601976998
+ 0
+ 0.0951476544
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=6034798461
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ homeButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 0
+ 0
+ false
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.714285731
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ reportBugs
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67234385
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ titleLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.66900003
+ 0
+ 0.0399999991
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.312616736
+ 0
+ 0.142533958
+ 0
+
+ 0
+ -1
+
+ Report a Bug:
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.863303125
+ 0
+ 0.701357484
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.115427718
+ 0
+ 0.0678733066
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ submitBug'
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.551888764
+ 0
+ 0.27375567
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.426842064
+ 0
+ 0.0678733066
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+
+ 0.0500000007
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+ true
+
+ 0.899999976
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.551888764
+ 0
+ 0.361990958
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.426842064
+ 0
+ 0.321266979
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 2
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ true
+ reportText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+
+ 0.0500000007
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+ true
+
+ 0.899999976
+ 0
+ 0
+ 0
+
+ 0
+ -1
+
+
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ true
+ 24
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ homeIcon
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0240474418
+ 0
+ 0.861990929
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.0601976998
+ 0
+ 0.0951476544
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+ false
+
+ 0.5
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=6034798461
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ homeButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 0
+ 0
+ false
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.714285731
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0.200000003
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.543653667
+ 0
+ 0.24999997
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.439956218
+ 0
+ 0.605919957
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.150000006
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.699999988
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+
+
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ usernamePrompt
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.671999991
+ 0
+ 0.58099997
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ false
+
+ 0.100000001
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ titleLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.143000007
+ 0
+
+ 0
+ -1
+
+ Enter Their Username
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0.150000006
+ 0.5
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ usernameFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.0850000009
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0.5
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ true
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.466666698
+ 0.466666698
+ 0.466666698
+
+ Username:
+
+ 0.075000003
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ [null]
+ true
+
+ 0.875
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 0
+ 1
+ true
+ 3
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ usernamePrompt
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.075000003
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.875
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+
+
+ 0.400000036
+ 0.400000036
+ 0.400000036
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0.600000024
+ 0
+ true
+ 0
+ 1
+ true
+ 1
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ buttonFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.876999974
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.400000006
+ 0
+ 0.0700000003
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ submitOrderButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Submit Order
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ backButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Go Back
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ viewMenu
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67234385
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ titleLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.739458799
+ 0
+ 0.0384615399
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.241676778
+ 0
+ 0.142533958
+ 0
+
+ 0
+ -1
+
+ View Menu:
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882354
+ 0.164705887
+ 0.20784314
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.394378036
+ 0
+ 0.219457015
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0.600000024
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.577138662
+ 0
+ 0.674208164
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ dividerClone
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0
+ 50
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0
+ 30
+
+ 0
+ -1
+
+ Drinks
+
+ 0
+ 0
+ 0
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.823529482
+ 0.811764777
+ 0.815686345
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0
+ 35
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0
+ 5
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 8
+
+ UICorner
+ -1
+
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ itemGroupClone
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0
+ 50
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame1
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.200000003
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame4
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.75
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.200000003
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame2
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.25
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.200000003
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame3
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.200000003
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+
+ 1
+ 1
+ UIListLayout
+
+
0
+ 10
+
+ 2
+ -1
+
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ homeIcon
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0240474418
+ 0
+ 0.861990929
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.0601976998
+ 0
+ 0.0951476544
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=6034798461
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ homeButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 0
+ 0
+ false
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.714285731
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ home
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67234385
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ buttonFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.25437361
+ 0
+ 0.852194965
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67332834
+ 0
+ 0.0950226262
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ viewMenuButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.330000013
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ View Menu
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ reportBugButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.660000026
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.330000013
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Report a Bug
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ createOrderButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.330000013
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.330000013
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Create Order
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=6024883843
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ settingButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.943862081
+ 0
+ 0.866515875
+ 0
+
+
+ [null]
+ 0
+ 0
+ true
+ false
+ [null]
+
+ 0.034868788
+ 0
+ 0.0656108633
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ welcomeLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.667316496
+ 0
+ 0.0384615399
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.31381911
+ 0
+ 0.142533943
+ 0
+
+ 0
+ -1
+
+ Welcome Back,
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ username
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.473734587
+ 0
+ 0.123766847
+ 0
+
+ 0
+ -1
+
+ OnlyTwentyCharacters
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0.612268806
+ 0
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ createOrder
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.671999991
+ 0
+ 0.58099997
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 0
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ titleLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.739458799
+ 0
+ 0.0384615399
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.241676778
+ 0
+ 0.142533958
+ 0
+
+ 0
+ -1
+
+ New Order:
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882354
+ 0.164705887
+ 0.20784314
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.310212016
+ 0
+ 0.454751164
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0.600000024
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.371532947
+ 0
+ 0.300301045
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+
+ 0
+ 10
+ 0
+ 10
+
+
+ 0.5
+ -16
+ 0
+ 40
+
+ 0
+ 0
+ 1
+ UIGridLayout
+ 2
+ -1
+ 0
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ homeIcon
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0240474418
+ 0
+ 0.861990929
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.0601976998
+ 0
+ 0.0951476544
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=6034798461
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ homeButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 0
+ 0
+ false
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.714285731
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ summaryFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.697375774
+ 0
+ 0.454751134
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.281355053
+ 0
+ 0.452488691
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ itemDesc
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.0500000007
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.125
+ 0
+
+ 0
+ -1
+
+ Order Summary
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0.5
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 1
+
+ 0.105882354
+ 0.164705887
+ 0.20784314
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.224999994
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0.600000024
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.600000024
+ 0
+ 0.548080325
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+
+ 0
+ 10
+ 0
+ 10
+
+
+ 1
+ -20
+ 0
+ 32
+
+ 0
+ 0
+ 1
+ UIGridLayout
+ 2
+ -1
+ 0
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ itemDesc
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.824999988
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.125
+ 0
+
+ 0
+ -1
+
+ Click an Item to remove it
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921604
+ 0.447058856
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.298039228
+ 0.298039228
+ 0.298039228
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ categoryAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ buttonFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.876999974
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.400000006
+ 0
+ 0.0700000003
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ submitOrderButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Submit Order
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ clearAllItemsButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Clear All Items
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Categories
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786000013
+ 0
+ 0.25
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.192000002
+ 0
+ 0.271850437
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 4
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 160
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ Categories
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+ 12
+ 4
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 4
+
+ -
+
+
+ 1
+ 1
+ UIListLayout
+
+
0
+ 0
+
+ 2
+ -1
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 1
+ 1
+ -1
+ false
+ selectedCategory
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786351323
+ 0
+ 0.339366525
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 1
+ -12
+ 0.25
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.159836203
+ 0
+ 0.500000358
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.712225437
+ 0
+ 0.800000191
+ 0
+
+ 0
+ -1
+ 0
+
+ Drinks
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=302248702
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ dropdownButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 90
+ 0
+ false
+ false
+ [null]
+
+ 0.0750986859
+ 0
+ 0.399779946
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ Category
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786000013
+ 0
+ 0.25
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.192379534
+ 0
+ 0.0680000037
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=302248702
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ dropdownButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 90
+ 0
+ false
+ false
+ [null]
+
+ 0.0750986859
+ 0
+ 0.399779946
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.159836203
+ 0
+ 0.500000358
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.712225437
+ 0
+ 0.800000191
+ 0
+
+ 0
+ -1
+ 0
+
+ Drinks
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/cashierGui/filePaths.lua b/src/StarterGui/LundstrongOrders/cashierGui/filePaths.lua
new file mode 100644
index 0000000..4cb705f
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/cashierGui/filePaths.lua
@@ -0,0 +1,16 @@
+local run = game:GetService("RunService")
+
+if (run:IsClient()) then -- ! This script can only run on the client side.
+ game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui:WaitForChild("cashierGui") -- ? Is there a better way to do this?
+ return {
+ ["cashierGuiFolder"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui,
+ ["cashierGui"] = {
+ ["home"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.home,
+ ["reportBugs"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.reportBugs,
+ ["settings"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.settings,
+ ["createOrder"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.createOrder,
+ ["usernamePrompt"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.usernamePrompt,
+ ["viewMenu"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.cashierGui.viewMenu,
+ }
+ }
+end
diff --git a/src/StarterGui/LundstrongOrders/cashierGui/init.meta.json b/src/StarterGui/LundstrongOrders/cashierGui/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/cashierGui/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/cashierGui/setup.client.lua b/src/StarterGui/LundstrongOrders/cashierGui/setup.client.lua
new file mode 100644
index 0000000..75a8fa9
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/cashierGui/setup.client.lua
@@ -0,0 +1,188 @@
+local path = require(game.Players.LocalPlayer.PlayerGui.LundstrongOrders.cashierGui.filePaths)
+local config = require(workspace.LundstrongOrders.Configuration)
+local tweenService = game:GetService("TweenService")
+local tweeninfo = TweenInfo.new(1)
+
+local function getTableKeys(tab)
+ local keyset = {}
+ for _,v in ipairs(tab) do
+ for k,_ in pairs(v) do
+ keyset[#keyset + 1] = k -- More effective/optimised than table.insert(keyset,k)
+ end
+ end
+ return keyset
+end
+
+local function deepCopy(original) -- See https://developer.roblox.com/en-us/articles/Cloning-tables for more info
+ local copy = {}
+ for k, v in pairs(original) do
+ if type(v) == "table" then
+ v = deepCopy(v)
+ end
+ copy[k] = v
+ end
+ return copy
+end
+
+local function createSummaryItem(item)
+ local clone = path.cashierGui.createOrder.summaryFrame.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.cashierGui.createOrder.summaryFrame.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = item.TextLabel.Text
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ clone:Destroy()
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ clone:Destroy()
+ end)
+end
+
+-- * Cats (Cashier -> Create Order)
+for i,v in pairs(getTableKeys(config.MenuItems.MenuItems)) do
+ if (i == 1) then
+ path.cashierGui.createOrder.Categories.Categories.selectedCategory.usernameText.Text = v
+ path.cashierGui.createOrder.Categories.Categories.selectedCategory.LayoutOrder = i
+ path.cashierGui.createOrder.Category.usernameText.Text = v
+ -- Add items.
+ for _,itemText in pairs(config.MenuItems.MenuItems[i][v]) do
+ local clone = path.cashierGui.createOrder.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.cashierGui.createOrder.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = itemText.ItemName
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ end
+ else
+ local clone = path.cashierGui.createOrder.Categories.Categories.selectedCategory:Clone()
+ clone.Parent = path.cashierGui.createOrder.Categories.Categories
+ clone.usernameText.Text = v
+ clone.Name = "Category"
+ clone.LayoutOrder = i
+ end
+end
+path.cashierGui.createOrder.Categories.Categories.CanvasSize = UDim2.new(0,0,0, ((#path.cashierGui.createOrder.Categories.Categories:GetChildren() - 1 ) * 40))
+if (#path.cashierGui.createOrder.Categories.Categories:GetChildren() < 5) then
+ path.cashierGui.createOrder.Categories.Size = UDim2.new(0.192, 0, ((#path.cashierGui.createOrder.Categories.Categories:GetChildren() - 1 ) * 0.068), 0)
+end
+for _,v in pairs(path.cashierGui.createOrder.Categories.Categories:GetChildren()) do
+ if v:IsA("TextButton") then
+ if (#path.cashierGui.createOrder.Categories.Categories:GetChildren() < 5) then
+ v.Size = UDim2.new(1, 0, 1/(#path.cashierGui.createOrder.Categories.Categories:GetChildren() -1), 0)
+ else
+ v.Size = UDim2.new(1, -12, 1/(#path.cashierGui.createOrder.Categories.Categories:GetChildren() -1), 0)
+ end
+ end
+end
+local function catSelected(newCat)
+ -- Bg
+ local tween2 = tweenService:Create(path.cashierGui.createOrder.categoryAnim, tweeninfo, { BackgroundTransparency = 1 })
+ -- Rotate
+ local tween1 = tweenService:Create(path.cashierGui.createOrder.Categories.Categories.selectedCategory.dropdownButton, tweeninfo, { Rotation = 90 })
+ path.cashierGui.createOrder.Category.usernameText.Text = newCat.usernameText.Text
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ path.cashierGui.createOrder.Categories.Visible = false
+ wait(0.5)
+ for _,v in pairs(path.cashierGui.createOrder.ScrollingFrame:GetChildren()) do
+ if v:IsA("TextButton") then
+ if v.Name == "itemFrame" then
+ v:Destroy()
+ end
+ end
+ end
+ for _,itemText in pairs(config.MenuItems.MenuItems[newCat.LayoutOrder][newCat.usernameText.Text]) do
+ local clone = path.cashierGui.createOrder.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.cashierGui.createOrder.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = itemText.ItemName
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ end
+ tween2:Play()
+ end)
+end
+for _,v in pairs(path.cashierGui.createOrder.Categories.Categories:GetChildren()) do
+ if v:IsA("TextButton") then
+ v.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ v.dropdownButton.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ v.usernameText.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ end
+end
+-- * Autofill (Taken from BAE Code)
+local Players = game:GetService("Players")
+path.cashierGui.usernamePrompt.usernameFrame.usernameText:GetPropertyChangedSignal("Text"):Connect(function()
+ if (path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text ~= "") then
+ local toReturn = {}
+ local Segment = path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text
+ local lowerSegment = string.lower(path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text)
+ for _,b in next,Players:GetPlayers() do
+ if string.sub(b.Name:lower(),1,#Segment) == lowerSegment then
+ table.insert(toReturn,b)
+ end
+ end
+ if type(toReturn[1]) == "userdata" then
+ path.cashierGui.usernamePrompt.usernameFrame.usernamePrompt.Text = toReturn[1].Name
+ path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text = string.sub(path.cashierGui.usernamePrompt.usernameFrame.usernamePrompt.Text, 1, string.len(path.cashierGui.usernamePrompt.usernameFrame.usernameText.Text))
+ else
+ path.cashierGui.usernamePrompt.usernameFrame.usernamePrompt.Text = "" -- No Username
+ end
+ else
+ path.cashierGui.usernamePrompt.usernameFrame.usernamePrompt.Text = "" -- No Username
+ end
+end)
+-- * Cats (Cashier -> View Menu)
+for i,v in pairs(getTableKeys(config.MenuItems.MenuItems)) do
+ -- Add Div.
+ local divClone = path.cashierGui.viewMenu.ScrollingFrame.dividerClone:Clone()
+ divClone.Parent = path.cashierGui.viewMenu.ScrollingFrame
+ divClone.Name = "divider"
+ divClone.TextLabel.Text = v
+ divClone.Visible = true
+ -- Add items.
+ local items = deepCopy(config.MenuItems.MenuItems[i][v])
+ while (items[1]) do
+ local clone = path.cashierGui.viewMenu.ScrollingFrame.itemGroupClone:Clone()
+ clone.Parent = path.cashierGui.viewMenu.ScrollingFrame
+ clone.Visible = true
+ clone.Name = "itemFrameGroip"
+ if (items[4]) then
+ clone.Frame4.TextLabel.Text = items[4].ItemName
+ table.remove(items, 4)
+ else
+ clone.Frame4:Destroy()
+ end
+ if (items[3]) then
+ clone.Frame3.TextLabel.Text = items[3].ItemName
+ table.remove(items, 3)
+ else
+ clone.Frame3:Destroy()
+ end
+ if (items[2]) then
+ clone.Frame2.TextLabel.Text = items[2].ItemName
+ table.remove(items, 2)
+ else
+ clone.Frame2:Destroy()
+ end
+ clone.Frame1.TextLabel.Text = items[1].ItemName
+ table.remove(items, 1)
+ end
+end
+-- Username
+path.cashierGui.home.username.Text = game.Players.LocalPlayer.Name
diff --git a/src/StarterGui/LundstrongOrders/chefClaimGui/chefClaimGuiClone.rbxmx b/src/StarterGui/LundstrongOrders/chefClaimGui/chefClaimGuiClone.rbxmx
new file mode 100644
index 0000000..3350d21
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefClaimGui/chefClaimGuiClone.rbxmx
@@ -0,0 +1,759 @@
+
+ true
+ null
+ nil
+ -
+
+ true
+
[null]
+ false
+
+ false
+
+ 800
+ 600
+
+ true
+ true
+ 0
+ 1
+ chefClaimGuiClone
+ 50
+ true
+ [null]
+ 1
+ -1
+
+ 0
+ 1
+ 0
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.400000006
+ 0
+ 0
+ 10
+
+ [null]
+ 0
+
+ 0
+ 0
+ 0
+
+ 0
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.579999983
+ 0
+ 1
+ -10
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+
+ 0
+ 0
+ 0
+ 10
+
+
+ 1
+ 0
+ 0
+ 90
+
+ 0
+ 1
+ 0
+ UIGridLayout
+ 2
+ -1
+ 0
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0
+ 100
+ 0
+ 100
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ -12
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 7
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ https://www.roblox.com/Thumbs/Avatar.ashx?x=500&y=500&username=sasial
+
+ 1
+ 1
+ 1
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ ImageLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.075000003
+ 0
+ 0.100000001
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.393219143
+ 0
+ 0.5
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.400000006
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.200000003
+ 0
+
+ 0
+ -1
+
+ Sasial
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.600000024
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.300000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Claim
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+ -
+
+
+
+
0
+ 7
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.600000024
+ 0
+ 0.600000024
+ 0
+
+ 0
+ -1
+ 0
+
+ Claim
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+
+ ID
+ -1
+
+ -1
+
+
+
+
+ -
+
+
+
+
0
+ 7
+
+ UICorner
+ -1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/chefClaimGui/init.meta.json b/src/StarterGui/LundstrongOrders/chefClaimGui/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefClaimGui/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/chefClaimGui/remoteHandler.client.lua b/src/StarterGui/LundstrongOrders/chefClaimGui/remoteHandler.client.lua
new file mode 100644
index 0000000..2150e5a
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefClaimGui/remoteHandler.client.lua
@@ -0,0 +1,93 @@
+local tweenService = game:GetService("TweenService")
+local tweenInfo = TweenInfo.new(1)
+local isOrderClaimed = false
+local function claimOrder(clone)
+ if (not isOrderClaimed) then
+ isOrderClaimed = true
+ game.ReplicatedStorage.LundstrongOrders.Events.claimOrder:FireServer(clone.ID.Value)
+ local tween1 = tweenService:Create(clone.Frame.TextButton, tweenInfo, { BackgroundColor3 = Color3.fromRGB(53, 79, 87) })
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ clone.Frame.TextButton.TextButton.Text = "Claimed"
+ clone.LayoutOrder = 2
+ end)
+ end
+end
+local function handleChefUI(chefGui)
+ if (chefGui.Name == "chefClaimGui") then
+ print("INITIALISING GUI")
+ local path = {
+ ["chefGui"] = {
+ ["Frame"] = chefGui.Frame,
+ ["ScrollingFrame"] = chefGui.Frame.ScrollingFrame,
+ }
+ }
+ game.ReplicatedStorage.LundstrongOrders.Events.orderList.OnClientEvent:Connect(function(orders)
+ print("[LundstrongOrders] [ChefClaimGui] Event Received")
+ for _,v in pairs(orders) do
+ local foundOrder
+ for _,v2 in pairs(path.chefGui.ScrollingFrame:GetChildren()) do
+ if (v2:IsA("Frame")) then
+ if (v2.Name == "itemFrame") then
+ if (v2.ID.Value == v.id) then
+ foundOrder = true
+ if (v.isCompleted) then
+ isOrderClaimed = false
+ v2:Destroy()
+ break
+ end
+ if (v.isClaimed and v2.LayoutOrder ~= 2) then
+ local tween1 = tweenService:Create(v2.Frame.TextButton, tweenInfo, { BackgroundColor3 = Color3.fromRGB(53, 79, 87) })
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ v2.Frame.TextButton.TextButton.Text = "Claimed"
+ v2.LayoutOrder = 2
+ end)
+ break
+ end
+ end
+ end
+ end
+ end
+ if (foundOrder) then
+ print("Order Found")
+ else
+ print("Order not found")
+ end
+ if (v.isClaimed) then
+ print("Order Claimed")
+ else
+ print("Order not Claimed")
+ end
+ if (v.isCompleted) then
+ print("Order Completed")
+ else
+ print("Order not Completed")
+ end
+ if (not foundOrder and not v.isCompleted) then
+ local clone = path.chefGui.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.chefGui.ScrollingFrame
+ clone:WaitForChild("ID").Value = v.id
+ clone.Frame:WaitForChild("TextLabel").Text = v.orderReceiver.Name
+ clone.Frame:WaitForChild("ImageLabel").Image = "https://www.roblox.com/Thumbs/Avatar.ashx?x=500&y=500&username="..v.orderReceiver.Name
+ clone.Name = "itemFrame"
+ clone.Visible = true
+ clone.Frame.TextButton.Activated:Connect(function()
+ claimOrder(clone)
+ end)
+ clone.Frame.TextButton.TextButton.Activated:Connect(function()
+ claimOrder(clone)
+ end)
+ end
+ end
+ end)
+ path.chefGui.ScrollingFrame.UIGridLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.chefGui.ScrollingFrame.UIGridLayout.AbsoluteContentSize
+ path.chefGui.ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, absoluteSize.Y)
+ end)
+ end
+end
+game.Players.LocalPlayer.PlayerGui.LundstrongOrders.chefClaimGui.DescendantAdded:Connect(handleChefUI)
+for _,chefGui in pairs(game.Players.LocalPlayer.PlayerGui.LundstrongOrders.chefClaimGui:GetChildren()) do
+ handleChefUI(chefGui)
+end
diff --git a/src/StarterGui/LundstrongOrders/chefGui/chefGui.rbxmx b/src/StarterGui/LundstrongOrders/chefGui/chefGui.rbxmx
new file mode 100644
index 0000000..4896cf2
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefGui/chefGui.rbxmx
@@ -0,0 +1,784 @@
+
+ true
+ null
+ nil
+ -
+
+
+ true
+ 0
+ false
+ true
+ chefGui
+ true
+
[null]
+ -1
+
+ 1
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ main
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.308560491
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.827000022
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.750000656
+ 0
+ 0.0950226262
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Complete Order
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ username
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.0500000007
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.388181746
+ 0
+ 0.069892846
+ 0
+
+ 0
+ -1
+
+ Order For: Sasial
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 0
+ 1
+ true
+ 4
+
+
+ -
+
+ 0.779999971
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ true
+ false
+ 0
+ Items
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.155000001
+ 0
+
+ [null]
+ 0
+ true
+ [null]
+
+ 0.699999988
+ 0
+ 0.600000024
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 10
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+
+ 0
+ 0
+ 0
+
+ 0
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+ 1
+ 0
+ UIListLayout
+
+
0
+ 10
+
+ 2
+ -1
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 2
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.940213799
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.851393223
+ 0
+ 0.150434211
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 1
+
+ -
+
+
+
+
0
+ 10
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.150000006
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.699999928
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 1
+ topPadding
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.940213799
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0299999993
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.209656641
+ 0
+ 0.0493927002
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/chefGui/handler.client.lua b/src/StarterGui/LundstrongOrders/chefGui/handler.client.lua
new file mode 100644
index 0000000..571f685
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefGui/handler.client.lua
@@ -0,0 +1,30 @@
+local chefGui = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.chefGui.chefGui
+local currentOrderId = false
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("completeOrder").OnClientEvent:Connect(function(order)
+ chefGui.Enabled = true
+ for _,v in pairs(order.items) do
+ local clone = chefGui.main.Items.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = chefGui.main.Items.ScrollingFrame
+ clone.Name = "itemFrame"
+ clone.Visible = true
+ clone.TextLabel.Text = v
+ end
+ currentOrderId = order.id
+ chefGui.main.username.Text = "Order For: "..order.orderReceiver.Name
+end)
+chefGui.main.Frame.TextButton.MouseButton1Up:Connect(function()
+ if (currentOrderId) then
+ chefGui.Enabled = false
+ for _,v in pairs(chefGui.main.Items.ScrollingFrame:GetChildren()) do
+ if (v.Name == "itemFrame") then
+ v:Destroy()
+ end
+ end
+ game.ReplicatedStorage.LundstrongOrders.Events.completeOrder:FireServer(currentOrderId)
+ currentOrderId = false
+ end
+end)
+chefGui.main.Items.ScrollingFrame.UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = chefGui.main.Items.ScrollingFrame.UIListLayout.AbsoluteContentSize
+ chefGui.main.Items.ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, absoluteSize.Y)
+end)
diff --git a/src/StarterGui/LundstrongOrders/chefGui/init.meta.json b/src/StarterGui/LundstrongOrders/chefGui/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/chefGui/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/init.meta.json b/src/StarterGui/LundstrongOrders/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/kioskGui/buttonHandler.client.lua b/src/StarterGui/LundstrongOrders/kioskGui/buttonHandler.client.lua
new file mode 100644
index 0000000..42f951b
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/kioskGui/buttonHandler.client.lua
@@ -0,0 +1,106 @@
+local path = require(game.Players.LocalPlayer.PlayerGui.LundstrongOrders.kioskGui.filePaths)
+local Nofications = require(game.ReplicatedStorage.LundstrongOrders.notifHandler)
+local tween = require(game.ReplicatedStorage.LundstrongOrders.tween)
+local tweenService = game:GetService("TweenService")
+local tweeninfo = TweenInfo.new(.75)
+local openBounce = false
+
+-- * Button Handlers
+ -- Cat. Selector
+local function catSelect()
+ -- Bg
+ local tween1 = tweenService:Create(path.kioskGui.createOrder.categoryAnim, tweeninfo, { BackgroundTransparency = .2 })
+ -- Rotate
+ local tween2 = tweenService:Create(path.kioskGui.createOrder.Categories.Categories.selectedCategory.dropdownButton, tweeninfo, { Rotation = 0 })
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ path.kioskGui.createOrder.Categories.Visible = true
+ wait(0.5)
+ tween2:Play()
+ end)
+end
+path.kioskGui.createOrder.Category.MouseButton1Up:Connect(catSelect)
+path.kioskGui.createOrder.Category.usernameText.MouseButton1Up:Connect(catSelect)
+path.kioskGui.createOrder.Category.dropdownButton.MouseButton1Up:Connect(catSelect)
+path.kioskGui.createOrder.ScrollingFrame.UIGridLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.kioskGui.createOrder.ScrollingFrame.UIGridLayout.AbsoluteContentSize
+ path.kioskGui.createOrder.ScrollingFrame.CanvasSize = UDim2.new(0, absoluteSize.X, 0, absoluteSize.Y)
+end)
+path.kioskGui.createOrder.summaryFrame.ScrollingFrame.UIGridLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
+ local absoluteSize = path.kioskGui.createOrder.summaryFrame.ScrollingFrame.UIGridLayout.AbsoluteContentSize
+ path.kioskGui.createOrder.summaryFrame.ScrollingFrame.CanvasSize = UDim2.new(0, absoluteSize.X, 0, absoluteSize.Y)
+end)
+path.kioskGui.createOrder.exitButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.kioskGui.createOrder)
+end)
+path.kioskGui.createOrder.exitButton.TextButton.MouseButton1Up:Connect(function()
+ openBounce = false
+ tween:CreateExitTween(path.kioskGui.createOrder)
+end)
+path.kioskGui.createOrder.buttonFrame.clearAllItemsButton.MouseButton1Up:Connect(function()
+ for _,v in pairs(path.kioskGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if (v:IsA("TextButton")) then
+ if (v.Name == "itemFrame") then
+ v:Destroy()
+ end
+ end
+ end
+end)
+local createOrderDebounce = false -- OrderCooldown is dealt with on the server to prevent exploiters. This is just to stop the script from breaking.
+path.kioskGui.createOrder.buttonFrame.submitOrderButton.MouseButton1Up:Connect(function()
+ if (createOrderDebounce == false) then
+ createOrderDebounce = true
+ local items = {}
+ for _,v in pairs(path.kioskGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if v.Name == "itemFrame" and v:IsA("TextButton") then
+ table.insert(items, v.TextLabel.Text)
+ end
+ end
+ print(items)
+ local orderSubmitted = game.ReplicatedStorage.LundstrongOrders.Events.createOrder:InvokeServer(game.Players.LocalPlayer.Name, items)
+ if (orderSubmitted == true) then
+ for _,v in pairs(path.kioskGui.createOrder.summaryFrame.ScrollingFrame:GetChildren()) do
+ if (v:IsA("TextButton")) then
+ if (v.Name == "itemFrame") then
+ v:Destroy()
+ end
+ end
+ end
+ createOrderDebounce = false
+ Nofications:CreateNotification("The order has been submitted!")
+ else
+ createOrderDebounce = false
+ Nofications:CreateNotification(orderSubmitted)
+ end
+ end
+end)
+-- * Fade IN
+game.ReplicatedStorage:WaitForChild("LundstrongOrders"):WaitForChild("Events"):WaitForChild("enableGui").OnClientEvent:Connect(function(gui)
+ if (gui == "kioskGui") then
+ if (openBounce == false) then
+ openBounce = true
+ local tween1 = tweenService:Create(path.kioskGui.createOrder.animFrame, tweeninfo, {Transparency = 0})
+ local tween2 = tweenService:Create(path.kioskGui.createOrder.bgGreenAnim, tweeninfo, {ImageTransparency = 0})
+ local tween5 = tweenService:Create(path.kioskGui.createOrder.animFrame, tweeninfo, {Transparency = 1})
+ local tween6 = tweenService:Create(path.kioskGui.createOrder.bgGreenAnim, tweeninfo, {ImageTransparency = 1})
+ local tween7 = tweenService:Create(path.kioskGui.createOrder.exitButton, tweeninfo, {BackgroundTransparency = 0})
+ local tween8 = tweenService:Create(path.kioskGui.createOrder.exitButton.TextButton, tweeninfo, {TextTransparency = 0})
+ path.kioskGui.createOrder.animFrame.Transparency = 0
+ path.kioskGui.createOrder.bgGreenAnim.ImageTransparency = 0
+ path.kioskGui.createOrder.exitButton.BackgroundTransparency = 1
+ path.kioskGui.createOrder.exitButton.TextButton.TextTransparency = 1
+ path.kioskGuiFolder.kioskGui.Enabled = true
+ tween1:Play()
+ tween2:Play()
+ tween2.Completed:Connect(function()
+ path.kioskGui.createOrder.Visible = true
+ wait(0.2)
+ tween5:Play()
+ tween6:Play()
+ tween7:Play()
+ tween8:Play()
+ end)
+ end
+ end
+end)
diff --git a/src/StarterGui/LundstrongOrders/kioskGui/filePaths.lua b/src/StarterGui/LundstrongOrders/kioskGui/filePaths.lua
new file mode 100644
index 0000000..2a6be05
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/kioskGui/filePaths.lua
@@ -0,0 +1,11 @@
+local run = game:GetService("RunService")
+
+if (run:IsClient()) then -- ! This script can only run on the client side.
+ game.Players.LocalPlayer.PlayerGui.LundstrongOrders.kioskGui:WaitForChild("kioskGui") -- ? Is there a better way to do this?
+ return {
+ ["kioskGuiFolder"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.kioskGui,
+ ["kioskGui"] = {
+ ["createOrder"] = game.Players.LocalPlayer.PlayerGui.LundstrongOrders.kioskGui.kioskGui.createOrder
+ }
+ }
+end
diff --git a/src/StarterGui/LundstrongOrders/kioskGui/init.meta.json b/src/StarterGui/LundstrongOrders/kioskGui/init.meta.json
new file mode 100644
index 0000000..1025b06
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/kioskGui/init.meta.json
@@ -0,0 +1,3 @@
+{
+ "ignoreUnknownInstances": true
+}
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/kioskGui/kioskGui.rbxmx b/src/StarterGui/LundstrongOrders/kioskGui/kioskGui.rbxmx
new file mode 100644
index 0000000..8865b20
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/kioskGui/kioskGui.rbxmx
@@ -0,0 +1,2465 @@
+
+ true
+ null
+ nil
+ -
+
+
+ true
+ 0
+ false
+ false
+ kioskGui
+ true
+
[null]
+ -1
+
+ 1
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ createOrder
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.200000003
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.67234385
+ 0
+ 0.580814719
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0.0235575978
+ 0
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ bgGreen
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6024885069
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 1
+ 0
+ bgGreenAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 6
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ false
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 4
+ 0
+ 1
+ -1
+ false
+ exitButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.97955966
+ 0
+ -0.0339366533
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.0384759046
+ 0
+ 0.0723981932
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 4
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0.5
+ 0.5
+
+
+ false
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ false
+ TextButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.899999976
+ 0
+ 0.899999976
+ 0
+
+ 0
+ -1
+ 0
+
+ X
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ titleLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.660915613
+ 0
+ 0.0384615362
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.320219994
+ 0
+ 0.142533958
+ 0
+
+ 0
+ -1
+
+ Create an Order
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882354
+ 0.164705887
+ 0.20784314
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.310212016
+ 0
+ 0.454751164
+ 0
+
+ [null]
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 0.600000024
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.371532947
+ 0
+ 0.300301045
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+
+ 0
+ 10
+ 0
+ 10
+
+
+ 0.5
+ -16
+ 0
+ 40
+
+ 0
+ 0
+ 1
+ UIGridLayout
+ 2
+ -1
+ 0
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.980392218
+ 0.937254965
+ 0.937254965
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ summaryFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.697375774
+ 0
+ 0.358569771
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.281355053
+ 0
+ 0.548669994
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ itemDesc
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.0500000007
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.899517119
+ 0
+ 0.102614097
+ 0
+
+ 0
+ -1
+
+ Order Summary
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0.5
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.980392158
+ 0.937254906
+ 0.937254906
+
+ 1
+
+ 0.105882354
+ 0.164705887
+ 0.20784314
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ ScrollingFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.224999994
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0.600000024
+ 12
+ 4
+ true
+ true
+ [null]
+
+ 0.600000024
+ 0
+ 0.548080325
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 1
+
+ -
+
+
+
+ 0
+ 10
+ 0
+ 10
+
+
+ 1
+ -20
+ 0
+ 32
+
+ 0
+ 0
+ 1
+ UIGridLayout
+ 2
+ -1
+ 0
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ cloneFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.647000015
+ 0
+ 0
+ 200
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.291000009
+ 0
+ 0
+ 40
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ false
+ 1
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 0.100000001
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Lemonade
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ itemDesc
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.875
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.598201036
+ 0
+ 0.102614097
+ 0
+
+ 0
+ -1
+
+ Click an Item to remove it
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Categories
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786000013
+ 0
+ 0.25
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.192000002
+ 0
+ 0.271850437
+ 0
+
+ 0
+ -1
+ 0
+
+ false
+ 4
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-bottom.png
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 108
+
+ true
+ false
+ 0
+ 0
+ 0
+ rbxasset://textures/ui/Scroll/scroll-middle.png
+ Categories
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+ 12
+ 4
+ true
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+
+ rbxasset://textures/ui/Scroll/scroll-top.png
+ 0
+ 0
+ true
+ 4
+
+ -
+
+
+ 1
+ 1
+ UIListLayout
+
+
0
+ 0
+
+ 2
+ -1
+
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 1
+ 1
+ -1
+ false
+ selectedCategory
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786351323
+ 0
+ 0.339366525
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 1
+ -12
+ 0.25
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.159836203
+ 0
+ 0.500000358
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.712225437
+ 0
+ 0.800000191
+ 0
+
+ 0
+ -1
+ 0
+
+ Drinks
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=302248702
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ dropdownButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 90
+ 0
+ false
+ false
+ [null]
+
+ 0.0750986859
+ 0
+ 0.399779946
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ animFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 5
+
+ -
+
+
+
+
0.0235575978
+ 0
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.298039228
+ 0.298039228
+ 0.298039228
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ categoryAnim
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 3
+
+ -
+
+
+
+
0.0235575978
+ 0
+
+ UICorner
+ -1
+
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ 0
+ 1
+ -1
+ false
+ Category
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.786000013
+ 0
+ 0.25
+ 0
+
+ false
+ [null]
+ 0
+ false
+ false
+ [null]
+
+ 0.192379519
+ 0
+ 0.0680000037
+ 0
+
+ 0
+ -1
+ 0
+
+ Button
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ true
+ 2
+ 1
+ true
+ 3
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+
+ http://www.roblox.com/asset/?id=302248702
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ false
+ dropdownButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0500000007
+ 0
+ 0.5
+ 0
+
+
+ [null]
+ 90
+ 0
+ false
+ false
+ [null]
+
+ 0.0750986859
+ 0
+ 0.399779946
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+ 0
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0.5
+
+
+ true
+ true
+ 0
+
+ 0.815686285
+ 0.815686285
+ 0.815686285
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 5
+ 0
+ 1
+ -1
+ false
+ usernameText
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.159836203
+ 0
+ 0.500000358
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.712000012
+ -12
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ Drinks
+
+ 0.20784314
+ 0.309803933
+ 0.34117648
+
+ true
+ 8
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 1
+ 1
+ true
+ 1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.270588249
+ 0.403921574
+ 0.447058827
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ buttonFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.200000003
+ 0
+ 0.876999974
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.400000006
+ 0
+ 0.0700000003
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 2
+
+ -
+
+
+
+
0
+ 15
+
+ UICorner
+ -1
+
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ submitOrderButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Submit Order
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+ -
+
+ true
+
+ 0
+ 0
+
+
+ true
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 3
+ 0
+ 1
+ -1
+ false
+ clearAllItemsButton
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.150000006
+ 0
+
+ false
+ [null]
+ 0
+ true
+ false
+ [null]
+
+ 0.5
+ 0
+ 0.699999988
+ 0
+
+ 0
+ -1
+ 0
+
+ Clear All Items
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+ -
+
+ 1.88165009
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ http://www.roblox.com/asset/?id=6599961695
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+ 0
+ 0
+ lundstrongOrdersLogo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.0160000008
+ 0
+ 0.0299999993
+ 0
+
+ [null]
+ 0
+ 0
+ false
+ [null]
+
+ 0.119113393
+ 0
+ 0.0636244863
+ 0
+
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 1
+ -1
+
+
+ 1
+ 0
+ 1
+ 0
+
+ true
+ 1
+
+ -
+
+ 3.53800011
+ 0
+
+ 0
+ UIAspectRatioConstraint
+ -1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/StarterGui/LundstrongOrders/kioskGui/setup.client.lua b/src/StarterGui/LundstrongOrders/kioskGui/setup.client.lua
new file mode 100644
index 0000000..c7e0588
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/kioskGui/setup.client.lua
@@ -0,0 +1,117 @@
+local path = require(game.Players.LocalPlayer.PlayerGui.LundstrongOrders.kioskGui.filePaths)
+local config = require(workspace.LundstrongOrders.Configuration)
+local tweenService = game:GetService("TweenService")
+local tweeninfo = TweenInfo.new(1)
+
+local function getTableKeys(tab)
+ local keyset = {}
+ for _,v in ipairs(tab) do
+ for k,_ in pairs(v) do
+ keyset[#keyset + 1] = k -- More effective/optimised than table.insert(keyset,k)
+ end
+ end
+ return keyset
+end
+
+local function createSummaryItem(item)
+ local clone = path.kioskGui.createOrder.summaryFrame.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.kioskGui.createOrder.summaryFrame.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = item.TextLabel.Text
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ clone:Destroy()
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ clone:Destroy()
+ end)
+end
+
+-- * Cats (Create Order)
+for i,v in pairs(getTableKeys(config.MenuItems.MenuItems)) do
+ if (i == 1) then
+ path.kioskGui.createOrder.Categories.Categories.selectedCategory.usernameText.Text = v
+ path.kioskGui.createOrder.Categories.Categories.selectedCategory.LayoutOrder = i
+ path.kioskGui.createOrder.Category.usernameText.Text = v
+ -- Add items.
+ for _,itemText in pairs(config.MenuItems.MenuItems[i][v]) do
+ local clone = path.kioskGui.createOrder.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.kioskGui.createOrder.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = itemText.ItemName
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ end
+ else
+ local clone = path.kioskGui.createOrder.Categories.Categories.selectedCategory:Clone()
+ clone.Parent = path.kioskGui.createOrder.Categories.Categories
+ clone.usernameText.Text = v
+ clone.Name = "Category"
+ clone.LayoutOrder = i
+ end
+end
+path.kioskGui.createOrder.Categories.Categories.CanvasSize = UDim2.new(0,0,0, ((#path.kioskGui.createOrder.Categories.Categories:GetChildren() - 1 ) * path.kioskGui.createOrder.Category.AbsoluteSize.Y))
+if (#path.kioskGui.createOrder.Categories.Categories:GetChildren() < 5) then
+ path.kioskGui.createOrder.Categories.Size = UDim2.new(0.192, 0, ((#path.kioskGui.createOrder.Categories.Categories:GetChildren() - 1 ) * 0.068), 0)
+ path.kioskGui.createOrder.Category.usernameText.Size = UDim2.new(0.712, 0, 0.8, 0)
+end
+for _,v in pairs(path.kioskGui.createOrder.Categories.Categories:GetChildren()) do
+ if v:IsA("TextButton") then
+ if (#path.kioskGui.createOrder.Categories.Categories:GetChildren() < 5) then
+ v.Size = UDim2.new(1, 0, 1/(#path.kioskGui.createOrder.Categories.Categories:GetChildren() -1), 0)
+ else
+ v.Size = UDim2.new(1, -12, 1/(#path.kioskGui.createOrder.Categories.Categories:GetChildren() -1), 0)
+ end
+ end
+end
+local function catSelected(newCat)
+ -- Bg
+ local tween2 = tweenService:Create(path.kioskGui.createOrder.categoryAnim, tweeninfo, { BackgroundTransparency = 1 })
+ -- Rotate
+ local tween1 = tweenService:Create(path.kioskGui.createOrder.Categories.Categories.selectedCategory.dropdownButton, tweeninfo, { Rotation = 90 })
+ path.kioskGui.createOrder.Category.usernameText.Text = newCat.usernameText.Text
+ tween1:Play()
+ tween1.Completed:Connect(function()
+ path.kioskGui.createOrder.Categories.Visible = false
+ wait(0.5)
+ for _,v in pairs(path.kioskGui.createOrder.ScrollingFrame:GetChildren()) do
+ if v:IsA("TextButton") then
+ if v.Name == "itemFrame" then
+ v:Destroy()
+ end
+ end
+ end
+ for _,itemText in pairs(config.MenuItems.MenuItems[newCat.LayoutOrder][newCat.usernameText.Text]) do
+ local clone = path.kioskGui.createOrder.ScrollingFrame.cloneFrame:Clone()
+ clone.Parent = path.kioskGui.createOrder.ScrollingFrame
+ clone.Visible = true
+ clone.TextLabel.Text = itemText.ItemName
+ clone.Name = "itemFrame"
+ clone.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ clone.TextLabel.MouseButton1Up:Connect(function()
+ createSummaryItem(clone)
+ end)
+ end
+ tween2:Play()
+ end)
+end
+for _,v in pairs(path.kioskGui.createOrder.Categories.Categories:GetChildren()) do
+ if v:IsA("TextButton") then
+ v.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ v.dropdownButton.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ v.usernameText.MouseButton1Up:Connect(function()
+ catSelected(v)
+ end)
+ end
+end
diff --git a/src/StarterGui/LundstrongOrders/notification/Sound.model.json b/src/StarterGui/LundstrongOrders/notification/Sound.model.json
new file mode 100644
index 0000000..191ad30
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/notification/Sound.model.json
@@ -0,0 +1,7 @@
+{
+ "ClassName": "Sound",
+ "Properties": {
+ "SoundId": "rbxassetid://255881176",
+ "Volume": 1
+ }
+}
diff --git a/src/StarterGui/LundstrongOrders/notification/handler.client.lua b/src/StarterGui/LundstrongOrders/notification/handler.client.lua
new file mode 100644
index 0000000..e8f4326
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/notification/handler.client.lua
@@ -0,0 +1,5 @@
+local Nofications = require(game.ReplicatedStorage.LundstrongOrders.notifHandler)
+
+game.ReplicatedStorage.LundstrongOrders.Events.sendNotification.OnClientEvent:Connect(function(notification: string, time: number?)
+ Nofications:CreateNotification(notification, time)
+end)
diff --git a/src/StarterGui/LundstrongOrders/notification/notification.rbxmx b/src/StarterGui/LundstrongOrders/notification/notification.rbxmx
new file mode 100644
index 0000000..757947a
--- /dev/null
+++ b/src/StarterGui/LundstrongOrders/notification/notification.rbxmx
@@ -0,0 +1,400 @@
+
+ true
+ null
+ nil
+ -
+
+
+ true
+ 0
+ true
+ false
+ notification
+ true
+
[null]
+ -1
+
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Container
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 1
+ -220
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0
+ 220
+ 1
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ true
+ false
+ 0
+ Demo
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0.89937669
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0
+ 100
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.207843155
+ 0.309803933
+ 0.34117648
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ true
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.100000001
+ 0
+ 1.10000002
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+
+
+
0.100000001
+ 0
+
+ UICorner
+ -1
+
+
+
+ -
+
+ false
+
+ 0.5
+ 0
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 0
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ Frame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.949999988
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0.0500000007
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+
+ -
+
+ false
+
+ 0
+ 0
+
+
+ true
+ 0
+
+ 0.427451015
+ 0.643137276
+ 0.70588237
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 0
+ textFrame
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0
+ 0
+ 0
+ 0
+
+ [null]
+ 0
+ false
+ [null]
+
+ 1
+ 0
+ 0.949999988
+ 0
+
+ 0
+ -1
+ 0
+
+ true
+ 1
+
+ -
+
+ false
+
+ 0.5
+ 0.5
+
+
+ true
+ 0
+
+ 1
+ 1
+ 1
+
+ 1
+
+ 0.105882362
+ 0.164705887
+ 0.207843155
+
+ 0
+ 0
+ false
+ false
+ 16
+ 0
+ 1
+ -1
+ TextLabel
+
[null]
+ [null]
+ [null]
+ [null]
+
+ 0.5
+ 0
+ 0.5
+ 0
+
+ false
+ [null]
+ 0
+ false
+ [null]
+
+ 0.800000012
+ 0
+ 0.800000012
+ 0
+
+ 0
+ -1
+
+ Your order is now being prepared by sasial.
+
+ 1
+ 1
+ 1
+
+ true
+ 14
+
+ 0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ true
+ 2
+ 1
+ true
+ 1
+
+
+
+
+
+ -
+
+
+ 1
+ 2
+ UIListLayout
+
+
0
+ 0
+
+ 2
+ -1
+
+ 2
+
+
+
+
+
\ No newline at end of file
diff --git a/src/init.lua b/src/init.lua
new file mode 100644
index 0000000..f66a7f8
--- /dev/null
+++ b/src/init.lua
@@ -0,0 +1,25 @@
+local ps = game:GetService("Players")
+return function()
+ if script:FindFirstChild("Server") then
+ script:FindFirstChild("Server").LundstrongOrders.Parent = game:GetService("ServerScriptService")
+ else
+ error("[LundstrongOrders] Unable to load a main module of the system. Try shutting down this sever to fix the issue. (Module: Server)")
+ end
+ if script:FindFirstChild("ReplicatedStorage") then
+ script:FindFirstChild("ReplicatedStorage").LundstrongOrders.Parent = game:GetService("ReplicatedStorage")
+ else
+ error("[LundstrongOrders] Unable to load a main module of the system. Try shutting down this sever to fix the issue. (Module: Shared/RepS)")
+ end
+ if (script:FindFirstChild("StarterGui")) then
+ for _,i in pairs(ps:GetPlayers()) do
+ for _,v in pairs(script.StarterGui:GetChildren()) do
+ v:Clone().Parent = i.PlayerGui
+ end
+ end
+ for _,v in pairs(script.StarterGui:GetChildren()) do
+ v.Parent = game.StarterGui
+ end
+ else
+ error("[LundstrongOrders] Unable to load a main module of the system. Try shutting down this server to fix the issue. (Module: Client)")
+ end
+end