QiellHub Fixed
Key Required

QiellHub Fixed

[LEVEL!] Sambung Kata 💬dr_Arkhan_Rdr_Arkhan_R 692 views 455 executesUpdated Mar 15, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•709 lines (26901 chars)
-- [ SAMBUNG KATA GUI - VERSI FINAL STABLE ]
-- Database dari: kanzXhub (628+ kata authentic)
-- Support: X, LY, CY, GY, ISME, EH, E, PT, FT, LT, IT, OT, KT, RT, DT

local VirtualInputManager = game:GetService("VirtualInputManager")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")

local guiParent = pcall(function() return CoreGui.Name end) and CoreGui or Players.LocalPlayer:WaitForChild("PlayerGui")

if guiParent:FindFirstChild("qiellHub") then
	guiParent.qiellHub:Destroy()
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "qiellHub"
ScreenGui.Parent = guiParent
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

-- [ TOGGLE BUTTON ]
local ToggleButton = Instance.new("Frame")
ToggleButton.Name = "ToggleButton"
ToggleButton.Size = UDim2.new(0, 90, 0, 90)
ToggleButton.Position = UDim2.new(1, -110, 1, -110)
ToggleButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ToggleButton.BorderSizePixel = 0
ToggleButton.ZIndex = 10
ToggleButton.Parent = ScreenGui

local ToggleCorner = Instance.new("UICorner")
ToggleCorner.CornerRadius = UDim.new(0, 12)
ToggleCorner.Parent = ToggleButton

local LogoImage = Instance.new("ImageLabel")
LogoImage.Size = UDim2.new(1, -8, 1, -8)
LogoImage.Position = UDim2.new(0, 4, 0, 4)
LogoImage.BackgroundTransparency = 1
LogoImage.Image = "rbxassetid://105687352673338"
LogoImage.ScaleType = Enum.ScaleType.Fit
LogoImage.Parent = ToggleButton

local Shadow = Instance.new("Frame")
Shadow.Size = UDim2.new(1, 4, 1, 4)
Shadow.Position = UDim2.new(0, -2, 0, -2)
Shadow.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
Shadow.BorderSizePixel = 0
Shadow.ZIndex = 9
Shadow.Parent = ToggleButton

local ShadowCorner = Instance.new("UICorner")
ShadowCorner.CornerRadius = UDim.new(0, 12)
ShadowCorner.Parent = Shadow

local uiVisible = true

-- [ MAIN FRAME ]
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 500, 0, 520)
MainFrame.Position = UDim2.new(0.5, -250, 0.5, -260)
MainFrame.BackgroundColor3 = Color3.fromRGB(245, 235, 240)
MainFrame.BorderSizePixel = 0
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 12)
UICorner.Parent = MainFrame

-- Draggable
local dragging, dragInput, dragStart, startPos
MainFrame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = MainFrame.Position
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then dragging = false end
		end)
	end
end)
MainFrame.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		dragInput = input
	end
end)
UserInputService.InputChanged:Connect(function(input)
	if input == dragInput and dragging then
		local delta = input.Position - dragStart
		MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
end)

-- [ HEADER ]
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 40)
Header.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
Header.BorderSizePixel = 0
Header.Active = true
Header.Parent = MainFrame

local HeaderCorner = Instance.new("UICorner")
HeaderCorner.CornerRadius = UDim.new(0, 12)
HeaderCorner.Parent = Header

local HeaderFix = Instance.new("Frame")
HeaderFix.Size = UDim2.new(1, 0, 0, 10)
HeaderFix.Position = UDim2.new(0, 0, 1, -10)
HeaderFix.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
HeaderFix.BorderSizePixel = 0
HeaderFix.Parent = Header

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -40, 1, 0)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "qiellHub - SAMBUNG KATA (628+ KATA)"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 14
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header

local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 30, 0, 30)
CloseBtn.Position = UDim2.new(1, -35, 0, 5)
CloseBtn.BackgroundTransparency = 1
CloseBtn.Text = "X"
CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 16
CloseBtn.Parent = Header

CloseBtn.MouseButton1Click:Connect(function()
	ScreenGui:Destroy()
end)

-- [ TAB SYSTEM ]
local TabFrame = Instance.new("Frame")
TabFrame.Size = UDim2.new(0, 100, 1, -40)
TabFrame.Position = UDim2.new(0, 0, 0, 40)
TabFrame.BackgroundColor3 = Color3.fromRGB(230, 220, 225)
TabFrame.BorderSizePixel = 0
TabFrame.Parent = MainFrame

local activeTab = "awalan"

local TabAwalan = Instance.new("TextButton")
TabAwalan.Size = UDim2.new(1, 0, 0, 50)
TabAwalan.Position = UDim2.new(0, 0, 0, 0)
TabAwalan.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
TabAwalan.TextColor3 = Color3.fromRGB(255, 255, 255)
TabAwalan.Text = "Kata\nAwalan"
TabAwalan.Font = Enum.Font.GothamBold
TabAwalan.TextSize = 11
TabAwalan.BorderSizePixel = 0
TabAwalan.Parent = TabFrame

local TabAwalanCorner = Instance.new("UICorner")
TabAwalanCorner.CornerRadius = UDim.new(0, 6)
TabAwalanCorner.Parent = TabAwalan

local TabAkhiran = Instance.new("TextButton")
TabAkhiran.Size = UDim2.new(1, 0, 0, 50)
TabAkhiran.Position = UDim2.new(0, 0, 0, 50)
TabAkhiran.BackgroundColor3 = Color3.fromRGB(180, 120, 150)
TabAkhiran.TextColor3 = Color3.fromRGB(255, 255, 255)
TabAkhiran.Text = "Akhiran"
TabAkhiran.Font = Enum.Font.GothamBold
TabAkhiran.TextSize = 11
TabAkhiran.BorderSizePixel = 0
TabAkhiran.Parent = TabFrame

local TabAkhiranCorner = Instance.new("UICorner")
TabAkhiranCorner.CornerRadius = UDim.new(0, 6)
TabAkhiranCorner.Parent = TabAkhiran

-- [ CONTENT FRAME ]
local ContentFrame = Instance.new("Frame")
ContentFrame.Size = UDim2.new(1, -100, 1, -40)
ContentFrame.Position = UDim2.new(0, 100, 0, 40)
ContentFrame.BackgroundTransparency = 1
ContentFrame.BorderSizePixel = 0
ContentFrame.Parent = MainFrame

-- [ SEARCH BOX ]
local SearchBox = Instance.new("TextBox")
SearchBox.Size = UDim2.new(1, -30, 0, 35)
SearchBox.Position = UDim2.new(0, 15, 0, 15)
SearchBox.BackgroundColor3 = Color3.fromRGB(235, 220, 230)
SearchBox.TextColor3 = Color3.fromRGB(30, 30, 50)
SearchBox.PlaceholderText = "Cari huruf awal (A, B, C...)"
SearchBox.Font = Enum.Font.Gotham
SearchBox.TextSize = 12
SearchBox.ClearTextOnFocus = false
SearchBox.Parent = ContentFrame

local SearchCorner = Instance.new("UICorner")
SearchCorner.CornerRadius = UDim.new(0, 8)
SearchCorner.Parent = SearchBox

-- [ BUTTON FRAME ]
local ButtonFrame = Instance.new("Frame")
ButtonFrame.Size = UDim2.new(1, -30, 0, 35)
ButtonFrame.Position = UDim2.new(0, 15, 0, 55)
ButtonFrame.BackgroundTransparency = 1
ButtonFrame.BorderSizePixel = 0
ButtonFrame.Parent = ContentFrame

local ButtonLayout = Instance.new("UIListLayout")
ButtonLayout.FillDirection = Enum.FillDirection.Horizontal
ButtonLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
ButtonLayout.VerticalAlignment = Enum.VerticalAlignment.Center
ButtonLayout.Padding = UDim.new(0, 8)
ButtonLayout.Parent = ButtonFrame

-- Auto Enter Toggle (DEFAULT ON seperti kanzXhub)
local autoEnterEnabled = true
local AutoEnterBtn = Instance.new("TextButton")
AutoEnterBtn.Size = UDim2.new(0, 65, 0, 30)
AutoEnterBtn.BackgroundColor3 = Color3.fromRGB(16, 185, 129)
AutoEnterBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
AutoEnterBtn.Text = "Enter: ON"
AutoEnterBtn.Font = Enum.Font.GothamBold
AutoEnterBtn.TextSize = 11
AutoEnterBtn.BorderSizePixel = 0
AutoEnterBtn.Parent = ButtonFrame

local AutoEnterCorner = Instance.new("UICorner")
AutoEnterCorner.CornerRadius = UDim.new(0, 6)
AutoEnterCorner.Parent = AutoEnterBtn

AutoEnterBtn.MouseButton1Click:Connect(function()
	autoEnterEnabled = not autoEnterEnabled
	if autoEnterEnabled then
		AutoEnterBtn.Text = "Enter: ON"
		AutoEnterBtn.BackgroundColor3 = Color3.fromRGB(16, 185, 129)
	else
		AutoEnterBtn.Text = "Enter: OFF"
		AutoEnterBtn.BackgroundColor3 = Color3.fromRGB(107, 114, 128)
	end
end)

-- Rapid Backspace
local RapidBtn = Instance.new("TextButton")
RapidBtn.Size = UDim2.new(0, 70, 0, 30)
RapidBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 130)
RapidBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
RapidBtn.Text = "Hapus Cepat"
RapidBtn.Font = Enum.Font.GothamBold
RapidBtn.TextSize = 8
RapidBtn.BorderSizePixel = 0
RapidBtn.Parent = ButtonFrame

local RapidCorner = Instance.new("UICorner")
RapidCorner.CornerRadius = UDim.new(0, 6)
RapidCorner.Parent = RapidBtn

local isHoldingBackspace = false
RapidBtn.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		isHoldingBackspace = true
		RapidBtn.BackgroundColor3 = Color3.fromRGB(180, 80, 110)
		
		while isHoldingBackspace do
			pcall(function()
				VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Backspace, false, game)
				task.wait(0.01)
				VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Backspace, false, game)
			end)
			task.wait(0.05)
		end
	end
end)

RapidBtn.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		isHoldingBackspace = false
		RapidBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 130)
	end
end)

-- Reset Button
local ResetBtn = Instance.new("TextButton")
ResetBtn.Size = UDim2.new(0, 50, 0, 30)
ResetBtn.BackgroundColor3 = Color3.fromRGB(180, 150, 170)
ResetBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ResetBtn.Text = "Reset"
ResetBtn.Font = Enum.Font.GothamBold
ResetBtn.TextSize = 9
ResetBtn.BorderSizePixel = 0
ResetBtn.Parent = ButtonFrame

local ResetCorner = Instance.new("UICorner")
ResetCorner.CornerRadius = UDim.new(0, 6)
ResetCorner.Parent = ResetBtn

ResetBtn.MouseButton1Click:Connect(function()
	usedWords = {}
	SearchBox.Text = ""
	clearResults()
	doSearch()
end)

-- [ STATUS LABEL ]
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Size = UDim2.new(1, -30, 0, 18)
StatusLabel.Position = UDim2.new(0, 15, 0, 95)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Memuat kata..."
StatusLabel.TextColor3 = Color3.fromRGB(80, 80, 100)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 11
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = ContentFrame

-- [ RESULT LIST ]
local ResultList = Instance.new("ScrollingFrame")
ResultList.Size = UDim2.new(1, -30, 1, -125)
ResultList.Position = UDim2.new(0, 15, 0, 120)
ResultList.BackgroundTransparency = 1
ResultList.ScrollBarThickness = 6
ResultList.ScrollBarImageColor3 = Color3.fromRGB(200, 150, 170)
ResultList.CanvasSize = UDim2.new(0, 0, 0, 0)
ResultList.Parent = ContentFrame

local ListLayout = Instance.new("UIListLayout")
ListLayout.Padding = UDim.new(0, 5)
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder
ListLayout.Parent = ResultList

-- [ DATABASE KATA - DARI KANZXHUB (628+ KATA) ]
local wordsDatabase = {
	-- AKHIRAN X (98 kata)
	"bordeaux", "lex", "sphinx", "unisex", "bodrex", "komix", "gallierex", "addax", 
	"aframax", "apterix", "bombyx", "caloperdrix", "caranx", "caronx", "chalcococyx", 
	"chx", "cimex", "circumfix", "coix", "confix", "cyathocalyx", "donax", "echinosorex", 
	"forex", "helix", "hystrix", "ilex", "index", "lux", "marx", "max", "melanoperdix", 
	"meritrix", "microhierax", "molitrix", "murex", "mystax", "naiasptatrix", "natrix", 
	"nephotettix", "nephottotix", "ninox", "nontax", "nothopanax", "nycticorax", "offax", 
	"olfax", "ex", "prix", "annex", "croix", "deux", "complex", "ix", "hapax", "rex", 
	"klux", "mantoux", "box", "vox",
	"xacum", "xan", "xantat", "xantena", "xanthophyllum", "xanthorrhiza", "xanthosoma", 
	"xantofil", "xe", "xenia", "xenial", "xenobiologi", "xenochrophia", "xenofil", 
	"xenofobia", "xenolosia", "xenograf", "xenokrasi", "xenolit", "xenomania", "xenon", 
	"xenopsylla", "xerofil", "xerofit", "xeroftalmia", "xerografi", "xerosis", "xi", 
	"xifoid", "xii", "xiii", "xilan", "xilem", "xilena", "xilibium", "xilofag", "xilofon", 
	"xilografi", "xiloid", "xiloidina", "xilol", "xilologi", "xilonit", "xilosa", "xiroderma", 
	"xister", "xiv", "xix", "xvi", "xx", "xy", "xylocarpus", "xylopia", "xylotropes", "xystrocera",

	-- AKHIRAN LY (16 kata)
	"assertedly", "billy", "bily", "diddly", "disproportionally", "errorlessly", 
	"expansively", "neighbourly", "overabundantly", "piddly", "resumply", "retailly", 
	"sandfly", "secondly", "separably", "westwardly",

	-- AKHIRAN CY (11 kata)
	"arrogancy", "corpulency", "delegitmacy", "excellency", "incompetency", "nonlegitmacy", 
	"supremacy", "prodemocracy", "recalcitracy", "insurgency", "verdancy",

	-- AKHIRAN GY (8 kata)
	"anaesthesiology", "buggy", "cosmology", "oceanology", "paleontropology", 
	"pathology", "seismology", "otourology",

	-- AKHIRAN ISME (400+ kata)
	"isisme", "absenteisme", "absolutisme", "absurdisme", "aforisme", "agnostisisme", "aktivisme", 
	"albinisme", "alkoholisme", "alomerisme", "altruisme", "amatirisme", "amensalisme", "amfibolisme", 
	"anabolisme", "anakronisme", "anarkisme", "aneurisme", "animisme", "antagonisme", "antisemitisme", 
	"antropomorfisme", "antroposentrisme", "antusiasme", "aheliotrpisime", "arkaisme", "asketisisme", 
	"atavisme", "ateisme", "autisme", "banditisme", "bapakisme", "barbarisme", "bebekisme", 
	"bilateralisme", "bilingualisme", "bipolisentriisme", "birokraitisme", "blabitisme", "botulisme", 
	"bromisme", "brutalisme", "buddhisme", "dadaisme", "daerahisme", "daltonisme", "defaitisme", 
	"deisme", "despotisme", "determinisme", "diamagnetisme", "dikroisme", "dimorfisme", "dinamisme", 
	"dismembrasia", "dismenorea", "dogmatisme", "dualisme", "durnoisme", "eksotisme", "ekspansionisme", 
	"ekspresionisme", "ekumenisme", "elektromagnetisme", "embolisme", "emosionalisme", "empirisme", 
	"energi", "erosentriisme", "erotisisme", "erotisme", "eskapisme", "etatisme", "etnoseentriisme", 
	"eudaemonisme", "eufemisme", "evolusionisme", "familisme", "fanatisme", "fasisme", "fatalisme", 
	"favoritisme", "federalisme", "feminisme", "fenomenalisme", "feodalisime", "feromagnetisme", 
	"fotoperiodisme", "fundamentalisme", "fungsionalisme", "futurisme", "gigantisme", "globalisme", 
	"gradualisme", "hedonisme", "hegelianisme", "hegemonisme", "heliotropisme", "henoteisme", 
	"hermafroditisme", "heroisme", "hinduisme", "hipnotisme", "hipopituitarisme", "hipotiroidisme", 
	"hirsutisme", "historisisme", "holisme", "homoseksualisme", "humanisme", "idealisme", 
	"ikhtiosarkotoksisme", "ikhtiotoksisme", "ikonoklasme", "imperialisme", "impresionisme", 
	"indeterminisme", "individualisme", "infantilisme", "intelektualisme", "interventionisme", 
	"islamisme", "isokronisme", "isolasionisme", "isomorfisme", "retreatisme", "romantisisme", 
	"sadisme", "sarkasme", "sauviniisme", "sektarianisme", "sekularisme", "semitisme", 
	"sensualisme", "separatisme", "silogisme", "simbolisme", "sindikalisme", "sinergisme", 
	"sinisme", "sinkretisme", "sinkronisme", "skeptisisme", "skolastisisme", "smes", "snobisme", 
	"sodomasosisme", "sofisme", "solipsisme", "somnambulisme", "sosialisme", "spiritisme", 
	"spiritualisme", "stalinisme", "stereoisomerisme", "struktur", "strukturalisme", "subjektivisme", 
	"subyektivisme", "sufisme", "sukuisme", "superlativisme", "surealisme", "syamanisme", "takisme", 
	"tantrisme", "taoisme", "tarantisme", "tautomerisme", "teisme", "teknokratisme", "teori", 
	"terrorisme", "totaliterisme", "totemisme", "tradisionalisme", "transvetisme", "trauma", 
	"tropisme", "turisme", "unitarisme", "universalisme", "uranisme", "urbanisme", "utopisme", 
	"vandalisme", "vegetarisme", "verbalisme", "veritism", "virilisme", "zionisme", "abstraksionisme", 
	"alelomorfisme", "automorfisme", "biologisme", "buddhisme", "darwinisme", "disfenisme", 
	"etotisisme", "faksionalisme", "fluksmeter", "fu torisme", "halokromisme", "histerospasme", 
	"idealisme", "kemotropisme", "konfusianisme", "kosmetika", "kristianisme", "lamaran", 
	"maltusianisme", "mesomorfisme", "metamerisme", "monolingualisme", "multiteisme", "mutamerisme", 
	"mutatisme", "mutirasialisme", "narsisisme", "nazisme 1", "neoklasikisme", "polimetalisme", 
	"polimorfisme", "postrukturalisme", "premanisme", "radiotropisme", "superorganisme", "vitalisme", 
	"volunterisme", "vulkanisme",

	-- AKHIRAN EH (150+ kata)
	"baris", "batang", "beha", "behandel", "behena", "behina", "bengkung", "benih", "benteh", "bentes", 
	"boleh", "bongmeh", "boreh", "bunga", "ceceh", "celekeh", "celoteh", "cemeeh", "cemeh", "cengeh", 
	"cengkeh", "ceroteh", "cingkeh", "congeh", "daun", "deceh", "deh", "deham", "dehem", "dehidrasi", 
	"dehidrat", "dehidrogenasi", "dehumanisasi", "didik", "dokoh", "doktor", "ehe", "ekeh", "enceh", 
	"ereh", "fotografi", "gapura", "gelar", "gereh", "geryeh", "gonyeh", "greha", "grehon", "gunting", 
	"habis", "hadap", "hadir", "haji", "hakim", "halal", "haluan", "halus", "hambar", "hamil", "hampa", 
	"hampar", "hancur", "hangat", "hangus", "hari", "harmonis", "haru", "harum", "harus", "hasrat", 
	"hasta", "hati", "haus", "hebat", "heboh", "helai", "hemat", "hendak", "hening", "heran", "heroik", 
	"heterogen", "hewan", "hibuk", "hidang", "hidup", "hijau", "hilang", "hilir", "hina", "hiponim", 
	"hitam", "homofon", "homogen", "homograf", "homomim", "hormat", "hujan", "hujung", "hukum", "humas", 
	"hutan", "ilmu", "indehoi", "instalasi", "jamu", "jelajeh", "jurang", "kaidah", "kalang", "kambeh", 
	"kancah", "kanceh", "karat", "kareseh", "kawal", "kayu", "kehel", "kekeh", "keleseh", "keloceh", 
	"kepik", "keras", "ketua", "kokleh", "komprehensif", "kondisi", "kreseh", "kurun", "kutuk", "larut", "leceh",

	-- AKHIRAN E DAN LAINNYA
	"ex", "excavata", "excellency", "excelsa", "excelsum", "exclusivism", "excoecaria", "exelse", 
	"eximia", "exocarpus", "exocecaria", "exocoetidae", "exodus", "exoecaria", "expansa", "expat", "expo",
	"coapt", "dpt", "oapt", "adesuki", "adipsu", "adis", "adipose", "emdifia", "andrika",
	"fr", "hiposaft", "oligoaft", "paradr", "skizoaft",
	"liskopnault", "lt", "balt", "femtovolt", "killavolt", "kolaaft", "kolbaft", 
	"komalt", "kolt", "kitrovolt", "kult", "walsbelt",
	"triplit", "skizoft", "simpit", "sleript", "stipit",
	"capit", "dpit", "oppi", "seipt", "sepit",
	"bakpt", "kompt", "kusdrupt", "kuinrupt", "kupi",
	"doppt", "mopt", "mpt", "seipt", "seipt",
	"apopt", "dipuskompti", "diompi", "dupi", "gappi", "empt", "gapti", "inkompt", "isoppi", 
	"kogpi", "kompt", "kuadirupi", "kuintupi", "kupi", "magpi", "melppi", "mppi", "multikomppi", 
	"multiopi", "opi", "paraoppi", "pi", "saopi", "seloppi", "simppi", "stoppi", "suppi", "trippi"
}

table.sort(wordsDatabase, function(a, b) return #a > #b end)
StatusLabel.Text = "Kamus Aktif: " .. tostring(#wordsDatabase) .. " kata."
local usedWords = {}

-- [ CLEAR RESULTS ]
function clearResults()
	for _, child in pairs(ResultList:GetChildren()) do
		if child:IsA("Frame") or child:IsA("TextButton") then
			child:Destroy()
		end
	end
end

-- [ CREATE WORD ITEM ]
function createWordItem(word)
	local ItemFrame = Instance.new("Frame")
	ItemFrame.Size = UDim2.new(1, -10, 0, 35)
	ItemFrame.BackgroundColor3 = Color3.fromRGB(225, 200, 215)
	ItemFrame.BorderSizePixel = 0
	ItemFrame.Parent = ResultList

	local ItemCorner = Instance.new("UICorner")
	ItemCorner.CornerRadius = UDim.new(0, 6)
	ItemCorner.Parent = ItemFrame

	local MainBtn = Instance.new("TextButton")
	MainBtn.Size = UDim2.new(1, -165, 1, 0)
	MainBtn.BackgroundTransparency = 1
	
	if usedWords[word] then
		MainBtn.Text = "  [TERPAKAI] " .. word
		MainBtn.TextColor3 = Color3.fromRGB(100, 100, 120)
		ItemFrame.BackgroundColor3 = Color3.fromRGB(200, 170, 190)
	else
		MainBtn.Text = "  " .. word
		MainBtn.TextColor3 = Color3.fromRGB(30, 30, 60)
	end
	
	MainBtn.Font = Enum.Font.GothamSemibold
	MainBtn.TextSize = 14
	MainBtn.TextXAlignment = Enum.TextXAlignment.Left
	MainBtn.Parent = ItemFrame

	local function markAsUsed()
		usedWords[word] = true
		MainBtn.Text = "  [TERPAKAI] " .. word
		MainBtn.TextColor3 = Color3.fromRGB(100, 100, 120)
		ItemFrame.BackgroundColor3 = Color3.fromRGB(200, 170, 190)
	end

	MainBtn.MouseButton1Click:Connect(function()
		if usedWords[word] then return end 

		MainBtn.Text = "  [Mengetik...] " .. word
		MainBtn.TextColor3 = Color3.fromRGB(80, 100, 200)
		
		for i = 1, #word do
			local char = string.upper(string.sub(word, i, i))
			local success, keyCode = pcall(function() return Enum.KeyCode[char] end)
			if success and keyCode then
				pcall(function()
					VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
					task.wait(0.01)
					VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
				end)
				task.wait(0.02)
			end
		end
		
		-- AUTO ENTER jika enabled
		if autoEnterEnabled then
			task.wait(0.2)
			pcall(function()
				VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
				task.wait(0.05)
				VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
			end)
		end
		
		task.wait(0.2)
		if MainBtn then
			markAsUsed()
		end
	end)

	local ActionFrame = Instance.new("Frame")
	ActionFrame.Size = UDim2.new(0, 155, 1, 0)
	ActionFrame.Position = UDim2.new(1, -160, 0, 0)
	ActionFrame.BackgroundTransparency = 1
	ActionFrame.Parent = ItemFrame

	local ActionLayout = Instance.new("UIListLayout")
	ActionLayout.FillDirection = Enum.FillDirection.Horizontal
	ActionLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
	ActionLayout.VerticalAlignment = Enum.VerticalAlignment.Center
	ActionLayout.Padding = UDim.new(0, 4)
	ActionLayout.Parent = ActionFrame

	local function createCutButton(amount)
		if #word <= amount then return end
		
		local CutBtn = Instance.new("TextButton")
		CutBtn.Size = UDim2.new(0, 26, 0, 24)
		CutBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 180)
		CutBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
		CutBtn.Text = "-"..amount
		CutBtn.Font = Enum.Font.GothamBold
		CutBtn.TextSize = 11
		CutBtn.Parent = ActionFrame

		local CutCorner = Instance.new("UICorner")
		CutCorner.CornerRadius = UDim.new(0, 4)
		CutCorner.Parent = CutBtn

		CutBtn.MouseButton1Click:Connect(function()
			if usedWords[word] then return end 

			CutBtn.BackgroundColor3 = Color3.fromRGB(180, 120, 150)
			CutBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
			
			local cutWord = string.sub(word, amount + 1)
			
			for i = 1, #cutWord do
				local char = string.upper(string.sub(cutWord, i, i))
				local success, keyCode = pcall(function() return Enum.KeyCode[char] end)
				if success and keyCode then
					pcall(function()
						VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
						task.wait(0.01)
						VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
					end)
					task.wait(0.02)
				end
			end
			
			-- AUTO ENTER jika enabled
			if autoEnterEnabled then
				task.wait(0.2)
				pcall(function()
					VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
					task.wait(0.05)
					VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
				end)
			end
			
			task.wait(0.2)
			if CutBtn then
				CutBtn.BackgroundColor3 = Color3.fromRGB(200, 150, 180)
				CutBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
				markAsUsed()
			end
		end)
	end

	createCutButton(1)
	createCutButton(2)
	createCutButton(3)
	createCutButton(4)
	createCutButton(5)
end

-- [ SEARCH FUNCTION ]
function doSearch()
	local query = string.lower(SearchBox.Text)
	clearResults()
	
	if query == "" then
		StatusLabel.Text = "Kamus Aktif: " .. tostring(#wordsDatabase) .. " kata."
		ResultList.CanvasSize = UDim2.new(0, 0, 0, 0)
		return
	end

	local count = 0
	
	if activeTab == "awalan" then
		for _, word in ipairs(wordsDatabase) do
			if string.sub(word, 1, #query) == query then
				createWordItem(word)
				count = count + 1
				if count >= 100 then break end
			end
		end
	else
		for _, word in ipairs(wordsDatabase) do
			if string.sub(word, -#query) == query then
				createWordItem(word)
				count = count + 1
				if count >= 100 then break end
			end
		end
	end

	StatusLabel.Text = "Ditemukan: " .. tostring(count) .. (count >= 100 and "+ (Terbatas 100)" or " kata")
	ResultList.CanvasSize = UDim2.new(0, 0, 0, count * 40)
end

SearchBox:GetPropertyChangedSignal("Text"):Connect(doSearch)

-- [ TAB CLICK HANDLERS ]
TabAwalan.MouseButton1Click:Connect(function()
	activeTab = "awalan"
	TabAwalan.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
	TabAkhiran.BackgroundColor3 = Color3.fromRGB(180, 120, 150)
	SearchBox.PlaceholderText = "Cari huruf awal (A, B, C...)"
	SearchBox.Text = ""
	clearResults()
	doSearch()
end)

TabAkhiran.MouseButton1Click:Connect(function()
	activeTab = "akhiran"
	TabAkhiran.BackgroundColor3 = Color3.fromRGB(200, 150, 170)
	TabAwalan.BackgroundColor3 = Color3.fromRGB(180, 120, 150)
	SearchBox.PlaceholderText = "Cari huruf akhir (X, ISME, EH...)"
	SearchBox.Text = ""
	clearResults()
	doSearch()
end)

-- [ TOGGLE BUTTON EVENT ]
local toggleDragThreshold = 5
local toggleHasMoved = false
local toggleDragging = false

ToggleButton.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		toggleDragging = true
		dragStart = input.Position
		startPos = ToggleButton.Position
		toggleHasMoved = false
		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then 
				toggleDragging = false 
			end
		end)
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		if toggleDragging and dragStart then
			local delta = input.Position - dragStart
			if math.abs(delta.X) > toggleDragThreshold or math.abs(delta.Y) > toggleDragThreshold then
				toggleHasMoved = true
				ToggleButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
				Shadow.Position = UDim2.new(0, -2, 0, 4)
			end
		end
	end
end)

ToggleButton.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		Shadow.Position = UDim2.new(0, -2, 0, -2)
		
		if not toggleHasMoved then
			uiVisible = not uiVisible
			MainFrame.Visible = uiVisible
			
			if not uiVisible then
				ToggleButton.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
				LogoImage.ImageTransparency = 0.5
			else
				ToggleButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
				LogoImage.ImageTransparency = 0
			end
		end
		
		toggleDragging = false
		toggleHasMoved = false
	end
end)

doSearch()

Features & Information

Chose Text Auto enter Kata akhiran Kata awalan
#idk

Community Comments (1)

MemeSspMemeSspMay 19, 2026(edited)

skidd

More Scripts for [LEVEL!] Sambung Kata 💬