KeylessUniversal
Tower Buyer (Gnome Code)
Run it
Copy the script and paste it into your executor.
Tower Buyer Gnome Code.lua · 210 lines
-- Tower Buy UI: Type a tower name and buy it if you have enough stars
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local function findRemote(name)
for _, descendant in ipairs(ReplicatedStorage:GetDescendants()) do
if descendant:IsA("RemoteFunction") or descendant:IsA("RemoteEvent") then
if descendant.Name == name then
return descendant
end
end
end
return nil
end
local towers = require(ReplicatedStorage:WaitForChild("TowerShop"))
local getDataFunc = findRemote("GetData")
local interactItemFunc = findRemote("InteractItem")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- ===== Build the UI =====
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TowerBuyGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- Main small frame (top-right corner)
local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.new(0, 240, 0, 120)
frame.Position = UDim2.new(1, -260, 0, 20)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
frame.BorderSizePixel = 0
frame.Parent = screenGui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
-- Title
local title = Instance.new("TextLabel")
title.Name = "Title"
title.Size = UDim2.new(1, -20, 0, 24)
title.Position = UDim2.new(0, 10, 0, 8)
title.BackgroundTransparency = 1
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.TextColor3 = Color3.fromRGB(255, 215, 0)
title.TextXAlignment = Enum.TextXAlignment.Left
title.Text = "Buy Tower"
title.Parent = frame
-- Stars display
local starsLabel = Instance.new("TextLabel")
starsLabel.Name = "Stars"
starsLabel.Size = UDim2.new(1, -20, 0, 18)
starsLabel.Position = UDim2.new(0, 10, 0, 32)
starsLabel.BackgroundTransparency = 1
starsLabel.Font = Enum.Font.Gotham
starsLabel.TextSize = 13
starsLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
starsLabel.TextXAlignment = Enum.TextXAlignment.Left
starsLabel.Text = "Stars: Loading..."
starsLabel.Parent = frame
-- TextBox for tower name
local textBox = Instance.new("TextBox")
textBox.Name = "TowerInput"
textBox.Size = UDim2.new(1, -20, 0, 28)
textBox.Position = UDim2.new(0, 10, 0, 54)
textBox.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
textBox.BorderSizePixel = 0
textBox.Font = Enum.Font.Gotham
textBox.TextSize = 13
textBox.TextColor3 = Color3.fromRGB(255, 255, 255)
textBox.PlaceholderText = "Enter tower name..."
textBox.Text = ""
textBox.Parent = frame
local textBoxCorner = Instance.new("UICorner")
textBoxCorner.CornerRadius = UDim.new(0, 4)
textBoxCorner.Parent = textBox
-- Buy button
local buyButton = Instance.new("TextButton")
buyButton.Name = "Buy"
buyButton.Size = UDim2.new(1, -20, 0, 28)
buyButton.Position = UDim2.new(0, 10, 0, 88)
buyButton.BackgroundColor3 = Color3.fromRGB(60, 140, 60)
buyButton.BorderSizePixel = 0
buyButton.Font = Enum.Font.GothamBold
buyButton.TextSize = 13
buyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
buyButton.Text = "Buy"
buyButton.Parent = frame
local buyCorner = Instance.new("UICorner")
buyCorner.CornerRadius = UDim.new(0, 4)
buyCorner.Parent = buyButton
-- Status / feedback label
local statusLabel = Instance.new("TextLabel")
statusLabel.Name = "Status"
statusLabel.Size = UDim2.new(1, -20, 0, 16)
statusLabel.Position = UDim2.new(0, 10, 1, -20)
statusLabel.BackgroundTransparency = 1
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 11
statusLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Text = ""
statusLabel.Parent = frame
-- Toggle button (minimize/maximize)
local toggleButton = Instance.new("TextButton")
toggleButton.Name = "Toggle"
toggleButton.Size = UDim2.new(0, 80, 0, 24)
toggleButton.Position = UDim2.new(1, -90, 0, 20)
toggleButton.BackgroundColor3 = Color3.fromRGB(40, 120, 200)
toggleButton.BorderSizePixel = 0
toggleButton.Font = Enum.Font.GothamBold
toggleButton.TextSize = 12
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Text = "Tower Shop"
toggleButton.Visible = false
toggleButton.Parent = screenGui
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 4)
toggleCorner.Parent = toggleButton
-- ===== Logic =====
local function refreshStars()
if not getDataFunc then return nil end
local data = getDataFunc:InvokeServer()
if data then
starsLabel.Text = "Stars: \226\152\133" .. tostring(data.Stars)
return data
end
return nil
end
local function setStatus(text, color)
statusLabel.Text = text
statusLabel.TextColor3 = color or Color3.fromRGB(180, 180, 180)
end
local function buyTower()
if not interactItemFunc then
setStatus("InteractItem remote not found!", Color3.fromRGB(255, 100, 100))
return
end
local towerName = textBox.Text
if towerName == "" then
setStatus("Please enter a tower name.", Color3.fromRGB(255, 100, 100))
return
end
-- Check if the tower exists in the shop
local towerData = towers[towerName]
if not towerData then
setStatus("Tower '" .. towerName .. "' not found.", Color3.fromRGB(255, 100, 100))
return
end
-- Get player data to check stars
if not getDataFunc then
setStatus("GetData remote not found!", Color3.fromRGB(255, 100, 100))
return
end
local playerData = getDataFunc:InvokeServer()
if not playerData then
setStatus("Could not fetch player data.", Color3.fromRGB(255, 100, 100))
return
end
-- Check if already owned
if table.find(playerData.OwnedTowers, towerName) then
setStatus("You already own this tower.", Color3.fromRGB(255, 200, 0))
return
end
-- Attempt purchase via InteractItem (stars check skipped)
local result = interactItemFunc:InvokeServer(towerName)
if result then
starsLabel.Text = "Stars: \226\152\133" .. tostring(result.Stars)
setStatus("Successfully bought " .. towerName .. "!", Color3.fromRGB(100, 255, 100))
textBox.Text = ""
else
setStatus("Purchase failed.", Color3.fromRGB(255, 100, 100))
end
end
-- Wire up events
buyButton.Activated:Connect(buyTower)
toggleButton.Activated:Connect(function()
frame.Visible = true
toggleButton.Visible = false
refreshStars()
end)
-- Initialize
refreshStars()
print("TowerBuyGui loaded successfully")sfully")About this script
You Can Buy Towers from the TowerShop (work on tower defense games that use gnome code ONLY) if the game allows you can buy hidden towers in the shop that are 0 price or idk How I Know if a Game uses Gnome Code kit?: Load up Infinite Yeld and Put "Dex" its a recriation of Roblox Studio's Explorer (you cant see SSS and SS (ServerScriptService and ServerStorage) look in the Replicated Storage and try to Find something like "TowerShop" or "GetData" and "InteractItem" if theres these 3 in the Game it supports the Script (if the game has a different currency the star count might bug) the star count says how much currency you have.



