local repo = 'https://raw.githubusercontent.
com/violin-suzutsuki/LinoriaLib/main/'
local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))()
local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))()
local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))()
local Window = Library:CreateWindow({
Title = 'My Custom Menu',
Center = true,
AutoShow = true,
})
-- Add Tabs
local Tabs = {
Main = Window:AddTab('Main'),
Trolling = Window:AddTab('Trolling'), -- New Trolling tab
UI_Settings = Window:AddTab('UI Settings'),
}
local LeftGroupBox = Tabs.Main:AddLeftGroupbox('Game Settings')
local TeleportGroupBox = Tabs.Main:AddRightGroupbox('Teleport to Grass Objects') --
Changed to AddRightGroupbox
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local pathPoints = {}
local lineParts = {}
local workspace = game:GetService("Workspace")
local grassObjects = workspace:WaitForChild("GrassObjects")
-- ESP Variables
local espEnabled = false
local espBoxes = {}
-- Function to Create ESP for a player
local function createESP(player)
local box = Instance.new("BoxHandleAdornment")
box.Size = Vector3.new(2, 5, 1) -- Adjust size for a user-friendly experience
box.Color3 = Color3.new(1, 0, 0) -- Red color
box.Transparency = 0.5
box.Adornee = player.Character and
player.Character:FindFirstChild("HumanoidRootPart")
box.ZIndex = 10
box.AlwaysOnTop = true
box.Parent = workspace
espBoxes[player.Name] = box
end
-- Function to Remove ESP for a player
local function removeESP(player)
if espBoxes[player.Name] then
espBoxes[player.Name]:Destroy()
espBoxes[player.Name] = nil
end
end
-- Function to Update ESP for all players
local function updateESP()
if espEnabled then
for _, targetPlayer in ipairs(Players:GetPlayers()) do
if targetPlayer ~= player and targetPlayer.Character and
targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
if not espBoxes[targetPlayer.Name] then
createESP(targetPlayer) -- Create ESP if it doesn't exist
else
espBoxes[targetPlayer.Name].Adornee =
targetPlayer.Character.HumanoidRootPart
end
end
end
else
-- Remove ESP when disabled
for _, box in pairs(espBoxes) do
box:Destroy()
end
espBoxes = {}
end
end
-- Add Toggle for ESP
local TrollingGroupBox = Tabs.Trolling:AddLeftGroupbox('Troll Options')
TrollingGroupBox:AddToggle('ESP Toggle', {
Text = 'Enable ESP',
Default = false,
Tooltip = 'Show ESP boxes around players.',
Callback = function(value)
espEnabled = value
updateESP() -- Update ESP state immediately
end
})
-- Update ESP when player respawns
player.CharacterAdded:Connect(function(newCharacter)
character = newCharacter
updateESP() -- Re-evaluate ESP upon character spawn
end)
-- Add current player respawn handling for ESP
Players.PlayerAdded:Connect(function(newPlayer)
newPlayer.CharacterAdded:Connect(function()
if espEnabled then
wait(1) -- Give a moment for the character to load
createESP(newPlayer)
end
end)
end)
-- All existing functions from your script...
-- Variable to determine if teleportation to grass objects is enabled.
local teleportToGrassEnabled = false
local teleportSpeed = 1 -- Default speed multiplier for teleportation
local teleportCoroutine = nil -- Track the teleportation coroutine
-- The rest of your existing script logic remains unchanged...
-- OnUnload function
Library:OnUnload(function()
print('Unloaded!')
Library.Unloaded = true
end)
-- Hand the library over to our managers
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
-- Build our configuration menu on the right side of our tab
SaveManager:SetFolder('MyScriptHub/specific-game')
SaveManager:BuildConfigSection(Tabs['UI Settings'])
-- Build our theme menu on the left side
ThemeManager:ApplyToTab(Tabs['UI Settings'])
-- Load the autoload configuration
SaveManager:LoadAutoloadConfig()