We are going to share the Oaklands Script Roblox with you in this post, and we are giving you two options: first, a copy, and second, a direct download link. If you need this script, continue reading once you download and copy it.
Welcome to the vibrant world of Roblox programming, where the possibilities are endless. Explore the inventive Oaklands Script, a testimony to talent, and set out on a trip. This script adds engaging elements and mechanisms to your Roblox game, giving virtual environments life. In the introduction that follows, we explore Oaklands Script’s core ideas and show how it has the ability to reinvent immersive gaming for both players and creators.

| Script Name | Oaklands Script Roblox |
| Use Options | Copy & Download |
| Update Date | 20.08.2023 |
Click To Copy
--> Macros
if not LPH_OBFUSCATED then
LPH_JIT_MAX = function(...)
return ...
end
end
--> Variables
local Services =
setmetatable(
{},
{
__index = function(self, index)
return game:GetService(index)
end
}
)
local KiriotESP = loadstring(game:HttpGet("https://kiriot22.com/releases/ESP.lua"))
local Version = "v1.2.1"
local Title = "oaklands - sunken " .. Version
local ReplicatedFirst = Services.ReplicatedFirst
local Client = require(ReplicatedFirst.Client)
local GameShared = require(ReplicatedFirst.Client.Interface.Shared)
local Modules = rawget(GameShared, "Modules")
local Changelog = require(Modules.Changelog)
local GetVersion = function()
local count = 0
local v6 = nil
for i, v in next, Changelog.versions do
if v.Id > count then
count = v.Id
v6 = i
end
end
return "v" .. v6
end
local Outdated = GetVersion():gsub("%p+", "") > Version:gsub("%p+", "") and ("bad") or ("good")
local Players = Services.Players
local Player = Players.LocalPlayer
local Character = Player.Character
local module = require(game.ReplicatedFirst.Client)
local tutorial = module.ActiveModules.Tutorial
local invTable = nil
local Colours = {
Magnetite = BrickColor.new("Bright violet"),
["Rosa Quartz"] = BrickColor.new("Carnation pink"),
Mythril = BrickColor.new("Med. bluish green"),
Gold = BrickColor.new("Br. yellowish orange"),
Iron = BrickColor.new("Dark grey"),
Pyrite = BrickColor.new("Flame yellowish orange"),
Quartz = BrickColor.new("Institutional white"),
Tin = BrickColor.new("Light stone grey"),
Copper = BrickColor.new("Flame reddish orange")
}
local Areas = {
["Oak Depot"] = Vector3.new(736, 82, 1677),
["Oak Depot Sell"] = Vector3.new(702, 83, 1790),
["Lighthouse"] = Vector3.new(1067, 118, 1958),
["Dock"] = Vector3.new(945, 79, 1509),
["Island"] = Vector3.new(945, 76, 1233),
["Crossway"] = Vector3.new(71, 107, 1465),
["Junkyard"] = Vector3.new(-550, 133, 2010),
["Mountains"] = Vector3.new(-1759, 419, 865),
["Abandoned Shelter"] = Vector3.new(-1819, 330, 561),
["Beach Hut"] = Vector3.new(-3591, 113, 163),
["Lake"] = Vector3.new(-3069, 132, 455)
}
local function Init()
do
for i, v in next, getconnections(game:GetService("LogService").MessageOut) do
v:Disable()
shared.FoundMessageOutLogger = true
end
for i, v in next, getconnections(game:GetService("ScriptContext").Error) do
v:Disable()
shared.FoundErrorLogger = true
end
if shared.FoundMessageOutLogger then
local old
old =
hookfunction(
print,
newcclosure(
function(...)
return old(("[SW] Debug: %s:%s:%s > "):format(os.date("%H"), os.date("%M"), os.date("%S")), ...)
end
)
)
print("Debugging Below")
for i, v in next, shared do
print(i, v)
end
end
end
end
local function CheckProcess()
local Success, Output = pcall(Init)
if not Success then
if type(messagebox) == "function" then
writefile("Oaklands/ErrorLogs/" .. os.time(), Output)
local Answer =
messagebox(
string.format(
"Something has gone wrong when bypassing anti-cheat\n\nThis may put you at risk\n\nError has been written to executor path: workspace/Oaklands/ErrorLogs/%s",
os.time()
),
"sunken anti cheat bypassing",
1570
)
if Answer == 3 then
game:Shutdown()
elseif Answer == 4 then
CheckProcess()
elseif Answer == 5 then
shared.LoadScript = true
end
else
game:Shutdown()
end
else
shared.LoadScript = true
end
end
CheckProcess()
repeat
task.wait()
until shared.LoadScript == true
print("Loading Main Script")
if Outdated == "bad" then
local Answer =
messagebox(
"The script is currently outdated, this may put you at risk, would you like to continue?",
"sunken version checker",
4
)
if Answer == 7 then
game:Shutdown()
end
end
if not (Services.StarterGui:GetCoreGuiEnabled("PlayerList")) then
local Text = Drawing.new("Text")
Text.Position =
Vector2.new(
(workspace.CurrentCamera.ViewportSize.X / 2) - 125,
workspace.CurrentCamera.ViewportSize.Y / 2 - (Services.GuiService:GetGuiInset().Y / 2)
)
Text.Text = "Waiting for you to have a plot"
Text.Outline = true
Text.Font = 1
Text.Size = 28
Text.Color = Color3.fromRGB(255, 255, 255)
Text.OutlineColor = Color3.fromHSV(tick() % 3 / 3, 1, 1)
Text.Visible = true
print(Text.Text)
repeat
task.wait()
Text.Position =
Vector2.new(
(workspace.CurrentCamera.ViewportSize.X / 2) - 125,
workspace.CurrentCamera.ViewportSize.Y / 2 - (Services.GuiService:GetGuiInset().Y / 2)
)
Text.OutlineColor = Color3.fromHSV(tick() % 3 / 3, 1, 1)
until Services.StarterGui:GetCoreGuiEnabled("PlayerList")
Text.Text = "Loading"
task.wait(0.5)
Text:Remove()
end
local function closestTree()
return (tutorial:ClosestModel(tutorial.Player.Character:GetPivot().Position, tutorial:GetTreesInRadius()))
end
--> Minified Functions ( Neater Looking Code )
local function Teleport(Pos)
if Player.Character.Humanoid.Sit == true then
Pos = Pos + Vector3.new(0, 40, 0)
end
Player.Character:PivotTo(typeof(Pos) == "CFrame" and Pos or CFrame.new(Pos))
end
local Hooks = {}
do
function Hooks.HookingLighting()
if shared.HookedLighting == true then
return
end
shared.HookedLighting = true
local old
old =
hookmetamethod(
game,
"__newindex",
newcclosure(
function(self, index, value)
if tostring(self) == "Lighting" and shared.FullBright then
if index == "ClockTime" then
value = 12
end
end
return old(self, index, value)
end
)
)
end
function Hooks.HookingHumanoid()
if shared.HookedHumanoid == true then
return
end
shared.HookedHumanoid = true
local old
old =
hookmetamethod(
game,
"__index",
newcclosure(
function(self, index)
if tostring(self) == "WalkSpeed" or tostring(self) == "JumpPower" then
return tostring(self) == "WalkSpeed" and 16 or 50
end
return old(self, index)
end
)
)
end
end
print("Loading Hooks")
for i, v in next, Hooks do
local Success, Output = pcall(v)
print("Hooked ", i, Success)
end
local Util = {}
print("Loading Util")
do
function Util.GetVehicle()
for i, v in next, game:GetService("Workspace").World.Structures:GetChildren() do
if v.Name:find("VehiclePad") then
local Owner = v:FindFirstChild("Owner")
if Owner and Owner.Value == Player then
local Vehicle = v:FindFirstChild("RiggedVehicle")
if Vehicle then
return Vehicle
end
end
end
end
end
function Util.ModVehicleSpeed(Speed)
local Vehicle = Util.GetVehicle()
local VFramework = Vehicle:FindFirstChild("Framework")
if VFramework then
local Seats = VFramework:FindFirstChild("Seats")
if Seats then
local DriverSeat = Seats:FindFirstChild("VehicleSeat")
if DriverSeat then
DriverSeat.MaxSpeed = Speed
end
end
end
end
function Util.CleanVehicle()
local Vehicle = Util.GetVehicle()
if Vehicle then
for i, v in next, Vehicle:GetDescendants() do
if v:IsA("BasePart") then
if v.Material == Enum.Material.CorrodedMetal then
v.Material = Enum.Material.SmoothPlastic
end
end
end
end
end
function Util.ColourVehicle(Colour)
local Vehicle = Util.GetVehicle()
if Vehicle then
local Wheels = Vehicle:FindFirstChild("Wheels")
local Headlights = Vehicle:FindFirstChild("Framework"):FindFirstChild("Headlights")
for i, v in next, Vehicle:GetDescendants() do
if v:IsA("BasePart") and not v:IsDescendantOf(Wheels) and not v:IsDescendantOf(Headlights) then
v.Color = Colour
end
end
end
end
function Util.GetIndexFromValue(self, value)
for i, v in next, self do
if v == value then
return i
end
end
end
function Util.GetPlot()
for i, v in next, game:GetService("Workspace").World.Property:GetChildren() do
local Owner = v:FindFirstChild("Owner")
if Owner then
if Owner.Value == game:GetService("Players").LocalPlayer then
return v
end
end
end
end
function Util.GetClosestTree()
local tree, dist = nil, math.huge
for i, v in next, game:GetService("Workspace").World.TreeRegions.Island:GetChildren() do
if v:IsA("Model") then
if v:FindFirstChild("HeptagonPart") then
local mag = game.Players.LocalPlayer:DistanceFromCharacter(v:GetPivot().Position)
if mag < dist then
dist = mag
tree = v
end
end
end
end
return tree
end
function Util.GetOwnedTrees()
local trees = {}
for i, v in next, game:GetService("Workspace").World.LooseItems:GetChildren() do
if
v:FindFirstChild("Owner") and tostring(v.Owner.Value) == game.Players.LocalPlayer.Name and
v.Name == "Tree"
then
if v:FindFirstChildWhichIsA("BasePart") then
table.insert(trees, v)
end
end
end
return trees
end
function Util.GetOwnedOres()
local ores = {}
for i, v in next, game:GetService("Workspace").World.LooseItems:GetChildren() do
if
v:FindFirstChild("Owner") and tostring(v.Owner.Value) == game.Players.LocalPlayer.Name and
v.Name == "Rock"
then
if v:FindFirstChildWhichIsA("BasePart") then
table.insert(ores, v)
end
end
end
return ores
end
function Util.GetLowestTreePart(parts)
local foot = Character.RightFoot.Position
local closest, dist = nil, math.huge
for i, v in next, parts do
if not v:IsA("BasePart") then
continue
end
local mag = (foot - v.Position).Magnitude
if mag < dist then
dist = mag
closest = v
end
end
return closest
end
function Util.GetClosestLog()
local log, dist = nil, math.huge
for i, v in next, Util.GetOwnedTrees() do
local mag = Player:DistanceFromCharacter(v:GetPivot().Position)
if mag < dist then
dist = mag
log = v
end
end
return log
end
function Util.KeyPress(keyCode, time)
Services.VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
task.wait(time)
Services.VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end
function Util.GetPlayerByName(Name)
for i, v in next, Players:GetPlayers() do
if v ~= Player then
if v.Name:lower():find(Name:lower()) or v.DisplayName:lower():find(Name:lower()) then
return v
end
end
end
end
function Util.TeleportToPlayer(Player)
Teleport(Player.Character and Player.Character:GetPivot())
end
function Util.GetOres()
local ores = {}
for i, v in next, Services.Workspace.World.RockRegions.Island:GetChildren() do
if v:GetAttribute("Mineable") == true then
table.insert(ores, v)
end
end
return ores
end
function Util.GetClosestOre()
local ores = Util.GetOres()
local ore, dist = nil, math.huge
for i, v in next, ores do
local mag = Player:DistanceFromCharacter(v:GetPivot().Position)
if mag < dist then
dist = mag
ore = v
end
end
return ore
end
function Util.GetPlayersPlot(Name)
for i, v in next, Services.Workspace.World.Property:GetDescendants() do
if v.Name == "Owner" and v.Parent.Parent.Name == "Property" then
local plotOwner = tostring(v.Value)
if plotOwner:lower():find(Name:lower()) then
return v.Parent:FindFirstChild("MainRegion")
end
end
end
end
end
local Actions = {}
print("Loading Action")
do
function Actions.GoToLog()
local log = Util.GetClosestLog()
Teleport(log:GetPivot())
end
function Actions.GoToOre()
local ores = Util.GetOwnedOres()
local ore, dist = nil, math.huge
for i, v in next, ores do
local primary = v:FindFirstChildWhichIsA("BasePart")
local mag = Player:DistanceFromCharacter(primary.Position)
if mag < dist then
dist = mag
ore = v
end
end
Teleport(ore:GetPivot())
end
function Actions.BringLogs()
local trees = Util.GetOwnedTrees()
for i, v in next, trees do
Teleport(Character:GetPivot() + Vector3.new(15, 10, 5))
end
end
function Actions.GoToPlot()
local Plot = Util.GetPlot()
local Main = Plot:FindFirstChild("MainRegion")
local Offset = Vector3.new(0, 15, 0)
Teleport(Main:GetPivot() + Offset)
end
function Actions.GoToSell()
local Offset = Vector3.new(0, 15, 0)
Teleport(CFrame.new(-535, 135, 1920) + Offset)
end
function Actions.GoToMap()
local Offset = Vector3.new(0, 15, 0)
Teleport(Services.Workspace.World.SpawnLocation:GetPivot() + Offset)
end
function Actions.InfiniteStamina()
rawset(Client:RequestModule("Stamina"), "CurrentStamina", 9e9)
end
function Actions.BypassBlacklists()
for i, v in next, Services.Workspace.World.Property:GetDescendants() do
if v:IsA("Part") then
if Color3.fromRGB(255, 64, 64) == v.Color then
v:Destroy()
end
end
end
end
end
print("Loading ESP")
KiriotESP = KiriotESP()
KiriotESP.Color = Color3.fromRGB(170, 0, 248)
local Functions = {}
function Functions.BreakTree()
if invTable == nil then
for _, v in next, getgc(true) do
if type(v) == "table" and rawget(v, "Inventory") then
invTable = v
break
end
end
end
if invTable then
local tree = closestTree()
local Inventory = rawget(invTable, "Inventory")
if tree and Inventory then
Inventory:InformServer("SwingStartAttempt", {})
task.wait(.5)
local args = {}
local lowestPart = nil
local lowestY = math.huge
for _, v in next, tree:GetDescendants() do
if v:IsA("MeshPart") and v.Position.Y < lowestY then
lowestPart = v
lowestY = v.Position.Y
end
end
args.HitPart = lowestPart
args.HitPosition = lowestPart.Position
Inventory:InformServer("AttemptChop", args)
end
end
end
function Functions.BreakLog()
if invTable == nil then
for _, v in next, getgc(true) do
if type(v) == "table" and rawget(v, "Inventory") then
invTable = v
break
end
end
end
if invTable then
local tree = Util.GetClosestLog()
local Inventory = rawget(invTable, "Inventory")
if tree and Inventory then
Inventory:InformServer("SwingStartAttempt", {})
task.wait(.5)
local args = {}
local lowestPart = Util.GetLowestTreePart(tree:GetChildren())
args.HitPart = lowestPart
args.HitPosition = lowestPart.Position
Inventory:InformServer("AttemptChop", args)
end
end
end
function Functions.BreakOre()
if invTable == nil then
for _, v in next, getgc(true) do
if type(v) == "table" and rawget(v, "Inventory") then
invTable = v
break
end
end
end
if invTable then
local ore = Util.GetClosestOre()
local Inventory = rawget(invTable, "Inventory")
if ore and Inventory then
Inventory:InformServer("SwingStartAttempt", {})
task.wait(.5)
local args = {}
local lowestPart = Util.GetLowestTreePart(ore:GetChildren())
args.HitPart = lowestPart
args.HitPosition = lowestPart.Position
Inventory:InformServer("AttemptMine", args)
end
end
end
print("Loading Functions")
local library =
loadstring(game:HttpGet("https://raw.githubusercontent.com/vozoid/ui-libraries/main/drawing/void/source.lua"))()
print("Loading User Interface")
local main =
library:Load {
Name = Title .. " | script status: " .. Outdated,
SizeX = 550,
SizeY = 600,
Theme = "Midnight",
Extension = "oaktree",
Folder = "oaklands"
}
task.spawn(
function()
while task.wait(0.001) do
library:ChangeThemeOption("Accent", Color3.fromHSV(tick() % 3 / 3, 1, 1))
end
end
)
local home = main:Tab("home")
local changelogs =
home:Section {
Name = "changelogs",
Side = "Left"
}
changelogs:Label(
[[
re-wrote esp
lags when turn on but dont lag after
blame luraph!! omg!! Lurpah!
use configs to get around this ^
rainbow epic gamer mode
]]
)
changelogs:Label("")
changelogs:Label("")
changelogs:Label("")
local tab = main:Tab("main")
local trees =
tab:Section {
Name = "trees",
Side = "Left"
}
local rocks =
tab:Section {
Name = "ores",
Side = "Left"
}
local misc =
tab:Section {
Name = "misc",
Side = "Left"
}
local teleports =
tab:Section {
Name = "teleports",
Side = "Right"
}
local player =
tab:Section {
Name = "player",
Side = "Right"
}
local vehicle =
tab:Section {
Name = "vehicle",
Side = "Left"
}
trees:Toggle {
Name = "tree aura",
Flag = "tree aura",
Callback = function(bool)
shared.tree_aura = bool
while shared.tree_aura do
if not shared.tree_aura then
break
end
Functions.BreakTree()
task.wait(0.05)
end
end
}
trees:Toggle {
Name = "log aura",
Flag = "log aura",
Callback = function(bool)
shared.log_aura = bool
while shared.log_aura do
if not shared.log_aura then
break
end
Functions.BreakLog()
task.wait(0.05)
end
end
}
rocks:Toggle {
Name = "ore aura",
Flag = "ore aura",
Callback = function(bool)
shared.ore_aura = bool
while shared.ore_aura do
if not shared.ore_aura then
break
end
Functions.BreakOre()
task.wait(0.05)
end
end
}
misc:Toggle {
Name = "full bright",
Flag = "full bright",
Callback = function(x)
shared.FullBright = x
end
}
misc:Toggle {
Name = "sprint",
Flag = "sprint",
Callback = function(x)
Util.KeyPress("LeftShift", x == true and 9e9 or 0)
end
}
misc:Toggle {
Name = "ctrl + click to tp",
Flag = "click to tp",
Callback = function()
end
}
for i, v in pairs(Areas) do
teleports:Button {
Name = i:lower(),
Callback = function()
Teleport(CFrame.new(v))
end
}
end
teleports:Button {
Name = "plot",
Callback = function()
Teleport(Util.GetPlot():FindFirstChild("MainRegion"):GetPivot())
end
}
teleports:Button {
Name = "nearest owned log",
Callback = function()
Actions.GoToLog()
end
}
teleports:Button {
Name = "nearest owned ore",
Callback = function()
Actions.GoToOre()
end
}
player:Slider {
Name = "walkspeed",
Flag = "walkspeed",
Text = "[value]/24",
Default = 16,
Min = 16,
Max = 24,
Float = 1,
Callback = function(value)
end
}
vehicle:Button {
Name = "clean car",
Callback = Util.CleanVehicle
}
vehicle:Slider {
Name = "max speed",
Flag = "max speed",
Text = "[value]/250",
Default = 50,
Min = 50,
Max = 250,
Float = 1,
Callback = function(value)
end
}
vehicle:Button {
Name = "assign vehicle speed",
Callback = function()
Util.ModVehicleSpeed(library.flags["max speed"])
end
}
vehicle:ColorPicker {
Name = "vehicle colour",
Default = Color3.fromRGB(255, 255, 255),
Flag = "vehicle colour",
Callback = function(color)
end
}
vehicle:Button {
Name = "assign vehicle colour",
Callback = function()
Util.ColourVehicle(library.flags["vehicle colour"])
end
}
vehicle:Box {
Name = "license plate text",
Placeholder = "Soggyware",
Flag = "license_plate_text",
Callback = function(text)
end
}
vehicle:Button {
Name = "assign license plate",
Callback = function()
local Vehicle = Util.GetVehicle()
if Vehicle then
local Framework = Vehicle:FindFirstChild("Framework")
if Framework then
local License = Framework:FindFirstChild("LicensePlate")
if License then
local Container = License:FindFirstChild("SurfaceGui")
if Container then
local LICENSE = Container:FindFirstChild("LICENSE")
LICENSE.Text = library.flags.license_plate_text
for i, v in next, Container:GetChildren() do
if v.Name == "TextLabel" then
if v.Text == "OAKLANDS" or v.Text == "On Top" then
v.Text = "On Top"
else
v.Text = "Soggyware"
end
end
end
end
end
end
end
end
}
local esptab = main:Tab("esp")
local esps =
esptab:Section {
Name = "esp",
Side = "Left"
}
local oreespopts =
esptab:Section {
Name = "ore esp options",
Side = "Right"
}
esps:Toggle {
Name = "toggle",
Flag = "toggle",
Callback = function(x)
KiriotESP:Toggle(x)
end
}
esps:Toggle {
Name = "boxes",
Flag = "boxes",
Callback = function(x)
KiriotESP.Boxes = (x)
end
}
esps:Toggle {
Name = "names",
Flag = "names",
Callback = function(x)
KiriotESP.Names = (x)
end
}
esps:Toggle {
Name = "players",
Flag = "players",
Callback = function(x)
KiriotESP.Players = (x)
end
}
esps:Toggle {
Name = "ores",
Flag = "ores",
Callback = function(x)
KiriotESP.Ores = (x)
end
}
local InsertedOres = {}
local function UpdateESP(v, x, name)
LPH_JIT_MAX(
function()
if v:IsA("Model") and x == "Add" then
for i2, v2 in next, v:GetDescendants() do
if v2:IsA("BasePart") then
if v2.Name ~= "Section" then
if v:GetAttribute("Mineable") then
local NewName = Util.GetIndexFromValue(Colours, v2.BrickColor)
if NewName ~= nil then
if not table.find(InsertedOres, v) then
if library.flags[NewName] == true then
table.insert(InsertedOres, v)
KiriotESP:Add(
v2,
{
Name = NewName or "Unknown Ore",
IsEnabled = "Ores",
Color = v2.Color
}
)
elseif library.flags[NewName] == false then
local idx = table.find(InsertedOres, v)
table.remove(InsertedOres, idx)
if KiriotESP.Objects then
local NewName = Util.GetIndexFromValue(Colours, v2.BrickColor)
if NewName ~= nil then
for i3, v3 in next, KiriotESP.Objects do
if v3.Name == NewName then
v3:Remove()
end
end
end
end
end
end
end
end
end
end
end
elseif x == "Remove" and v:IsA("Model") then
for i2, v2 in next, v:GetDescendants() do
if v2:IsA("BasePart") then
if v2.Name ~= "Section" then
if v:GetAttribute("Mineable") then
local idx = table.find(InsertedOres, v)
table.remove(InsertedOres, idx)
if KiriotESP.Objects then
if name ~= nil then
for i3, v3 in next, KiriotESP.Objects do
if v3.Name == name then
v3:Remove()
end
end
end
end
end
end
end
end
end
end
)()
end
local function ForceUpdateESP(x, name)
for i, v in next, game:GetService("Workspace").World.RockRegions:GetDescendants() do
LPH_JIT_MAX(
function()
UpdateESP(v, x == true and "Add" or "Remove", name)
end
)()
end
end
game:GetService("Workspace").World.RockRegions.DescendantAdded:Connect(
LPH_JIT_MAX(
function(v)
UpdateESP(v, "Add")
end
)
)
game:GetService("Workspace").World.RockRegions.DescendantRemoving:Connect(
LPH_JIT_MAX(
function(v)
UpdateESP(v, "Remove")
end
)
)
for i, v in next, Colours do
oreespopts:Toggle {
Name = i:lower(),
Flag = i,
Callback = function(x)
LPH_JIT_MAX(
function()
ForceUpdateESP(x, i)
end
)()
end
}
end
task.spawn(
function()
while task.wait(0.1) do
Character.Humanoid.WalkSpeed = library.flags.walkspeed
end
end
)
game:GetService("UserInputService").InputBegan:Connect(
function(x)
pcall(
function()
Character = Player.Character
end
)
if
x.UserInputType == Enum.UserInputType.MouseButton1 and library.flags["click to tp"] and
game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.LeftControl)
then
local pos = Player:GetMouse().Hit
Teleport(pos)
end
end
)
local configs = main:Tab("configuration")
local themes = configs:Section {Name = "Theme", Side = "Left"}
local themepickers = {}
local themelist =
themes:Dropdown {
Name = "Theme",
Default = library.currenttheme,
Content = library:GetThemes(),
Flag = "Theme Dropdown",
Callback = function(option)
if option then
library:SetTheme(option:lower())
for option, picker in next, themepickers do
picker:Set(library.theme[option])
end
end
end
}
library:ConfigIgnore("Theme Dropdown")
local namebox = themes:Box {Name = "Custom Theme Name", Placeholder = "Custom Theme", Flag = "Custom Theme"}
library:ConfigIgnore("Custom Theme")
themes:Button {Name = "Save Custom Theme", Callback = function()
if library:SaveCustomTheme(library.flags["Custom Theme"]) then
themelist:Refresh(library:GetThemes())
themelist:Set(library.flags["Custom Theme"])
namebox:Set("")
end
end}
local customtheme = configs:Section {Name = "Custom Theme", Side = "Right"}
themepickers["Accent"] =
customtheme:ColorPicker {
Name = "Accent",
Default = library.theme["Accent"],
Flag = "Accent",
Callback = function(color)
library:ChangeThemeOption("Accent", color)
end
}
library:ConfigIgnore("Accent")
themepickers["Window Background"] =
customtheme:ColorPicker {
Name = "Window Background",
Default = library.theme["Window Background"],
Flag = "Window Background",
Callback = function(color)
library:ChangeThemeOption("Window Background", color)
end
}
library:ConfigIgnore("Window Background")
themepickers["Window Border"] =
customtheme:ColorPicker {
Name = "Window Border",
Default = library.theme["Window Border"],
Flag = "Window Border",
Callback = function(color)
library:ChangeThemeOption("Window Border", color)
end
}
library:ConfigIgnore("Window Border")
themepickers["Tab Background"] =
customtheme:ColorPicker {
Name = "Tab Background",
Default = library.theme["Tab Background"],
Flag = "Tab Background",
Callback = function(color)
library:ChangeThemeOption("Tab Background", color)
end
}
library:ConfigIgnore("Tab Background")
themepickers["Tab Border"] =
customtheme:ColorPicker {
Name = "Tab Border",
Default = library.theme["Tab Border"],
Flag = "Tab Border",
Callback = function(color)
library:ChangeThemeOption("Tab Border", color)
end
}
library:ConfigIgnore("Tab Border")
themepickers["Tab Toggle Background"] =
customtheme:ColorPicker {
Name = "Tab Toggle Background",
Default = library.theme["Tab Toggle Background"],
Flag = "Tab Toggle Background",
Callback = function(color)
library:ChangeThemeOption("Tab Toggle Background", color)
end
}
library:ConfigIgnore("Tab Toggle Background")
themepickers["Section Background"] =
customtheme:ColorPicker {
Name = "Section Background",
Default = library.theme["Section Background"],
Flag = "Section Background",
Callback = function(color)
library:ChangeThemeOption("Section Background", color)
end
}
library:ConfigIgnore("Section Background")
themepickers["Section Border"] =
customtheme:ColorPicker {
Name = "Section Border",
Default = library.theme["Section Border"],
Flag = "Section Border",
Callback = function(color)
library:ChangeThemeOption("Section Border", color)
end
}
library:ConfigIgnore("Section Border")
themepickers["Text"] =
customtheme:ColorPicker {Name = "Text", Default = library.theme["Text"], Flag = "Text", Callback = function(color)
library:ChangeThemeOption("Text", color)
end}
library:ConfigIgnore("Text")
themepickers["Disabled Text"] =
customtheme:ColorPicker {
Name = "Disabled Text",
Default = library.theme["Disabled Text"],
Flag = "Disabled Text",
Callback = function(color)
library:ChangeThemeOption("Disabled Text", color)
end
}
library:ConfigIgnore("Disabled Text")
themepickers["Object Background"] =
customtheme:ColorPicker {
Name = "Object Background",
Default = library.theme["Object Background"],
Flag = "Object Background",
Callback = function(color)
library:ChangeThemeOption("Object Background", color)
end
}
library:ConfigIgnore("Object Background")
themepickers["Object Border"] =
customtheme:ColorPicker {
Name = "Object Border",
Default = library.theme["Object Border"],
Flag = "Object Border",
Callback = function(color)
library:ChangeThemeOption("Object Border", color)
end
}
library:ConfigIgnore("Object Border")
themepickers["Dropdown Option Background"] =
customtheme:ColorPicker {
Name = "Dropdown Option Background",
Default = library.theme["Dropdown Option Background"],
Flag = "Dropdown Option Background",
Callback = function(color)
library:ChangeThemeOption("Dropdown Option Background", color)
end
}
library:ConfigIgnore("Dropdown Option Background")
local configsection = configs:Section {Name = "Configs", Side = "Left"}
local configlist = configsection:Dropdown {Name = "Configs", Content = library:GetConfigs(), Flag = "Config Dropdown"}
library:ConfigIgnore("Config Dropdown")
local loadconfig = configsection:Button {Name = "Load Config", Callback = function()
library:LoadConfig(library.flags["Config Dropdown"])
end}
local delconfig = configsection:Button {Name = "Delete Config", Callback = function()
library:DeleteConfig(library.flags["Config Dropdown"])
end}
local configbox = configsection:Box {Name = "Config Name", Placeholder = "Config Name", Flag = "Config Name"}
library:ConfigIgnore("Config Name")
local save = configsection:Button {Name = "Save Config", Callback = function()
library:SaveConfig(library.flags["Config Name"])
configlist:Refresh(library:GetConfigs())
end}
local infotab = main:Tab("information")
local infotab = infotab:Section {Name = "information", Side = "Left"}
infotab:Label("Game Version " .. GetVersion())
infotab:Label("Script Version " .. Version)
print("Loaded Script")
Here’s a step-by-step guide to using the Oaklands Script Roblox from Pastebin:
- Click on the “COPY” button to automatically copy the script.
- Paste the copied script into your script application.
- Run the script and you’re all set.
These simple instructions allow players to quickly and easily utilize the script to enhance their Oaklands Script Roblox gaming experience.
If you are unable to copy or you do not want to use this script now, then you can download this script, click on the download button below to download.
What is the Oaklands Script Roblox?
The Roblox Oaklands Script is a revolutionary piece of programming created to improve gaming. It adds a variety of dynamic dynamics, interactive components, and immersive features to their Roblox games and is specifically designed for developers. This script gives developers the tools they need to create complex stories, fascinating challenges, and captivating settings in the Roblox virtual world. Developers may take their games to new heights and provide gamers an amazing experience by utilizing the Oaklands Script.
The Role of Oaklands Script Roblox in Gaming?
Roblox’s Oaklands Script, a flexible toolbox for developers, changes gameplay. It gives them the ability to incorporate dynamic gaming processes, engaging storyline, and realistic settings into their works. With the help of this script, it will be possible to create interesting missions, interesting questions, and realistic simulations that will increase user involvement. The Oaklands Script transforms Roblox games into imaginative worlds where imagination abounds, allowing creators to create one-of-a-kind, enduring, and custom gaming experiences for a wide audience.
Relative You tube Video
Disclaimer
Thebloxscript.com is a fan site and is not associated with, promoted by, or authorized by Roblox Scripts, or any other business or brand. This website was made with education in mind. We do not endorse or support any form of illicit software, software piracy, etc.
Contact Us: [email protected]
Conclusion
The Oaklands Script stands out as a unique trigger on the vast Roblox canvas. It gives developers the freedom to create engaging gameplay that connects with gamers beyond traditional bounds. This script heralds a new era in which inventiveness and inspiration mix to produce engrossing stories, engaging puzzles, and dynamic environments. The Oaklands Script is the starting point for creating amazing gaming moments that last after the virtual journey is over.