ignore = {}

local empty = {}
local read_write = { read_only = false }
local read_write_class = { read_only = false, other_fields = true }
local read_only = { read_only = true }

local function def_fields(field_list)
	local fields = {}

	for _, field in ipairs(field_list) do
		fields[field] = empty
	end

	return { fields = fields }
end

local enum = def_fields({"Value", "Name"})

local function def_enum(field_list)
	local fields = {}

	for _, field in ipairs(field_list) do
		fields[field] = enum
	end

	fields["GetEnumItems"] = read_only

	return { fields = fields }
end

stds.roblox = {
	globals = {
		script = {
			other_fields = true,
			fields = {
				Source = read_write;
				GetHash = read_write;
				Disabled = read_write;
				LinkedSource = read_write;
				CurrentEditor = read_write_class;
				Archivable = read_write;
				ClassName = read_only;
				DataCost = read_only;
				Name = read_write;
				Parent = read_write_class;
				RobloxLocked = read_write;
				ClearAllChildren = read_write;
				Clone = read_write;
				Destroy = read_write;
				FindFirstAncestor = read_write;
				FindFirstAncestorOfClass = read_write;
				FindFirstAncestorWhichIsA = read_write;
				FindFirstChild = read_write;
				FindFirstChildOfClass = read_write;
				FindFirstChildWhichIsA = read_write;
				GetChildren = read_write;
				GetDebugId = read_write;
				GetDescendants = read_write;
				GetFullName = read_write;
				GetPropertyChangedSignal = read_write;
				IsA = read_write;
				IsAncestorOf = read_write;
				IsDescendantOf = read_write;
				WaitForChild = read_write;
				AncestryChanged = read_write_class;
				Changed = read_write_class;
				ChildAdded = read_write_class;
				ChildRemoved = read_write_class;
				DescendantAdded = read_write_class;
				DescendantRemoving = read_write_class;
			}
		},
		game = {
			other_fields = true,
			fields = {
				CreatorId = read_only;
				CreatorType = read_only;
				GameId = read_only;
				GearGenreSetting = read_only;
				Genre = read_only;
				IsSFFlagsLoaded = read_only;
				JobId = read_only;
				PlaceId = read_only;
				PlaceVersion = read_only;
				PrivateServerId = read_only;
				PrivateServerOwnerId = read_only;
				Workspace = read_only;
				BindToClose = read_write;
				GetJobIntervalPeakFraction = read_write;
				GetJobTimePeakFraction = read_write;
				GetJobsExtendedStats = read_write;
				GetJobsInfo = read_write;
				GetObjects = read_write;
				IsGearTypeAllowed = read_write;
				IsLoaded = read_write;
				Load = read_write;
				OpenScreenshotsFolder = read_write;
				OpenVideosFolder = read_write;
				ReportInGoogleAnalytics = read_write;
				SetPlaceId = read_write;
				SetUniverseId = read_write;
				Shutdown = read_write;
				HttpGetAsync = read_write;
				HttpPostAsync = read_write;
				GraphicsQualityChangeRequest = read_write;
				Loaded = read_write;
				ScreenshotReady = read_write;
				FindService = read_write;
				GetService = read_write;
				Close = read_write_class;
				CloseLate = read_write_class;
				ServiceAdded = read_write_class;
				ServiceRemoving = read_write_class;
				Archivable = read_write;
				ClassName = read_only;
				DataCost = read_only;
				Name = read_write;
				Parent = read_write_class;
				RobloxLocked = read_write;
				ClearAllChildren = read_write;
				Clone = read_write;
				Destroy = read_write;
				FindFirstAncestor = read_write;
				FindFirstAncestorOfClass = read_write;
				FindFirstAncestorWhichIsA = read_write;
				FindFirstChild = read_write;
				FindFirstChildOfClass = read_write;
				FindFirstChildWhichIsA = read_write;
				GetChildren = read_write;
				GetDebugId = read_write;
				GetDescendants = read_write;
				GetFullName = read_write;
				GetPropertyChangedSignal = read_write;
				IsA = read_write;
				IsAncestorOf = read_write;
				IsDescendantOf = read_write;
				WaitForChild = read_write;
				AncestryChanged = read_write_class;
				Changed = read_write_class;
				ChildAdded = read_write_class;
				ChildRemoved = read_write_class;
				DescendantAdded = read_write_class;
				DescendantRemoving = read_write_class;
			}
		},
		workspace = {
			other_fields = true,
			fields = {
				AllowThirdPartySales = read_write;
				AutoJointsMode = read_write;
				CurrentCamera = read_write_class;
				DistributedGameTime = read_write;
				FallenPartsDestroyHeight = read_write;
				FilteringEnabled = read_write;
				Gravity = read_write;
				StreamingEnabled = read_write;
				StreamingMinRadius = read_write;
				StreamingTargetRadius = read_write;
				TemporaryLegacyPhysicsSolverOverride = read_write;
				Terrain = read_only;
				BreakJoints = read_write;
				ExperimentalSolverIsEnabled = read_write;
				FindPartOnRay = read_write;
				FindPartOnRayWithIgnoreList = read_write;
				FindPartOnRayWithWhitelist = read_write;
				FindPartsInRegion3 = read_write;
				FindPartsInRegion3WithIgnoreList = read_write;
				FindPartsInRegion3WithWhiteList = read_write;
				GetNumAwakeParts = read_write;
				GetPhysicsThrottling = read_write;
				GetRealPhysicsFPS = read_write;
				IsRegion3Empty = read_write;
				IsRegion3EmptyWithIgnoreList = read_write;
				JoinToOutsiders = read_write;
				MakeJoints = read_write;
				PGSIsEnabled = read_write;
				SetPhysicsThrottleEnabled = read_write;
				UnjoinFromOutsiders = read_write;
				ZoomToExtents = read_write;
				PrimaryPart = read_write_class;
				BreakJoints = read_write;
				GetBoundingBox = read_write;
				GetExtentsSize = read_write;
				GetPrimaryPartCFrame = read_write;
				MakeJoints = read_write;
				MoveTo = read_write;
				SetPrimaryPartCFrame = read_write;
				TranslateBy = read_write;
				Archivable = read_write;
				ClassName = read_only;
				DataCost = read_only;
				Name = read_write;
				Parent = read_write_class;
				RobloxLocked = read_write;
				ClearAllChildren = read_write;
				Clone = read_write;
				Destroy = read_write;
				FindFirstAncestor = read_write;
				FindFirstAncestorOfClass = read_write;
				FindFirstAncestorWhichIsA = read_write;
				FindFirstChild = read_write;
				FindFirstChildOfClass = read_write;
				FindFirstChildWhichIsA = read_write;
				GetChildren = read_write;
				GetDebugId = read_write;
				GetDescendants = read_write;
				GetFullName = read_write;
				GetPropertyChangedSignal = read_write;
				IsA = read_write;
				IsAncestorOf = read_write;
				IsDescendantOf = read_write;
				WaitForChild = read_write;
				AncestryChanged = read_write_class;
				Changed = read_write_class;
				ChildAdded = read_write_class;
				ChildRemoved = read_write_class;
				DescendantAdded = read_write_class;
				DescendantRemoving = read_write_class;
			}
		},
	},
	read_globals = {
		-- Methods
		delay = empty;
		settings = empty;
		spawn = empty;
		tick = empty;
		time = empty;
		typeof = empty;
		version = empty;
		wait = empty;
		warn = empty;

		-- Libraries
		math = def_fields({"abs", "acos", "asin", "atan", "atan2", "ceil", "clamp", "cos", "cosh",
			"deg", "exp", "floor", "fmod", "frexp", "ldexp", "log", "log10", "max", "min", "modf",
			"noise", "pow", "rad", "random", "randomseed", "sign", "sin", "sinh", "sqrt", "tan",
			"tanh", "huge", "pi"}),

		debug = def_fields({"traceback", "profilebegin", "profileend"}),

		utf8 = def_fields({"char", "codes", "codepoint", "len", "offset", "graphemes",
			"nfcnormalize", "nfdnormalize", "charpattern"}),

		-- Types
		Axes = def_fields({"new"}),

		BrickColor = def_fields({"new", "palette", "random", "White", "Gray", "DarkGray", "Black",
			"Red", "Yellow", "Green", "Blue"}),

		CFrame = def_fields({"new", "fromEulerAnglesXYZ", "Angles", "fromOrientation",
			"fromAxisAngle", "fromMatrix"}),

		Color3 = def_fields({"new", "fromRGB", "fromHSV", "toHSV"}),

		ColorSequence = def_fields({"new"}),

		ColorSequenceKeypoint = def_fields({"new"}),

		DockWidgetPluginGuiInfo = def_fields({"new"}),

		Enums = def_fields({"GetEnums"}),

		Faces = def_fields({"new"}),

		Instance = def_fields({"new"}),

		NumberRange = def_fields({"new"}),

		NumberSequence = def_fields({"new"}),

		NumberSequenceKeypoint = def_fields({"new"}),

		PhysicalProperties = def_fields({"new"}),

		Random = def_fields({"new"}),

		Ray = def_fields({"new"}),

		Rect = def_fields({"new"}),

		Region3 = def_fields({"new"}),

		Region3int16 = def_fields({"new"}),

		TweenInfo = def_fields({"new"}),

		UDim = def_fields({"new"}),

		UDim2 = def_fields({"new"}),

		Vector2 = def_fields({"new"}),

		Vector2int16 = def_fields({"new"}),

		Vector3 = def_fields({"new", "FromNormalId", "FromAxis"}),

		Vector3int16 = def_fields({"new"}),

		-- Enums
		Enum = {
			readonly = true,
			fields = {
				ActionType = def_enum({"Nothing", "Pause", "Lose", "Draw", "Win"}),
				ActuatorRelativeTo = def_enum({"Attachment0", "Attachment1", "World"}),
				ActuatorType = def_enum({"None", "Motor", "Servo"}),
				AlignType = def_enum({"Parallel", "Perpendicular"}),
				AnimationPriority = def_enum({"Idle", "Movement", "Action", "Core"}),
				AppShellActionType = def_enum({"None", "OpenApp", "TapChatTab",
					"TapConversationEntry", "TapAvatarTab", "ReadConversation", "TapGamePageTab",
					"TapHomePageTab", "GamePageLoaded", "HomePageLoaded", "AvatarEditorPageLoaded"}),
				AspectType = def_enum({"FitWithinMaxSize", "ScaleWithParentSize"}),
				AssetType = def_enum({"Image", "TeeShirt", "Audio", "Mesh", "Lua", "Hat", "Place",
					"Model", "Shirt", "Pants", "Decal", "Head", "Face", "Gear", "Badge",
					"Animation", "Torso", "RightArm", "LeftArm", "LeftLeg", "RightLeg", "Package",
					"GamePass", "Plugin", "MeshPart", "HairAccessory", "FaceAccessory",
					"NeckAccessory", "ShoulderAccessory", "FrontAccessory", "BackAccessory",
					"WaistAccessory", "ClimbAnimation", "DeathAnimation", "FallAnimation",
					"IdleAnimation", "JumpAnimation", "RunAnimation", "SwimAnimation",
					"WalkAnimation", "PoseAnimation", "EarAccessory", "EyeAccessory"}),
				AutoJointsMode = def_enum({"Default", "Explicit", "LegacyImplicit"}),
				AvatarContextMenuOption = def_enum({"Friend", "Chat", "Emote"}),
				AvatarJointPositionType = def_enum({"Fixed", "ArtistIntent"}),
				Axis = def_enum({"X", "Y", "Z"}),
				BinType = def_enum({"Script", "GameTool", "Grab", "Clone", "Hammer"}),
				BodyPart = def_enum({"Head", "Torso", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}),
				BodyPartR15 = def_enum({"Head", "UpperTorso", "LowerTorso", "LeftFoot",
					"LeftLowerLeg", "LeftUpperLeg", "RightFoot", "RightLowerLeg", "RightUpperLeg",
					"LeftHand", "LeftLowerArm", "LeftUpperArm", "RightHand", "RightLowerArm",
					"RightUpperArm", "RootPart", "Unknown"}),
				Button = def_enum({"Jump", "Dismount"}),
				ButtonStyle = def_enum({"Custom", "RobloxButtonDefault", "RobloxButton",
					"RobloxRoundButton", "RobloxRoundDefaultButton", "RobloxRoundDropdownButton"}),
				CameraMode = def_enum({"Classic", "LockFirstPerson"}),
				CameraPanMode = def_enum({"Classic", "EdgeBump"}),
				CameraType = def_enum({"Fixed", "Watch", "Attach", "Track", "Follow", "Custom",
					"Scriptable", "Orbital"}),
				CellBlock = def_enum({"Solid", "VerticalWedge", "CornerWedge",
					"InverseCornerWedge", "HorizontalWedge"}),
				CellMaterial = def_enum({"Empty", "Grass", "Sand", "Brick", "Granite", "Asphalt",
					"Iron", "Aluminum", "Gold", "WoodPlank", "WoodLog", "Gravel", "CinderBlock",
					"MossyStone", "Cement", "RedPlastic", "BluePlastic", "Water"}),
				CellOrientation = def_enum({"NegZ", "X", "Z", "NegX"}),
				CenterDialogType = def_enum({"UnsolicitedDialog", "PlayerInitiatedDialog",
					"ModalDialog", "QuitDialog"}),
				ChatCallbackType = def_enum({"OnCreatingChatWindow", "OnClientSendingMessage",
					"OnClientFormattingMessage", "OnServerReceivingMessage"}),
				ChatColor = def_enum({"Blue", "Green", "Red", "White"}),
				ChatMode = def_enum({"Menu", "TextAndMenu"}),
				ChatPrivacyMode = def_enum({"AllUsers", "NoOne", "Friends"}),
				ChatStyle = def_enum({"Classic", "Bubble", "ClassicAndBubble"}),
				CollisionFidelity = def_enum({"Default", "Hull", "Box"}),
				ComputerCameraMovementMode = def_enum({"Default", "Follow", "Classic", "Orbital"}),
				ComputerMovementMode = def_enum({"Default", "KeyboardMouse", "ClickToMove"}),
				ConnectionError = def_enum({"OK", "DisconnectErrors", "DisconnectBadhash",
					"DisconnectSecurityKeyMismatch", "DisconnectNewSecurityKeyMismatch",
					"DisconnectProtocolMismatch", "DisconnectReceivePacketError",
					"DisconnectReceivePacketStreamError", "DisconnectSendPacketError",
					"DisconnectIllegalTeleport", "DisconnectDuplicatePlayer",
					"DisconnectDuplicateTicket", "DisconnectTimeout", "DisconnectLuaKick",
					"DisconnectOnRemoteSysStats", "DisconnectHashTimeout",
					"DisconnectCloudEditKick", "DisconnectPlayerless", "DisconnectEvicted",
					"DisconnectDevMaintenance", "DisconnectRobloxMaintenance", "DisconnectRejoin",
					"DisconnectConnectionLost", "DisconnectIdle", "DisconnectRaknetErrors",
					"DisconnectWrongVersion", "PlacelaunchErrors", "PlacelaunchDisabled",
					"PlacelaunchError", "PlacelaunchGameEnded", "PlacelaunchGameFull",
					"PlacelaunchUserLeft", "PlacelaunchRestricted", "PlacelaunchUnauthorized",
					"PlacelaunchFlooded", "PlacelaunchHashExpired", "PlacelaunchHashException",
					"PlacelaunchPartyCannotFit", "PlacelaunchHttpError",
					"PlacelaunchCustomMessage", "PlacelaunchOtherError", "TeleportErrors",
					"TeleportFailure", "TeleportGameNotFound", "TeleportGameEnded",
					"TeleportGameFull", "TeleportUnauthorized", "TeleportFlooded",
					"TeleportIsTeleporting"}),
				ConnectionState = def_enum({"Connected", "Disconnected"}),
				ContextActionPriority = def_enum({"Low", "Medium", "Default", "High"}),
				ContextActionResult = def_enum({"Pass", "Sink"}),
				ControlMode = def_enum({"MouseLockSwitch", "Classic"}),
				CoreGuiType = def_enum({"PlayerList", "Health", "Backpack", "Chat", "All"}),
				CreatorType = def_enum({"User", "Group"}),
				CurrencyType = def_enum({"Default", "Robux", "Tix"}),
				CustomCameraMode = def_enum({"Default", "Follow", "Classic"}),
				DEPRECATED_DebuggerDataModelPreference = def_enum({"Server", "Client"}),
				DataStoreRequestType = def_enum({"GetAsync", "SetIncrementAsync", "UpdateAsync",
					"GetSortedAsync", "SetIncrementSortedAsync", "OnUpdate"}),
				DevCameraOcclusionMode = def_enum({"Zoom", "Invisicam"}),
				DevComputerCameraMovementMode = def_enum({"UserChoice", "Classic", "Follow",
					"Orbital"}),
				DevComputerMovementMode = def_enum({"UserChoice", "KeyboardMouse", "ClickToMove",
					"Scriptable"}),
				DevTouchCameraMovementMode = def_enum({"UserChoice", "Classic", "Follow",
					"Orbital"}),
				DevTouchMovementMode = def_enum({"UserChoice", "Thumbstick", "DPad", "Thumbpad",
					"ClickToMove", "Scriptable", "DynamicThumbstick"}),
				DeveloperMemoryTag = def_enum({"Internal", "HttpCache", "Instances", "Signals",
					"LuaHeap", "Script", "PhysicsCollision", "PhysicsParts", "GraphicsSolidModels",
					"GraphicsMeshParts", "GraphicsParticles", "GraphicsParts",
					"GraphicsSpatialHash", "GraphicsTerrain", "GraphicsTexture",
					"GraphicsTextureCharacter", "Sounds", "StreamingSounds", "TerrainVoxels",
					"Gui", "Animation", "Navigation"}),
				DialogBehaviorType = def_enum({"SinglePlayer", "MultiplePlayers"}),
				DialogPurpose = def_enum({"Quest", "Help", "Shop"}),
				DialogTone = def_enum({"Neutral", "Friendly", "Enemy"}),
				DominantAxis = def_enum({"Width", "Height"}),
				EasingDirection = def_enum({"In", "Out", "InOut"}),
				EasingStyle = def_enum({"Linear", "Sine", "Back", "Quad", "Quart", "Quint",
					"Bounce", "Elastic"}),
				ElasticBehavior = def_enum({"WhenScrollable", "Always", "Never"}),
				EnviromentalPhysicsThrottle = def_enum({"DefaultAuto", "Disabled", "Always",
					"Skip2", "Skip4", "Skip8", "Skip16"}),
				ErrorReporting = def_enum({"DontReport", "Prompt", "Report"}),
				ExplosionType = def_enum({"NoCraters", "Craters", "CratersAndDebris"}),
				FillDirection = def_enum({"Horizontal", "Vertical"}),
				FilterResult = def_enum({"Rejected", "Accepted"}),
				Font = def_enum({"Legacy", "Arial", "ArialBold", "SourceSans", "SourceSansBold",
					"SourceSansSemibold", "SourceSansLight", "SourceSansItalic", "Bodoni",
					"Garamond", "Cartoon", "Code", "Highway", "SciFi", "Arcade", "Fantasy",
					"Antique", "Gotham", "GothamSemibold", "GothamBold", "GothamBlack"}),
				FontSize = def_enum({"Size8", "Size9", "Size10", "Size11", "Size12", "Size14",
					"Size18", "Size24", "Size36", "Size48", "Size28", "Size32", "Size42", "Size60",
					"Size96"}),
				FormFactor = def_enum({"Symmetric", "Brick", "Plate", "Custom"}),
				FrameStyle = def_enum({"Custom", "ChatBlue", "RobloxSquare", "RobloxRound",
					"ChatGreen", "ChatRed", "DropShadow"}),
				FramerateManagerMode = def_enum({"Automatic", "On", "Off"}),
				FriendRequestEvent = def_enum({"Issue", "Revoke", "Accept", "Deny"}),
				FriendStatus = def_enum({"Unknown", "NotFriend", "Friend", "FriendRequestSent",
					"FriendRequestReceived"}),
				FunctionalTestResult = def_enum({"Passed", "Warning", "Error"}),
				GameAvatarType = def_enum({"R6", "R15", "PlayerChoice"}),
				GearGenreSetting = def_enum({"AllGenres", "MatchingGenreOnly"}),
				GearType = def_enum({"MeleeWeapons", "RangedWeapons", "Explosives", "PowerUps",
					"NavigationEnhancers", "MusicalInstruments", "SocialItems", "BuildingTools",
					"Transport"}),
				Genre = def_enum({"All", "TownAndCity", "Fantasy", "SciFi", "Ninja", "Scary",
					"Pirate", "Adventure", "Sports", "Funny", "WildWest", "War", "SkatePark",
					"Tutorial"}),
				GraphicsMode = def_enum({"Automatic", "Direct3D9", "Direct3D11", "OpenGL", "Metal",
					"Vulkan", "NoGraphics"}),
				HandlesStyle = def_enum({"Resize", "Movement"}),
				HorizontalAlignment = def_enum({"Center", "Left", "Right"}),
				HoverAnimateSpeed = def_enum({"VerySlow", "Slow", "Medium", "Fast", "VeryFast"}),
				HttpCachePolicy = def_enum({"None", "Full", "DataOnly", "Default",
					"InternalRedirectRefresh"}),
				HttpContentType = def_enum({"ApplicationJson", "ApplicationXml",
					"ApplicationUrlEncoded", "TextPlain", "TextXml"}),
				HttpError = def_enum({"OK", "InvalidUrl", "DnsResolve", "ConnectFail",
					"OutOfMemory", "TimedOut", "TooManyRedirects", "InvalidRedirect", "NetFail",
					"Aborted", "SslConnectFail", "Unknown"}),
				HttpRequestType = def_enum({"Default", "MarketplaceService", "Players", "Chat",
					"Avatar", "Analytics", "Localization"}),
				HumanoidDisplayDistanceType = def_enum({"Viewer", "Subject", "None"}),
				HumanoidHealthDisplayType = def_enum({"DisplayWhenDamaged", "AlwaysOn",
					"AlwaysOff"}),
				HumanoidRigType = def_enum({"R6", "R15"}),
				HumanoidStateType = def_enum({"FallingDown", "Running", "RunningNoPhysics",
					"Climbing", "StrafingNoPhysics", "Ragdoll", "GettingUp", "Jumping", "Landed",
					"Flying", "Freefall", "Seated", "PlatformStanding", "Dead", "Swimming",
					"Physics", "None"}),
				InOut = def_enum({"Edge", "Inset", "Center"}),
				InfoType = def_enum({"Asset", "Product", "GamePass"}),
				InitialDockState = def_enum({"Top", "Bottom", "Left", "Right", "Float"}),
				InputType = def_enum({"NoInput", "Constant", "Sin"}),
				JointCreationMode = def_enum({"All", "Surface", "None"}),
				JointType = def_enum({"None", "Rotate", "RotateP", "RotateV", "Glue", "Weld",
					"Snap"}),
				KeyCode = def_enum({"Unknown", "Backspace", "Tab", "Clear", "Return", "Pause",
					"Escape", "Space", "QuotedDouble", "Hash", "Dollar", "Percent", "Ampersand",
					"Quote", "LeftParenthesis", "RightParenthesis", "Asterisk", "Plus", "Comma",
					"Minus", "Period", "Slash", "Zero", "One", "Two", "Three", "Four", "Five",
					"Six", "Seven", "Eight", "Nine", "Colon", "Semicolon", "LessThan", "Equals",
					"GreaterThan", "Question", "At", "LeftBracket", "BackSlash", "RightBracket",
					"Caret", "Underscore", "Backquote", "A", "B", "C", "D", "E", "F", "G", "H",
					"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
					"Y", "Z", "LeftCurly", "Pipe", "RightCurly", "Tilde", "Delete", "KeypadZero",
					"KeypadOne", "KeypadTwo", "KeypadThree", "KeypadFour", "KeypadFive",
					"KeypadSix", "KeypadSeven", "KeypadEight", "KeypadNine", "KeypadPeriod",
					"KeypadDivide", "KeypadMultiply", "KeypadMinus", "KeypadPlus", "KeypadEnter",
					"KeypadEquals", "Up", "Down", "Right", "Left", "Insert", "Home", "End",
					"PageUp", "PageDown", "LeftShift", "RightShift", "LeftMeta", "RightMeta",
					"LeftAlt", "RightAlt", "LeftControl", "RightControl", "CapsLock", "NumLock",
					"ScrollLock", "LeftSuper", "RightSuper", "Mode", "Compose", "Help", "Print",
					"SysReq", "Break", "Menu", "Power", "Euro", "Undo", "F1", "F2", "F3", "F4",
					"F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15",
					"World0", "World1", "World2", "World3", "World4", "World5", "World6", "World7",
					"World8", "World9", "World10", "World11", "World12", "World13", "World14",
					"World15", "World16", "World17", "World18", "World19", "World20", "World21",
					"World22", "World23", "World24", "World25", "World26", "World27", "World28",
					"World29", "World30", "World31", "World32", "World33", "World34", "World35",
					"World36", "World37", "World38", "World39", "World40", "World41", "World42",
					"World43", "World44", "World45", "World46", "World47", "World48", "World49",
					"World50", "World51", "World52", "World53", "World54", "World55", "World56",
					"World57", "World58", "World59", "World60", "World61", "World62", "World63",
					"World64", "World65", "World66", "World67", "World68", "World69", "World70",
					"World71", "World72", "World73", "World74", "World75", "World76", "World77",
					"World78", "World79", "World80", "World81", "World82", "World83", "World84",
					"World85", "World86", "World87", "World88", "World89", "World90", "World91",
					"World92", "World93", "World94", "World95", "ButtonX", "ButtonY", "ButtonA",
					"ButtonB", "ButtonR1", "ButtonL1", "ButtonR2", "ButtonL2", "ButtonR3",
					"ButtonL3", "ButtonStart", "ButtonSelect", "DPadLeft", "DPadRight", "DPadUp",
					"DPadDown", "Thumbstick1", "Thumbstick2"}),
				KeywordFilterType = def_enum({"Include", "Exclude"}),
				Language = def_enum({"Default"}),
				LeftRight = def_enum({"Left", "Center", "Right"}),
				LevelOfDetailSetting = def_enum({"High", "Medium", "Low"}),
				Limb = def_enum({"Head", "Torso", "LeftArm", "RightArm", "LeftLeg", "RightLeg",
					"Unknown"}),
				ListDisplayMode = def_enum({"Horizontal", "Vertical"}),
				ListenerType = def_enum({"Camera", "CFrame", "ObjectPosition", "ObjectCFrame"}),
				Material = def_enum({"Plastic", "Wood", "Slate", "Concrete", "CorrodedMetal",
					"DiamondPlate", "Foil", "Grass", "Ice", "Marble", "Granite", "Brick", "Pebble",
					"Sand", "Fabric", "SmoothPlastic", "Metal", "WoodPlanks", "Cobblestone", "Air",
					"Water", "Rock", "Glacier", "Snow", "Sandstone", "Mud", "Basalt", "Ground",
					"CrackedLava", "Neon", "Glass", "Asphalt", "LeafyGrass", "Salt", "Limestone",
					"Pavement", "ForceField"}),
				MembershipType = def_enum({"None", "BuildersClub", "TurboBuildersClub",
					"OutrageousBuildersClub"}),
				MeshType = def_enum({"Head", "Torso", "Wedge", "Prism", "Pyramid", "ParallelRamp",
					"RightAngleRamp", "CornerWedge", "Brick", "Sphere", "Cylinder", "FileMesh"}),
				MessageType = def_enum({"MessageOutput", "MessageInfo", "MessageWarning",
					"MessageError"}),
				MouseBehavior = def_enum({"Default", "LockCenter", "LockCurrentPosition"}),
				MoveState = def_enum({"Stopped", "Coasting", "Pushing", "Stopping", "AirFree"}),
				NameOcclusion = def_enum({"OccludeAll", "EnemyOcclusion", "NoOcclusion"}),
				NetworkOwnership = def_enum({"Automatic", "Manual", "OnContact"}),
				NormalId = def_enum({"Top", "Bottom", "Back", "Front", "Right", "Left"}),
				OutputLayoutMode = def_enum({"Horizontal", "Vertical"}),
				OverrideMouseIconBehavior = def_enum({"None", "ForceShow", "ForceHide"}),
				PacketPriority = def_enum({"IMMEDIATE_PRIORITY", "HIGH_PRIORITY",
					"MEDIUM_PRIORITY", "LOW_PRIORITY"}),
				PartType = def_enum({"Ball", "Block", "Cylinder"}),
				PathStatus = def_enum({"Success", "ClosestNoPath", "ClosestOutOfRange",
					"FailStartNotEmpty", "FailFinishNotEmpty", "NoPath"}),
				PathWaypointAction = def_enum({"Walk", "Jump"}),
				PermissionLevelShown = def_enum({"Game", "RobloxGame", "RobloxScript", "Studio",
					"Roblox"}),
				Platform = def_enum({"Windows", "OSX", "IOS", "Android", "XBoxOne", "PS4", "PS3",
					"XBox360", "WiiU", "NX", "Ouya", "AndroidTV", "Chromecast", "Linux", "SteamOS",
					"WebOS", "DOS", "BeOS", "UWP", "None"}),
				PlaybackState = def_enum({"Begin", "Delayed", "Playing", "Paused", "Completed",
					"Cancelled"}),
				PlayerActions = def_enum({"CharacterForward", "CharacterBackward", "CharacterLeft",
					"CharacterRight", "CharacterJump"}),
				PlayerChatType = def_enum({"All", "Team", "Whisper"}),
				PoseEasingDirection = def_enum({"Out", "InOut", "In"}),
				PoseEasingStyle = def_enum({"Linear", "Constant", "Elastic", "Cubic", "Bounce"}),
				PrivilegeType = def_enum({"Owner", "Admin", "Member", "Visitor", "Banned"}),
				ProductPurchaseDecision = def_enum({"NotProcessedYet", "PurchaseGranted"}),
				QualityLevel = def_enum({"Automatic", "Level01", "Level02", "Level03", "Level04",
					"Level05", "Level06", "Level07", "Level08", "Level09", "Level10", "Level11",
					"Level12", "Level13", "Level14", "Level15", "Level16", "Level17", "Level18",
					"Level19", "Level20", "Level21"}),
				R15CollisionType = def_enum({"OuterBox", "InnerBox"}),
				RenderFidelity = def_enum({"Automatic", "Precise"}),
				RenderPriority = def_enum({"First", "Input", "Camera", "Character", "Last"}),
				RenderingTestComparisonMethod = def_enum({"psnr", "diff"}),
				ReverbType = def_enum({"NoReverb", "GenericReverb", "PaddedCell", "Room",
					"Bathroom", "LivingRoom", "StoneRoom", "Auditorium", "ConcertHall", "Cave",
					"Arena", "Hangar", "CarpettedHallway", "Hallway", "StoneCorridor", "Alley",
					"Forest", "City", "Mountains", "Quarry", "Plain", "ParkingLot", "SewerPipe",
					"UnderWater"}),
				RibbonTool = def_enum({"Select", "Scale", "Rotate", "Move", "Transform",
					"ColorPicker", "MaterialPicker", "Group", "Ungroup", "None"}),
				RollOffMode = def_enum({"Inverse", "Linear", "InverseTapered", "LinearSquare"}),
				RotationType = def_enum({"MovementRelative", "CameraRelative"}),
				RuntimeUndoBehavior = def_enum({"Aggregate", "Snapshot", "Hybrid"}),
				SaveFilter = def_enum({"SaveAll", "SaveWorld", "SaveGame"}),
				SavedQualitySetting = def_enum({"Automatic", "QualityLevel1", "QualityLevel2",
					"QualityLevel3", "QualityLevel4", "QualityLevel5", "QualityLevel6",
					"QualityLevel7", "QualityLevel8", "QualityLevel9", "QualityLevel10"}),
				ScaleType = def_enum({"Stretch", "Slice", "Tile", "Fit", "Crop"}),
				ScreenOrientation = def_enum({"LandscapeLeft", "LandscapeRight", "LandscapeSensor",
					"Portrait", "Sensor"}),
				ScrollBarInset = def_enum({"None", "ScrollBar", "Always"}),
				ScrollingDirection = def_enum({"X", "Y", "XY"}),
				ServerAudioBehavior = def_enum({"Enabled", "Muted", "OnlineGame"}),
				SizeConstraint = def_enum({"RelativeXY", "RelativeXX", "RelativeYY"}),
				SortOrder = def_enum({"LayoutOrder", "Name", "Custom"}),
				SoundType = def_enum({"NoSound", "Boing", "Bomb", "Break", "Click", "Clock",
					"Slingshot", "Page", "Ping", "Snap", "Splat", "Step", "StepOn", "Swoosh",
					"Victory"}),
				SpecialKey = def_enum({"Insert", "Home", "End", "PageUp", "PageDown", "ChatHotkey"}),
				StartCorner = def_enum({"TopLeft", "TopRight", "BottomLeft", "BottomRight"}),
				Status = def_enum({"Poison", "Confusion"}),
				StudioStyleGuideColor = def_enum({"MainBackground", "Titlebar", "Dropdown",
					"Tooltip", "Notification", "ScrollBar", "ScrollBarBackground", "TabBar", "Tab",
					"RibbonTab", "RibbonTabTopBar", "Button", "MainButton", "RibbonButton",
					"ViewPortBackground", "InputFieldBackground", "Item", "TableItem",
					"CategoryItem", "GameSettingsTableItem", "GameSettingsTooltip", "EmulatorBar",
					"EmulatorDropDown", "ColorPickerFrame", "CurrentMarker", "Border", "Shadow",
					"Light", "Dark", "Mid", "MainText", "SubText", "TitlebarText", "BrightText",
					"DimmedText", "LinkText", "WarningText", "ErrorText", "InfoText",
					"SensitiveText", "ScriptSideWidget", "ScriptBackground", "ScriptText",
					"ScriptSelectionText", "ScriptSelectionBackground",
					"ScriptFindSelectionBackground", "ScriptMatchingWordSelectionBackground",
					"ScriptOperator", "ScriptNumber", "ScriptString", "ScriptComment",
					"ScriptPreprocessor", "ScriptKeyword", "ScriptBuiltInFunction",
					"ScriptWarning", "ScriptError", "DebuggerCurrentLine", "DebuggerErrorLine",
					"DiffFilePathText", "DiffTextHunkInfo", "DiffTextNoChange", "DiffTextAddition",
					"DiffTextDeletion", "DiffTextSeparatorBackground",
					"DiffTextNoChangeBackground", "DiffTextAdditionBackground",
					"DiffTextDeletionBackground", "DiffLineNum", "DiffLineNumSeparatorBackground",
					"DiffLineNumNoChangeBackground", "DiffLineNumAdditionBackground",
					"DiffLineNumDeletionBackground", "DiffFilePathBackground",
					"DiffFilePathBorder", "Separator", "ButtonBorder", "ButtonText",
					"InputFieldBorder", "CheckedFieldBackground", "CheckedFieldBorder",
					"CheckedFieldIndicator", "HeaderSection", "Midlight", "StatusBar"}),
				StudioStyleGuideModifier = def_enum({"Default", "Selected", "Pressed", "Disabled",
					"Hover"}),
				Style = def_enum({"AlternatingSupports", "BridgeStyleSupports", "NoSupports"}),
				SurfaceConstraint = def_enum({"None", "Hinge", "SteppingMotor", "Motor"}),
				SurfaceType = def_enum({"Smooth", "Glue", "Weld", "Studs", "Inlet", "Universal",
					"Hinge", "Motor", "SteppingMotor", "SmoothNoOutlines"}),
				SwipeDirection = def_enum({"Right", "Left", "Up", "Down", "None"}),
				TableMajorAxis = def_enum({"RowMajor", "ColumnMajor"}),
				Technology = def_enum({"Legacy", "Voxel", "Compatibility"}),
				TeleportResult = def_enum({"Success", "Failure", "GameNotFound", "GameEnded",
					"GameFull", "Unauthorized", "Flooded", "IsTeleporting"}),
				TeleportState = def_enum({"RequestedFromServer", "Started", "WaitingForServer",
					"Failed", "InProgress"}),
				TeleportType = def_enum({"ToPlace", "ToInstance", "ToReservedServer"}),
				TextFilterContext = def_enum({"PublicChat", "PrivateChat"}),
				TextTruncate = def_enum({"None", "AtEnd"}),
				TextXAlignment = def_enum({"Left", "Center", "Right"}),
				TextYAlignment = def_enum({"Top", "Center", "Bottom"}),
				TextureMode = def_enum({"Stretch", "Wrap", "Static"}),
				TextureQueryType = def_enum({"NonHumanoid", "NonHumanoidOrphaned", "Humanoid",
					"HumanoidOrphaned"}),
				ThreadPoolConfig = def_enum({"Auto", "PerCore1", "PerCore2", "PerCore3",
					"PerCore4", "Threads1", "Threads2", "Threads3", "Threads4", "Threads8",
					"Threads16"}),
				ThrottlingPriority = def_enum({"Extreme", "ElevatedOnServer", "Default"}),
				ThumbnailSize = def_enum({"Size48x48", "Size180x180", "Size420x420", "Size60x60",
					"Size100x100", "Size150x150", "Size352x352"}),
				ThumbnailType = def_enum({"HeadShot", "AvatarBust", "AvatarThumbnail"}),
				TickCountSampleMethod = def_enum({"Fast", "Benchmark", "Precise"}),
				TopBottom = def_enum({"Top", "Center", "Bottom"}),
				TouchCameraMovementMode = def_enum({"Default", "Follow", "Classic", "Orbital"}),
				TouchMovementMode = def_enum({"Default", "Thumbstick", "DPad", "Thumbpad",
					"ClickToMove", "DynamicThumbstick"}),
				TweenStatus = def_enum({"Canceled", "Completed"}),
				UITheme = def_enum({"Light", "Dark"}),
				UiMessageType = def_enum({"UiMessageError", "UiMessageInfo"}),
				UploadSetting = def_enum({"Never", "Ask", "Always"}),
				UserCFrame = def_enum({"Head", "LeftHand", "RightHand"}),
				UserInputState = def_enum({"Begin", "Change", "End", "Cancel", "None"}),
				UserInputType = def_enum({"MouseButton1", "MouseButton2", "MouseButton3",
					"MouseWheel", "MouseMovement", "Touch", "Keyboard", "Focus", "Accelerometer",
					"Gyro", "Gamepad1", "Gamepad2", "Gamepad3", "Gamepad4", "Gamepad5", "Gamepad6",
					"Gamepad7", "Gamepad8", "TextInput", "InputMethod", "None"}),
				VRTouchpad = def_enum({"Left", "Right"}),
				VRTouchpadMode = def_enum({"Touch", "VirtualThumbstick", "ABXY"}),
				VerticalAlignment = def_enum({"Center", "Top", "Bottom"}),
				VerticalScrollBarPosition = def_enum({"Left", "Right"}),
				VibrationMotor = def_enum({"Large", "Small", "LeftTrigger", "RightTrigger",
					"LeftHand", "RightHand"}),
				VideoQualitySettings = def_enum({"LowResolution", "MediumResolution",
					"HighResolution"}),
				VirtualInputMode = def_enum({"Recording", "Playing", "None"}),
				WaterDirection = def_enum({"NegX", "X", "NegY", "Y", "NegZ", "Z"}),
				WaterForce = def_enum({"None", "Small", "Medium", "Strong", "Max"}),
				ZIndexBehavior = def_enum({"Global", "Sibling"}),
			}
		}
	},
}

stds.testez = {
	read_globals = {
		"describe",
		"it", "itFOCUS", "itSKIP",
		"FOCUS", "SKIP", "HACK_NO_XPCALL",
		"expect", "fail",
		"beforeEach", "afterEach", "beforeAll", "afterAll",
	}
}

stds.spec = {
	read_globals = {
		"Rhodium", "UnitTestHelpers", "RhodiumHelpers",
	}
}

std = "lua51+roblox+testez+spec"
