Run it
Copy the script and paste it into your executor.
CoreGui = :()
HttpService = :()
UserInputService = :()
TextService = :()
Players = :()
httpRequest = ( .request) ( .request)
httpRequest
()
ConversationHistory = {}
ModelsList = {
{ Name = , ID = },
{ Name = , ID = },
{ Name = , ID = },
{ Name = , ID = }
}
SelectedModelID =
LocalPlayer = Players.LocalPlayer Players:():()
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.DisplayOrder =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
(() ScreenGui.Parent = LocalPlayer:() )
ScreenGui.Parent ScreenGui.Parent = CoreGui
MainFrame = .()
MainFrame.Name =
MainFrame.Size = .(, , , )
MainFrame.Position = .(, -, , -)
MainFrame.BackgroundColor3 = .(, , )
MainFrame.BorderSizePixel =
MainFrame.ClipsDescendants =
MainFrame.Active =
MainFrame.ZIndex =
MainFrame.Parent = ScreenGui
MainCorner = .()
MainCorner.CornerRadius = .(, )
MainCorner.Parent = MainFrame
Header = .()
Header.Size = .(, , , )
Header.BackgroundColor3 = .(, , )
Header.BorderSizePixel =
Header.Active =
Header.ZIndex =
Header.Parent = MainFrame
Title = .()
Title.Size = .(, -, , )
Title.Position = .(, , , )
Title.BackgroundTransparency =
Title.Text =
Title.TextColor3 = .(, , )
Title.TextSize =
Title.Font = .Font.GothamBold
Title.TextXAlignment = .TextXAlignment.Left
Title.ZIndex =
Title.Parent = Header
CloseBtn = .()
CloseBtn.Size = .(, , , )
CloseBtn.Position = .(, -, , )
CloseBtn.BackgroundColor3 = .(, , )
CloseBtn.Text =
CloseBtn.TextColor3 = .(, , )
CloseBtn.TextSize =
CloseBtn.Font = .Font.GothamBold
CloseBtn.Active =
CloseBtn.ZIndex =
CloseBtn.Parent = Header
CloseCorner = .()
CloseCorner.CornerRadius = .(, )
CloseCorner.Parent = CloseBtn
KeyFrame = .()
KeyFrame.Size = .(, -, , )
KeyFrame.Position = .(, , , )
KeyFrame.BackgroundColor3 = .(, , )
KeyFrame.BorderSizePixel =
KeyFrame.ZIndex =
KeyFrame.Parent = MainFrame
KeyCorner = .()
KeyCorner.CornerRadius = .(, )
KeyCorner.Parent = KeyFrame
KeyInput = .()
KeyInput.Size = .(, -, , )
KeyInput.Position = .(, , , )
KeyInput.BackgroundTransparency =
KeyInput.PlaceholderText =
KeyInput.PlaceholderColor3 = .(, , )
KeyInput.Text =
KeyInput.TextColor3 = .(, , )
KeyInput.TextSize =
KeyInput.Font = .Font.Gotham
KeyInput.ClearTextOnFocus =
KeyInput.Active =
KeyInput.ZIndex =
KeyInput.Parent = KeyFrame
ModelBtn = .()
ModelBtn.Size = .(, -, , )
ModelBtn.Position = .(, , , )
ModelBtn.BackgroundColor3 = .(, , )
ModelBtn.Text =
ModelBtn.TextColor3 = .(, , )
ModelBtn.TextSize =
ModelBtn.Font = .Font.GothamMedium
ModelBtn.Active =
ModelBtn.ZIndex =
ModelBtn.Parent = MainFrame
ModelCorner = .()
ModelCorner.CornerRadius = .(, )
ModelCorner.Parent = ModelBtn
DropdownList = .()
DropdownList.Size = .(, -, , )
DropdownList.Position = .(, , , )
DropdownList.BackgroundColor3 = .(, , )
DropdownList.BorderSizePixel =
DropdownList.Visible =
DropdownList.ZIndex =
DropdownList.Active =
DropdownList.Parent = MainFrame
DropCorner = .()
DropCorner.CornerRadius = .(, )
DropCorner.Parent = DropdownList
DropLayout = .()
DropLayout.SortOrder = .SortOrder.LayoutOrder
DropLayout.Parent = DropdownList
_, item (ModelsList)
ItemBtn = .()
ItemBtn.Size = .(, , , )
ItemBtn.BackgroundTransparency =
ItemBtn.Text = .. item.Name
ItemBtn.TextColor3 = .(, , )
ItemBtn.TextSize =
ItemBtn.Font = .Font.Gotham
ItemBtn.TextXAlignment = .TextXAlignment.Left
ItemBtn.Active =
ItemBtn.ZIndex =
ItemBtn.Parent = DropdownList
ItemBtn.Activated:(()
SelectedModelID = item.ID
ModelBtn.Text = .. item.Name ..
DropdownList.Visible =
)
ModelBtn.Activated:(()
DropdownList.Visible = DropdownList.Visible
)
ChatScroll = .()
ChatScroll.Size = .(, -, , -)
ChatScroll.Position = .(, , , )
ChatScroll.BackgroundTransparency =
ChatScroll.BorderSizePixel =
ChatScroll.ScrollBarThickness =
ChatScroll.ScrollBarImageColor3 = .(, , )
ChatScroll.CanvasSize = .(, , , )
ChatScroll.ZIndex =
ChatScroll.Parent = MainFrame
UIListLayout = .()
UIListLayout.Padding = .(, )
UIListLayout.SortOrder = .SortOrder.LayoutOrder
UIListLayout.Parent = ChatScroll
UIListLayout:():(()
ChatScroll.CanvasSize = .(, , , UIListLayout.AbsoluteContentSize.Y + )
ChatScroll.CanvasPosition = .(, UIListLayout.AbsoluteContentSize.Y)
)
LoadingFrame = .()
LoadingFrame.Size = .(, , , -)
LoadingFrame.Position = .(, , , )
LoadingFrame.BackgroundColor3 = .(, , )
LoadingFrame.BackgroundTransparency =
LoadingFrame.BorderSizePixel =
LoadingFrame.Visible =
LoadingFrame.ZIndex =
LoadingFrame.Active =
LoadingFrame.Parent = MainFrame
LoadingLabel = .()
LoadingLabel.Size = .(, , , )
LoadingLabel.Position = .(, , , )
LoadingLabel.BackgroundTransparency =
LoadingLabel.Text =
LoadingLabel.TextColor3 = .(, , )
LoadingLabel.TextSize =
LoadingLabel.Font = .Font.GothamBold
LoadingLabel.ZIndex =
LoadingLabel.Parent = LoadingFrame
InputFrame = .()
InputFrame.Size = .(, -, , )
InputFrame.Position = .(, , , -)
InputFrame.BackgroundColor3 = .(, , )
InputFrame.BorderSizePixel =
InputFrame.Active =
InputFrame.ZIndex =
InputFrame.Parent = MainFrame
InputCorner = .()
InputCorner.CornerRadius = .(, )
InputCorner.Parent = InputFrame
MessageInput = .()
MessageInput.Size = .(, -, , )
MessageInput.Position = .(, , , )
MessageInput.BackgroundTransparency =
MessageInput.PlaceholderText =
MessageInput.PlaceholderColor3 = .(, , )
MessageInput.Text =
MessageInput.TextColor3 = .(, , )
MessageInput.TextSize =
MessageInput.Font = .Font.Gotham
MessageInput.TextXAlignment = .TextXAlignment.Left
MessageInput.ClearTextOnFocus =
MessageInput.Active =
MessageInput.ZIndex =
MessageInput.Parent = InputFrame
SendBtn = .()
SendBtn.Size = .(, , , )
SendBtn.Position = .(, -, , )
SendBtn.BackgroundColor3 = .(, , )
SendBtn.Text =
SendBtn.TextColor3 = .(, , )
SendBtn.TextSize =
SendBtn.Font = .Font.GothamBold
SendBtn.Active =
SendBtn.ZIndex =
SendBtn.Parent = InputFrame
SendCorner = .()
SendCorner.CornerRadius = .(, )
SendCorner.Parent = SendBtn
dragging =
dragStart, startPos
Header.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = MainFrame.Position
)
UserInputService.InputChanged:((input)
dragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
delta = input.Position - dragStart
MainFrame.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
CloseBtn.Activated:(() ScreenGui:() )
(sender, text)
isUser = (sender == )
BubbleFrame = .()
BubbleFrame.Size = .(, , , )
BubbleFrame.BackgroundTransparency =
BubbleFrame.ZIndex =
BubbleFrame.Parent = ChatScroll
Bubble = .()
Bubble.BackgroundColor3 = isUser .(, , ) .(, , )
Bubble.BorderSizePixel =
Bubble.Position = isUser .(, , , ) .(, , , )
Bubble.AnchorPoint = isUser .(, ) .(, )
Bubble.ZIndex =
Bubble.Parent = BubbleFrame
BubbleCorner = .()
BubbleCorner.CornerRadius = .(, )
BubbleCorner.Parent = Bubble
TextLabel = .()
TextLabel.Size = .(, -, , -)
TextLabel.Position = .(, , , )
TextLabel.BackgroundTransparency =
TextLabel.Text = text
TextLabel.TextColor3 = isUser .(, , ) .(, , )
TextLabel.TextSize =
TextLabel.Font = .Font.Gotham
TextLabel.TextWrapped =
TextLabel.TextXAlignment = .TextXAlignment.Left
TextLabel.ZIndex =
TextLabel.Parent = Bubble
textBounds = TextService:(text, , .Font.Gotham, .(, ))
finalWidth = .(textBounds.X + , , )
finalHeight = textBounds.Y +
BubbleFrame.Size = .(, , , finalHeight)
Bubble.Size = .(, finalWidth, , finalHeight)
Bubble, TextLabel
()
text = MessageInput.Text
text:()
key = KeyInput.Text:(, )
key ==
(, )
MessageInput.Text =
(, text)
.(ConversationHistory, { role = , parts = { { text = text } } })
DropdownList.Visible =
LoadingFrame.Visible =
endpoint = .(, SelectedModelID)
payload = HttpService:({ contents = ConversationHistory })
.(()
reqSuccess, response = (()
({
Url = endpoint,
Method = ,
Headers = {
[] = ,
[] = key
},
Body = payload
})
)
LoadingFrame.Visible =
reqSuccess response
responseBody = response.Body response.body
decodeSuccess, decoded = (() HttpService:(responseBody) )
decodeSuccess decoded
decoded.candidates decoded.candidates[]
replyText = decoded.candidates[].content.parts[].text
.(ConversationHistory, { role = , parts = { { text = replyText } } })
(, replyText)
decoded.error
(, .. (decoded.error.message ))
(, )
(, )
(, )
)
SendBtn.Activated:(processSend)
MessageInput.FocusLost:((enterPressed)
enterPressed
()
)
(, )
Features? It just brings Gemini into roblox, nothing special. Get your own API key here: https://aistudio.google.com/api-keys?project=gen-lang-client-0688617335 Note: Flash Lite and 2.5 are znot available for new users, please use 3.5 and 3.6! I don't know if you can copy this script.

Universal