
KeylessUniversal

-- Quran Viewer GUI for Roblox Executors (Mobile + PC compatible)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer or Players:GetPlayers()[1]
if not player then return end
-- Build UI
local gui = Instance.new("ScreenGui")
gui.Name = "QuranViewer"
gui.ResetOnSpawn = false
-- Themes
local themes = {
Dark = {BG = Color3.fromRGB(30,30,40), T = Color3.fromRGB(40,40,60), B = Color3.fromRGB(60,60,90), X = Color3.new(1,1,1)},
Ocean = {BG = Color3.fromRGB(16,46,74), T = Color3.fromRGB(20,83,116), B = Color3.fromRGB(30,111,150), X = Color3.fromRGB(200,230,255)},
Light = {BG = Color3.fromRGB(240,240,240), T = Color3.fromRGB(220,220,220), B = Color3.fromRGB(200,200,200), X = Color3.new(0,0,0)},
Royal = {BG = Color3.fromRGB(48,25,52), T = Color3.fromRGB(75,0,130), B = Color3.fromRGB(128,0,255), X = Color3.fromRGB(255,230,255)},
Sunset = {BG = Color3.fromRGB(255,140,105), T = Color3.fromRGB(255,99,71), B = Color3.fromRGB(255,160,122), X = Color3.fromRGB(50,0,0)},
}
local themeKeys = {}
for k in pairs(themes) do table.insert(themeKeys, k) end
local themeIndex = 1
local theme = themes[themeKeys[themeIndex]]
-- Verses (40 Arabic/English pairs)
local verses = {
{"1. بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ", "1. In the name of Allah, the Most Gracious, the Most Merciful."},
{"2. ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ", "2. All praise is for Allah—Lord of all worlds."},
{"3. ٱلرَّحْمَٰنِ ٱلرَّحِيمِ", "3. The Most Compassionate, Most Merciful."},
{"4. مَٰلِكِ يَوْمِ ٱلدِّينِ", "4. Master of the Day of Judgment."},
{"5. إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ", "5. You alone we worship and You alone we ask for help."},
{"6. ٱهْدِنَا ٱلصِّرَٰطَ ٱلْمُسْتَقِيمَ", "6. Guide us along the Straight Path."},
{"7. صِرَٰطَ ٱلَّذِينَ أَنْعَمْتَ عَلَيْهِمْ", "7. The path of those You have blessed."},
{"8. غَيْرِ ٱلْمَغْضُوبِ عَلَيْهِمْ وَلَا ٱلضَّآلِّينَ", "8. Not those who are astray or incur wrath."},
{"9. فَإِنَّ مَعَ ٱلْعُسْرِ يُسْرًۭا", "9. Verily, with hardship comes ease."},
{"10. قُلْ هُوَ ٱللَّهُ أَحَدٌ", "10. Say, 'He is Allah, the One and Only.'"},
{"11. ٱللَّهُ ٱلصَّمَدُ", "11. Allah—the Eternal Refuge."},
{"12. لَمْ يَلِدْ وَلَمْ يُولَدْ", "12. He neither begets nor is born."},
{"13. وَلَمْ يَكُن لَّهُۥ كُفُوًا أَحَدٌۢ", "13. And there is none like unto Him."},
{"14. وَمَا تَوْفِيقِىٓ إِلَّا بِٱللَّهِ", "14. My success is only by Allah."},
{"15. إِنَّ ٱللَّهَ مَعَ ٱلصَّٰبِرِينَ", "15. Indeed, Allah is with the patient."},
{"16. لَا تَحْزَنْ إِنَّ ٱللَّهَ مَعَنَا", "16. Do not grieve; indeed, Allah is with us."},
{"17. ٱللَّهُ نُورُ ٱلسَّمَٰوَٰتِ وَٱلْأَرْضِ", "17. Allah is the Light of the heavens and the earth."},
{"18. وَأَقِمِ ٱلصَّلَوٰةَ", "18. And establish prayer."},
{"19. وَٱلْعَصْرِ", "19. By time."},
{"20. إِنَّ ٱلْإِنسَٰنَ لَفِى خُسْرٍ", "20. Verily, mankind is in loss."},
{"21. قَدْ أَفْلَحَ ٱلْمُؤْمِنُونَ", "21. Successful indeed are the believers."},
{"22. ٱلَّذِينَ هُمْ فِى صَلَاتِهِمْ خَـٰشِعُونَ", "22. Those who humble themselves in their prayers."},
{"23. وَٱلَّذِينَ هُمْ عَنِ ٱللَّغْوِ مُعْرِضُونَ", "23. And those who avoid idle talk."},
{"24. وَٱلَّذِينَ هُمْ لِلزَّكَوٰةِ فَـٰعِلُونَ", "24. And those who give the prescribed charity."},
{"25. وَٱلَّذِينَ هُمْ لِفُرُوجِهِمْ حَـٰفِظُونَ", "25. And those who guard their chastity."},
{"26. وَٱلَّذِينَ هُمْ لِأَمَـٰنَـٰتِهِمْ وَعَهْدِهِمْ رَٰعُونَ", "26. And those who are faithful to their trusts and covenants."},
{"27. وَٱلَّذِينَ هُمْ عَلَىٰ صَلَوَٰتِهِمْ يُحَافِظُونَ", "27. And those who guard their prayers."},
{"28. أُو۟لَـٰٓئِكَ هُمُ ٱلْوَٰرِثُونَ", "28. They will be the inheritors."},
{"29. ٱلَّذِينَ يَرِثُونَ ٱلْفِرْدَوْسَ", "29. Who will inherit Paradise."},
{"30. هُمْ فِيهَا خَـٰلِدُونَ", "30. They will remain there forever."},
{"31. وَقُل رَّبِّ ٱزِدْنِى عِلْمًۭا", "31. Say: 'My Lord, increase me in knowledge.'"},
{"32. وَإِنَّكَ لَعَلَىٰ خُلُقٍ عَظِيمٍۢ", "32. And indeed, you are of a great moral character."},
{"33. إِنَّ مَعَ ٱلْعُسْرِ يُسْرًۭا", "33. Indeed, with hardship comes ease."},
{"34. فَإِذَا فَرَغْتَ فَٱنصَبْ", "34. So when you have finished your duties, then stand up for worship."},
{"35. وَإِلَىٰ رَبِّكَ فَٱرْغَب", "35. And turn your desires to your Lord."},
{"36. إِنَّهُۥ كَانَ بِكُمْ رَحِيمًۭا", "36. Surely, He is ever Merciful to you."},
{"37. ٱللَّهُ لَا إِلَـٰهَ إِلَّا هُوَ", "37. Allah—there is no god but He."},
{"38. وَعِندَهُۥ عِلْمُ ٱلسَّاعَةِ", "38. With Him is knowledge of the Hour."},
{"39. وَيَقُولُ ٱلْكَافِرُ يَـٰلَيْتَنِى كُنتُ تُرَٰبًۭا", "39. The disbeliever will say, 'I wish I were dust!'"},
{"40. رَّبِّ ٱغْفِرْ لِى وَلِوَٰلِدَىَّ", "40. My Lord, forgive me and my parents."},
}
local idx = 1
local isArabic = false
-- Create Main Frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0.6, 0, 0.5, 0)
frame.Position = UDim2.new(0.2, 0, 0.25, 0)
frame.BackgroundColor3 = themes.Dark.BG
frame.Name = "MainFrame"
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 12)
-- Title Bar
local title = Instance.new("TextButton")
title.Size = UDim2.new(1, 0, 0.12, 0)
title.BackgroundColor3 = themes.Dark.T
title.Text = "📖 Quran Viewer"
title.Font = Enum.Font.GothamBold
title.TextSize = 22
title.TextColor3 = themes.Dark.X
title.Name = "Title"
title.Parent = frame
title.AutoButtonColor = false
Instance.new("UICorner", title).CornerRadius = UDim.new(0, 12)
-- Minimize Button
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0.08, 0, 1, 0)
toggleBtn.Position = UDim2.new(0.92, 0, 0, 0)
toggleBtn.Text = "–"
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 24
toggleBtn.BackgroundColor3 = themes.Dark.B
toggleBtn.TextColor3 = themes.Dark.X
toggleBtn.Parent = title
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)
-- Content Frame
local content = Instance.new("Frame")
content.Size = UDim2.new(1, 0, 0.88, 0)
content.Position = UDim2.new(0, 0, 0.12, 0)
content.BackgroundTransparency = 1
content.Name = "Content"
content.Parent = frame
-- Verse Label
local verse = Instance.new("TextLabel")
verse.Size = UDim2.new(1, -20, 0.6, -20)
verse.Position = UDim2.new(0, 10, 0, 10)
verse.BackgroundTransparency = 1
verse.TextWrapped = true
verse.Font = Enum.Font.GothamSemibold
verse.TextSize = 26
verse.TextColor3 = themes.Dark.X
verse.Text = verses[idx][2]
verse.Name = "Verse"
verse.Parent = content
-- Buttons creator
local function makeBtn(text, pos)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.22, 0, 0.13, 0)
btn.Position = pos
btn.Text = text
btn.Font = Enum.Font.Gotham
btn.TextSize = 20
btn.BackgroundColor3 = themes.Dark.B
btn.TextColor3 = themes.Dark.X
btn.Parent = content
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
return btn
end
local backBtn = makeBtn("← Back", UDim2.new(0.04, 0, 0.65, 0))
local nextBtn = makeBtn("Next →", UDim2.new(0.29, 0, 0.65, 0))
local copyBtn = makeBtn("📋 Copy", UDim2.new(0.54, 0, 0.65, 0))
local langBtn = makeBtn("🌐 العربية", UDim2.new(0.04, 0, 0.80, 0))
local themeBtn = makeBtn("🎨 Theme", UDim2.new(0.29, 0, 0.80, 0))
-- Update UI function
local function updateUI()
verse.Text = isArabic and verses[idx][1] or verses[idx][2]
end
-- Button functions
backBtn.MouseButton1Click:Connect(function()
if idx > 1 then
idx = idx - 1
updateUI()
end
end)
nextBtn.MouseButton1Click:Connect(function()
if idx < #verses then
idx = idx + 1
updateUI()
end
end)
copyBtn.MouseButton1Click:Connect(function()
pcall(function()
setclipboard(isArabic and verses[idx][1] or verses[idx][2])
end)
end)
langBtn.MouseButton1Click:Connect(function()
isArabic = not isArabic
langBtn.Text = isArabic and "🌐 English" or "🌐 العربية"
updateUI()
end)
themeBtn.MouseButton1Click:Connect(function()
themeIndex = themeIndex + 1
if themeIndex > #themeKeys then
themeIndex = 1
end
theme = themes[themeKeys[themeIndex]]
-- Update colors
frame.BackgroundColor3 = theme.BG
title.BackgroundColor3 = theme.T
title.TextColor3 = theme.X
toggleBtn.BackgroundColor3 = theme.B
toggleBtn.TextColor3 = theme.X
verse.TextColor3 = theme.X
for _, button in pairs(content:GetChildren()) do
if button:IsA("TextButton") then
button.BackgroundColor3 = theme.B
button.TextColor3 = theme.X
end
end
end)
-- Dragging function (free drag anywhere)
local function makeDraggable(frameToDrag, dragHandle)
local dragging = false
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
local newPos = UDim2.new(
math.clamp(startPos.X.Scale, 0, 1),
math.clamp(startPos.X.Offset + delta.X, 0, workspace.CurrentCamera.ViewportSize.X - frameToDrag.AbsoluteSize.X),
math.clamp(startPos.Y.Scale, 0, 1),
math.clamp(startPos.Y.Offset + delta.Y, 0, workspace.CurrentCamera.ViewportSize.Y - frameToDrag.AbsoluteSize.Y)
)
frameToDrag.Position = newPos
end
dragHandle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frameToDrag.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)
end
makeDraggable(frame, title)
-- Tiny button for minimized state
local tinyBtn = Instance.new("TextButton")
tinyBtn.Size = UDim2.new(0, 100, 0, 40)
tinyBtn.Position = UDim2.new(0.05, 0, 0.05, 0)
tinyBtn.Text = "Quran"
tinyBtn.Font = Enum.Font.GothamBold
tinyBtn.TextSize = 22
tinyBtn.BackgroundColor3 = theme.B
tinyBtn.TextColor3 = theme.X
tinyBtn.Visible = false
tinyBtn.Name = "TinyQuranButton"
tinyBtn.Parent = gui
Instance.new("UICorner", tinyBtn).CornerRadius = UDim.new(0, 8)
makeDraggable(tinyBtn, tinyBtn)
-- Toggle minimize/open logic
local minimized = false
toggleBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
-- Hide main frame, show tiny button
frame.Visible = false
tinyBtn.Visible = true
else
-- Show main frame, hide tiny button
frame.Visible = true
tinyBtn.Visible = false
end
end)
-- Open main frame when tiny button clicked
tinyBtn.MouseButton1Click:Connect(function()
minimized = false
frame.Visible = true
tinyBtn.Visible = false
end)
-- Parent GUI
pcall(function()
gui.Parent = player:WaitForChild("PlayerGui")
end)
updateUI()



I know you might want to spread islam, but this is NOT the way to do this
Is really good for muslim 👍 good script
Brother, I thank you for your effort, but this may include forbidden matters.☺️
loll
:skull: