Custom Marshmallows
Key Required

Custom Marshmallows

Total Roblox Dramanabnabnabnab 11K views 866 executesUpdated Jun 14, 2025
Unrated
00
Lua Script•223 lines (7713 chars)
-- IGNORE
game:GetService("StarterGui"):SetCore("SendNotification",{Title="NOTE",Text="This is not FE. You can only see it! | script made by sebgaming, follow me on tiktok!"})

-- Main
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- Constants for UI
local COLORS = {
    BACKGROUND = Color3.fromRGB(30, 30, 30),
    TITLE_BAR = Color3.fromRGB(20, 20, 20),
    BUTTON_BACKGROUND = Color3.fromRGB(40, 40, 40),
    BUTTON_HIGHLIGHT = Color3.fromRGB(60, 60, 60),
    TEXT = Color3.fromRGB(255, 255, 255),
    DESCRIPTION = Color3.fromRGB(200, 200, 200),
    CLOSE_BUTTON = Color3.fromRGB(255, 0, 0)
}

local FONTS = {
    TITLE = Enum.Font.GothamBold,
    BUTTON = Enum.Font.GothamBold,
    DESCRIPTION = Enum.Font.Gotham
}

-- Determine if the player is on PC or Mobile
local isMobile = game:GetService("UserInputService").TouchEnabled
local isPC = not isMobile

-- Adjust sizes based on platform
local SIZES = {
    MAIN_FRAME = isPC and UDim2.new(0.2, 0, 0.4, 0) or UDim2.new(0.1, 0, 0.6, 0), -- Smaller for PC, larger for Mobile
    TITLE_BAR = UDim2.new(0.2, 0, 0.1, 0),
    BUTTON = UDim2.new(1, 0, 0, 50),
    BUTTON_TEXT = UDim2.new(0.3, 0, 1, 0),
    DESCRIPTION = UDim2.new(0.4, 0, 1, 0), -- Adjusted to make the description text not fit
    CLOSE_BUTTON = UDim2.new(0.1, 0, 0.1, 0) -- Larger close button
}

local CORNER_RADIUS = UDim.new(0, 10)

-- Default Image URL (set to nil or empty string to clear the image)
local DEFAULT_IMAGE_URL = "" -- This will clear the image when reset

-- Create Main GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = SIZES.MAIN_FRAME
mainFrame.Position = isPC and UDim2.new(0.35, 0, 0.3, 0) or UDim2.new(0.3, 0, 0.2, 0) -- Centered for PC, offset for Mobile
mainFrame.BackgroundColor3 = COLORS.BACKGROUND
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
mainFrame.Active = true
mainFrame.Draggable = true

-- UI Corner (Rounded)
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = CORNER_RADIUS
uiCorner.Parent = mainFrame

-- Title Bar
local titleBar = Instance.new("TextLabel")
titleBar.Size = SIZES.TITLE_BAR
titleBar.BackgroundColor3 = COLORS.TITLE_BAR
titleBar.Text = "Special Skins"
titleBar.TextColor3 = COLORS.TEXT
titleBar.Font = FONTS.TITLE
titleBar.TextSize = isPC and 18 or 20 -- Larger text for Mobile
titleBar.Parent = mainFrame

-- Close Button (Larger and functional)
local closeButton = Instance.new("TextButton")
closeButton.Size = SIZES.CLOSE_BUTTON
closeButton.Position = UDim2.new(0.9, 0, 0, 0) -- Adjusted position
closeButton.BackgroundColor3 = COLORS.CLOSE_BUTTON
closeButton.Text = "X"
closeButton.Font = FONTS.TITLE
closeButton.TextSize = 18 -- Larger text
closeButton.TextColor3 = COLORS.TEXT
closeButton.Parent = titleBar

-- Function to close the GUI
closeButton.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

-- Scrollable Frame
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1, 0, 0.5, 0)
scrollFrame.Position = UDim2.new(0, 0, 0.1, 0)
scrollFrame.ScrollBarThickness = 5
scrollFrame.BackgroundTransparency = 1
scrollFrame.Parent = mainFrame

local uiList = Instance.new("UIListLayout")
uiList.Parent = scrollFrame
uiList.Padding = UDim.new(0, 5)

-- Function to Change Image
local function changeImage(imageUrl)
    local playerModel = workspace:FindFirstChild(player.Name)
    if not playerModel then
        warn(player.Name .. " model not found in workspace")
        return
    end

    local head = playerModel:FindFirstChild("Head")
    if not head then
        warn("Head not found inside " .. player.Name)
        return
    end

    local marshmallowGUI = head:FindFirstChild("MarshmallowGUI")
    if not marshmallowGUI then
        warn("MarshmallowGUI not found inside Head")
        return
    end

    local sector = marshmallowGUI:FindFirstChild("Sector")
    if not sector then
        warn("Sector not found inside MarshmallowGUI")
        return
    end

    local imageLabel = sector:FindFirstChild("ImageLabel")
    if not imageLabel then
        warn("ImageLabel not found inside Sector")
        return
    end

    imageLabel.Image = imageUrl or "" -- Set to empty string if nil
    print("Image changed successfully!")
end

-- Button Data
local buttonData = {
    {Text = "Sebgaming", Description = "Secret Marshmallow!", ImageUrl = "http://www.roblox.com/asset/?id=74427691174322"},
{Text = "ROSE TOY", Description = "📳am using my rose toi", ImageUrl = "http://www.roblox.com/asset/?id=15577398182"},
{Text = "Alejandro Jerking", Description = "im gooing over tyler", ImageUrl = "http://www.roblox.com/asset/?id=15813904519"},
    }

-- Function to Create Buttons
local function createButton(data)
    local buttonFrame = Instance.new("Frame")
    buttonFrame.Size = SIZES.BUTTON
    buttonFrame.BackgroundColor3 = COLORS.BUTTON_BACKGROUND
    buttonFrame.Parent = scrollFrame

    local uiCornerButton = Instance.new("UICorner")
    uiCornerButton.CornerRadius = CORNER_RADIUS
    uiCornerButton.Parent = buttonFrame

    local button = Instance.new("TextButton")
    button.Size = SIZES.BUTTON_TEXT
    button.Position = UDim2.new(0.05, 0, 0, 0)
    button.BackgroundColor3 = COLORS.BUTTON_HIGHLIGHT
    button.Text = data.Text
    button.Font = FONTS.BUTTON
    button.TextSize = isPC and 14 or 16 -- Larger text for Mobile
    button.TextColor3 = COLORS.TEXT
    button.Parent = buttonFrame

    local description = Instance.new("TextLabel")
    description.Size = SIZES.DESCRIPTION
    description.Position = UDim2.new(0.4, 0, 0, 0)
    description.BackgroundTransparency = 1
    description.Text = data.Description
    description.TextColor3 = COLORS.DESCRIPTION
    description.Font = FONTS.DESCRIPTION
    description.TextSize = isPC and 14 or 16 -- Larger text for Mobile
    description.TextXAlignment = Enum.TextXAlignment.Left
    description.Parent = buttonFrame

    button.MouseButton1Click:Connect(function()
        changeImage(data.ImageUrl)
    end)
end

-- Create Stop Button
local stopButtonFrame = Instance.new("Frame")
stopButtonFrame.Size = SIZES.BUTTON
stopButtonFrame.BackgroundColor3 = COLORS.BUTTON_BACKGROUND
stopButtonFrame.Parent = scrollFrame

local uiCornerStopButton = Instance.new("UICorner")
uiCornerStopButton.CornerRadius = CORNER_RADIUS
uiCornerStopButton.Parent = stopButtonFrame

local stopButton = Instance.new("TextButton")
stopButton.Size = SIZES.BUTTON_TEXT
stopButton.Position = UDim2.new(0.05, 0, 0, 0)
stopButton.BackgroundColor3 = COLORS.BUTTON_HIGHLIGHT
stopButton.Text = "Reset"
stopButton.Font = FONTS.BUTTON
stopButton.TextSize = isPC and 14 or 16 -- Larger text for Mobile
stopButton.TextColor3 = COLORS.TEXT
stopButton.Parent = stopButtonFrame

local stopDescription = Instance.new("TextLabel")
stopDescription.Size = SIZES.DESCRIPTION
stopDescription.Position = UDim2.new(0.4, 0, 0, 0)
stopDescription.BackgroundTransparency = 1
stopDescription.Text = "Reset to default (you need to reset after)"
stopDescription.TextColor3 = COLORS.DESCRIPTION
stopDescription.Font = FONTS.DESCRIPTION
stopDescription.TextSize = isPC and 14 or 16 -- Larger text for Mobile
stopDescription.TextXAlignment = Enum.TextXAlignment.Left
stopDescription.Parent = stopButtonFrame

stopButton.MouseButton1Click:Connect(function()
    changeImage(DEFAULT_IMAGE_URL) -- This will clear the image
end)

-- Create Buttons
for _, data in ipairs(buttonData) do
    createButton(data)
end

-- Adjust ScrollingFrame Canvas Size
uiList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
    scrollFrame.CanvasSize = UDim2.new(0, 0, 0, uiList.AbsoluteContentSize.Y)
end)

Features & Information

allows you to change your marshmallow skin in total roblox drama!
#total roblox drama#trd#total drama#total drama island

Community Comments (0)

No comments yet for this script.

More Scripts for Total Roblox Drama