M
Description
This is 1.0 so it will only be shown for a little while, enjoy though, scrap auto collect is broke btw, still use it if you want just if you can't find scrap, we also may delete the script due to several bugs, and we DO NOT want fans hating on this, so we will try our best to update. DON'T TRY THE GITHUB VERSION, REASON WHY, IS BECAUSE THAT ONE IS BROKEN AND DOESN'T WORK TRY THIS ONE FROM RSCRIPTS and Scriptblox. That's the original, the other person copied me.
GAME[V0.2 PRE-ALPHA] Darkest Hours
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ac469793ba87665a0763467"))()
end)
end)
--[[rscripts:analytics:end]]
task.wait(1)
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local ContentProvider = game:GetService("ContentProvider")
local localPlayer = Players.LocalPlayer
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ConfirmationGui"
screenGui.ResetOnSpawn = false
local success, _ = pcall(function()
screenGui.Parent = CoreGui
end)
if not success then
screenGui.Parent = localPlayer:WaitForChild("PlayerGui")
end
local blurEffect = Instance.new("BlurEffect")
blurEffect.Size = 0
blurEffect.Parent = Lighting
local backgroundImages = {
"https://scriptblox.com/images/script/17457039279-1791174797679.png",
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTO0O86jqFuLTosyEEopTtNqKYcaup8PCWG-AfwLikT_g&s",
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT2JF63DUXvW7c5GW9BL63_UuFAxCurOuQ2WuKGD3UVww&s",
"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTmXQRoadimLNhFF1O0MFnLw8O__9cDUajEdyEqOV4zjw&s"
}
local function getOnlineImage(url, filename)
filename = filename or "temp_splash_image.png"
if getcustomasset and writefile then
local success, result = pcall(function()
if not isfile(filename) then
local imageData = game:HttpGet(url)
writefile(filename, imageData)
end
return getcustomasset(filename)
end)
if success and result then
return result
end
end
return url
end
local function showNotification(text, color)
local notificationLabel = Instance.new("TextLabel")
notificationLabel.Name = "NotificationLabel"
notificationLabel.Size = UDim2.new(0, 180, 0, 32)
notificationLabel.Position = UDim2.new(0.5, -90, 0.85, 0)
notificationLabel.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
notificationLabel.Font = Enum.Font.SourceSansBold
notificationLabel.Text = text or "loading"
notificationLabel.TextColor3 = color or Color3.fromRGB(46, 204, 113)
notificationLabel.TextSize = 14
notificationLabel.BackgroundTransparency = 0.1
notificationLabel.ZIndex = 20
notificationLabel.Parent = screenGui
local notifCorner = Instance.new("UICorner")
notifCorner.CornerRadius = UDim.new(0, 6)
notifCorner.Parent = notificationLabel
task.delay(1.5, function()
local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tweenText = TweenService:Create(notificationLabel, tweenInfo, {TextTransparency = 1, BackgroundTransparency = 1})
tweenText:Play()
tweenText.Completed:Connect(function()
notificationLabel:Destroy()
end)
end)
end
local splashFrame = Instance.new("Frame")
splashFrame.Name = "SplashFrame"
splashFrame.Size = UDim2.new(1, 0, 1, 0)
splashFrame.Position = UDim2.new(0, 0, 0, 0)
splashFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
splashFrame.BackgroundTransparency = 1
splashFrame.ZIndex = 10
splashFrame.Parent = screenGui
local bgImage1 = Instance.new("ImageLabel")
bgImage1.Name = "BgImage1"
bgImage1.Size = UDim2.new(1, 0, 1, 0)
bgImage1.Position = UDim2.new(0, 0, 0, 0)
bgImage1.BackgroundTransparency = 1
bgImage1.ImageTransparency = 1
bgImage1.ScaleType = Enum.ScaleType.Crop
bgImage1.ZIndex = 10
bgImage1.Parent = splashFrame
local bgImage2 = Instance.new("ImageLabel")
bgImage2.Name = "BgImage2"
bgImage2.Size = UDim2.new(1, 0, 1, 0)
bgImage2.Position = UDim2.new(0, 0, 0, 0)
bgImage2.BackgroundTransparency = 1
bgImage2.ImageTransparency = 1
bgImage2.ScaleType = Enum.ScaleType.Crop
bgImage2.ZIndex = 10
bgImage2.Parent = splashFrame
local splashImage = Instance.new("ImageLabel")
splashImage.Name = "SplashImage"
splashImage.Size = UDim2.new(0, 100, 0, 56)
splashImage.Position = UDim2.new(0.5, -50, 0.5, -35)
splashImage.BackgroundTransparency = 1
splashImage.ImageTransparency = 1
splashImage.Image = getOnlineImage("https://tse3.mm.bing.net/th/id/OIP.O4A5WHaqmadmZ466x9egJQHaEK?r=0&pid=Api&h=220&P=0", "splash_credit_img.png")
splashImage.ZIndex = 12
splashImage.Parent = splashFrame
local splashCorner = Instance.new("UICorner")
splashCorner.CornerRadius = UDim.new(0, 8)
splashCorner.Parent = splashImage
local splashLabel = Instance.new("TextLabel")
splashLabel.Name = "SplashLabel"
splashLabel.Size = UDim2.new(0, 300, 0, 30)
splashLabel.Position = UDim2.new(0.5, -150, 0.5, 60)
splashLabel.BackgroundTransparency = 1
splashLabel.Font = Enum.Font.SourceSansBold
splashLabel.Text = "credit me and vinq"
splashLabel.TextColor3 = Color3.fromRGB(240, 240, 240)
splashLabel.TextSize = 16
splashLabel.TextTransparency = 1
splashLabel.ZIndex = 12
splashLabel.Parent = splashFrame
local loadingBarBackground = Instance.new("Frame")
loadingBarBackground.Name = "LoadingBarBackground"
loadingBarBackground.Size = UDim2.new(0, 260, 0, 10)
loadingBarBackground.Position = UDim2.new(0.5, -130, 0.5, 100)
loadingBarBackground.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
loadingBarBackground.BorderSizePixel = 0
loadingBarBackground.BackgroundTransparency = 1
loadingBarBackground.ZIndex = 12
loadingBarBackground.Parent = splashFrame
local loadingBarCorner = Instance.new("UICorner")
loadingBarCorner.CornerRadius = UDim.new(0, 5)
loadingBarCorner.Parent = loadingBarBackground
local loadingBarFill = Instance.new("Frame")
loadingBarFill.Name = "LoadingBarFill"
loadingBarFill.Size = UDim2.new(0, 0, 1, 0)
loadingBarFill.BackgroundColor3 = Color3.fromRGB(46, 204, 113)
loadingBarFill.BorderSizePixel = 0
loadingBarFill.BackgroundTransparency = 1
loadingBarFill.ZIndex = 13
loadingBarFill.Parent = loadingBarBackground
local loadingFillCorner = Instance.new("UICorner")
loadingFillCorner.CornerRadius = UDim.new(0, 5)
loadingFillCorner.Parent = loadingBarFill
local loadingStatusLabel = Instance.new("TextLabel")
loadingStatusLabel.Name = "LoadingStatusLabel"
loadingStatusLabel.Size = UDim2.new(0, 260, 0, 20)
loadingStatusLabel.Position = UDim2.new(0.5, -130, 0.5, 115)
loadingStatusLabel.BackgroundTransparency = 1
loadingStatusLabel.Font = Enum.Font.SourceSansSemibold
loadingStatusLabel.Text = "connecting..."
loadingStatusLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
loadingStatusLabel.TextSize = 13
loadingStatusLabel.TextTransparency = 1
loadingStatusLabel.ZIndex = 12
loadingStatusLabel.Parent = splashFrame
math.randomseed(os.time())
local activeBgIndex = 1
local currentBgImage = bgImage1
local nextBgImage = bgImage2
local isChangingBackground = true
local function startRandomBackgroundLoop()
currentBgImage.Image = getOnlineImage(backgroundImages[1], "startup_bg_1.png")
currentBgImage.ImageTransparency = 0
task.spawn(function()
while isChangingBackground do
task.wait(2.5)
if not isChangingBackground then break end
local newIndex
repeat
newIndex = math.random(1, #backgroundImages)
until newIndex ~= activeBgIndex
activeBgIndex = newIndex
local chosenUrl = backgroundImages[newIndex]
nextBgImage.Image = getOnlineImage(chosenUrl, "startup_bg_" .. newIndex .. ".png")
nextBgImage.ImageTransparency = 1
local fadeOut = TweenService:Create(currentBgImage, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {ImageTransparency = 1})
local fadeIn = TweenService:Create(nextBgImage, TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut), {ImageTransparency = 0})
fadeOut:Play()
fadeIn:Play()
fadeIn.Completed:Wait()
currentBgImage, nextBgImage = nextBgImage, currentBgImage
end
end)
end
local function runStartupAndRealLoading()
startRandomBackgroundLoop()
local fadeInInfo = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local popInInfo = TweenInfo.new(0.8, Enum.EasingStyle.Back, Enum.EasingDirection.Out)
local tweenBlurIn = TweenService:Create(blurEffect, fadeInInfo, {Size = 8})
local tweenImgIn = TweenService:Create(splashImage, fadeInInfo, {ImageTransparency = 0})
local tweenImgScale = TweenService:Create(splashImage, popInInfo, {Size = UDim2.new(0, 220, 0, 124), Position = UDim2.new(0.5, -110, 0.5, -70)})
local tweenTxtIn = TweenService:Create(splashLabel, fadeInInfo, {TextTransparency = 0})
local tweenBarBgIn = TweenService:Create(loadingBarBackground, fadeInInfo, {BackgroundTransparency = 0})
local tweenBarFillIn = TweenService:Create(loadingBarFill, fadeInInfo, {BackgroundTransparency = 0})
local tweenStatusIn = TweenService:Create(loadingStatusLabel, fadeInInfo, {TextTransparency = 0})
tweenBlurIn:Play()
tweenImgIn:Play()
tweenImgScale:Play()
tweenTxtIn:Play()
tweenBarBgIn:Play()
tweenBarFillIn:Play()
tweenStatusIn:Play()
tweenTxtIn.Completed:Wait()
loadingStatusLabel.Text = "testing connection..."
local pingStart = os.clock()
local httpSuccess, scriptContent = pcall(function()
return game:HttpGet("https://pastebin.com/raw/u7h6webt")
end)
local pingTime = math.clamp((os.clock() - pingStart), 0.1, 2)
TweenService:Create(loadingBarFill, TweenInfo.new(pingTime, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(0.3, 0, 1, 0)}):Play()
task.wait(pingTime)
loadingStatusLabel.Text = "downloading asset cache..."
local assetsToPreload = {
"rbxassetid://6895079853"
}
local totalAssets = #assetsToPreload + #backgroundImages
local loadedCount = 0
for idx, assetUrl in ipairs(backgroundImages) do
loadingStatusLabel.Text = "fetching assets (" .. idx .. "/" .. totalAssets .. ")..."
ContentProvider:PreloadAsync({getOnlineImage(assetUrl, "startup_bg_" .. idx .. ".png")})
loadedCount = loadedCount + 1
local progress = 0.3 + (0.5 * (loadedCount / totalAssets))
TweenService:Create(loadingBarFill, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(progress, 0, 1, 0)}):Play()
task.wait(0.1)
end
for _, asset in ipairs(assetsToPreload) do
ContentProvider:PreloadAsync({asset})
loadedCount = loadedCount + 1
local progress = 0.3 + (0.5 * (loadedCount / totalAssets))
TweenService:Create(loadingBarFill, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(progress, 0, 1, 0)}):Play()
task.wait(0.1)
end
loadingStatusLabel.Text = "initializing script..."
TweenService:Create(loadingBarFill, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Size = UDim2.new(1, 0, 1, 0)}):Play()
task.wait(0.5)
loadingStatusLabel.Text = "loaded!"
task.wait(0.4)
isChangingBackground = false
local fadeOutInfo = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
local tweenBlurOut = TweenService:Create(blurEffect, fadeOutInfo, {Size = 0})
local tweenImgOut = TweenService:Create(splashImage, fadeOutInfo, {ImageTransparency = 1})
local tweenTxtOut = TweenService:Create(splashLabel, fadeOutInfo, {TextTransparency = 1})
local tweenBarBgOut = TweenService:Create(loadingBarBackground, fadeOutInfo, {BackgroundTransparency = 1})
local tweenBarFillOut = TweenService:Create(loadingBarFill, fadeOutInfo, {BackgroundTransparency = 1})
local tweenStatusOut = TweenService:Create(loadingStatusLabel, fadeOutInfo, {TextTransparency = 1})
local tweenBg1Out = TweenService:Create(bgImage1, fadeOutInfo, {ImageTransparency = 1})
local tweenBg2Out = TweenService:Create(bgImage2, fadeOutInfo, {ImageTransparency = 1})
tweenBlurOut:Play()
tweenImgOut:Play()
tweenTxtOut:Play()
tweenBarBgOut:Play()
tweenBarFillOut:Play()
tweenStatusOut:Play()
tweenBg1Out:Play()
tweenBg2Out:Play()
tweenBg1Out.Completed:Wait()
splashFrame:Destroy()
blurEffect:Destroy()
if httpSuccess and scriptContent then
loadstring(scriptContent)()
else
showNotification("failed to load main script", Color3.fromRGB(220, 53, 69))
end
end
runStartupAndRealLoading()Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place