
KeylessUniversal

-- =========================
-- WINDOWS-13 STYLE CHATGPT
-- MOVEABLE GUI + CLOSE BUTTON
-- WINDOWS-STYLE TEXT BAR
-- ONE FILE ONLY (main.lua)
-- =========================
local http = require("socket.http")
local ltn12 = require("ltn12")
local json = require("dkjson")
local OPENAI = os.getenv("OPENAI_API_KEY")
local win = {
x = 100, y = 100,
w = 350, h = 230,
dragging = false,
show = true
}
local inputText = ""
local responseText = ""
function ai_query(prompt)
local body = json.encode({
model = "gpt-4o-mini",
messages = { { role = "user", content = prompt } }
})
local r = {}
local _, code = http.request{
url = "https://api.openai.com/v1/chat/completions",
method = "POST",
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = tostring(#body),
["Authorization"] = "Bearer " .. OPENAI
},
source = ltn12.source.string(body),
sink = ltn12.sink.table(r)
}
if code ~= 200 then
return "HTTP error: " .. tostring(code)
end
local decoded = json.decode(table.concat(r))
return decoded.choices[1].message.content
end
function love.load()
love.window.setTitle("ChatGPT Window")
end
function love.draw()
if not win.show then return end
-- Background
love.graphics.setColor(0.1, 0.1, 0.1, 0.95)
love.graphics.rectangle("fill", win.x, win.y, win.w, win.h, 6)
-- Border
love.graphics.setColor(1, 1, 1)
love.graphics.rectangle("line", win.x, win.y, win.w, win.h, 6)
-- Header
love.graphics.print("ChatGPT", win.x + 10, win.y + 10)
-- Close button
love.graphics.print("CLOSE CHATGPT", win.x + win.w - 140, win.y + 10)
-- Input Label
love.graphics.print("You:", win.x + 10, win.y + 50)
-- ============================
-- NEW WINDOWS-STYLE TEXT BAR
-- ============================
love.graphics.setColor(0.2, 0.2, 0.2, 0.9)
love.graphics.rectangle("fill", win.x + 60, win.y + 45, win.w - 70, 25, 4)
love.graphics.setColor(1, 1, 1)
love.graphics.rectangle("line", win.x + 60, win.y + 45, win.w - 70, 25, 4)
love.graphics.print(inputText, win.x + 65, win.y + 50)
-- ============================
-- Response
love.graphics.print("AI:", win.x + 10, win.y + 90)
love.graphics.printf(responseText, win.x + 10, win.y + 110, win.w - 20)
end
-- Handle typing
function love.textinput(t)
inputText = inputText .. t
end
function love.keypressed(key)
if key == "backspace" then
inputText = inputText:sub(1, -2)
end
if key == "return" and inputText ~= "" then
responseText = ai_query(inputText)
inputText = ""
end
end
function love.mousepressed(mx, my, b)
if b == 1 then
-- Close button
if mx > win.x + win.w - 140 and mx < win.x + win.w - 10 and my > win.y + 5 and my < win.y + 35 then
win.show = false
return
end
-- Drag area (top bar)
if mx > win.x and mx < win.x + win.w and my > win.y and my < win.y + 40 then
win.dragging = true
win.offx = mx - win.x
win.offy = my - win.y
end
end
end
function love.mousereleased()
win.dragging = false
end
function love.update()
if win.dragging and win.show then
local mx, my = love.mouse.getPosition()
win.x = mx - win.offx
win.y = my - win.offy
end
endNo comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

