
KeylessUniversal

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- Dara File Downloader - Compact Tabbed UI
-- Creates "Dara File downloader" folder in workspace
-- Auto-saves loaded scripts with metadata
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Configuration
local FOLDER_NAME = "DaraFileDownloader"
local METADATA_TEMPLATE = [[
-- ========================================
-- Dara File Downloader - Auto-Saved Script
-- Downloaded: %s
-- URL: %s
-- Filename: %s
-- ========================================
]]
-- Create/Switch to workspace folder
local function ensureFolder()
local success, result = pcall(function()
if not isfolder(FOLDER_NAME) then
makefolder(FOLDER_NAME)
print("Created folder: " .. FOLDER_NAME)
end
end)
if not success then
warn("Folder creation failed, using root workspace: " .. tostring(result))
return ""
end
return FOLDER_NAME .. "/"
end
local workspacePath = ensureFolder()
-- Create GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DaraFileDownloader"
screenGui.Parent = playerGui
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 450, 0, 400)
mainFrame.Position = UDim2.new(0.5, -225, 0.5, -200)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = mainFrame
-- Title with buttons
local title = Instance.new("Frame")
title.Size = UDim2.new(1, 0, 0, 35)
title.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
title.Parent = mainFrame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = title
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -80, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "🎯 Dara File Downloader"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextScaled = true
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.Parent = title
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 30, 0, 30)
minimizeBtn.Position = UDim2.new(1, -60, 0, 2)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
minimizeBtn.Text = "_"
minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeBtn.TextScaled = true
minimizeBtn.Font = Enum.Font.SourceSansBold
minimizeBtn.Parent = title
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -30, 0, 2)
closeBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextScaled = true
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.Parent = title
-- Tabs Container
local tabsContainer = Instance.new("Frame")
tabsContainer.Size = UDim2.new(1, 0, 0, 35)
tabsContainer.Position = UDim2.new(0, 0, 0, 35)
tabsContainer.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
tabsContainer.BorderSizePixel = 0
tabsContainer.Parent = mainFrame
local tabsLayout = Instance.new("UIListLayout")
tabsLayout.FillDirection = Enum.FillDirection.Horizontal
tabsLayout.Parent = tabsContainer
-- Content Area
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, -10, 0, 320)
contentFrame.Position = UDim2.new(0, 5, 0, 75)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame
-- Tab Data Storage
local tabContents = {}
local currentTab = "Executor"
-- Create Tab Function
local function createTab(tabName, layoutOrder)
local tabButton = Instance.new("TextButton")
tabButton.Size = UDim2.new(0.33, 0, 1, 0)
tabButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
tabButton.Text = tabName
tabButton.TextColor3 = Color3.fromRGB(200, 200, 200)
tabButton.TextScaled = true
tabButton.Font = Enum.Font.SourceSansBold
tabButton.LayoutOrder = layoutOrder
tabButton.Parent = tabsContainer
local tabContent = Instance.new("ScrollingFrame")
tabContent.Size = UDim2.new(1, 0, 1, 0)
tabContent.BackgroundTransparency = 1
tabContent.ScrollBarThickness = 6
tabContent.Visible = false
tabContent.AutomaticCanvasSize = Enum.AutomaticSize.Y
tabContent.Parent = contentFrame
local contentLayout = Instance.new("UIListLayout")
contentLayout.SortOrder = Enum.SortOrder.LayoutOrder
contentLayout.Padding = UDim.new(0, 8)
contentLayout.Parent = tabContent
tabContents[tabName] = {button = tabButton, content = tabContent}
tabButton.MouseButton1Click:Connect(function()
-- Hide all tabs
for name, tabData in pairs(tabContents) do
tabData.content.Visible = false
tabData.button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
tabData.button.TextColor3 = Color3.fromRGB(200, 200, 200)
end
-- Show selected tab
tabContent.Visible = true
tabButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
tabButton.TextColor3 = Color3.fromRGB(255, 255, 255)
currentTab = tabName
end)
return tabContent
end
-- Create Tabs
local executorTab = createTab("Executor", 1)
local saveScriptsTab = createTab("SaveScripts", 2)
local scriptsTab = createTab("Scripts", 3)
-- Show first tab by default
executorTab.Visible = true
tabContents["Executor"].button.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
tabContents["Executor"].button.TextColor3 = Color3.fromRGB(255, 255, 255)
-- ==================== EXECUTOR TAB ====================
local function createSection(parent, titleText, height, layoutOrder)
local section = Instance.new("Frame")
section.Size = UDim2.new(1, 0, 0, height)
section.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
section.LayoutOrder = layoutOrder
section.Parent = parent
local sectionCorner = Instance.new("UICorner")
sectionCorner.CornerRadius = UDim.new(0, 6)
sectionCorner.Parent = section
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -10, 0, 20)
label.Position = UDim2.new(0, 8, 0, 5)
label.BackgroundTransparency = 1
label.Text = titleText
label.TextColor3 = Color3.fromRGB(200, 200, 200)
label.TextXAlignment = Enum.TextXAlignment.Left
label.Font = Enum.Font.SourceSansSemibold
label.TextSize = 14
label.Parent = section
return section
end
-- Executor: Script/Link Input
local executorInputSection = createSection(executorTab, "📝Script/Link", 100, 1)
local executorInputBox = Instance.new("TextBox")
executorInputBox.Size = UDim2.new(1, -16, 1, -30)
executorInputBox.Position = UDim2.new(0, 8, 0, 25)
executorInputBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
executorInputBox.PlaceholderText = "Paste script code or pastebin/raw link..."
executorInputBox.Text = ""
executorInputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
executorInputBox.TextXAlignment = Enum.TextXAlignment.Left
executorInputBox.TextYAlignment = Enum.TextYAlignment.Top
executorInputBox.MultiLine = true
executorInputBox.TextWrapped = true
executorInputBox.ClearTextOnFocus = false
executorInputBox.Font = Enum.Font.Code
executorInputBox.TextSize = 12
executorInputBox.Parent = executorInputSection
local inputBoxCorner = Instance.new("UICorner")
inputBoxCorner.CornerRadius = UDim.new(0, 4)
inputBoxCorner.Parent = executorInputBox
-- Executor: Buttons
local executorButtonsSection = createSection(executorTab, "⚡Actions", 50, 2)
local executeBtn = Instance.new("TextButton")
executeBtn.Size = UDim2.new(0.48, -5, 0, 30)
executeBtn.Position = UDim2.new(0, 8, 0, 25)
executeBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
executeBtn.Text = "▶️Execute"
executeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
executeBtn.TextScaled = true
executeBtn.Font = Enum.Font.SourceSansBold
executeBtn.Parent = executorButtonsSection
local executeCorner = Instance.new("UICorner")
executeCorner.CornerRadius = UDim.new(0, 4)
executeCorner.Parent = executeBtn
local loadFromLinkBtn = Instance.new("TextButton")
loadFromLinkBtn.Size = UDim2.new(0.48, 0, 0, 30)
loadFromLinkBtn.Position = UDim2.new(0.52, 0, 0, 25)
loadFromLinkBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
loadFromLinkBtn.Text = "🔗Load&Run"
loadFromLinkBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
loadFromLinkBtn.TextScaled = true
loadFromLinkBtn.Font = Enum.Font.SourceSansBold
loadFromLinkBtn.Parent = executorButtonsSection
local loadFromLinkCorner = Instance.new("UICorner")
loadFromLinkCorner.CornerRadius = UDim.new(0, 4)
loadFromLinkCorner.Parent = loadFromLinkBtn
-- ==================== SAVE SCRIPTS TAB ====================
-- Save Scripts: URL Input
local saveUrlSection = createSection(saveScriptsTab, "📥SaveFromURL", 70, 1)
local saveUrlBox = Instance.new("TextBox")
saveUrlBox.Size = UDim2.new(1, -16, 0, 30)
saveUrlBox.Position = UDim2.new(0, 8, 0, 25)
saveUrlBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
saveUrlBox.PlaceholderText = "https://pastebin.com/raw/..."
saveUrlBox.Text = ""
saveUrlBox.TextColor3 = Color3.fromRGB(255, 255, 255)
saveUrlBox.TextSize = 14
saveUrlBox.Font = Enum.Font.SourceSans
saveUrlBox.ClearTextOnFocus = false
saveUrlBox.Parent = saveUrlSection
local urlBoxCorner = Instance.new("UICorner")
urlBoxCorner.CornerRadius = UDim.new(0, 4)
urlBoxCorner.Parent = saveUrlBox
-- Save Scripts: Code Input
local saveCodeSection = createSection(saveScriptsTab, "💾SaveCodeAsFile", 100, 2)
local saveCodeBox = Instance.new("TextBox")
saveCodeBox.Size = UDim2.new(1, -16, 1, -30)
saveCodeBox.Position = UDim2.new(0, 8, 0, 25)
saveCodeBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
saveCodeBox.PlaceholderText = "Paste script code to save as file..."
saveCodeBox.Text = ""
saveCodeBox.TextColor3 = Color3.fromRGB(255, 255, 255)
saveCodeBox.TextXAlignment = Enum.TextXAlignment.Left
saveCodeBox.TextYAlignment = Enum.TextYAlignment.Top
saveCodeBox.MultiLine = true
saveCodeBox.TextWrapped = true
saveCodeBox.ClearTextOnFocus = false
saveCodeBox.Font = Enum.Font.Code
saveCodeBox.TextSize = 12
saveCodeBox.Parent = saveCodeSection
local codeBoxCorner = Instance.new("UICorner")
codeBoxCorner.CornerRadius = UDim.new(0, 4)
codeBoxCorner.Parent = saveCodeBox
-- Save Scripts: Filename & Buttons
local saveOptionsSection = createSection(saveScriptsTab, "💾SaveOptions", 70, 3)
local saveFileNameBox = Instance.new("TextBox")
saveFileNameBox.Size = UDim2.new(0.6, -5, 0, 30)
saveFileNameBox.Position = UDim2.new(0, 8, 0, 25)
saveFileNameBox.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
saveFileNameBox.PlaceholderText = "filename.lua"
saveFileNameBox.Text = ""
saveFileNameBox.TextColor3 = Color3.fromRGB(255, 255, 255)
saveFileNameBox.TextSize = 14
saveFileNameBox.Font = Enum.Font.SourceSans
saveFileNameBox.Parent = saveOptionsSection
local fileNameCorner = Instance.new("UICorner")
fileNameCorner.CornerRadius = UDim.new(0, 4)
fileNameCorner.Parent = saveFileNameBox
local saveUrlBtn = Instance.new("TextButton")
saveUrlBtn.Size = UDim2.new(0.38, 0, 0, 30)
saveUrlBtn.Position = UDim2.new(0.62, 0, 0, 25)
saveUrlBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
saveUrlBtn.Text = "⬇️FromURL"
saveUrlBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
saveUrlBtn.TextScaled = true
saveUrlBtn.Font = Enum.Font.SourceSansBold
saveUrlBtn.Parent = saveOptionsSection
local saveUrlCorner = Instance.new("UICorner")
saveUrlCorner.CornerRadius = UDim.new(0, 4)
saveUrlCorner.Parent = saveUrlBtn
local saveCodeBtn = Instance.new("TextButton")
saveCodeBtn.Size = UDim2.new(1, -16, 0, 30)
saveCodeBtn.Position = UDim2.new(0, 8, 0, 60)
saveCodeBtn.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
saveCodeBtn.Text = "💾SaveCodeAsFile"
saveCodeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
saveCodeBtn.TextScaled = true
saveCodeBtn.Font = Enum.Font.SourceSansBold
saveCodeBtn.Parent = saveOptionsSection
local saveCodeCorner = Instance.new("UICorner")
saveCodeCorner.CornerRadius = UDim.new(0, 4)
saveCodeCorner.Parent = saveCodeBtn
-- ==================== SCRIPTS TAB ====================
-- Scripts: File List
local scriptsFilesSection = createSection(scriptsTab, "📁SavedScripts", 240, 1)
scriptsFilesSection.Size = UDim2.new(1, 0, 0, 240)
local filesFrame = Instance.new("ScrollingFrame")
filesFrame.Size = UDim2.new(1, -16, 1, -30)
filesFrame.Position = UDim2.new(0, 8, 0, 25)
filesFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
filesFrame.ScrollBarThickness = 6
filesFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
filesFrame.Parent = scriptsFilesSection
local filesFrameCorner = Instance.new("UICorner")
filesFrameCorner.CornerRadius = UDim.new(0, 4)
filesFrameCorner.Parent = filesFrame
local filesLayout = Instance.new("UIListLayout")
filesLayout.SortOrder = Enum.SortOrder.LayoutOrder
filesLayout.Padding = UDim.new(0, 4)
filesLayout.Parent = filesFrame
-- Context Menu
local contextMenu = Instance.new("Frame")
contextMenu.Size = UDim2.new(0, 120, 0, 140)
contextMenu.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
contextMenu.BorderSizePixel = 1
contextMenu.BorderColor3 = Color3.fromRGB(100, 100, 100)
contextMenu.Visible = false
contextMenu.ZIndex = 10
contextMenu.Parent = screenGui
local contextCorner = Instance.new("UICorner")
contextCorner.CornerRadius = UDim.new(0, 4)
contextCorner.Parent = contextMenu
local contextLayout = Instance.new("UIListLayout")
contextLayout.SortOrder = Enum.SortOrder.LayoutOrder
contextLayout.Parent = contextMenu
local viewContextBtn = Instance.new("TextButton")
viewContextBtn.Size = UDim2.new(1, 0, 0, 28)
viewContextBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
viewContextBtn.Text = "👁️View"
viewContextBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
viewContextBtn.TextSize = 14
viewContextBtn.Font = Enum.Font.SourceSans
viewContextBtn.ZIndex = 11
viewContextBtn.Parent = contextMenu
local editContextBtn = Instance.new("TextButton")
editContextBtn.Size = UDim2.new(1, 0, 0, 28)
editContextBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
editContextBtn.Text = "✏️Edit"
editContextBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
editContextBtn.TextSize = 14
editContextBtn.Font = Enum.Font.SourceSans
editContextBtn.ZIndex = 11
editContextBtn.Parent = contextMenu
local duplicateContextBtn = Instance.new("TextButton")
duplicateContextBtn.Size = UDim2.new(1, 0, 0, 28)
duplicateContextBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
duplicateContextBtn.Text = "📋Duplicate"
duplicateContextBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
duplicateContextBtn.TextSize = 14
duplicateContextBtn.Font = Enum.Font.SourceSans
duplicateContextBtn.ZIndex = 11
duplicateContextBtn.Parent = contextMenu
local renameContextBtn = Instance.new("TextButton")
renameContextBtn.Size = UDim2.new(1, 0, 0, 28)
renameContextBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
renameContextBtn.Text = "🔄Rename"
renameContextBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
renameContextBtn.TextSize = 14
renameContextBtn.Font = Enum.Font.SourceSans
renameContextBtn.ZIndex = 11
renameContextBtn.Parent = contextMenu
local deleteContextBtn = Instance.new("TextButton")
deleteContextBtn.Size = UDim2.new(1, 0, 0, 28)
deleteContextBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
deleteContextBtn.Text = "🗑️Delete"
deleteContextBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
deleteContextBtn.TextSize = 14
deleteContextBtn.Font = Enum.Font.SourceSans
deleteContextBtn.ZIndex = 11
deleteContextBtn.Parent = contextMenu
-- Status Bar
local statusBar = Instance.new("Frame")
statusBar.Size = UDim2.new(1, 0, 0, 25)
statusBar.Position = UDim2.new(0, 0, 1, -25)
statusBar.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
statusBar.Parent = mainFrame
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -10, 1, 0)
statusLabel.Position = UDim2.new(0, 8, 0, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "📁"..(workspacePath ~= "" and FOLDER_NAME or "Root").."|Ready!"
statusLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Font = Enum.Font.SourceSans
statusLabel.TextSize = 12
statusLabel.Parent = statusBar
-- Shared Variables
local selectedFile = ""
local contextMenuFile = ""
local isMinimized = false
-- Utility Functions
local function updateStatus(text, color)
statusLabel.Text = text
statusLabel.TextColor3 = color or Color3.fromRGB(255, 255, 255)
print("[DaraDownloader] "..text)
end
local function generateFilename(baseName)
local name = baseName or saveFileNameBox.Text or "script"
if name == "" then
name = "script_"..tostring(tick()):sub(-4)
end
if not name:match("%.lua$") then
name = name..".lua"
end
return name
end
local function safeWriteFile(filename, content, url)
local fullPath = workspacePath..filename
local withMetadata = string.format(METADATA_TEMPLATE, os.date("%Y-%m-%d %H:%M:%S"), url or "manual", filename).."\n"..content
local success, result = pcall(function()
writefile(fullPath, withMetadata)
end)
if success then
updateStatus("✓Saved:"..filename, Color3.fromRGB(0, 255, 0))
return true
else
updateStatus("✗Write failed:"..tostring(result), Color3.fromRGB(255, 0, 0))
return false
end
end
local function safeReadFile(filename)
local fullPath = workspacePath..filename
local success, result = pcall(function()
return readfile(fullPath)
end)
if success then
-- Remove metadata header for execution
local content = result:gsub(METADATA_TEMPLATE:gsub("%%s", ".+"), "")
return content
else
updateStatus("✗Read failed:"..tostring(result), Color3.fromRGB(255, 0, 0))
return nil
end
end
local function safeExecute(content, autoSave, url, filename)
local success, result = pcall(function()
local func = loadstring(content)
if func then
func()
return true
end
end)
if success and result then
if autoSave then
local saveName = filename or generateFilename()
safeWriteFile(saveName, content, url or "loadstring_auto")
end
updateStatus("✓Executed successfully!"..(autoSave and "(Auto-saved)" or ""), Color3.fromRGB(0, 255, 0))
return true
else
updateStatus("✗Execution error:"..tostring(result), Color3.fromRGB(255, 0, 0))
return false
end
end
local function loadFromUrl(url)
if not string.find(url, "http") then
updateStatus("❌Invalid URL!", Color3.fromRGB(255, 0, 0))
return nil
end
updateStatus("⬇️Downloading from URL...", Color3.fromRGB(255, 255, 0))
local success, result = pcall(function()
return game:HttpGet(url)
end)
if success and result and result ~= "" then
updateStatus("✓Downloaded successfully", Color3.fromRGB(0, 255, 0))
return result
else
updateStatus("❌Download failed:"..tostring(result), Color3.fromRGB(255, 0, 0))
return nil
end
end
local function showContextMenu(position, fileName)
contextMenuFile = fileName
contextMenu.Position = UDim2.new(0, position.X, 0, position.Y)
contextMenu.Visible = true
end
local function hideContextMenu()
contextMenu.Visible = false
end
local function showDeleteWarning(filename, callback)
local popup = Instance.new("Frame")
popup.Size = UDim2.new(0.4, 0, 0.2, 0)
popup.Position = UDim2.new(0.3, 0, 0.4, 0)
popup.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
popup.BorderSizePixel = 2
popup.BorderColor3 = Color3.fromRGB(255, 50, 50)
popup.ZIndex = 20
popup.Parent = screenGui
local popupCorner = Instance.new("UICorner")
popupCorner.CornerRadius = UDim.new(0, 8)
popupCorner.Parent = popup
local titleR = Instance.new("TextLabel")
titleR.Size = UDim2.new(1, 0, 0, 30)
titleR.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
titleR.Text = "⚠️Delete File"
titleR.TextColor3 = Color3.fromRGB(255, 255, 255)
titleR.TextScaled = true
titleR.Font = Enum.Font.SourceSansBold
titleR.ZIndex = 21
titleR.Parent = popup
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = titleR
local closeR = Instance.new("TextButton")
closeR.Size = UDim2.new(0, 30, 0, 30)
closeR.Position = UDim2.new(1, -30, 0, 0)
closeR.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
closeR.Text = "X"
closeR.TextColor3 = Color3.fromRGB(255, 255, 255)
closeR.TextScaled = true
closeR.ZIndex = 21
closeR.Parent = titleR
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeR
closeR.MouseButton1Click:Connect(function()
popup:Destroy()
end)
local warningLabel = Instance.new("TextLabel")
warningLabel.Size = UDim2.new(1, -20, 0, 40)
warningLabel.Position = UDim2.new(0, 10, 0, 35)
warningLabel.BackgroundTransparency = 1
warningLabel.Text = "Delete "..filename.."?\nThis action cannot be undone!"
warningLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
warningLabel.TextSize = 14
warningLabel.TextWrapped = true
warningLabel.ZIndex = 21
warningLabel.Parent = popup
local deleteBtn = Instance.new("TextButton")
deleteBtn.Size = UDim2.new(0.45, 0, 0, 30)
deleteBtn.Position = UDim2.new(0.05, 0, 0, 80)
deleteBtn.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
deleteBtn.Text = "DELETE"
deleteBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
deleteBtn.TextScaled = true
deleteBtn.ZIndex = 21
deleteBtn.Font = Enum.Font.SourceSansBold
deleteBtn.Parent = popup
local deleteCorner = Instance.new("UICorner")
deleteCorner.CornerRadius = UDim.new(0, 4)
deleteCorner.Parent = deleteBtn
deleteBtn.MouseButton1Click:Connect(function()
popup:Destroy()
callback()
end)
local cancelBtn = Instance.new("TextButton")
cancelBtn.Size = UDim2.new(0.45, 0, 0, 30)
cancelBtn.Position = UDim2.new(0.5, 0, 0, 80)
cancelBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
cancelBtn.Text = "Cancel"
cancelBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
cancelBtn.TextScaled = true
cancelBtn.ZIndex = 21
cancelBtn.Font = Enum.Font.SourceSansBold
cancelBtn.Parent = popup
local cancelCorner = Instance.new("UICorner")
cancelCorner.CornerRadius = UDim.new(0, 4)
cancelCorner.Parent = cancelBtn
cancelBtn.MouseButton1Click:Connect(function()
popup:Destroy()
end)
end
local function refreshFileList()
for _, child in pairs(filesFrame:GetChildren()) do
if child:IsA("TextButton") then
child:Destroy()
end
end
local success, files = pcall(function()
if isfolder(FOLDER_NAME) then
return listfiles(FOLDER_NAME)
else
return {}
end
end)
if success and files then
for i, filePath in ipairs(files) do
local fileName = filePath:match("([^/\\]+)$")
if fileName:match("%.lua$") then
-- Use TextButton for the entire file item
local fileItem = Instance.new("TextButton")
fileItem.Size = UDim2.new(1, 0, 0, 30)
fileItem.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
fileItem.Text = ""
fileItem.AutoButtonColor = false
fileItem.Parent = filesFrame
local itemCorner = Instance.new("UICorner")
itemCorner.CornerRadius = UDim.new(0, 4)
itemCorner.Parent = fileItem
-- File name label (non-interactive)
local fileNameLabel = Instance.new("TextLabel")
fileNameLabel.Size = UDim2.new(0.7, 0, 1, 0)
fileNameLabel.BackgroundTransparency = 1
fileNameLabel.Text = "📄"..fileName
fileNameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
fileNameLabel.TextSize = 12
fileNameLabel.TextXAlignment = Enum.TextXAlignment.Left
fileNameLabel.Font = Enum.Font.SourceSans
fileNameLabel.Parent = fileItem
-- Execute button
local executeButton = Instance.new("TextButton")
executeButton.Size = UDim2.new(0.15, 0, 1, 0)
executeButton.Position = UDim2.new(0.7, 0, 0, 0)
executeButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
executeButton.Text = "▶️"
executeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
executeButton.TextScaled = true
executeButton.Font = Enum.Font.SourceSansBold
executeButton.AutoButtonColor = false
executeButton.Parent = fileItem
local execCorner = Instance.new("UICorner")
execCorner.CornerRadius = UDim.new(0, 4)
execCorner.Parent = executeButton
executeButton.MouseButton1Click:Connect(function()
local content = safeReadFile(fileName)
if content then
safeExecute(content, false)
end
end)
local menuButton = Instance.new("TextButton")
menuButton.Size = UDim2.new(0.15, 0, 1, 0)
menuButton.Position = UDim2.new(0.85, 0, 0, 0)
menuButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
menuButton.Text = "..."
menuButton.TextColor3 = Color3.fromRGB(255, 255, 255)
menuButton.TextSize = 14
menuButton.Font = Enum.Font.SourceSansBold
menuButton.AutoButtonColor = false
menuButton.Parent = fileItem
local menuCorner = Instance.new("UICorner")
menuCorner.CornerRadius = UDim.new(0, 4)
menuCorner.Parent = menuButton
-- File selection - click on the entire item
fileItem.MouseButton1Click:Connect(function()
selectedFile = fileName
saveFileNameBox.Text = fileName
updateStatus("Selected:"..fileName, Color3.fromRGB(0, 255, 0))
end)
-- Context menu
menuButton.MouseButton1Click:Connect(function()
local absolutePosition = menuButton.AbsolutePosition
local absoluteSize = menuButton.AbsoluteSize
showContextMenu(
Vector2.new(absolutePosition.X, absolutePosition.Y + absoluteSize.Y),
fileName
)
end)
-- Right click to execute on the entire file item
fileItem.MouseButton2Click:Connect(function()
local content = safeReadFile(fileName)
if content then
safeExecute(content, false)
end
end)
end
end
end
end
local function duplicateFile(filename)
if not filename or filename == "" then return end
local content = safeReadFile(filename)
if not content then return end
local newName = filename:gsub("%.lua$", "_copy.lua")
if safeWriteFile(newName, content, "duplicate") then
refreshFileList()
updateStatus("📋Duplicated:"..newName, Color3.fromRGB(0, 255, 0))
end
end
local function editFile(filename)
if not filename or filename == "" then return end
local content = safeReadFile(filename)
if content then
saveCodeBox.Text = content
saveFileNameBox.Text = filename
-- Switch to SaveScripts tab by manually triggering the tab switch
for name, tabData in pairs(tabContents) do
tabData.content.Visible = false
tabData.button.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
tabData.button.TextColor3 = Color3.fromRGB(200, 200, 200)
end
saveScriptsTab.Visible = true
tabContents["SaveScripts"].button.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
tabContents["SaveScripts"].button.TextColor3 = Color3.fromRGB(255, 255, 255)
currentTab = "SaveScripts"
updateStatus("✏️Editing:"..filename, Color3.fromRGB(0, 255, 0))
end
end
-- Context Menu Events
viewContextBtn.MouseButton1Click:Connect(function()
if contextMenuFile == "" then return end
local content = safeReadFile(contextMenuFile)
if content then
-- Create a popup to view the script
local viewPopup = Instance.new("Frame")
viewPopup.Size = UDim2.new(0.8, 0, 0.8, 0)
viewPopup.Position = UDim2.new(0.1, 0, 0.1, 0)
viewPopup.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
viewPopup.BorderSizePixel = 2
viewPopup.BorderColor3 = Color3.fromRGB(0, 120, 255)
viewPopup.ZIndex = 20
viewPopup.Parent = screenGui
local popupCorner = Instance.new("UICorner")
popupCorner.CornerRadius = UDim.new(0, 8)
popupCorner.Parent = viewPopup
local titleR = Instance.new("TextLabel")
titleR.Size = UDim2.new(1, 0, 0, 30)
titleR.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
titleR.Text = "👁️Viewing:"..contextMenuFile
titleR.TextColor3 = Color3.fromRGB(255, 255, 255)
titleR.TextScaled = true
titleR.Font = Enum.Font.SourceSansBold
titleR.ZIndex = 21
titleR.Parent = viewPopup
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = titleR
local closeR = Instance.new("TextButton")
closeR.Size = UDim2.new(0, 30, 0, 30)
closeR.Position = UDim2.new(1, -30, 0, 0)
closeR.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
closeR.Text = "X"
closeR.TextColor3 = Color3.fromRGB(255, 255, 255)
closeR.TextScaled = true
closeR.ZIndex = 21
closeR.Parent = titleR
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeR
closeR.MouseButton1Click:Connect(function()
viewPopup:Destroy()
end)
local contentBox = Instance.new("ScrollingFrame")
contentBox.Size = UDim2.new(1, -20, 1, -40)
contentBox.Position = UDim2.new(0, 10, 0, 35)
contentBox.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
contentBox.ScrollBarThickness = 8
contentBox.ZIndex = 21
contentBox.Parent = viewPopup
local contentCorner = Instance.new("UICorner")
contentCorner.CornerRadius = UDim.new(0, 4)
contentCorner.Parent = contentBox
local codeText = Instance.new("TextLabel")
codeText.Size = UDim2.new(1, -10, 1, -10)
codeText.Position = UDim2.new(0, 5, 0, 5)
codeText.BackgroundTransparency = 1
codeText.Text = content
codeText.TextColor3 = Color3.fromRGB(255, 255, 255)
codeText.TextSize = 12
codeText.TextXAlignment = Enum.TextXAlignment.Left
codeText.TextYAlignment = Enum.TextYAlignment.Top
codeText.TextWrapped = true
codeText.Font = Enum.Font.Code
codeText.ZIndex = 22
codeText.Parent = contentBox
end
hideContextMenu()
end)
editContextBtn.MouseButton1Click:Connect(function()
if contextMenuFile == "" then return end
editFile(contextMenuFile)
hideContextMenu()
end)
duplicateContextBtn.MouseButton1Click:Connect(function()
if contextMenuFile == "" then return end
duplicateFile(contextMenuFile)
hideContextMenu()
end)
renameContextBtn.MouseButton1Click:Connect(function()
if contextMenuFile == "" then return end
local popup = Instance.new("Frame")
popup.Size = UDim2.new(0.4, 0, 0.2, 0)
popup.Position = UDim2.new(0.3, 0, 0.4, 0)
popup.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
popup.BorderSizePixel = 2
popup.BorderColor3 = Color3.fromRGB(0, 120, 255)
popup.ZIndex = 20
popup.Parent = screenGui
local popupCorner = Instance.new("UICorner")
popupCorner.CornerRadius = UDim.new(0, 8)
popupCorner.Parent = popup
local titleR = Instance.new("TextLabel")
titleR.Size = UDim2.new(1, 0, 0, 30)
titleR.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
titleR.Text = "Rename:"..contextMenuFile
titleR.TextColor3 = Color3.fromRGB(255, 255, 255)
titleR.TextScaled = true
titleR.Font = Enum.Font.SourceSansBold
titleR.ZIndex = 21
titleR.Parent = popup
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = titleR
local closeR = Instance.new("TextButton")
closeR.Size = UDim2.new(0, 30, 0, 30)
closeR.Position = UDim2.new(1, -30, 0, 0)
closeR.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
closeR.Text = "X"
closeR.TextColor3 = Color3.fromRGB(255, 255, 255)
closeR.TextScaled = true
closeR.ZIndex = 21
closeR.Parent = titleR
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeR
closeR.MouseButton1Click:Connect(function()
popup:Destroy()
hideContextMenu()
end)
local newNameBox = Instance.new("TextBox")
newNameBox.Size = UDim2.new(1, -20, 0, 30)
newNameBox.Position = UDim2.new(0, 10, 0, 40)
newNameBox.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
newNameBox.Text = contextMenuFile
newNameBox.TextColor3 = Color3.fromRGB(255, 255, 255)
newNameBox.TextSize = 14
newNameBox.Font = Enum.Font.SourceSans
newNameBox.ClearTextOnFocus = false
newNameBox.ZIndex = 21
newNameBox.Parent = popup
local nameBoxCorner = Instance.new("UICorner")
nameBoxCorner.CornerRadius = UDim.new(0, 4)
nameBoxCorner.Parent = newNameBox
local okBtn = Instance.new("TextButton")
okBtn.Size = UDim2.new(0.45, 0, 0, 30)
okBtn.Position = UDim2.new(0.05, 0, 0, 80)
okBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
okBtn.Text = "OK"
okBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
okBtn.TextScaled = true
okBtn.ZIndex = 21
okBtn.Font = Enum.Font.SourceSansBold
okBtn.Parent = popup
local okCorner = Instance.new("UICorner")
okCorner.CornerRadius = UDim.new(0, 4)
okCorner.Parent = okBtn
okBtn.MouseButton1Click:Connect(function()
local newName = newNameBox.Text
if newName:match("^%s*$") or newName == contextMenuFile then
popup:Destroy()
hideContextMenu()
return
end
if not newName:match("%.lua$") then
newName = newName..".lua"
end
local oldPath = workspacePath..contextMenuFile
local newPath = workspacePath..newName
local success1, fullContent = pcall(readfile, oldPath)
if not success1 then
updateStatus("✗Read failed during rename!", Color3.fromRGB(255, 0, 0))
popup:Destroy()
hideContextMenu()
return
end
local updated = fullContent:gsub("-- Filename: [^%s]+", "-- Filename: "..newName)
local success2 = pcall(writefile, newPath, updated)
local success3 = pcall(delfile, oldPath)
if success2 and success3 then
updateStatus("✏️Renamed to:"..newName, Color3.fromRGB(0, 255, 0))
refreshFileList()
else
updateStatus("✗Rename failed!", Color3.fromRGB(255, 0, 0))
end
popup:Destroy()
hideContextMenu()
end)
local cancelBtn = Instance.new("TextButton")
cancelBtn.Size = UDim2.new(0.45, 0, 0, 30)
cancelBtn.Position = UDim2.new(0.5, 0, 0, 80)
cancelBtn.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
cancelBtn.Text = "Cancel"
cancelBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
cancelBtn.TextScaled = true
cancelBtn.ZIndex = 21
cancelBtn.Font = Enum.Font.SourceSansBold
cancelBtn.Parent = popup
local cancelCorner = Instance.new("UICorner")
cancelCorner.CornerRadius = UDim.new(0, 4)
cancelCorner.Parent = cancelBtn
cancelBtn.MouseButton1Click:Connect(function()
popup:Destroy()
hideContextMenu()
end)
end)
deleteContextBtn.MouseButton1Click:Connect(function()
if contextMenuFile == "" then return end
showDeleteWarning(contextMenuFile, function()
local fullPath = workspacePath..contextMenuFile
local success = pcall(function()
delfile(fullPath)
end)
if success then
updateStatus("🗑️Deleted:"..contextMenuFile, Color3.fromRGB(0, 255, 0))
refreshFileList()
else
updateStatus("✗Delete failed!", Color3.fromRGB(255, 0, 0))
end
end)
hideContextMenu()
end)
-- Button Events
-- Executor Tab
executeBtn.MouseButton1Click:Connect(function()
local input = executorInputBox.Text
if input == "" then
updateStatus("❌No script to execute!", Color3.fromRGB(255, 0, 0))
return
end
-- Check if input is a URL
if string.find(input, "http") then
local content = loadFromUrl(input)
if content then
safeExecute(content, true, input)
end
else
-- Execute as direct code
safeExecute(input, false)
end
end)
loadFromLinkBtn.MouseButton1Click:Connect(function()
local input = executorInputBox.Text
if not string.find(input, "http") then
updateStatus("❌Not a valid URL!", Color3.fromRGB(255, 0, 0))
return
end
local content = loadFromUrl(input)
if content then
executorInputBox.Text = content
safeExecute(content, true, input)
end
end)
-- Save Scripts Tab
saveUrlBtn.MouseButton1Click:Connect(function()
local url = saveUrlBox.Text
local filename = generateFilename()
local content = loadFromUrl(url)
if content then
if safeWriteFile(filename, content, url) then
saveFileNameBox.Text = filename
refreshFileList()
end
end
end)
saveCodeBtn.MouseButton1Click:Connect(function()
local code = saveCodeBox.Text
local filename = generateFilename()
if code == "" then
updateStatus("❌No code to save!", Color3.fromRGB(255, 0, 0))
return
end
if safeWriteFile(filename, code, "manual_input") then
saveFileNameBox.Text = filename
refreshFileList()
end
end)
-- Minimize functionality
minimizeBtn.MouseButton1Click:Connect(function()
if isMinimized then
-- Restore
mainFrame.Size = UDim2.new(0, 450, 0, 400)
mainFrame.Position = UDim2.new(0.5, -225, 0.5, -200)
contentFrame.Visible = true
tabsContainer.Visible = true
statusBar.Visible = true
isMinimized = false
else
-- Minimize
mainFrame.Size = UDim2.new(0, 450, 0, 35)
mainFrame.Position = UDim2.new(0.5, -225, 0, 10)
contentFrame.Visible = false
tabsContainer.Visible = false
statusBar.Visible = false
isMinimized = true
end
end)
-- Close context menu when clicking elsewhere
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
if contextMenu.Visible then
local mousePos = input.Position
local contextMenuPos = contextMenu.AbsolutePosition
local contextMenuSize = contextMenu.AbsoluteSize
if mousePos.X < contextMenuPos.X or mousePos.X > contextMenuPos.X + contextMenuSize.X or
mousePos.Y < contextMenuPos.Y or mousePos.Y > contextMenuPos.Y + contextMenuSize.Y then
hideContextMenu()
end
end
end
end)
closeBtn.MouseButton1Click:Connect(function()
screenGui:Destroy()
end)
-- Hotkeys
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.F1 then
saveUrlBtn.MouseButton1Click:Fire()
elseif input.KeyCode == Enum.KeyCode.F2 then
executeBtn.MouseButton1Click:Fire()
elseif input.KeyCode == Enum.KeyCode.F3 then
loadFromLinkBtn.MouseButton1Click:Fire()
elseif input.KeyCode == Enum.KeyCode.F5 then
refreshFileList()
end
end)
-- Auto-refresh file list
spawn(function()
while screenGui.Parent do
wait(5)
refreshFileList()
end
end)
-- Initial setup
updateStatus("🚀Ready!F1=SaveFromURL,F2=Execute,F3=Load&Run,F5=Refresh", Color3.fromRGB(0, 255, 0))
refreshFileList()
print("DaraFileDownloader loaded in folder: "..workspacePath)No comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

