Spawner Typings
LUAU
This uses LUAU types. I recommend reading more about it to understand how it works. https://luau-lang.org/typecheck
Full typings file
--!strict
export type ColorSchemeOption = "dark" | "light" | "blue";
export type CategoryTypeOption = "open" | "rank" | "clothing" | "gamepass" | "premium" --| "mypod"
export type BusResult = "NO_WORKSPACE_FOLDER" | "NO_MODELS_FOLDER" | "NO_BUS_FOUND"
export type SpawnBusResult = BusResult | "UNABLE_TO_SPAWN" | "ALREADY_HAS_BUS_SPAWNED" | "PERMISSION_DENIED" | "NO_MODEL_GIVEN" | "INVALID_MODEL_GIVEN" | "UNABLE_TO_TELEPORT_BUS" | "UNABLE_TO_TELEPORT_PLAYER" | "SPAWNED"
export type DespawnBusResult = BusResult | "UNABLE_TO_DESPAWN" | "DESPAWNED_NOT_DESTROYED" | "DESTROYED_NOT_AVAILABLE" |"DESPAWNED"
export type RefuelBusResult = BusResult | "UNABLE_TO_REFUEL" | "REFUELED"
export type TurnOffBusResult = BusResult | "UNABLE_TO_TURN_BUS_OFF" | "TURNED_OFF_BUS"
export type WebhookReceiever = "discord" | "other"
export type ThemeConfig = {
title: string;
colorScheme: ColorSchemeOption;
logoImageId: number;
}
export type CategoryConfig = {
title: string;
categoryType: CategoryTypeOption;
assetId: number?;
minimumRank: number?;
}
export type CategoryConfigs = {
Category1: CategoryConfig;
Category2: CategoryConfig?;
Category3: CategoryConfig?;
Category4: CategoryConfig?;
Category5: CategoryConfig?;
}
export type GroupConfig = {
enabled: boolean;
groupId: number;
minimumSpawnerRank: number;
minimumAdminRank: number;
allowVipOwnersServerAdmin: boolean;
}
export type WebhookConfig = {
enabled: boolean;
receiver: WebhookReceiever;
webhookServerUrl: string;
webhookClientUrl: string;
bodies: {[string]: {}}
}
export type Config = {
theme: ThemeConfig;
categories: CategoryConfigs;
groupSettings: GroupConfig;
webhookSettings: WebhookConfig;
busModelsLocation: Folder;
depsawnOnPlayerLeave: boolean;
teleportPlayerToBus: boolean;
busModelSpawnType: "basic" | "advanced";
}
export type EventResponse<T> = {
status: "OK" | "ERROR";
message: string;
data: T;
}
export type NotificationObject = {
plrName: string;
plrId: number;
body: string;
global: boolean?;
}
export type ColorSchemeConfig = {
primary: Color3;
secondary: Color3;
tertiary: Color3;
infoBackgroundColor: Color3;
infoContentBackgroundColor: Color3;
primaryTextColor: Color3;
dashboardButtonColor: Color3;
dashboardBoxColor: Color3;
dashboardNAColor: Color3;
navListTextColor: Color3;
welcomeTextColor: Color3;
designerTextColor: Color3;
spawnerButtonColor: Color3;
assignmentTextColor: Color3;
notificationStrokeColor: Color3;
contentFrameBackgroundId: number;
notificationFrameBackgroundId: number;
dashboardIconId: number;
busIconId: number;
}
return nil;
ColorSchemeOption
A List of Options for the Color Scheme
CategoryTypeOption
A List of Options for the Category Type
BusResult *
(Applies for all bus result types) List of Options for the end result depending on the kind of bus event
ThemeConfig
Contains items for configuring the theme in the spawner configuration
CategoryConfig
Contains items for configuring a category in the spawner configuration
CategoryConfigs
Contains list of category config's
GroupConfig
Contains items for configuring the group in the spawner configuration
WebhookConfig
Contains items for configuring a webhook in the spawner configuration
Config
Contains items for configuring the spawner
EventResponse<T>
Contains items for the remote function event response object - with a generic type paramater for the data
property.
NotificationObject
Contains items for a notification object usually used when interacting with the ROBLOX MessagingService
ColorSchemeConfig
Contains all items used for initalizing and setting the color scheme.