Quran Script
Key RequiredUniversal

Quran Script

Universal Scriptrobingdabankforfunrobingdabankforfun 2.1K views 70 executesUpdated Jul 16, 2025
5.0/ 5(3 votes)
30100% Positive
Lua Script•291 lines (10768 chars)
-- 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()

Features & Information

Quran it has 40 verses keyless color themes u can copy back and next minimize and open

Community Comments (5)

dmadnoayddmadnoaydJul 16, 2025

I know you might want to spread islam, but this is NOT the way to do this

NegaBoyNegaBoyJul 16, 2025

Is really good for muslim 👍 good script

1w691w69Jul 16, 2025

Brother, I thank you for your effort, but this may include forbidden matters.☺️

bibi9go31bibi9go31Jul 16, 2025

loll

YilmazYilmazJul 16, 2025

:skull:

More Scripts for Universal Scripts