#
Configuring Your Freestyle
Changing the drinks up? Welcome to the flavour alley.
This product is in BETA, everything is subject to change.
This page assumes the user has basic knowledge of the Roblox scripting language, Luau.
Your default configuration module, found under JSM | Freestyle Drinks Machine -> Controller -> DrinkData, is structured as follows:
local Data = {
Drink1 = {
DisplayName = "Coca Cola",
MainColor = Color3.fromRGB(30,18,0),
Flavours = {
{
DisplayName = "Original",
ImageID = "97592497897008",
Color = Color3.fromRGB(30,18,0)
},
{
DisplayName = "Cherry",
ImageID = "116619151335335",
Color = Color3.fromRGB(255, 47, 68)
},
{
DisplayName = "Cherry Vanilla",
ImageID = "76896014820725",
Color = Color3.fromRGB(255, 60, 118)
},
{
DisplayName = "Lemon",
ImageID = "105537006678100",
Color = Color3.fromRGB(138, 145, 0)
},
{
DisplayName = "Lime",
ImageID = "104122755321328",
Color = Color3.fromRGB(0, 145, 0)
},
{
DisplayName = "Orange",
ImageID = "87611829023008",
Color = Color3.fromRGB(255, 85, 0)
},
{
DisplayName = "Vanilla",
ImageID = "91132261309340",
Color = Color3.fromRGB(212, 144, 99)
},
{
DisplayName = "Peach",
ImageID = "104860694394159",
Color = Color3.fromRGB(212, 144, 99)
}
}
},
Drink2 = {
DisplayName = "Coke Zero",
MainColor = Color3.fromRGB(30,18,0),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink3 = {
DisplayName = "Diet Coke",
MainColor = Color3.fromRGB(30,18,0),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink4 = {
DisplayName = "Dr Pepper",
MainColor = Color3.fromRGB(30,18,0),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink5 = {
DisplayName = "Fanta",
MainColor = Color3.fromRGB(200,133,0),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink6 = {
DisplayName = "Fanta Zero",
MainColor = Color3.fromRGB(200,133,0),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink7 = {
DisplayName = "Sprite",
MainColor = Color3.fromRGB(156,156,156),
Flavours = {
-- Same as above. (Truncated)
}
},
Drink8 = {
DisplayName = "Sprite Zero",
MainColor = Color3.fromRGB(156,156,156),
Flavours = {
-- Same as above. (Truncated)
}
}
}
return Data
#
Syntax
#
DrinkX
table
Each drink entry represents a primary beverage option on the machine.
The machine currently supports only a limited amount of drinks. (Dink1 - Drink8)
A drink entry contains:
DisplayName —
string
The name that will appear on the machine UI.MainColor —
Color3
The core color theme for the drink’s branding.Flavours —
{ table }
An array of flavour definitions.
Each flavour includes:DisplayName—stringImageID—string(numeric string — withoutrbxassetid://prefix)Color—Color3
Example block:
Drink1 = {
DisplayName = "Example Soda",
MainColor = Color3.fromRGB(120, 55, 200),
Flavours = {
{
DisplayName = "Original",
ImageID = "12345678901234",
Color = Color3.fromRGB(120, 55, 200)
},
{
DisplayName = "Cherry",
ImageID = "56789012345678",
Color = Color3.fromRGB(255, 47, 68)
}
}
}
#
DisplayName
string
This will be the user-facing name for the drink or flavour.
Example:
DisplayName = "Cherry"
#
MainColor / Color
Color3
Defines UI tinting for the drink or flavour.
Use Color3.fromRGB(r,g,b) values only.
Example:
MainColor = Color3.fromRGB(255,85,0)
#
ImageID
string
A raw asset ID string used internally by the machine.
Do not prefix with rbxassetid:// — the system handles this automatically.
Example:
ImageID = "12345678901234"
Invalid or empty image IDs will break flavour selection thumbnails.
#
Finalizing
Now, using the examples provided, a complete module will look as follows:
local Data = {
Drink1 = {
DisplayName = "Example Soda",
MainColor = Color3.fromRGB(120, 55, 200),
Flavours = {
{
DisplayName = "Original",
ImageID = "12345678901234",
Color = Color3.fromRGB(120, 55, 200)
},
{
DisplayName = "Cherry",
ImageID = "56789012345678",
Color = Color3.fromRGB(255, 47, 68)
}
}
},
Drink2 = {
DisplayName = "Berry Blast",
MainColor = Color3.fromRGB(99, 0, 148),
Flavours = {
{
DisplayName = "Original",
ImageID = "98765432100987",
Color = Color3.fromRGB(99, 0, 148)
},
{
DisplayName = "Raspberry",
ImageID = "14725836912478",
Color = Color3.fromRGB(255, 60, 118)
}
}
}
-- And so on. (Truncated)
}
return Data
Configuration Complete!
Not working? Make sure you followed the syntax, or visit our FAQ Page for help, or contact Whitehill Support via our Discord server for further assistance.