null
nil
-
ChatterBlox Plugin
-1
-
false
Main
0
{E27F7F49-26F8-453B-BFC2-0173A59A9D5E}
requiredPosition and (sectionPositions[sectionsTable[lastIndex+2]] or math.huge) > canvasPosY then
if canvasPosY >= requiredPosition then
if current ~= sectionName then
line.Size = UDim2.new(0,0,0,2)
line.Parent = settingsFrame.SettingTitles:FindFirstChild(sectionName)
TweenService:Create(line,TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Size = UDim2.new(.87,0,0,2)}):Play()
current = sectionName
end
break
end
lastIndex += 1
end
end)
game:GetService('RunService').Heartbeat:Connect(function()
MainWindow:WaitForChild('Menu').Scroll.CanvasSize = UDim2.new(0,0,0,MainWindow.Menu.Scroll.UIListLayout.AbsoluteContentSize.Y)
end)
game:GetService('RunService').Heartbeat:Connect(function()
importFrame.Content.CanvasSize = UDim2.new(0,0,0,importFrame.Content.UIListLayout.AbsoluteContentSize.Y)
end)
---Script Importer
local importToSelection = false
importFrame.ISelect.Toggle.MouseButton1Click:Connect(function()
if importToSelection then
importToSelection = false
importFrame.ISelect.Toggle.BackgroundColor3 = Theme.Primary
importFrame.ISelect.Toggle:SetAttribute('BackgroundColor3','Primary')
else
importToSelection = true
importFrame.ISelect.Toggle.BackgroundColor3 = Theme.Accent
importFrame.ISelect.Toggle:SetAttribute('BackgroundColor3','Accent')
end
end)
local function removeSpaces(str)
return str:gsub(" ","")
end
--Main Components
local main = require(script.Main):Clone()
local isMain = true
local isImport = false
local isMarket = false
local isSettings = false
function showSettings(speed)
speed = .1
local transitionInfo = TweenInfo.new(speed,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local mainTween = TweenService:Create(main,transitionInfo,{Position = UDim2.new(-3,0,0,0)})
local importerTween = TweenService:Create(importFrame,transitionInfo,{Position = UDim2.new(-2,0,0,0)})
local marketTween = TweenService:Create(marketFrame,transitionInfo,{Position = UDim2.new(-1,0,0,0)})
local settingsTween = TweenService:Create(settingsFrame,transitionInfo,{Position = UDim2.new(0,0,0,0)})
if editingFrame then
local editingTween = TweenService:Create(editingFrame,transitionInfo,{Position = UDim2.new(-4,0,0,0)})
editingTween:Play()
end
marketTween:Play()
mainTween:Play()
importerTween:Play()
settingsTween:Play()
isMain = false
isImport = false
isMarket = false
isSettings = true
MainWindow.Title = 'Chatterblox - Settings'
creatingName = nil
end
function showImporter(speed)
speed = .1
local transitionInfo = TweenInfo.new(speed,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local mainTween = TweenService:Create(main,transitionInfo,{Position = UDim2.new(-1,0,0,0)})
local importerTween = TweenService:Create(importFrame,transitionInfo,{Position = UDim2.new(0,0,0,0)})
local marketTween = TweenService:Create(marketFrame,transitionInfo,{Position = UDim2.new(1,0,0,0)})
local settingsTween = TweenService:Create(settingsFrame,transitionInfo,{Position = UDim2.new(2,0,0,0)})
if editingFrame then
local editingTween = TweenService:Create(editingFrame,transitionInfo,{Position = UDim2.new(-2,0,0,0)})
editingTween:Play()
end
marketTween:Play()
mainTween:Play()
importerTween:Play()
settingsTween:Play()
isMain = false
isImport = true
isMarket = false
isSettings = false
isSettings = false
MainWindow.Title = 'Chatterblox - Script Importer'
creatingName = nil
end
function showMenu(speed)
speed = .1
local transitionInfo = TweenInfo.new(speed,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local mainTween = TweenService:Create(main,transitionInfo,{Position = UDim2.new(0,0,0,0)})
local importerTween = TweenService:Create(importFrame,transitionInfo,{Position = UDim2.new(1,0,0,0)})
local marketTween = TweenService:Create(marketFrame,transitionInfo,{Position = UDim2.new(2,0,0,0)})
local settingsTween = TweenService:Create(settingsFrame,transitionInfo,{Position = UDim2.new(3,0,0,0)})
if editingFrame then
local editingTween = TweenService:Create(editingFrame,transitionInfo,{Position = UDim2.new(-1,0,0,0)})
editingTween:Play()
end
marketTween:Play()
mainTween:Play()
importerTween:Play()
settingsTween:Play()
isMain = true
isImport = false
isMarket = false
isSettings = false
MainWindow.Title = 'Chatterblox'
creatingName = nil
end
function showEditing(speed)
speed = .1
local transitionInfo = TweenInfo.new(speed,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local mainTween = TweenService:Create(main,transitionInfo,{Position = UDim2.new(1,0,0,0)})
local importerTween = TweenService:Create(importFrame,transitionInfo,{Position = UDim2.new(2,0,0,0)})
local marketTween = TweenService:Create(marketFrame,transitionInfo,{Position = UDim2.new(3,0,0,0)})
local settingsTween = TweenService:Create(settingsFrame,transitionInfo,{Position = UDim2.new(4,0,0,0)})
if editingFrame then
local editingTween = TweenService:Create(editingFrame,transitionInfo,{Position = UDim2.new(0,0,0,0)})
editingTween:Play()
end
marketTween:Play()
mainTween:Play()
importerTween:Play()
settingsTween:Play()
isMain = false
isImport = false
isMarket = false
isSettings = false
MainWindow.Title = 'Chatterblox - Editing "'..editingFrame.Name..'"'
creatingName = nil
end
function showMarket(speed)
speed = .1
local transitionInfo = TweenInfo.new(speed,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local mainTween = TweenService:Create(main,transitionInfo,{Position = UDim2.new(-2,0,0,0)})
local importerTween = TweenService:Create(importFrame,transitionInfo,{Position = UDim2.new(-1,0,0,0)})
local marketTween = TweenService:Create(marketFrame,transitionInfo,{Position = UDim2.new(0,0,0,0)})
local settingsTween = TweenService:Create(settingsFrame,transitionInfo,{Position = UDim2.new(1,0,0,0)})
if editingFrame then
local editingTween = TweenService:Create(editingFrame,transitionInfo,{Position = UDim2.new(-3,0,0,0)})
editingTween:Play()
end
settingsTween:Play()
marketTween:Play()
mainTween:Play()
importerTween:Play()
isMain = false
isImport = false
isSettings = false
isMarket = true
MainWindow.Title = 'Chatterblox - Market'
end
function transition(amount)
if amount then
if not isMain and isImport then
amount -= 1
end
if not isMain and isMarket then
amount -= 2
end
if not isMain and isSettings then
amount -= 3
end
if editingFrame and not isMain and not isImport and not isMarket and not isSettings then
amount += 1
end
if not editingFrame then
amount = math.clamp(amount,-3,0)
else
amount = math.clamp(amount,-3,1)
end
main.Position = UDim2.new(amount,0,0,0)
importFrame.Position = UDim2.new(1+amount,0,0,0)
marketFrame.Position = UDim2.new(2+amount,0,0,0)
settingsFrame.Position = UDim2.new(3+amount,0,0,0)
if editingFrame then
editingFrame.Position = UDim2.new(-1+amount,0,0,0)
end
end
end
--Switching to Script Importer
local startPosition = Vector2.zero
local currentPosition = Vector2.zero
local movedAmount = 0
local function newUser()
plugin:SetSetting('Used',true)
coroutine.wrap(function()
script.SwipingFrame:Clone().Parent = MainWindow
repeat
wait()
until loadedFirst == true
wait(1)
local keepSwiping = true
local transitionValue = Instance.new('NumberValue')
local swipeTween = TweenService:Create(transitionValue,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{Value = -.2})
local backTween = TweenService:Create(transitionValue,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Value = 0})
local swipeMouseTween = TweenService:Create(MainWindow.SwipingFrame.Mouse,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{Position = UDim2.new(0.218, 0,1.137, 0)})
local backMouseTween = TweenService:Create(MainWindow.SwipingFrame.Mouse,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Position = UDim2.new(0.418, 0,1.137, 0)})
local function fadeOut()
if not MainWindow:FindFirstChild('SwipingFrame') then
return
end
TweenService:Create(MainWindow.SwipingFrame.Mouse,TweenInfo.new(.15,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{BackgroundTransparency = 1}):Play()
TweenService:Create(MainWindow.SwipingFrame.Mouse.UIStroke,TweenInfo.new(.15,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 1}):Play()
end
local function fadeIn()
if not MainWindow:FindFirstChild('SwipingFrame') then
return
end
TweenService:Create(MainWindow.SwipingFrame.Mouse,TweenInfo.new(.15,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{BackgroundTransparency = 0}):Play()
TweenService:Create(MainWindow.SwipingFrame.Mouse.UIStroke,TweenInfo.new(.15,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 0}):Play()
end
coroutine.wrap(function()
while true do
if not keepSwiping then
break
end
fadeIn()
swipeTween:Play()
swipeMouseTween:Play()
wait(1.4)
if not keepSwiping then
break
end
backTween:Play()
backMouseTween:Play()
coroutine.wrap(function()
backMouseTween.Completed:Wait()
fadeOut()
end)()
wait(1.4)
end
end)()
main.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
keepSwiping = false
if MainWindow:FindFirstChild('SwipingFrame') then
MainWindow.SwipingFrame:Destroy()
else
return
end
end
end)
repeat
transition(transitionValue.Value)
wait()
until keepSwiping == false
backTween:Play()
transitionValue:Destroy()
return
end)()
end
if not plugin:GetSetting('Used') then
newUser()
end
game:GetService('RunService').Heartbeat:Connect(function()
if not settingsVals.swipingAndScrolling then
move = false
end
end)
main.InputBegan:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 and not processed then
startPosition = Vector2.new(object.Position.X,object.Position.Y)
move = true
movedAmount = 0
end
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
if editingFrame then
showEditing()
end
elseif object.Position.Z == -1 then
showImporter()
end
end
end
end)
main.InputChanged:Connect(function(object,processed)
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
if editingFrame then
showEditing()
end
elseif object.Position.Z == -1 then
showImporter()
end
end
end
end)
main.InputEnded:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
move = false
if movedAmount > 0 then
if not editingFrame then
showMenu(1-movedAmount)
elseif movedAmount > .5 then
showEditing()
else
showMenu()
end
elseif movedAmount >= -.5 then
showMenu()
end
if movedAmount < -.5 and movedAmount >= -1.5 then
showImporter(1-movedAmount)
end
if movedAmount < -1.5 then
if movedAmount < -2.5 then
showSettings()
else
showMarket()
end
end
movedAmount = 0
end
end)
importFrame.InputBegan:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 and not processed then
startPosition = Vector2.new(object.Position.X,object.Position.Y)
move = true
end
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showMenu()
elseif object.Position.Z == -1 then
showMarket()
end
end
end
end)
importFrame.InputChanged:Connect(function(object, processed)
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showMenu()
elseif object.Position.Z == -1 then
showMarket()
end
end
end
end)
importFrame.InputEnded:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
move = false
if movedAmount > 0 then
if not editingFrame then
showMenu(1-movedAmount)
elseif movedAmount > .5 then
showEditing()
else
showMenu()
end
elseif movedAmount >= -.5 then
showMenu()
end
if movedAmount < -.5 and movedAmount > -1.5 then
showImporter(1-movedAmount)
end
if movedAmount < -1.5 then
if movedAmount < -2.5 then
showSettings()
else
showMarket()
end
end
movedAmount = 0
end
end)
editingChangedEvent.Event:Connect(function()
editingFrame.InputBegan:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 and not processed then
startPosition = Vector2.new(object.Position.X,object.Position.Y)
move = true
end
if object.UserInputType == Enum.UserInputType.MouseWheel then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == -1 then
showMenu()
end
end
end
end)
editingFrame.InputChanged:Connect(function(object, processed)
if object.UserInputType == Enum.UserInputType.MouseWheel then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == -1 then
showMenu()
end
end
end
end)
editingFrame.InputEnded:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
move = false
if movedAmount > 0 then
if not editingFrame then
showMenu(1-movedAmount)
elseif movedAmount > .5 then
showEditing()
else
showMenu()
end
elseif movedAmount >= -.5 then
showMenu()
end
if movedAmount < -.5 and movedAmount > -1.5 then
showImporter(1-movedAmount)
end
if movedAmount < -1.5 then
if movedAmount < -2.5 then
showSettings()
else
showMarket()
end
end
movedAmount = 0
end
end)
end)
marketFrame.InputBegan:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 and not processed then
startPosition = Vector2.new(object.Position.X,object.Position.Y)
move = true
movedAmount = 0
end
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showImporter()
elseif object.Position.Z == -1 then
showSettings()
end
end
end
end)
marketFrame.InputChanged:Connect(function(object, processed)
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showImporter()
elseif object.Position.Z == -1 then
showSettings()
end
end
end
end)
marketFrame.InputEnded:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
move = false
if movedAmount > 0 then
if not editingFrame then
showMenu(1-movedAmount)
elseif movedAmount > .5 then
else
showMenu()
end
elseif movedAmount >= -.5 then
--showMenu()
end
if movedAmount < -.5 and movedAmount > -1.5 then
showImporter(1-movedAmount)
end
if movedAmount < -1.5 then
if movedAmount < -2.5 then
showSettings()
else
showMarket()
end
end
movedAmount = 0
end
end)
settingsFrame.InputBegan:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 and not processed then
startPosition = Vector2.new(object.Position.X,object.Position.Y)
move = true
movedAmount = 0
end
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showMarket()
end
end
end
end)
settingsFrame.InputChanged:Connect(function(object, processed)
if object.UserInputType == Enum.UserInputType.MouseWheel and not processed then
if object.Position.Y <= main.TitleBar.AbsoluteSize.Y then
if object.Position.Z == 1 then
showMarket()
end
end
end
end)
settingsFrame.InputEnded:Connect(function(object: InputObject,processed)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
move = false
if movedAmount > 0 then
if not editingFrame then
showMenu(1-movedAmount)
elseif movedAmount > .5 then
showEditing()
else
showMenu()
end
elseif movedAmount >= -.5 then
showMenu()
end
if movedAmount < -.5 and movedAmount < -1.5 then
showImporter(1-movedAmount)
end
if movedAmount < -1.5 then
if movedAmount < -2.5 then
showSettings()
else
showMarket()
end
end
movedAmount = 0
end
end)
game:GetService('RunService').Heartbeat:Connect(function()
if move then
currentPosition = MainWindow:GetRelativeMousePosition()
local differenceX = startPosition.X - currentPosition.X
local windowSizeX = MainWindow.AbsoluteSize.X
local moveAmount = -(differenceX / windowSizeX)
movedAmount = moveAmount
if not isMain then
movedAmount -= 1
end
if isMarket then
movedAmount -= 1
end
if isSettings then
movedAmount -= 2
end
if editingFrame and not isMain and not isImport then
movedAmount += 2
end
transition(moveAmount)
end
end)
game:GetService('RunService').Heartbeat:Connect(function()
if settingsVals.itemSizeDetailed then
for i,v in pairs(main.Scroll:GetChildren()) do
if v:IsA('Frame') then
v.Size = UDim2.new(1,0,0,55)
v.Edit.Size = UDim2.new(0,37,0,37)
v.Delete.Size = UDim2.new(0,37,0,37)
v.Duplicate.Size = UDim2.new(0,37,0,37)
v.Edit.Position = UDim2.new(0.62, 0,0.454, 0)
v.Delete.Position = UDim2.new(0.77, 0,0.454, 0)
v.Duplicate.Position = UDim2.new(0.92, 0,0.454, 0)
v.Duplicate.Visible = true
v.Delete.Visible = true
v.More.Visible = false
v.Edit.edit.ImageColor3 = Color3.fromRGB(255,255,255)
v.More.ImageColor3 = Color3.fromRGB(255,255,255)
v.Edit.BackgroundTransparency = 0
v.Edit.edit.UIGradient.Enabled = true
v.Edit.UIStroke.UIGradient.Enabled = true
v.Delete.BackgroundTransparency = 0
v.Duplicate.BackgroundTransparency = 0
v.Title.TextScaled = false
v.Title.TextSize = 20
end
end
for i,v in pairs(importFrame.Content:GetChildren()) do
if v:IsA('Frame') then
v.Size = UDim2.new(1,0,0,55)
v.Title.TextSize = 20
v.Update.UIStroke.Enabled = true
v.Import.UIStroke.Enabled = true
v.Update.Image.UIGradient.Enabled = true
v.Import.Image.UIGradient.Enabled = true
v.Import.Image.Size = UDim2.new(.5,0,.5,0)
v.Update.Image.Size = UDim2.new(.5,0,.5,0)
end
end
else
for i,v in pairs(main.Scroll:GetChildren()) do
if v:IsA('Frame') then
v.Size = UDim2.new(1,0,0,25)
v.Edit.Size = UDim2.new(0,20,0,20)
v.Delete.Size = UDim2.new(0,20,0,20)
v.Duplicate.Size = UDim2.new(0,20,0,20)
v.Edit.BackgroundTransparency = 1
v.Delete.BackgroundTransparency = 1
v.Duplicate.BackgroundTransparency = 1
v.Edit.Position = UDim2.new(0.8, 0,0.454, 0)
v.Edit.edit.UIGradient.Enabled = false
v.Edit.UIStroke.UIGradient.Enabled = false
v.Edit.edit.ImageColor3 = Theme.Text
v.More.ImageColor3 = Theme.Text
v.Duplicate.Visible = false
v.Delete.Visible = false
v.More.Visible = true
v.Title.TextScaled = false
v.Title.TextSize = 14
end
end
for i,v in pairs(importFrame.Content:GetChildren()) do
if v:IsA('Frame') then
v.Size = UDim2.new(1,0,0,25)
v.Title.TextSize = 14
v.Update.UIStroke.Enabled = false
v.Import.UIStroke.Enabled = false
v.Update.Image.UIGradient.Enabled = false
v.Import.Image.UIGradient.Enabled = false
v.Import.Image.Size = UDim2.new(0,15,0,15)
v.Update.Image.Size = UDim2.new(0,15,0,15)
end
end
end
end)
local firstTimeShown = true
local function showThemeColours()
local themeName
for i,v in pairs(Themes) do
if v == Theme then
themeName = i
end
end
plugin:SetSetting('Theme',themeName)
currentTheme = themeName
for name,colour in pairs(Theme) do
if script.Parent.ThemeColour:FindFirstChild(name) then
script.Parent.ThemeColour:FindFirstChild(name).Value = colour
end
end
coroutine.wrap(function()
for i,win in Window.windows do
coroutine.wrap(function()
local themeUpdate = script.ThemeUpdate:Clone()
local count = 0
local current = 0
for index,object in win:GetDescendants() do
for aName,val in pairs(object:GetAttributes()) do
if hasProperty(object,aName) then
count += 1
break
end
end
end
coroutine.wrap(function()
while true do
wait()
local percentage = current/count
end
end)()
themeUpdate.BackgroundColor3 = Theme.Background
themeUpdate.Title.TextColor3 = Theme.Text
themeUpdate.BackgroundTransparency = 1
themeUpdate.Title.TextTransparency = 1
if firstTimeShown then
firstTimeShown = false
themeUpdate.Title.Text = 'Loading...'
else
themeUpdate.Title.Text = 'Applying Theme'
end
if Theme.Font then
local weight = themeUpdate.Title.FontFace.Weight
local weightName = ''
local weightItems = Enum.FontWeight:GetEnumItems()
for intVal,enumName in pairs(weightItems) do
if enumName.Name == weight.Name then
weightName = enumName.Name
break
end
end
themeUpdate.Title.Font = Enum.Font.Arial
if weightName == 'Bold' then
themeUpdate.Title.FontFace = Font.new('rbxasset://fonts/families/'..themeUpdate.Title.Font.Name..'.json',Enum.FontWeight[weightName])
end
themeUpdate.Title.FontFace = Font.new('rbxasset://fonts/families/'..themeUpdate.Title.Font.Name..'.json',Enum.FontWeight[weightName])
else
local weight = themeUpdate.Title.FontFace.Weight
local weightName = ''
local weightItems = Enum.FontWeight:GetEnumItems()
for intVal,enumName in pairs(weightItems) do
if enumName.Name == weight.Name then
weightName = enumName.Name
break
end
end
themeUpdate.Title.Font = Enum.Font.Arial
if weightName == 'Bold' then
themeUpdate.Title.FontFace = Font.new('rbxasset://fonts/families/'..themeUpdate.Title.Font.Name..'.json',Enum.FontWeight[weightName])
end
end
task.wait()
themeUpdate.Parent = win
local backTweenInfo = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local backTween = TweenService:Create(themeUpdate,backTweenInfo,{BackgroundTransparency = 0})
backTween:Play()
local textTween = TweenService:Create(themeUpdate.Title,backTweenInfo,{TextTransparency = 0})
textTween:Play()
backTween.Completed:Wait()
for index,object in win:GetDescendants() do
if object:IsA('GuiObject') or object:IsA('UIStroke') then
local attributes = object:GetAttributes()
for aName,attribute in attributes do
if hasProperty(object, aName) then
if typeof(object[aName]) == 'Color3' then
local themeColour = Theme[attribute]
if themeColour then
object[aName] = Theme[attribute]
end
--wait()
end
end
end
current += 1
end
if Theme.Font then
if object:IsA('TextLabel') or object:IsA('TextButton') then
local weight = object.FontFace.Weight
local weightName = ''
local weightItems = Enum.FontWeight:GetEnumItems()
for intVal,enumName in pairs(weightItems) do
if enumName.Name == weight.Name then
weightName = enumName.Name
break
end
end
object.FontFace = Font.new('rbxasset://fonts/families/'..object.Font.Name..'.json',Enum.FontWeight[weightName])
end
elseif object:IsA('TextLabel') or object:IsA('TextButton') then
local weight = object.FontFace.Weight
local weightName = ''
local weightItems = Enum.FontWeight:GetEnumItems()
for intVal,enumName in pairs(weightItems) do
if enumName.Name == weight.Name then
weightName = enumName.Name
break
end
end
object.Font = Enum.Font.Arial
object.FontFace = Font.new('rbxasset://fonts/families/Arial.json',Enum.FontWeight[weightName])
end
end
wait(3)
local backTween = TweenService:Create(themeUpdate,backTweenInfo,{BackgroundTransparency = 1})
backTween:Play()
local textTween = TweenService:Create(themeUpdate.Title,backTweenInfo,{TextTransparency = 1})
textTween:Play()
loadedFirst = true
end)()
end
end)()
for index,object in script.Parent:GetDescendants() do
if not object.Parent:GetAttribute('Type') then
if object:IsA('GuiObject') then
local attributes = object:GetAttributes()
for aName,attribute in attributes do
if hasProperty(object, aName) then
if typeof(object[aName]) == 'Color3' then
local themeColour = Theme[attribute]
if themeColour then
object[aName] = Theme[attribute]
end
wait()
end
end
end
end
end
end
local object = main
local attributes = object:GetAttributes()
for aName,attribute in attributes do
if hasProperty(object, aName) then
if typeof(object[aName]) == 'Color3' then
local themeColour = Theme[attribute]
if themeColour then
object[aName] = Theme[attribute]
end
end
end
end
end
local function createTab(preFolder,ui,showEditingFirst,name,nodes,lines)
local event
if not name and not creatingName then
event = UITab:Create('New',{{'Name','Dialogue'}},'Chatterblox')
end
local function create(propTable)
if creatingName then
propTable.Name = creatingName
end
if propTable['Name']:match(' ') then
local newName = ''
local words = propTable['Name']:split(' ')
for i,v in pairs(words) do
if i ~= 1 then
v = v:sub(1,1):upper()..v:sub(2,-1)
end
newName = newName..v
end
propTable['Name'] = newName
end
propTable['Name'] = removeSpaces(propTable['Name'])
if not Window:Get('Chatterblox'):FindFirstChild(propTable.Name) then
local Temp = temp:Clone()
Temp.Title.Text = propTable['Name']
Temp.Name = propTable['Name']
local tempCount = #main.Scroll:GetChildren()-1
tempCount += 1
if tempCount % 2 == 0 then
Temp.BackgroundColor3 = Theme.Background
Temp:SetAttribute('BackgroundColor3','Background')
else
Temp.BackgroundColor3 = Theme.Primary
Temp:SetAttribute('BackgroundColor3','Primary')
end
Temp.Edit.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Delete.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Edit.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Edit.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Edit.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Delete.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Delete
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
Temp.Edit.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Edit
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local frame = Window:Get('Chatterblox'):FindFirstChild(propTable.Name)
for i,v in pairs(Window:Get('Chatterblox'):GetChildren()) do
if v:IsA('Frame') and (v.Name ~= 'Menu' and v.Name ~= 'Import' and v.Name ~= 'Market' and v.Name ~='Settings') then
v.Visible = false
end
end
editingFrame = frame
frame.Position = UDim2.new(-1,0,0,0)
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).Visible = true
showEditing()
end)
Temp.Delete.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Delete
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
local function deleteDialogue()
local interacted = UITab:CreateBool('Delete '..propTable['Name'],'Are you sure you would like to delete '..propTable['Name']..'?','Chatterblox','Delete','Cancel')
interacted:Connect(function(delete)
if delete then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(propTable['Name']):Destroy()
Temp:Destroy()
Window:Get('Chatterblox'):FindFirstChild(propTable['Name']):Destroy()
if importFrame.Content:FindFirstChild(propTable['Name']) then
importFrame.Content:FindFirstChild(propTable['Name']):Destroy()
end
end
end)
end
Temp.Delete.MouseButton1Click:Connect(deleteDialogue)
local newFolder = preFolder or Instance.new('Folder')
local folder
if not game.ReplicatedStorage:FindFirstChild('DialogueContainer') then
folder = Instance.new('Folder',game.ReplicatedStorage)
folder.Name = 'DialogueContainer'
end
Temp.Duplicate.MouseButton1Click:Connect(function()
local clone = newFolder:Clone()
clone.Name = Temp.Name..'Copy'
clone.Parent = game.ReplicatedStorage.DialogueContainer
createTab(clone)
end)
if ui then
ui = ui:Clone()
ui.Parent = newFolder
ui.Name = propTable.Name
end
if nodes then
nodes = nodes:Clone()
nodes.Parent = newFolder
nodes.Name = 'Nodes'
end
if lines then
lines = lines:Clone()
lines.Parent = newFolder
lines.Name = 'Lines'
end
Temp.Duplicate.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Duplicate.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Duplicate.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Duplicate.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
newFolder.Name = propTable['Name']
newFolder.Parent = game.ReplicatedStorage.DialogueContainer
local nodesFolder = Instance.new('Folder')
if nodes then
nodesFolder = nodes
end
nodesFolder.Name = 'Nodes'
if not preFolder then
nodesFolder.Parent = newFolder
end
if folder then
local MoveEvent = Instance.new('RemoteEvent')
MoveEvent.Name = 'MoveToServer'
MoveEvent.Parent = folder
local ActionServer = Instance.new('RemoteEvent')
ActionServer.Name = 'ActionServer'
ActionServer.Parent = folder
local ActionRServer = Instance.new('RemoteEvent')
ActionRServer.Name = 'ActionServerRecieve'
ActionRServer.Parent = folder
local SplitServer = Instance.new('RemoteEvent')
SplitServer.Name = 'SplitServer'
SplitServer.Parent = folder
local SplitEvent = Instance.new('BindableEvent')
SplitEvent.Name = 'Split'
SplitEvent.Parent = folder
local ActionEvent = Instance.new('BindableEvent')
ActionEvent.Name = 'ActionEvent'
ActionEvent.Parent = folder
local SplitREvent = Instance.new('BindableEvent')
SplitREvent.Name = 'SplitRecieve'
SplitREvent.Parent = folder
local mScript = script.MoveToServer:Clone()
mScript.Parent = game.ServerScriptService
mScript.Disabled = false
end
local LinesConfig = Instance.new('Configuration')
if lines then
LinesConfig = lines
end
LinesConfig.Name = 'Lines'
if not preFolder then
LinesConfig.Parent = newFolder
end
Temp.Parent = main.Scroll
local dialogueFolder = Instance.new('Folder')
dialogueFolder.Name = Temp.Title.Text
if not game.ReplicatedStorage:FindFirstChild('DialogueContainer') then
local folder = Instance.new('Folder',game.ReplicatedStorage)
folder.Name = 'DialogueContainer'
dialogueFolder.Parent = folder
end
local win = Window:Get('Chatterblox')
local editClone = script.DialogueEdit:Clone()
editClone.Parent = win
editClone.Name = propTable.Name
local dialogue = Tabs:Create('Dialogue',script.DImage:Clone().UIGradient.Color,false,propTable['Name'],script.DImage:Clone(),false,true)
local appearence = Tabs:Create('Appearance',script.ApImage:Clone().UIGradient.Color,false,propTable['Name'],script.ApImage:Clone(),false,true)
local advanced = Tabs:Create('Advanced',script.AdImage:Clone().UIGradient.Color,false,propTable['Name'],script.AdImage:Clone(),false,true)
local colour = Tabs:Create('Colour',script.CImage:Clone().UIGradient.Color,false,propTable['Name'],script.CImage:Clone(),true,true)
local search = Tabs:Create('Search',script.SImage:Clone().UIGradient.Color,false,propTable['Name'],script.SImage:Clone(),true,true)
local bTable = {dialogue,appearence,advanced}
for i,button in pairs(bTable) do
button.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
end
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).ColourFrame:Destroy()
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).CFrame.Name = 'ColourFrame'
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).SearchFrame:Destroy()
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).InstanceFrame.Name = 'SearchFrame'
appearence.MouseButton1Click:Connect(function()
Tabs:Select('Appearance',propTable['Name'])
end)
dialogue.MouseButton1Click:Connect(function()
Tabs:Select('Dialogue',propTable['Name'])
end)
advanced.MouseButton1Click:Connect(function()
Tabs:Select('Advanced',propTable['Name'])
end)
local frame = Window:Get('Chatterblox'):FindFirstChild(propTable.Name)
for i,v in pairs(Window:Get('Chatterblox'):GetChildren()) do
if v:IsA('Frame') and (v.Name ~= 'Menu' and v.Name ~= 'Import' and v.Name ~= 'Market' and v.Name ~='Settings') then
v.Visible = false
end
end
editingFrame = frame
frame.Position = UDim2.new(-1,0,0,0)
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).Visible = true
----[[Appearance Settings]]--
if not settingsVals.recommendedDialogueSettings then
Settings:Create('Appearance','Background','Colour',{},propTable['Name'],nil,'Background Colour')
Settings:Create('Appearance','Text','Colour',{},propTable['Name'],nil,'Text Colour')
Settings:Create('Appearance','NPC Model','Instance',{Filter = {'Model'}},propTable['Name'])
Settings:Create('Appearance','Speed','Number',{Max = 100, Round = 1},propTable['Name'])
Settings:Create('Appearance','Title','String',{Deafault = ''},propTable['Name'])
else
Settings:Create('Appearance','Background','Colour',{},propTable['Name'],nil,'Background Colour')
Settings:Create('Appearance','Text','Colour',{},propTable['Name'],nil,'Text Colour')
Settings:Create('Appearance','NPC Model','Instance',{Filter = {'Model'}},propTable['Name'])
Settings:Create('Appearance','Speed','Number',{Max = 100, Round = 1},propTable['Name'])
Settings:Create('Appearance','Title','String',{Deafault = ''},propTable['Name'])
end
----[[Advanced Settings]]--
if not settingsVals.recommendedDialogueSettings then
Settings:Create('Advanced','Gradient Colour 1','Colour',{},propTable['Name'],nil,'Background Gradient Colour 1')
Settings:Create('Advanced','Gradient Colour 2','Colour',{},propTable['Name'],nil,'Background Gradient Colour 2')
Settings:Create('Advanced','Pause Characters','String',{Deafault = ''},propTable['Name'])
Settings:Create('Advanced','Pause Wait','Number',{Max = 10, Round = 2},propTable['Name'])
Settings:Create('Advanced','Overwrite Appearance Settings','Bool',{Colour = Color3.fromRGB(189, 21, 255)},propTable['Name'])
else
Settings:Create('Advanced','Gradient Colour 1','Colour',{},propTable['Name'],nil,'Background Gradient Colour 1')
Settings:Create('Advanced','Gradient Colour 2','Colour',{},propTable['Name'],nil,'Background Gradient Colour 2')
Settings:Create('Advanced','Pause Characters','String',{Deafault = '!.,?'},propTable['Name'])
Settings:Create('Advanced','Pause Wait','Number',{Max = 10, Round = 2, Deafault = 1},propTable['Name'])
Settings:Create('Advanced','Overwrite Appearance Settings','Bool',{Colour = Color3.fromRGB(189, 21, 255), Deafault = true},propTable['Name'])
end
local ui = script.DialogueUI:Clone()
ui.Parent = script
local advancedUI = script.Custom:Clone()
advancedUI.Name = 'UIEdit'
advancedUI.Title.Text = 'Advanced UI Edit'
advancedUI.Value.Text = 'Edit'
advancedUI.Parent = Window:Get('Chatterblox'):FindFirstChild(propTable.Name).AdvancedFrame
local importCount = #Window:Get('Chatterblox'):FindFirstChild(propTable.Name).AdvancedFrame:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
advancedUI.BackgroundColor3 = Theme.Background
advancedUI:SetAttribute('BackgroundColor3','Background')
else
advancedUI.BackgroundColor3 = Theme.Primary
advancedUI:SetAttribute('BackgroundColor3','Primary')
advancedUI.Value.BackgroundColor3 = Theme.Background
advancedUI.Value:SetAttribute('BackgroundColor3','Background')
end
advancedUI.Value.MouseButton1Click:Connect(function()
local editUI = script.AdvancedUI:Clone()
editUI.Parent = game:GetService('CoreGui')
local u = game.ReplicatedStorage.DialogueContainer:FindFirstChild(propTable['Name']):FindFirstChildWhichIsA('ScreenGui') or script.DialogueUI
local ui = u:Clone()
ui.Name = propTable['Name']
if not ui then
ui = script.DialogueUI:Clone()
end
ui.Name = propTable['Name']
local mFrame = ui.Dialogue.MessageFrame
mFrame.BackgroundTransparency = 0
mFrame.MessageText.TextTransparency = 0
mFrame.MessageText.Text = 'Dialogue Text'
mFrame.Title.Text = 'Title'
local response = ui.Dialogue.Response
response.Parent = mFrame.Options
response.Size = UDim2.new(0.485, 0,0.18, 0)
mFrame.Parent = ui
local clone = ui
clone.Parent = game.StarterGui
clone.Name = propTable['Name']..' Edit'
Selection:Set({clone})
local function close()
clone.Name = ui.Name:sub(1,-6)
mFrame.BackgroundTransparency = 0
mFrame.BackgroundTransparency = 1
mFrame.MessageText.Text = ''
response.Size = UDim2.new(0,0,.18,0)
response.Parent = clone.Dialogue
mFrame.Parent = clone.Dialogue
clone.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(propTable['Name'])
editUI:Destroy()
end
editUI.Close.MouseButton1Click:Connect(close)
editUI.Help.MouseButton1Click:Connect(function()
if editUI.HelpFrame.Visible == true then
editUI.HelpFrame.Visible = false
else
editUI.HelpFrame.Visible = true
end
end)
end)
----[[Dialogue Settings]]--
local custom = require(script.CustomSetting):Clone()
custom.Title.Text = 'Dialogue Tree'
custom.Name = 'Dialogue'
custom.Value.Text = 'Edit'
custom:SetAttribute('BackgroundColor3','Background')
custom.BackgroundColor3 = Theme.Background
custom.Parent = editClone.DialogueFrame
local editButton = custom.Value
local editorFrame = script.ChatEditor:Clone()
Window:Create(propTable['Name'] .. ' Editor',UDim2.new(0, 891,0, 482),editButton.MouseButton1Click,{editorFrame})
local editorWindow = Window:Get(propTable['Name'] .. ' Editor')
editButton.MouseButton1Click:Connect(function()
editorWindow.Enabled = true
end)
local colours = {[5] = Color3.fromRGB(0, 170, 255),[1] = Color3.fromRGB(170, 0, 255),[3] = Color3.fromRGB(255, 28, 28),[4] = Color3.fromRGB(255, 255, 0),[6] = Color3.fromRGB(0, 255, 0),[2] = Color3.fromRGB(0, 170, 255)}
game:GetService('RunService').Heartbeat:Connect(function()
if editorWindow then
for i,node in pairs(editorFrame.Pan:GetChildren()) do
if node:GetAttribute('Type') then
for i,v in pairs(node:GetChildren()) do
if settingsVals.nodeColoursColourful then
if v:IsA('UIStroke') then
v.Color = colours[node:GetAttribute('Type')]
end
if v.Name:match('Connect') then
v.BackgroundColor3 = colours[node:GetAttribute('Type')]
end
if v.Name == 'Server' or v.Name == 'ClickAd' then
if v.BackgroundColor3 == Theme.Accent then
v.BackgroundColor3 = v.Parent.UIStroke.Color
end
end
if v:FindFirstChildWhichIsA('UIStroke') then
v:FindFirstChildWhichIsA('UIStroke').Color = colours[node:GetAttribute('Type')]
end
else
if v:IsA('UIStroke') then
v.Color = Theme.Accent
end
if v.Name:match('Connect') then
v.BackgroundColor3 = Theme.Accent
end
if v.Name == 'Server' or v.Name == 'ClickAd' then
if v.BackgroundColor3 == v.Parent.UIStroke.Color then
v.BackgroundColor3 = Theme.Accent
end
end
if v:FindFirstChildWhichIsA('UIStroke') then
v:FindFirstChildWhichIsA('UIStroke').Color = Theme.Accent
end
end
end
end
if node.Name:match('Line') then
if settingsVals.nodeColoursColourful then
for i,v in pairs(node:GetDescendants()) do
if v:IsA('UIGradient') then
v.Enabled = true
end
if v:IsA('Frame') or v:IsA('TextButton') then
v.BackgroundColor3 = Color3.fromRGB(255,255,255)
end
end
node.BackgroundColor3 = Color3.fromRGB(255,255,255)
else
for i,v in pairs(node:GetDescendants()) do
if v:IsA('UIGradient') then
v.Enabled = false
end
if v:IsA('Frame') or v:IsA('TextButton') then
v.BackgroundColor3 = Theme.Accent
end
end
end
end
end
if settingsVals.nodeColoursColourful then
editorWindow.ChatEditor.Show.Image.UIGradient.Enabled = true
editorWindow.ChatEditor.Show.Image.ImageColor3 = Color3.fromRGB(255,255,255)
editorWindow.ChatEditor.Show.Image:SetAttribute('ImageColor3',nil)
editorWindow.ChatEditor.Show.UIStroke.UIGradient.Enabled = true
editorWindow.ChatEditor.Show.UIStroke.Color = Color3.fromRGB(255,255,255)
editorWindow.ChatEditor.Show.UIStroke:SetAttribute('Color',nil)
else
editorWindow.ChatEditor.Show.Image.UIGradient.Enabled = false
editorWindow.ChatEditor.Show.Image.ImageColor3 = Theme.Accent
editorWindow.ChatEditor.Show.Image:SetAttribute('ImageColor3','Accent')
editorWindow.ChatEditor.Show.UIStroke.UIGradient.Enabled = false
editorWindow.ChatEditor.Show.UIStroke.Color = Theme.Accent
editorWindow.ChatEditor.Show.UIStroke:SetAttribute('Color','Accent')
end
else
return
end
end)
if showEditingFirst then
local frame = Window:Get('Chatterblox'):FindFirstChild(propTable.Name)
for i,v in pairs(Window:Get('Chatterblox'):GetChildren()) do
if v:IsA('Frame') and (v.Name ~= 'Menu' and v.Name ~= 'Import' and v.Name ~= 'Market' and v.Name ~='Settings') then
v.Visible = false
end
end
editingFrame = frame
frame.Position = UDim2.new(-1,0,0,0)
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).Visible = true
showEditing()
end
--Chat Editor
local editorFolder = Instance.new('Folder')
editorFolder.Name = 'DialogueTree'
if not preFolder then
editorFolder.Parent = newFolder
end
--Open node create menu
local enabled = false
local TweenService = game:GetService('TweenService')
local goal = {Size = UDim2.new(0, 158,0, 199)}
local reverseGoal = {Size = UDim2.new(0.996, 0,0.03, 0)}
local nodeFrameInfo = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local nodeFrame = editorFrame.CreateNode.NodeFrame
editorFrame.CreateNode.MouseButton1Click:Connect(function()
if enabled == false then
enabled = true
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,goal)
tween:Play()
else
enabled = false
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,reverseGoal)
tween:Play()
end
end)
for index,child in pairs(nodeFrame:GetChildren()) do
if child:IsA('TextButton') then
child.MouseButton1Click:Connect(function()
enabled = false
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,reverseGoal)
tween:Play()
end)
end
end
--------
local editorScript = script.NodeEditor:Clone()
editorScript.Parent = editorFrame
local NodeEditor = require(editorScript)
NodeEditor:InitWindow(editorWindow)
NodeEditor:Init(plugin)
NodeEditor:SetFolderName(propTable['Name'])
NodeEditor:InitWindowMod(script.Parent.Window)
local frame = editorFrame.Pan
local moved = UDim2.new(0,0,0,0)
local UserInputService = game:GetService('UserInputService')
editorFrame.Pan.Grid.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton2 then
local snapMessage,gridMessage
if NodeEditor.Snap == true then
snapMessage = 'Disable Snap'
else
snapMessage = 'Enable Snap'
end
if editorFrame.Pan.Grid.ImageTransparency == 1 then
gridMessage = 'Show Grid'
else
gridMessage = 'Hide Grid'
end
local clickPos = editorWindow:GetRelativeMousePosition()
local newNode = NodeEditor:OpenContext({'New...','-',snapMessage,gridMessage,'-','Center Editor','Reset Zoom',['New...'] = {'Root','Display','Response','Split','Action','Close'}},clickPos)
local nodeName = newNode.Event:Wait()
local enabled = false
if NodeEditor.NodeType[nodeName] ~= nil then
enabled = true
end
if nodeName == 'Center Editor' then
editorFrame.Pan.Position = UDim2.new(0, -1064,0, -1064)
editorFrame.ToolsFrame.Pos.Text.Text = '0,0'
end
if nodeName:sub(-4,-1) == 'Snap' then
if NodeEditor.Snap == true then
NodeEditor.Snap = false
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = true
else
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = false
NodeEditor.Snap = true
end
end
if nodeName:sub(-4,-1) == 'Grid' then
if editorFrame.Pan.Grid.ImageTransparency == 1 then
editorFrame.Pan.Grid.ImageTransparency = 0
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = false
else
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = true
editorFrame.Pan.Grid.ImageTransparency = 1
end
end
local folderName = propTable['Name']
if enabled == true then
local found = 0
for index, value in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:GetChildren()) do
if value.Name:match(nodeName:gsub('%d+','')) then
if tonumber(value.Name:gsub('%a','')) >= found then
found = tonumber(value.Name:gsub('%a',''))
end
end
end
found += 1
while true do
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild(nodeName..found) then
found += 1
else
break
end
wait()
end
local Name = nodeName..found
local node = NodeEditor.new(NodeEditor.NodeType[nodeName],Name)
local moving = false
node.UI.Name = Name
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
NodeEditor.Snap = false
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
NodeEditor.Snap = true
else
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
end
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
node.UI.Button.MouseButton1Down:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.DeleteFrame.Visible = true
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
mouseDown = true
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
--node.UI.Connect.InputEnded:Connect(function(object)
-- if object.UserInputType == Enum.UserInputType.MouseButton1 then
-- end
--end)
end)
end
end
end)
local v = newFolder
local loadedEvent = Instance.new('BindableEvent')
local loading = true
local function loadNodes()
local childCount = 0
for ind,val in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChild('Nodes'):GetChildren()) do
childCount+=1
end
if childCount > 0 then
for ind,val in pairs(editorFrame.Pan:GetChildren()) do
if val:GetAttribute('Type') then
val:Destroy()
end
end
local allMax = #v.Nodes:GetChildren() + #v.Lines:GetChildren()
local allCount = 0
local nodeCount = #v.Nodes:GetChildren()
local count = 0
coroutine.wrap(function()
while true do
wait()
editorFrame.LoadingFrame.Bar.Frame.Size = UDim2.new(allCount/allMax,0,1,0)
end
end)()
for index,value in pairs(v.Nodes:GetChildren()) do
if not editorFrame.Pan:FindFirstChild(value.Name) then
task.wait(.003)
local nodeType = value:GetAttribute('Type')
local pos = value:GetAttribute('Position')
local node = NodeEditor.new(nodeType,value.Name,false)
--Node Context Menu
--End of Node Context Menu
for ind,val in pairs(value:GetAttributes()) do
node.UI:SetAttribute(ind,val)
end
if value:GetAttribute('Type') ~= 6 and value:GetAttribute('Type') ~= 1 and value:GetAttribute('Type') ~= 2 then
local T = value:FindFirstChildWhichIsA('StringValue') or node.UI.Text.Text
local text
if type(T) == 'string' then
text = node.UI.Text.Text
else
text = T.Value
end
if text:len() > 20 then
text = text:sub(1,17)..'...'
end
node.UI.Text.Text = text
end
for ind,val in pairs(node.UI:GetAttributes()) do
node.UI:GetAttributeChangedSignal(ind):Connect(function()
value:SetAttribute(ind,val)
end)
end
local Types = {'Action','Close','Display','Response', 'Root', 'Split'}
local name = value:GetAttribute('Name') or Types[nodeType]
node.UI.Tab.Title.Text = name
coroutine.wrap(function()
while true do
wait()
--value:SetAttribute('Position',node.UI.Position)
end
end)()
node:Move(pos)
--starts here
local moved
local pan = editorFrame.Pan
local UserInputService = game:GetService('UserInputService')
local moving = false
local mouse = editorWindow:GetRelativeMousePosition()
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
count+=1
allCount+=1
editorFrame.LoadingFrame.LoadStatus.Text = 'Loading Nodes ('..count..'/'..nodeCount..')'
end
end
local lineCount = #v.Lines:GetChildren()
local count = 0
for ind,val in pairs(v.Lines:GetChildren()) do
if not editorFrame.Pan:FindFirstChild(val.Name) then
task.wait(.003)
local line = Instance.new('Frame')
line.Parent = editorFrame.Pan
line.Name = val.Name
line.Size = val:GetAttribute('Size')
line.Position = val:GetAttribute('Position')
line.Rotation = val.Value
line.AnchorPoint = Vector2.new(.5,.5)
local button = Instance.new('TextButton')
button.BackgroundTransparency = 1
button.Text = ''
button.Size = UDim2.new(1,0,1,0)
button.Parent = line
coroutine.wrap(function()
while true do
wait()
val:SetAttribute('Position',line.Position)
val.Value = line.Rotation
val:SetAttribute('Size',line.Size)
end
end)()
line.BackgroundColor3 = Color3.fromRGB(255,255,255)
line.BorderSizePixel = 0
local nodes = val:GetAttribute('Nodes'):split(',')
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
local button = Instance.new('TextButton')
button.Size = UDim2.new(1,0,1,0)
button.BackgroundColor3 = Color3.fromRGB(255,255,255)
button.BorderSizePixel = 0
local uiGradient = Instance.new('UIGradient')
local name1
local name2
if nodes[1]:match('Root') then
name1 = 'Root'
end
if nodes[1]:match('Display') then
name1 = 'Display'
end
if nodes[1]:match('Response') then
name1 = 'Response'
end
if nodes[1]:match('Action') then
name1 = 'Action'
end
if nodes[1]:match('Split') then
name1 = 'Split'
end
if nodes[1]:match('Close') then
name1 = 'Close'
end
if nodes[2]:match('Root') then
name2 = 'Root'
end
if nodes[2]:match('Display') then
name2 = 'Display'
end
if nodes[2]:match('Response') then
name2 = 'Response'
end
if nodes[2]:match('Action') then
name2 = 'Action'
end
if nodes[2]:match('Split') then
name2 = 'Split'
end
if nodes[2]:match('Close') then
name2 = 'Close'
end
uiGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0,colours[name2]),
ColorSequenceKeypoint.new(1,colours[name1])
}
if editorFrame.Pan:FindFirstChild(nodes[1]) then
editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom:SetAttribute('Connected',true)
end
if editorFrame.Pan:FindFirstChild(nodes[2]) then
editorFrame.Pan:FindFirstChild(nodes[2]).Connect:SetAttribute('Connected',true)
end
if nodes[2]:match('Split') then
local node = editorFrame.Pan:FindFirstChild(nodes[1])
if node then
node.ID.Visible = true
node.ID.Text = game.ReplicatedStorage.DialogueContainer[dialogueFolder.Name].Nodes[node.Name]:GetAttribute('ID')
end
end
button.Text = ''
uiGradient.Rotation = 180
uiGradient.Parent = button
button.Parent = line
button.AutoButtonColor = false
local uiStroke = Instance.new('UIStroke')
uiStroke.Transparency = 1
uiStroke.Thickness = 2
uiStroke.Color = Color3.fromRGB(255, 17, 17)
uiStroke.Parent = line
line.MouseEnter:Connect(function()
if deleting == true then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 0})
tween:Play()
end
end)
line.MouseLeave:Connect(function()
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 1})
tween:Play()
end)
button.MouseButton1Click:Connect(function()
if deleting == true then
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
if conButton.Parent:GetAttribute(conButton.Name) == '' or conButton.Parent:GetAttribute(conButton.Name):gsub(' ','') == ',' then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end)
local frame = line
local runService = game:GetService('RunService')
local mouseStartPos,startFramePos
local mouseDown = false
-- local function mouseOnFrame()
-- local mousePos = editorWindow:GetRelativeMousePosition()
-- local frameSize = frame.AbsoluteSize
-- local framePos = frame.AbsolutePosition
-- return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
-- and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
-- end
-- button.MouseButton1Down:Connect(function()
-- mouseStartPos = editorWindow:GetRelativeMousePosition()
-- startFramePos = frame.Position
-- mouseDown = true
-- end)
-- button.InputEnded:Connect(function(input)
-- if input.UserInputType == Enum.UserInputType.MouseButton1 then
-- mouseDown = false
-- end
-- end)
-- runService.RenderStepped:Connect(function()
-- if mouseDown then
-- local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
-- local finalPos = startFramePos + UDim2.new(0,mouseDelta.X+editorFrame.Pan.Position.X.Offset,0,mouseDelta.Y+editorFrame.Pan.Position.Y.Offset)
-- finalPos = UDim2.new(0,finalPos.X.Offset,0,finalPos.Y.Offset) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
-- frame.Position = finalPos
-- else
-- end
-- end)
--end
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = line.AbsoluteSize
local framePos = line.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = line.Position
mouseDown = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
if not isHoveringOverObj(editorFrame.DeleteHit) then
line.Position = startFramePos
else
v.Lines:FindFirstChild(line.Name):Destroy()
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
--node.UI:SetAttribute('Next',v.UI:GetAttribute('Next'):gsub(hoverOb.Parent.Name))
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
if conButton.Parent:GetAttribute(conButton.Name) == '' or conButton.Parent:GetAttribute(conButton.Name):gsub(' ','') == ',' then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
line.Position = finalPos
end
end)
end
count+=1
allCount+=1
editorFrame.LoadingFrame.LoadStatus.Text = 'Loading Lines ('..count..'/'..lineCount..')'
end
loading = false
else
loading = false
end
end
------
local startPos, mouseDown
editorFrame.Pan.Grid.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
startPos = editorWindow:GetRelativeMousePosition()
mouseDown = true
end
end)
local square = Instance.new('Frame')
square.BackgroundTransparency = 1
local stroke = Instance.new('UIStroke')
stroke.Color = Theme.Text
stroke.Thickness = 1.5
stroke:SetAttribute('Color','Text')
stroke.Parent = square
square.ZIndex = 20
square.Parent = editorFrame.Pan
square.Visible = false
square.Name = 'Selection'
local function areFramesOverlapping(frameA,frameB)
local verticalOverlap, horizontalOverlap
local a1 = frameA.AbsolutePosition.Y
local b1 = frameB.AbsolutePosition.Y
local a2 = a1 + frameA.AbsoluteSize.Y
local b2 = b1 + frameB.AbsoluteSize.Y
if (b1 <= a1 and b2 <= a1) or (a2 <= b1 and a2 <= b2) then
verticalOverlap = false
else
verticalOverlap = true
end
local a1 = frameA.AbsolutePosition.X
local b1 = frameB.AbsolutePosition.X
local a2 = a1 + frameA.AbsoluteSize.X
local b2 = b1 + frameB.AbsoluteSize.X
if (b1 <= a1 and b2 <= a1) or (a2 <= b1 and a2 <= b2) then
horizontalOverlap = false
else
horizontalOverlap = true
end
if horizontalOverlap and verticalOverlap then
return true
else
return false
end
end
editorFrame.Pan.Grid.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.2,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local tween = TweenService:Create(stroke,info,{Transparency = 1})
tween:Play()
tween.Completed:Connect(function()
if not mouseDown then
stroke.Enabled = false
end
end)
local overlapTable = {}
local removed = false
local function remove()
removed = true
for index,node in pairs(overlapTable) do
NodeEditor.Nodes[index]:Delete()
if node then
node:Destroy()
end
end
end
for index,node in pairs(editorFrame.Pan:GetChildren()) do
if node:GetAttribute('Type') ~= nil then
if areFramesOverlapping(node,square) then
overlapTable[node.Name] = node
end
end
end
for index,node in pairs(overlapTable) do
local done = false
node:SetAttribute('Selected',true)
coroutine.wrap(function()
repeat
if node:FindFirstChildWhichIsA('UIStroke') then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local hue,sat,val = node.UIStroke.Color:ToHSV()
local largeTween = TweenService:Create(node.UIStroke,info,{Thickness = 4,Color = Color3.fromHSV(hue,sat-0.3,val)})
largeTween:Play()
largeTween.Completed:Wait()
if node:FindFirstChildWhichIsA('UIStroke') then
local smallTween = TweenService:Create(node.UIStroke,info,{Thickness = 2.4,Color = Color3.fromHSV(hue,sat,val)})
smallTween:Play()
smallTween.Completed:Wait()
else
break
end
else
break
end
until done == true
end)()
local startPos,mouseDown
local nodePos = {}
node.Button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
startPos = editorWindow:GetRelativeMousePosition()
mouseDown = true
for ind,val in pairs(overlapTable) do
nodePos[val.Name] = val.AbsolutePosition
end
end
end)
local changePos = game:GetService('RunService').Heartbeat:Connect(function()
if mouseDown then
local mouseOffsetX, mouseOffsetY = startPos.X-editorWindow:GetRelativeMousePosition().X, startPos.Y - editorWindow:GetRelativeMousePosition().Y
for index,oNode in pairs(overlapTable) do
if index ~= node.Name then
NodeEditor.Nodes[oNode.Name]:Move(UDim2.new(0,nodePos[oNode.Name].X-mouseOffsetX-editorFrame.Pan.Position.X.Offset,0,nodePos[oNode.Name].Y-mouseOffsetY-editorFrame.Pan.Position.Y.Offset))
end
end
end
end)
for index,node in pairs(editorFrame.Pan:GetDescendants()) do
if not overlapTable[node.Name] then
if node:GetAttribute('Type') ~= nil then
node.Button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
done = true
changePos:Disconnect()
for i,v in pairs(overlapTable) do
v:SetAttribute('Selected',false)
end
end
end)
end
end
end
editorFrame.Pan.Grid.InputBegan:Connect(function()
if object.UserInputType == Enum.UserInputType.MouseButton1 then
done = true
changePos:Disconnect()
for i,v in pairs(overlapTable) do
v:SetAttribute('Selected',false)
end
end
end)
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
node.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
if isHoveringOverObj(editorFrame.DeleteHit) then
remove()
end
end
end)
end
end
end)
game:GetService('RunService').Heartbeat:Connect(function()
if mouseDown then
square.Visible = true
stroke.Transparency = 0
stroke.Enabled = true
square.Position = UDim2.fromOffset(startPos.X-editorFrame.Pan.Position.X.Offset,startPos.Y-editorFrame.Pan.Position.Y.Offset)
local mouseOffsetX, mouseOffsetY = startPos.X-editorWindow:GetRelativeMousePosition().X, startPos.Y - editorWindow:GetRelativeMousePosition().Y
square.Size = UDim2.new(0,-mouseOffsetX,0,-mouseOffsetY)
end
end)
local loaded = false
Window:Get('Chatterblox'):FindFirstChild(propTable.Name).DialogueFrame.Dialogue.Value.MouseButton1Click:Connect(function()
if loaded == false then
coroutine.wrap(function()
loaded = true
local dTable = {editorFrame.LoadingFrame.Dot1,editorFrame.LoadingFrame.Dot2,editorFrame.LoadingFrame.Dot3}
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
coroutine.wrap(function()
while true do
for index, dot in pairs(dTable) do
local tween = TweenService:Create(dot,info,{Position = UDim2.new(dot.Position.X.Scale,dot.Position.X.Offset,.39,0)})
tween:Play()
tween.Completed:Connect(function()
local tween = TweenService:Create(dot,info,{Position = UDim2.new(dot.Position.X.Scale,dot.Position.X.Offset,.43,0)})
tween:Play()
end)
wait(.32)
end
end
end)()
loadNodes()
coroutine.wrap(function()
repeat task.wait() until loading == false
local info = TweenInfo.new(.7,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.LoadingFrame,info,{BackgroundTransparency = 1})
local tween2 = TweenService:Create(editorFrame.LoadingFrame.Icon,info,{ImageTransparency = 1})
local tween3 = TweenService:Create(editorFrame.LoadingFrame.Bar,info,{BackgroundTransparency = 1})
local tween4 = TweenService:Create(editorFrame.LoadingFrame.Bar.Frame,info,{BackgroundTransparency = 1})
local tween5 = TweenService:Create(editorFrame.LoadingFrame.LoadStatus,info,{TextTransparency = 1})
tween:Play()
tween2:Play()
tween3:Play()
tween4:Play()
tween5:Play()
for index, dot in pairs(dTable) do
local tween = TweenService:Create(dot,info,{BackgroundTransparency = 1})
tween:Play()
end
end)()
end)()
end
end)
local folderName = v.Name
for i,v in pairs(editorFrame.CreateNode.NodeFrame:GetChildren()) do
if v:IsA('TextButton') then
v.MouseButton1Click:Connect(function()
if enabled == true then
local found = 0
for index, value in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:GetChildren()) do
if value.Name:match(v.Name:gsub('%d+','')) then
if tonumber(value.Name:gsub('%a','')) >= found then
found = tonumber(value.Name:gsub('%a',''))
end
end
end
found += 1
while true do
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild(v.Name..found) then
found += 1
else
break
end
wait()
end
local Name = v.Name..found
local node = NodeEditor.new(NodeEditor.NodeType[v.Name],Name)
local moving = false
node.UI.Name = Name
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
NodeEditor.Snap = false
node:Move(UDim2.new(0,mouse.X-editorFrame.Pan.AbsolutePosition.X,0,mouse.Y-editorFrame.Pan.AbsolutePosition.Y))
NodeEditor.Snap = true
else
node:Move(UDim2.new(0,mouse.X-editorFrame.Pan.AbsolutePosition.X,0,mouse.Y-editorFrame.Pan.AbsolutePosition.Y))
end
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.DeleteFrame.Visible = true
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
end
end)
end
end
--Pan
local min = UDim2.new(0, -2186,0, -2824)
local max = UDim2.new(0,0,0,0)
local pan = editorWindow.ChatEditor.Pan
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos;
startFramePos = UDim2.new(0, -1064,0, -1064)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = frame.AbsoluteSize
local framePos = frame.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
pan.Grid.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = frame.Position
mouseDown = true
end
end)
pan.Grid.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
finalPos = UDim2.new(0,math.clamp(finalPos.X.Offset,min.X.Offset,max.X.Offset),0,math.clamp(finalPos.Y.Offset,min.Y.Offset,max.Y.Offset,0)) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
frame.Position = finalPos
local xOffset = editorFrame.Pan.Position.X.Offset+1064
local yOffset = editorFrame.Pan.Position.Y.Offset+1064
editorFrame.ToolsFrame.Pos.Text.Text = -xOffset..','..yOffset
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
else
plugin:GetMouse().Icon = ''
end
end)
--Zoom
pan.Grid.InputChanged:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseWheel then
local currentPercentage = NodeEditor.Magnification
currentPercentage += object.Position.Z*5
currentPercentage = math.clamp(currentPercentage,50,250)
NodeEditor:Zoom(currentPercentage)
end
end)
--Show/Hide tools
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local show = false
local function property(Instance: Instance, Property: string)
local success = pcall(function()
local a = Instance:GetPropertyChangedSignal(Property)
end)
if success then
return true
else
return false
end
end
editorFrame.Show.MouseButton1Click:Connect(function()
if show == false then
show = true
editorFrame.ToolsFrame.Visible = true
local tween = TweenService:Create(editorFrame.ToolsFrame,info,{Position = UDim2.new(0.5, 0,0.919, 0),BackgroundTransparency = 0})
tween:Play()
for i,v in pairs(editorFrame.ToolsFrame:GetDescendants()) do
if v:IsA('Frame') then
local transTween = TweenService:Create(v,info,{BackgroundTransparency = 0})
transTween:Play()
end
if property(v,'TextTransparency') then
local transTween = TweenService:Create(v,info,{TextTransparency = 0})
transTween:Play()
end
if property(v,'ImageTransparency') then
local transTween = TweenService:Create(v,info,{ImageTransparency = 0})
transTween:Play()
end
if v:IsA('UIStroke') then
local transTween = TweenService:Create(v,info,{Transparency = 0})
transTween:Play()
end
end
else
show = false
local info2 = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
for i,v in pairs(editorFrame.ToolsFrame:GetDescendants()) do
if v:IsA('Frame') then
local transTween = TweenService:Create(v,info,{BackgroundTransparency = 1})
transTween:Play()
end
if property(v,'TextTransparency') then
local transTween = TweenService:Create(v,info,{TextTransparency = 1})
transTween:Play()
end
if property(v,'ImageTransparency') then
local transTween = TweenService:Create(v,info,{ImageTransparency = 1})
transTween:Play()
end
if v:IsA('UIStroke') then
local transTween = TweenService:Create(v,info,{Transparency = 1})
transTween:Play()
end
end
wait(.15)
local tween = TweenService:Create(editorFrame.ToolsFrame,info2,{Position = UDim2.new(0.5, 0,1.1, 0),BackgroundTransparency = 1})
tween:Play()
wait(.25)
editorFrame.ToolsFrame.Visible = false
end
end)
--Show Hover
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.Show.MouseEnter:Connect(function()
local tween = TweenService:Create(editorFrame.Show.UIStroke,info,{Transparency = 0})
tween:Play()
end)
editorFrame.Show.MouseLeave:Connect(function()
local tween = TweenService:Create(editorFrame.Show.UIStroke,info,{Transparency = 1})
tween:Play()
end)
-------
--Editor Tools
local snap = false
local Editor = require(editorScript)
local function enableSnap()
Editor.Snap = true
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = false
end
local function disableSnap()
Editor.Snap = false
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = true
end
editorFrame.ToolsFrame.SnapToGrid.Button.MouseButton1Click:Connect(function()
if not snap then
enableSnap()
snap = true
else
disableSnap()
snap = false
end
end)
local grid = true
local function enableGrid()
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = false
editorFrame.Pan.Grid.ImageTransparency = 0
end
local function disableGrid()
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = true
editorFrame.Pan.Grid.ImageTransparency = 1
end
editorFrame.ToolsFrame.ShowGrid.Button.MouseButton1Click:Connect(function()
if not grid then
enableGrid()
grid = true
else
disableGrid()
grid = false
end
end)
------
--------
--End of Chat Editor
--Open sidebar
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local offPos = UDim2.fromScale(-.177,0)
local onPos = UDim2.fromScale(0,0)
local button = Window:Get('Chatterblox'):FindFirstChild(propTable.Name).TitleBar.OpenTabs
local button = Window:Get('Chatterblox'):FindFirstChild(v.Name).TitleBar.OpenTabs
local fire = true
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end)
button.MouseButton1Click:Connect(function()
if fire then
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local openInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local openTween = TweenService:Create(button.Parent.Parent.Tabs,openInfo,{Position = onPos})
openTween:Play()
end
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
script.ChangeOpenButton.Event:Connect(function(button)
fire = false
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end)
button.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local openInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local openTween = TweenService:Create(button.Parent.Parent.Tabs,openInfo,{Position = onPos})
openTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
end)
--Close sidebar
local offPos = UDim2.fromScale(-.177,0)
local onPos = UDim2.fromScale(0,0)
local button = Window:Get('Chatterblox'):FindFirstChild(propTable.Name).Tabs.Collapse
button.ZIndex = 3
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
if button:GetAttribute('Clicked') == false then
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end
end)
button.MouseButton1Click:Connect(function()
button.Parent.Parent:WaitForChild('TitleBar').OpenTabs.Visible = true
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 200
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local closeInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local closeTween = TweenService:Create(button.Parent,closeInfo,{Position = offPos})
closeTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
end
--close sidebar
--local advanced = Tabs:Create('Advanced',Color3.fromRGB(206, 56, 255),false,propTable['Name'])
--advanced.MouseButton1Click:Connect(function()
-- Tabs:Select('Advanced',propTable['Name'])
--end)
--local dialogue = Tabs:Create('Dialogue',Color3.fromRGB(43, 177, 255),false,propTable['Name'])
--dialogue.MouseButton1Click:Connect(function()
-- Tabs:Select('Dialogue',propTable['Name'])
--end)
-- local themes = Tabs:Create('Themes',Color3.fromRGB(255, 53, 191),false,propTable['Name'])
--themes.MouseButton1Click:Connect(function()
-- Tabs:Select('Themes',propTable['Name'])
--end)
--local colour = Tabs:Create('Colour',Color3.fromRGB(255, 24, 24),false,propTable['Name'])
--script.InitWindow:Fire(Window:Get('Chatterblox'))
--for i,v in pairs(Colour) do
-- if not v:IsA('LocalScript') then
-- Window:InsertTo(v,propTable['Name'],'ColourFrame')
-- else
-- Window:InsertTo(v,propTable,'SatVal')
-- wait(.00001)
-- --v.Disabled = false
-- end
--end
--colour.Visible = false
--[[EO Tab Creation]]--
for index, frame in pairs(Window:Get('Chatterblox'):FindFirstChild(propTable.Name):GetChildren()) do
if frame.Name:sub(-5,-1) == 'Frame' then
if frame.Name ~= 'DialogueFrame' then
for i,v in pairs(frame:GetDescendants()) do
if v:IsA('Frame') then
if not v:FindFirstChild('Title') then
v.BackgroundTransparency = 1
end
end
--if v:IsA('TextLabel') then
-- v.TextTransparency = 1
--end
--if v:IsA('TextButton') then
-- v.TextTransparency,v.BackgroundTransparency = 1,1
--end
--if v:IsA('TextBox') then
-- v.TextTransparency,v.BackgroundTransparency = 1,1
--end
end
end
end
end
local importTemplate = script.Template:Clone()
importTemplate.Name = propTable['Name']
importTemplate.Title.Text = propTable['Name']
importCount += 1
if importCount % 2 == 0 then
importTemplate.BackgroundColor3 = Theme.Background
importTemplate:SetAttribute('BackgroundColor3','Background')
else
importTemplate.BackgroundColor3 = Theme.Primary
importTemplate:SetAttribute('BackgroundColor3','Primary')
end
importTemplate.Parent = importFrame.Content
importTemplate.Import.MouseButton1Click:Connect(function()
if not importToSelection then
importTemplate.Update.Visible = true
local u = game.ReplicatedStorage.DialogueContainer:FindFirstChild(propTable['Name']):FindFirstChildWhichIsA('ScreenGui') or script.DialogueUI
local ui = u:Clone()
if not ui then
ui = script.DialogueUI:Clone()
end
for ind,val in pairs(ui:GetDescendants()) do
if val:IsA('Frame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
end
if val:IsA('TextButton') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
if val:IsA('TextBox') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
if val:IsA('ImageLabel') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('ImageButton') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('ScrollingFrame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
end
if val:IsA('ViewportFrame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('TextLabel') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
end
ui.DialogueClient.Source = [[local folderName = "]]..propTable['Name']..[["
]]..ui.DialogueClient.Source
ui.DialogueClient.Source = ui.DialogueClient.Source..[[
--To start the dialogue, call the startDialogue() method.
--To detect when the dialogue has finished, use the dialogue.Completed Signal
]]
for i,v in pairs(ui:GetChildren()) do
if v:IsA('LocalScript') then
v.Disabled = false
end
end
ui.Parent = game.StarterGui
Selection:Set({ui})
importTemplate.Update.MouseButton1Click:Connect(function()
local dScript = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChildWhichIsA('ScreenGui').Dialogue:Clone()
ui.Dialogue:Destroy()
dScript.Parent = ui
end)
else
importTemplate.Update.Visible = true
local selectionTable = Selection:Get()
local scriptTable = {}
for index,Instance in pairs(selectionTable) do
for i,Script in pairs(script.DialogueUI:GetChildren()) do
local sClone = Script:Clone()
if Script.Name == 'DialogueClient' then
sClone.Source = [[local folderName = "]]..propTable['Name']..[["
]]..sClone.Source
sClone.Source = sClone.Source..[[
--Make sure these scripts are placed in a ScreenGui and have the same parent or a script may error.
--To start the dialogue, call the startDialogue() method.
--To detect when the dialogue has finished, use the dialogue.Completed Signal
]]
end
sClone.Parent = Instance
table.insert(scriptTable,sClone)
end
end
for i,v in pairs(scriptTable) do
if v:IsA('LocalScript') then
v.Disabled = false
end
end
Selection:Set(scriptTable)
end
end)
end
if name then
create({['Name'] = name})
end
if creatingName then
create({['Name'] = creatingName})
end
if event then
event:Connect(create)
end
end
--Market Themes
function showThemesInMarket()
TweenService:Create(marketFrame.SectionTabs.Line,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Position = UDim2.new(0, 0,0.867, 0)}):Play()
marketFrame.Themes.Visible = true
marketFrame.Presets.Visible = false
end
function showPresetsInMarket()
TweenService:Create(marketFrame.SectionTabs.Line,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Position = UDim2.new(0.5, 0,0.867, 0)}):Play()
marketFrame.Themes.Visible = false
marketFrame.Presets.Visible = true
end
marketFrame.SectionTabs.Themes.Themes.MouseButton1Click:Connect(showThemesInMarket)
marketFrame.SectionTabs.Presets.Presets.MouseButton1Click:Connect(showPresetsInMarket)
local matchStudioTheme = false
marketFrame.Themes.MatchStudio.Toggle.MouseButton1Click:Connect(function()
if matchStudioTheme then
marketFrame.Themes.MatchStudio.Toggle.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
marketFrame.Themes.MatchStudio.Toggle:SetAttribute('BackgroundColor3','Secondary')
else
marketFrame.Themes.MatchStudio.Toggle.BackgroundColor3 = script.Parent.ThemeColour.Accent.Value
marketFrame.Themes.MatchStudio.Toggle:SetAttribute('BackgroundColor3','Accent')
local studioTheme = settings().Studio.Theme
if studioTheme == 'Light' then
Theme = Themes.Light
else
Theme = Themes.Dark
end
showThemeColours()
end
matchStudioTheme = not matchStudioTheme
end)
marketFrame.Themes.CanvasSize = UDim2.new(0,0,0,marketFrame.Themes.UIListLayout.AbsoluteContentSize.Y + marketFrame.Themes.UIListLayout.Padding.Offset*#marketFrame.Themes:GetChildren())
local themesTable = {}
local excludeNames = {['FeaturedThemes'] = true, ['MatchStudio'] = true}
for i,theme in pairs(marketFrame.Themes:GetChildren()) do
if theme:IsA('Frame') and not excludeNames[theme.Name] then
table.insert(themesTable,theme)
end
end
for i,theme in pairs(marketFrame.Themes.FeaturedThemes:GetChildren()) do
if theme:IsA('Frame') then
table.insert(themesTable,theme)
end
end
local openTheme = ''
for i,theme in pairs(themesTable) do
--Cycle through images
local image1Fade = TweenService:Create(theme.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image2Fade = TweenService:Create(theme.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image1Appear = TweenService:Create(theme.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
local image2Appear = TweenService:Create(theme.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
coroutine.wrap(function()
while true do
wait(4)
image1Fade:Play()
image2Appear:Play()
wait(4)
image2Fade:Play()
image1Appear:Play()
end
end)()
coroutine.wrap(function()
local infoFrame = marketFrame.InfoFrame.Info
local image1Fade = TweenService:Create(infoFrame.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image2Fade = TweenService:Create(infoFrame.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image1Appear = TweenService:Create(infoFrame.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
local image2Appear = TweenService:Create(infoFrame.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
while true do
wait(4)
image1Fade:Play()
image2Appear:Play()
wait(4)
image2Fade:Play()
image1Appear:Play()
end
end)()
theme.Button.MouseButton1Click:Connect(function()
local description = theme.Description.Text
local title = theme.Title.Text
local infoFrame = marketFrame.InfoFrame.Info
infoFrame.Images.Image1.Image = theme.Images.Image1.Image
infoFrame.Images.Image2.Image = theme.Images.Image2.Image
infoFrame.Title.Text = title
infoFrame.Description.Text = description
marketFrame.InfoFrame.Visible = true
openTheme = theme.Name
end)
marketFrame.InfoFrame.Info.Close.MouseButton1Click:Connect(function()
marketFrame.InfoFrame.Visible = false
end)
end
marketFrame.InfoFrame.Info.Apply.MouseButton1Click:Connect(function()
Theme = Themes[openTheme]
showThemeColours()
end)
--Market Presets
local presetsTable = {}
local excludeNames = {['FeaturedPresets'] = true}
for i,preset in pairs(marketFrame.Presets:GetChildren()) do
if preset:IsA('Frame') and not excludeNames[preset.Name] then
table.insert(presetsTable,preset)
end
end
local openPreset = ''
for i,preset in pairs(presetsTable) do
coroutine.wrap(function()
local infoFrame = marketFrame.InfoFrame.Info
local image1Fade = TweenService:Create(infoFrame.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image2Fade = TweenService:Create(infoFrame.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 1})
local image1Appear = TweenService:Create(infoFrame.Images.Image1,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
local image2Appear = TweenService:Create(infoFrame.Images.Image2,TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false,0),{ImageTransparency = 0})
while true do
wait(4)
image1Fade:Play()
image2Appear:Play()
wait(4)
image2Fade:Play()
image1Appear:Play()
end
end)()
preset.Button.MouseButton1Click:Connect(function()
local description = preset.Description.Text
local title = preset.Title.Text
local infoFrame = marketFrame.PresetInfoFrame.Info
infoFrame.Images.Image1.Image = preset.Images.Image1.Image
infoFrame.Title.Text = title
infoFrame.Description.Text = description
marketFrame.PresetInfoFrame.Visible = true
openPreset = preset.Name
end)
marketFrame.PresetInfoFrame.Info.Close.MouseButton1Click:Connect(function()
marketFrame.PresetInfoFrame.Visible = false
end)
end
marketFrame.PresetInfoFrame.Info.Create.MouseButton1Click:Connect(function()
local presetFrame = marketFrame.Presets:FindFirstChild(openPreset)
if presetFrame then
local ui = presetFrame:FindFirstChildWhichIsA('ScreenGui')
if ui then
wait(.01)
createTab(nil,ui,true,nil,presetFrame:FindFirstChild('Nodes'),presetFrame:FindFirstChild('Lines'))
end
end
end)
if game.ReplicatedStorage:FindFirstChild('DialogueContainer') then
local function createTab(v,specialName)
v.Name = removeSpaces(v.Name)
if specialName then
v.Name = specialName
end
if not Window:Get('Chatterblox'):FindFirstChild(v.Name) then
local Temp = temp:Clone()
Temp.Title.Text = v.Name
Temp.Name = v.Name
local tempCount = #main.Scroll:GetChildren()-1
tempCount += 1
if tempCount % 2 == 0 then
Temp.BackgroundColor3 = Theme.Background
Temp:SetAttribute('BackgroundColor3','Background')
else
Temp.BackgroundColor3 = Theme.Primary
Temp:SetAttribute('BackgroundColor3','Primary')
end
Temp.Edit.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Delete.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Edit.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Edit.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Edit.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Edit,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Delete.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Delete,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Delete.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Delete
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
Temp.Edit.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Edit
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local frame = Window:Get('Chatterblox'):FindFirstChild(v.Name)
for i,v in pairs(Window:Get('Chatterblox'):GetChildren()) do
if v:IsA('Frame') and (v.Name ~= 'Menu' and v.Name ~= 'Import' and v.Name ~= 'Market' and v.Name ~='Settings') then
v.Visible = false
end
end
editingFrame = frame
frame.Position = UDim2.new(-1,0,0,0)
Window:Get('Chatterblox'):FindFirstChild(v.Name).Visible = true
wait(.1)
showEditing()
end)
Temp.Delete.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local button = Temp.Delete
local circle = Instance.new('Frame',button)
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
local function duplicate()
local clone = v:Clone()
clone.Name = Temp.Name..'Copy'
clone.Parent = game.ReplicatedStorage.DialogueContainer
createTab(clone)
end
Temp.Duplicate.MouseButton1Click:Connect(duplicate)
Temp.Duplicate.MouseEnter:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate.UIStroke,info,{Transparency = 0})
tween:Play()
end)
Temp.Duplicate.MouseLeave:Connect(function()
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate.UIStroke,info,{Transparency = 1})
tween:Play()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
Temp.Duplicate.MouseButton1Down:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(33,33)})
tween:Play()
end)
Temp.Duplicate.MouseButton1Up:Connect(function()
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(Temp.Duplicate,sizeInfo,{Size = UDim2.fromOffset(37,37)})
tween:Play()
end)
local function deleteDialogue()
local interacted = UITab:CreateBool('Delete '..v.Name,'Are you sure you would like to delete '..v.Name..'?','Chatterblox','Delete','Cancel')
interacted:Connect(function(delete)
if delete then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):Destroy()
Temp:Destroy()
Window:Get('Chatterblox'):FindFirstChild(v.Name):Destroy()
if importFrame.Content:FindFirstChild(v.Name) then
importFrame.Content:FindFirstChild(v.Name):Destroy()
end
end
end)
end
Temp.Delete.MouseButton1Click:Connect(deleteDialogue)
local moreOpen = false
Temp.More.MouseButton1Click:Connect(function()
if not moreOpen then
Temp.More.BackgroundTransparency = 0
Temp.MoreFrame.Visible = true
else
Temp.More.BackgroundTransparency = 1
Temp.MoreFrame.Visible = false
end
moreOpen = not moreOpen
end)
local temps = {}
game:GetService('RunService').Heartbeat:Connect(function()
for i,v in pairs(main.Scroll:GetChildren()) do
if v:IsA('Frame') and v ~= Temp then
if v then
if v:FindFirstChild('MoreFrame') then
if v.MoreFrame.Visible then
v.MoreFrame.Visible = false
moreOpen = false
v.More.BackgroundTransparency = 1
end
end
end
end
end
end)
Temp.MoreFrame.Delete.MouseButton1Click:Connect(deleteDialogue)
Temp.MoreFrame.Duplicate.MouseButton1Click:Connect(duplicate)
local newFolder = Instance.new('Folder')
if not game.ReplicatedStorage:FindFirstChild('DialogueContainer') then
local folder = Instance.new('Folder',game.ReplicatedStorage)
folder.Name = 'DialogueContainer'
end
Temp.Parent = main.Scroll
local dialogueFolder = Instance.new('Folder')
dialogueFolder.Name = Temp.Title.Text
if not game.ReplicatedStorage:FindFirstChild('DialogueContainer') then
local folder = Instance.new('Folder',game.ReplicatedStorage)
folder.Name = 'DialogueContainer'
dialogueFolder.Parent = folder
end
local cloneEditFrame = script.DialogueEdit:Clone()
cloneEditFrame.Name = v.Name
Window:Insert(cloneEditFrame,'Chatterblox')
local editWindow = Window:Get('Chatterblox')
local dialogue = Tabs:Create('Dialogue',script.DImage:Clone().UIGradient.Color,false,v.Name,script.DImage:Clone(),false,false)
local appearence = Tabs:Create('Appearance',script.ApImage:Clone().UIGradient.Color,false,v.Name,script.ApImage:Clone(),false,false)
local advanced = Tabs:Create('Advanced',script.AdImage:Clone().UIGradient.Color,false,v.Name,script.AdImage:Clone(),false,false)
local colour = Tabs:Create('Colour',script.CImage:Clone().UIGradient.Color,false,v.Name,script.CImage:Clone(),true,false)
local search = Tabs:Create('Search',script.SImage:Clone().UIGradient.Color,false,v.Name,script.SImage:Clone(),true,false)
local bTable = {dialogue,appearence,advanced}
for i,button in pairs(bTable) do
button.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.AnchorPoint = Vector2.new(.5,.5)
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
end)
end
Window:Get('Chatterblox'):FindFirstChild(v.Name).ColourFrame:Destroy()
Window:Get('Chatterblox'):FindFirstChild(v.Name).CFrame.Name = 'ColourFrame'
Window:Get('Chatterblox'):FindFirstChild(v.Name).SearchFrame:Destroy()
Window:Get('Chatterblox'):FindFirstChild(v.Name).InstanceFrame.Name = 'SearchFrame'
appearence.MouseButton1Click:Connect(function()
Tabs:Select('Appearance',v.Name)
end)
dialogue.MouseButton1Click:Connect(function()
Tabs:Select('Dialogue',v.Name)
end)
advanced.MouseButton1Click:Connect(function()
Tabs:Select('Advanced',v.Name)
end)
----[[Appearance Settings]]--
Settings:Create('Appearance','Background','Colour',{Deafault = v:FindFirstChild('Appearance'):FindFirstChild('Background Colour').Value},v.Name,true,'Background Colour')
Settings:Create('Appearance','Text','Colour',{Deafault = v:FindFirstChild('Appearance'):FindFirstChild('Text Colour').Value},v.Name,true,'Text Colour')
Settings:Create('Appearance','NPC Model','Instance',{Filter = {'Model'},Deafault = v:FindFirstChild('Appearance'):FindFirstChild('NPC Model').Value},v.Name,true)
Settings:Create('Appearance','Speed','Number',{Max = 100, Round = 1,Deafault = v:FindFirstChild('Appearance'):FindFirstChild('Speed').Value},v.Name,true)
Settings:Create('Appearance','Title','String',{Deafault = v:FindFirstChild('Appearance'):FindFirstChild('Title').Value},v.Name,true)
----[[Advanced Settings]]--
Settings:Create('Advanced','Gradient Colour 1','Colour',{Deafault = v:FindFirstChild('Advanced'):FindFirstChild('Background Gradient Colour 1').Value},v.Name,true,'Background Gradient Colour 1')
Settings:Create('Advanced','Gradient Colour 2','Colour',{Deafault = v:FindFirstChild('Advanced'):FindFirstChild('Background Gradient Colour 2').Value},v.Name,true,'Background Gradient Colour 1')
Settings:Create('Advanced','Pause Characters','String',{Deafault = v:FindFirstChild('Advanced'):FindFirstChild('Pause Characters').Value},v.Name,true)
local pauseWait = v:FindFirstChild('Advanced'):FindFirstChild('Pause Wait')
if pauseWait then
pauseWait = pauseWait.Value
else
pauseWait = 0
end
Settings:Create('Advanced','Pause Wait','Number',{Max = 10, Round = 2,Deafault = pauseWait},v.Name,true)
Settings:Create('Advanced','Overwrite Appearance Settings','Bool',{Deafault = v:FindFirstChild('Advanced'):FindFirstChild('Overwrite Appearance Settings').Value,Colour = Color3.fromRGB(189, 21, 255)},v.Name,true)
local advancedUI = script.Custom:Clone()
advancedUI.Name = 'UIEdit'
advancedUI.Title.Text = 'Advanced UI Edit'
advancedUI.Value.Text = 'Edit'
advancedUI.Parent = Window:Get('Chatterblox'):FindFirstChild(v.Name).AdvancedFrame
local importCount = #editWindow:FindFirstChild(v.Name).AdvancedFrame:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
advancedUI.BackgroundColor3 = Theme.Background
advancedUI:SetAttribute('BackgroundColor3','Background')
else
advancedUI.BackgroundColor3 = Theme.Primary
advancedUI:SetAttribute('BackgroundColor3','Primary')
advancedUI.Value.BackgroundColor3 = Theme.Background
advancedUI.Value:SetAttribute('BackgroundColor3','Background')
end
advancedUI.Value.MouseButton1Click:Connect(function()
local editUI = script.AdvancedUI:Clone()
editUI.Parent = game:GetService('CoreGui')
local ui = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChildWhichIsA('ScreenGui')
if not ui then
ui = script.DialogueUI:Clone()
end
ui.Name = v.Name
local mFrame = ui.Dialogue.MessageFrame
mFrame.BackgroundTransparency = 0
mFrame.MessageText.TextTransparency = 0
mFrame.MessageText.Text = 'Dialogue Text'
mFrame.Title.Text = 'Title'
local response = ui.Dialogue.Response
response.Parent = mFrame.Options
response.Size = UDim2.new(0.485, 0,0.18, 0)
mFrame.Parent = ui
local clone = ui
clone.Parent = game.StarterGui
clone.Name = v.Name..' Edit'
Selection:Set({clone})
local function close()
clone.Name = ui.Name:sub(1,-6)
mFrame.BackgroundTransparency = 0
mFrame.BackgroundTransparency = 1
mFrame.MessageText.Text = ''
response.Size = UDim2.new(0,0,.18,0)
response.Parent = clone.Dialogue
mFrame.Parent = clone.Dialogue
clone.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name)
editUI:Destroy()
end
editUI.Close.MouseButton1Click:Connect(close)
editUI.Help.MouseButton1Click:Connect(function()
if editUI.HelpFrame.Visible == true then
editUI.HelpFrame.Visible = false
else
editUI.HelpFrame.Visible = true
end
end)
end)
--local ui = script:FindFirstChild(v.Name) or script.DialogueUI:Clone()
--local mFrame = ui.Dialogue.MessageFrame:Clone()
--local response = ui.Dialogue.Response:Clone()
--response.Parent = mFrame.Options
--response.Size = UDim2.new(0.485, 0,0.18, 0)
----[[Dialogue Settings]]--
local custom = require(script.CustomSetting):Clone()
custom.Title.Text = 'Dialogue Tree'
custom.Name = 'Dialogue'
custom.Value.Text = 'Edit'
custom:SetAttribute('BackgroundColor3','Background')
custom.BackgroundColor3 = Theme.Background
custom.Parent = Window:Get('Chatterblox'):FindFirstChild(v.Name).DialogueFrame
local editButton = custom.Value
local editorFrame = script.ChatEditor:Clone()
Window:Create(v.Name..' Editor',UDim2.new(0, 891,0, 482),editButton.MouseButton1Click,{editorFrame})
local editorWindow = Window:Get(v.Name .. ' Editor')
editButton.MouseButton1Click:Connect(function()
editorWindow.Enabled = true
end)
local colours = {[5] = Color3.fromRGB(0, 170, 255),[1] = Color3.fromRGB(170, 0, 255),[3] = Color3.fromRGB(255, 28, 28),[4] = Color3.fromRGB(255, 255, 0),[6] = Color3.fromRGB(0, 255, 0),[2] = Color3.fromRGB(0, 170, 255)}
game:GetService('RunService').Heartbeat:Connect(function()
if editorWindow then
for i,node in pairs(editorFrame.Pan:GetDescendants()) do
if node:GetAttribute('Type') then
for i,v in pairs(node:GetChildren()) do
if settingsVals.nodeColoursColourful then
if v:IsA('UIStroke') then
v.Color = colours[node:GetAttribute('Type')]
end
if v.Name:match('Connect') then
v.BackgroundColor3 = colours[node:GetAttribute('Type')]
end
if v:FindFirstChildWhichIsA('UIStroke') then
v:FindFirstChildWhichIsA('UIStroke').Color = colours[node:GetAttribute('Type')]
end
if v.Name == 'Server' or v.Name == 'ClickAd' then
if v.BackgroundColor3 == Theme.Accent then
v.BackgroundColor3 = v.Parent.UIStroke.Color
end
end
else
if v:IsA('UIStroke') then
v.Color = Theme.Accent
end
if v.Name:match('Connect') then
v.BackgroundColor3 = Theme.Accent
end
if v.Name == 'Server' or v.Name == 'ClickAd' then
if v.BackgroundColor3 == v.Parent.UIStroke.Color then
v.BackgroundColor3 = Theme.Accent
end
end
if v:FindFirstChildWhichIsA('UIStroke') then
v:FindFirstChildWhichIsA('UIStroke').Color = Theme.Accent
end
end
end
end
if node.Name:match('Line') then
if settingsVals.nodeColoursColourful then
for i,v in pairs(node:GetDescendants()) do
if v:IsA('UIGradient') then
v.Enabled = true
end
if v:IsA('Frame') or v:IsA('TextButton') then
v.BackgroundColor3 = Color3.fromRGB(255,255,255)
end
end
node.BackgroundColor3 = Color3.fromRGB(255,255,255)
else
for i,v in pairs(node:GetDescendants()) do
if v:IsA('UIGradient') then
v.Enabled = false
end
if v:IsA('Frame') or v:IsA('TextButton') then
v.BackgroundColor3 = Theme.Accent
end
end
end
end
end
if settingsVals.nodeColoursColourful then
editorWindow.ChatEditor.Show.Image.UIGradient.Enabled = true
editorWindow.ChatEditor.Show.Image.ImageColor3 = Color3.fromRGB(255,255,255)
editorWindow.ChatEditor.Show.Image:SetAttribute('ImageColor3',nil)
editorWindow.ChatEditor.Show.UIStroke.UIGradient.Enabled = true
editorWindow.ChatEditor.Show.UIStroke.Color = Color3.fromRGB(255,255,255)
editorWindow.ChatEditor.Show.UIStroke:SetAttribute('Color',nil)
else
editorWindow.ChatEditor.Show.Image.UIGradient.Enabled = false
editorWindow.ChatEditor.Show.Image.ImageColor3 = Theme.Accent
editorWindow.ChatEditor.Show.Image:SetAttribute('ImageColor3','Accent')
editorWindow.ChatEditor.Show.UIStroke.UIGradient.Enabled = false
editorWindow.ChatEditor.Show.UIStroke.Color = Theme.Accent
editorWindow.ChatEditor.Show.UIStroke:SetAttribute('Color','Accent')
end
else
return
end
end)
--Chat Editor
--Open node create menu
local enabled = false
local TweenService = game:GetService('TweenService')
local goal = {Size = UDim2.new(0, 158,0, 199)}
local reverseGoal = {Size = UDim2.new(0.996, 0,0.03, 0)}
local nodeFrameInfo = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local nodeFrame = editorFrame.CreateNode.NodeFrame
editorFrame.CreateNode.MouseButton1Click:Connect(function()
if enabled == false then
enabled = true
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,goal)
tween:Play()
else
enabled = false
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,reverseGoal)
tween:Play()
end
end)
for index,child in pairs(nodeFrame:GetChildren()) do
if child:IsA('TextButton') then
child.MouseButton1Click:Connect(function()
enabled = false
local tween = TweenService:Create(nodeFrame,nodeFrameInfo,reverseGoal)
tween:Play()
end)
end
end
--------
local editorScript = script.NodeEditor:Clone()
editorScript.Parent = editorFrame
local NodeEditor = require(editorScript)
NodeEditor:InitWindow(editorWindow)
NodeEditor:InitWindowMod(script.Parent.Window)
NodeEditor:Init(plugin)
NodeEditor:SetFolderName(v.Name)
local dialogueGraph = require(editorScript.Graph)
local loading = true
local loadedEvent = Instance.new('BindableEvent')
local function loadNodes()
local childCount = 0
for ind,val in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChild('Nodes'):GetChildren()) do
childCount+=1
end
if childCount > 0 then
for ind,val in pairs(editorFrame.Pan:GetChildren()) do
if val:GetAttribute('Type') then
val:Destroy()
end
end
local allMax = #v.Nodes:GetChildren() + #v.Lines:GetChildren()
local allCount = 0
local nodeCount = #v.Nodes:GetChildren()
local count = 0
coroutine.wrap(function()
while true do
wait()
editorFrame.LoadingFrame.Bar.Frame.Size = UDim2.new(allCount/allMax,0,1,0)
end
end)()
for index,value in pairs(v.Nodes:GetChildren()) do
if not editorFrame.Pan:FindFirstChild(value.Name) then
task.wait(.003)
local nodeType = value:GetAttribute('Type')
local pos = value:GetAttribute('Position')
local node = NodeEditor.new(nodeType,value.Name,false)
--Node Context Menu
--End of Node Context Menu
for ind,val in pairs(value:GetAttributes()) do
node.UI:SetAttribute(ind,val)
end
if value:GetAttribute('Type') ~= 6 and value:GetAttribute('Type') ~= 1 and value:GetAttribute('Type') ~= 2 then
local T = value:FindFirstChildWhichIsA('StringValue') or node.UI.Text.Text
local text
if type(T) == 'string' then
text = node.UI.Text.Text
else
text = T.Value
end
if text:len() > 20 then
text = text:sub(1,17)..'...'
end
node.UI.Text.Text = text
end
for ind,val in pairs(node.UI:GetAttributes()) do
node.UI:GetAttributeChangedSignal(ind):Connect(function()
value:SetAttribute(ind,val)
end)
end
local Types = {'Action','Close','Display','Response', 'Root', 'Split'}
local name = value:GetAttribute('Name') or Types[nodeType]
node.UI.Tab.Title.Text = name
coroutine.wrap(function()
while true do
wait()
--value:SetAttribute('Position',node.UI.Position)
end
end)()
node:Move(pos)
--starts here
local moved
local pan = editorFrame.Pan
local UserInputService = game:GetService('UserInputService')
local moving = false
local mouse = editorWindow:GetRelativeMousePosition()
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
count+=1
allCount+=1
editorFrame.LoadingFrame.LoadStatus.Text = 'Loading Nodes ('..count..'/'..nodeCount..')'
end
end
local lineCount = #v.Lines:GetChildren()
local count = 0
for ind,val in pairs(v.Lines:GetChildren()) do
if not editorFrame.Pan:FindFirstChild(val.Name) then
task.wait(.003)
local line = Instance.new('Frame')
line.Parent = editorFrame.Pan
line.Name = val.Name
line.Size = val:GetAttribute('Size')
line.Position = val:GetAttribute('Position')
line.Rotation = val.Value
line.AnchorPoint = Vector2.new(.5,.5)
local button = Instance.new('TextButton')
button.BackgroundTransparency = 1
button.Text = ''
button.Size = UDim2.new(1,0,1,0)
button.Parent = line
coroutine.wrap(function()
while true do
wait()
val:SetAttribute('Position',line.Position)
val.Value = line.Rotation
val:SetAttribute('Size',line.Size)
end
end)()
line.BackgroundColor3 = Color3.fromRGB(255,255,255)
line.BorderSizePixel = 0
local nodes = val:GetAttribute('Nodes'):split(',')
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
local button = Instance.new('TextButton')
button.Size = UDim2.new(1,0,1,0)
button.BackgroundColor3 = Color3.fromRGB(255,255,255)
button.BorderSizePixel = 0
local uiGradient = Instance.new('UIGradient')
local name1
local name2
if nodes[1]:match('Root') then
name1 = 'Root'
end
if nodes[1]:match('Display') then
name1 = 'Display'
end
if nodes[1]:match('Response') then
name1 = 'Response'
end
if nodes[1]:match('Action') then
name1 = 'Action'
end
if nodes[1]:match('Split') then
name1 = 'Split'
end
if nodes[1]:match('Close') then
name1 = 'Close'
end
if nodes[2]:match('Root') then
name2 = 'Root'
end
if nodes[2]:match('Display') then
name2 = 'Display'
end
if nodes[2]:match('Response') then
name2 = 'Response'
end
if nodes[2]:match('Action') then
name2 = 'Action'
end
if nodes[2]:match('Split') then
name2 = 'Split'
end
if nodes[2]:match('Close') then
name2 = 'Close'
end
uiGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0,colours[name2]),
ColorSequenceKeypoint.new(1,colours[name1])
}
if editorFrame.Pan:FindFirstChild(nodes[1]) then
editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom:SetAttribute('Connected',true)
end
if editorFrame.Pan:FindFirstChild(nodes[2]) then
editorFrame.Pan:FindFirstChild(nodes[2]).Connect:SetAttribute('Connected',true)
end
if nodes[2]:match('Split') then
local node = editorFrame.Pan:FindFirstChild(nodes[1])
if node then
node.ID.Visible = true
node.ID.Text = game.ReplicatedStorage.DialogueContainer[dialogueFolder.Name].Nodes[node.Name]:GetAttribute('ID')
end
end
button.Text = ''
uiGradient.Rotation = 180
uiGradient.Parent = button
button.Parent = line
button.AutoButtonColor = false
dialogueGraph:Connect(nodes[2],nodes[1])
local uiStroke = Instance.new('UIStroke')
uiStroke.Transparency = 1
uiStroke.Thickness = 2
uiStroke.Color = Color3.fromRGB(255, 17, 17)
uiStroke.Parent = line
line.MouseEnter:Connect(function()
if deleting == true then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 0})
tween:Play()
end
end)
line.MouseLeave:Connect(function()
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 1})
tween:Play()
end)
button.MouseButton1Click:Connect(function()
if deleting == true then
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
if conButton.Parent:GetAttribute(conButton.Name) == '' or conButton.Parent:GetAttribute(conButton.Name):gsub(' ','') == ',' then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end)
local frame = line
local runService = game:GetService('RunService')
local mouseStartPos,startFramePos
local mouseDown = false
-- local function mouseOnFrame()
-- local mousePos = editorWindow:GetRelativeMousePosition()
-- local frameSize = frame.AbsoluteSize
-- local framePos = frame.AbsolutePosition
-- return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
-- and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
-- end
-- button.MouseButton1Down:Connect(function()
-- mouseStartPos = editorWindow:GetRelativeMousePosition()
-- startFramePos = frame.Position
-- mouseDown = true
-- end)
-- button.InputEnded:Connect(function(input)
-- if input.UserInputType == Enum.UserInputType.MouseButton1 then
-- mouseDown = false
-- end
-- end)
-- runService.RenderStepped:Connect(function()
-- if mouseDown then
-- local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
-- local finalPos = startFramePos + UDim2.new(0,mouseDelta.X+editorFrame.Pan.Position.X.Offset,0,mouseDelta.Y+editorFrame.Pan.Position.Y.Offset)
-- finalPos = UDim2.new(0,finalPos.X.Offset,0,finalPos.Y.Offset) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
-- frame.Position = finalPos
-- else
-- end
-- end)
--end
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = line.AbsoluteSize
local framePos = line.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = line.Position
mouseDown = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
if not isHoveringOverObj(editorFrame.DeleteHit) then
line.Position = startFramePos
else
v.Lines:FindFirstChild(line.Name):Destroy()
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
--node.UI:SetAttribute('Next',v.UI:GetAttribute('Next'):gsub(hoverOb.Parent.Name))
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
if conButton.Parent:GetAttribute(conButton.Name) == '' or conButton.Parent:GetAttribute(conButton.Name):gsub(' ','') == ',' then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
line.Position = finalPos
end
end)
end
count+=1
allCount+=1
editorFrame.LoadingFrame.LoadStatus.Text = 'Loading Lines ('..count..'/'..lineCount..')'
end
loading = false
else
loading = false
end
end
------
local startPos, mouseDown
editorFrame.Pan.Grid.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
startPos = editorWindow:GetRelativeMousePosition()
mouseDown = true
end
end)
local square = Instance.new('Frame')
square.BackgroundTransparency = 1
local stroke = Instance.new('UIStroke')
stroke.Color = Theme.Text
stroke.Thickness = 1.5
stroke:SetAttribute('Color','Text')
stroke.Parent = square
square.ZIndex = 20
square.Parent = editorFrame.Pan
square.Visible = false
square.Name = 'Selection'
local function areFramesOverlapping(frameA,frameB)
local verticalOverlap, horizontalOverlap
local a1 = frameA.AbsolutePosition.Y
local b1 = frameB.AbsolutePosition.Y
local a2 = a1 + frameA.AbsoluteSize.Y
local b2 = b1 + frameB.AbsoluteSize.Y
if (b1 <= a1 and b2 <= a1) or (a2 <= b1 and a2 <= b2) then
verticalOverlap = false
else
verticalOverlap = true
end
local a1 = frameA.AbsolutePosition.X
local b1 = frameB.AbsolutePosition.X
local a2 = a1 + frameA.AbsoluteSize.X
local b2 = b1 + frameB.AbsoluteSize.X
if (b1 <= a1 and b2 <= a1) or (a2 <= b1 and a2 <= b2) then
horizontalOverlap = false
else
horizontalOverlap = true
end
if horizontalOverlap and verticalOverlap then
return true
else
return false
end
end
editorFrame.Pan.Grid.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.2,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local tween = TweenService:Create(stroke,info,{Transparency = 1})
tween:Play()
tween.Completed:Connect(function()
if not mouseDown then
stroke.Enabled = false
end
end)
local overlapTable = {}
local removed = false
local function remove()
removed = true
for index,node in pairs(overlapTable) do
NodeEditor.Nodes[index]:Delete()
if node then
node:Destroy()
end
end
end
for index,node in pairs(editorFrame.Pan:GetChildren()) do
if node:GetAttribute('Type') ~= nil then
if areFramesOverlapping(node,square) then
overlapTable[node.Name] = node
end
end
end
for index,node in pairs(overlapTable) do
local done = false
node:SetAttribute('Selected',true)
coroutine.wrap(function()
repeat
if node:FindFirstChildWhichIsA('UIStroke') then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local hue,sat,val = node.UIStroke.Color:ToHSV()
local largeTween = TweenService:Create(node.UIStroke,info,{Thickness = 4,Color = Color3.fromHSV(hue,sat-0.3,val)})
largeTween:Play()
largeTween.Completed:Wait()
if node:FindFirstChildWhichIsA('UIStroke') then
local smallTween = TweenService:Create(node.UIStroke,info,{Thickness = 2.4,Color = Color3.fromHSV(hue,sat,val)})
smallTween:Play()
smallTween.Completed:Wait()
else
break
end
else
break
end
until done == true
end)()
local startPos,mouseDown
local nodePos = {}
node.Button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
startPos = editorWindow:GetRelativeMousePosition()
mouseDown = true
for ind,val in pairs(overlapTable) do
nodePos[val.Name] = val.AbsolutePosition
end
end
end)
local changePos = game:GetService('RunService').Heartbeat:Connect(function()
if mouseDown then
local mouseOffsetX, mouseOffsetY = startPos.X-editorWindow:GetRelativeMousePosition().X, startPos.Y - editorWindow:GetRelativeMousePosition().Y
for index,oNode in pairs(overlapTable) do
if index ~= node.Name then
NodeEditor.Nodes[oNode.Name]:Move(UDim2.new(0,nodePos[oNode.Name].X-mouseOffsetX-editorFrame.Pan.Position.X.Offset,0,nodePos[oNode.Name].Y-mouseOffsetY-editorFrame.Pan.Position.Y.Offset))
end
end
end
end)
for index,node in pairs(editorFrame.Pan:GetDescendants()) do
if not overlapTable[node.Name] then
if node:GetAttribute('Type') ~= nil then
node.Button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
done = true
changePos:Disconnect()
for i,v in pairs(overlapTable) do
v:SetAttribute('Selected',false)
end
end
end)
end
end
end
editorFrame.Pan.Grid.InputBegan:Connect(function()
if object.UserInputType == Enum.UserInputType.MouseButton1 then
done = true
changePos:Disconnect()
for i,v in pairs(overlapTable) do
v:SetAttribute('Selected',false)
end
end
end)
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
node.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
if isHoveringOverObj(editorFrame.DeleteHit) then
remove()
end
end
end)
node.Destroying:Connect(function()
if not removed then
remove()
end
end)
end
end
end)
game:GetService('RunService').Heartbeat:Connect(function()
if mouseDown then
square.Visible = true
stroke.Transparency = 0
stroke.Enabled = true
square.Position = UDim2.fromOffset(startPos.X-editorFrame.Pan.Position.X.Offset,startPos.Y-editorFrame.Pan.Position.Y.Offset)
local mouseOffsetX, mouseOffsetY = startPos.X-editorWindow:GetRelativeMousePosition().X, startPos.Y - editorWindow:GetRelativeMousePosition().Y
square.Size = UDim2.new(0,-mouseOffsetX,0,-mouseOffsetY)
end
end)
local loaded = false
editWindow:FindFirstChild(v.Name).DialogueFrame.Dialogue.Value.MouseButton1Click:Connect(function()
if loaded == false then
coroutine.wrap(function()
loaded = true
local dTable = {editorFrame.LoadingFrame.Dot1,editorFrame.LoadingFrame.Dot2,editorFrame.LoadingFrame.Dot3}
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
coroutine.wrap(function()
while true do
for index, dot in pairs(dTable) do
local tween = TweenService:Create(dot,info,{Position = UDim2.new(dot.Position.X.Scale,dot.Position.X.Offset,.39,0)})
tween:Play()
tween.Completed:Connect(function()
local tween = TweenService:Create(dot,info,{Position = UDim2.new(dot.Position.X.Scale,dot.Position.X.Offset,.43,0)})
tween:Play()
end)
wait(.32)
end
end
end)()
loadNodes()
coroutine.wrap(function()
repeat task.wait() until loading == false
local info = TweenInfo.new(.7,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.LoadingFrame,info,{BackgroundTransparency = 1})
local tween2 = TweenService:Create(editorFrame.LoadingFrame.Icon,info,{ImageTransparency = 1})
local tween3 = TweenService:Create(editorFrame.LoadingFrame.Bar,info,{BackgroundTransparency = 1})
local tween4 = TweenService:Create(editorFrame.LoadingFrame.Bar.Frame,info,{BackgroundTransparency = 1})
local tween5 = TweenService:Create(editorFrame.LoadingFrame.LoadStatus,info,{TextTransparency = 1})
tween:Play()
tween2:Play()
tween3:Play()
tween4:Play()
tween5:Play()
for index, dot in pairs(dTable) do
local tween = TweenService:Create(dot,info,{BackgroundTransparency = 1})
tween:Play()
end
end)()
end)()
end
end)
local frame = editorFrame.Pan
local moved = UDim2.new(0,0,0,0)
local UserInputService = game:GetService('UserInputService')
--ContextMenu
editorFrame.Pan.Grid.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton2 then
local snapMessage,gridMessage
if NodeEditor.Snap == true then
snapMessage = 'Disable Snap'
else
snapMessage = 'Enable Snap'
end
if editorFrame.Pan.Grid.ImageTransparency == 1 then
gridMessage = 'Show Grid'
else
gridMessage = 'Hide Grid'
end
local clickPos = editorWindow:GetRelativeMousePosition()
local newNode = NodeEditor:OpenContext({'New...','-',snapMessage,gridMessage,'-','Center Editor','Reset Zoom',['New...'] = {'Root','Display','Response','Split','Action','Close'}},clickPos)
local nodeName = newNode.Event:Wait()
local enabled = false
if NodeEditor.NodeType[nodeName] ~= nil then
enabled = true
end
if nodeName == 'Reset Zoom' then
NodeEditor:Zoom(100)
end
if nodeName == 'Center Editor' then
editorFrame.Pan.Position = UDim2.new(0, -1064,0, -1064)
editorFrame.ToolsFrame.Pos.Text.Text = '0,0'
end
if nodeName == 'Reset Zoom' then
NodeEditor:Zoom(100)
end
if nodeName:sub(-4,-1) == 'Snap' then
if NodeEditor.Snap == true then
NodeEditor.Snap = false
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = true
else
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = false
NodeEditor.Snap = true
end
end
if nodeName:sub(-4,-1) == 'Grid' then
if editorFrame.Pan.Grid.ImageTransparency == 1 then
editorFrame.Pan.Grid.ImageTransparency = 0
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = false
else
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = true
editorFrame.Pan.Grid.ImageTransparency = 1
end
end
if enabled == true then
local folderName = v.Name
local found = 0
for index, value in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:GetChildren()) do
if value.Name:match(v.Name:gsub('%d+','')) then
if tonumber(value.Name:gsub('%a','')) >= found then
found = tonumber(value.Name:gsub('%a',''))
end
end
end
found += 1
while true do
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild(v.Name..found) then
found += 1
else
break
end
wait()
end
local Name = nodeName..found
local node = NodeEditor.new(NodeEditor.NodeType[nodeName],Name)
local moving = false
node.UI.Name = Name
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
NodeEditor.Snap = false
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
NodeEditor.Snap = true
else
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
end
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
node.UI.Button.MouseButton1Down:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.DeleteFrame.Visible = true
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
mouseDown = true
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
end
end
end)
--End of Context Menu
local folderName = v.Name
for i,v in pairs(editorFrame.CreateNode.NodeFrame:GetChildren()) do
if v:IsA('TextButton') then
v.MouseButton1Click:Connect(function()
if enabled == true then
local found = 0
for index, value in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:GetChildren()) do
if value.Name:match(v.Name:gsub('%d+','')) then
if (tonumber(value.Name:gsub('%a','')) or 0) >= found then
found = tonumber(value.Name:gsub('%a',''))
end
end
end
found += 1
while true do
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild(v.Name..found) then
found += 1
else
break
end
wait()
end
local Name = v.Name..found
local node = NodeEditor.new(NodeEditor.NodeType[v.Name],Name)
local moving = false
node.UI.Name = Name
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
NodeEditor.Snap = false
node:Move(UDim2.new(0,editorWindow.AbsoluteSize.X/2-node.UI.Size.X.Offset/2-editorFrame.Pan.AbsolutePosition.X,0,editorWindow.AbsoluteSize.Y/2+node.UI.Size.Y.Offset/2-editorFrame.Pan.AbsolutePosition.Y))
NodeEditor.Snap = true
else
node:Move(UDim2.new(0,editorWindow.AbsoluteSize.X/2-node.UI.Size.X.Offset/2-editorFrame.Pan.AbsolutePosition.X,0,editorWindow.AbsoluteSize.Y/2+node.UI.Size.Y.Offset/2-editorFrame.Pan.AbsolutePosition.Y))
end
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
node.UI.Button.MouseButton1Down:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.DeleteFrame.Visible = true
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
mouseDown = true
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
end
end)
end
end
--Pan
local min = UDim2.new(0, -2186,0, -2824)
local max = UDim2.new(0,0,0,0)
local pan = editorWindow.ChatEditor.Pan
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos;
startFramePos = UDim2.new(0, -1064,0, -1064)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = frame.AbsoluteSize
local framePos = frame.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
pan.Grid.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = frame.Position
mouseDown = true
end
end)
pan.Grid.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
finalPos = UDim2.new(0,math.clamp(finalPos.X.Offset,min.X.Offset,max.X.Offset),0,math.clamp(finalPos.Y.Offset,min.Y.Offset,max.Y.Offset,0)) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
frame.Position = finalPos
local xOffset = editorFrame.Pan.Position.X.Offset+1064
local yOffset = editorFrame.Pan.Position.Y.Offset+1064
editorFrame.ToolsFrame.Pos.Text.Text = -xOffset..','..yOffset
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
else
plugin:GetMouse().Icon = ''
end
end)
--Zoom
pan.Grid.InputChanged:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseWheel then
local currentPercentage = NodeEditor.Magnification
currentPercentage += object.Position.Z*5
currentPercentage = math.clamp(currentPercentage,50,250)
NodeEditor:Zoom(currentPercentage)
end
end)
--Show/Hide tools
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local show = false
local function property(Instance: Instance, Property: string)
local success = pcall(function()
local a = Instance:GetPropertyChangedSignal(Property)
end)
if success then
return true
else
return false
end
end
editorFrame.Show.MouseButton1Click:Connect(function()
if show == false then
show = true
editorFrame.ToolsFrame.Visible = true
local tween = TweenService:Create(editorFrame.ToolsFrame,info,{Position = UDim2.new(0.5, 0,0.919, 0),BackgroundTransparency = 0})
tween:Play()
wait(.2)
for i,v in pairs(editorFrame.ToolsFrame:GetDescendants()) do
if v:IsA('Frame') then
local transTween = TweenService:Create(v,info,{BackgroundTransparency = 0})
transTween:Play()
end
if property(v,'TextTransparency') then
local transTween = TweenService:Create(v,info,{TextTransparency = 0})
transTween:Play()
end
if property(v,'ImageTransparency') then
local transTween = TweenService:Create(v,info,{ImageTransparency = 0})
transTween:Play()
end
if v:IsA('UIStroke') then
local transTween = TweenService:Create(v,info,{Transparency = 0})
transTween:Play()
end
end
else
show = false
local info2 = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
for i,v in pairs(editorFrame.ToolsFrame:GetDescendants()) do
if v:IsA('Frame') then
local transTween = TweenService:Create(v,info,{BackgroundTransparency = 1})
transTween:Play()
end
if property(v,'TextTransparency') then
local transTween = TweenService:Create(v,info,{TextTransparency = 1})
transTween:Play()
end
if property(v,'ImageTransparency') then
local transTween = TweenService:Create(v,info,{ImageTransparency = 1})
transTween:Play()
end
if v:IsA('UIStroke') then
local transTween = TweenService:Create(v,info,{Transparency = 1})
transTween:Play()
end
end
wait(.15)
local tween = TweenService:Create(editorFrame.ToolsFrame,info2,{Position = UDim2.new(0.5, 0,1.1, 0),BackgroundTransparency = 1})
tween:Play()
wait(.25)
editorFrame.ToolsFrame.Visible = false
end
end)
--Show Hover
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.Show.MouseEnter:Connect(function()
local tween = TweenService:Create(editorFrame.Show.UIStroke,info,{Transparency = 0})
tween:Play()
end)
editorFrame.Show.MouseLeave:Connect(function()
local tween = TweenService:Create(editorFrame.Show.UIStroke,info,{Transparency = 1})
tween:Play()
end)
-------
--Editor Tools
local snap = false
local Editor = require(editorScript)
local function enableSnap()
Editor.Snap = true
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = false
end
local function disableSnap()
Editor.Snap = false
editorFrame.ToolsFrame.SnapToGrid.Frame.Visible = true
end
editorFrame.ToolsFrame.SnapToGrid.Button.MouseButton1Click:Connect(function()
if not snap then
enableSnap()
snap = true
else
disableSnap()
snap = false
end
end)
local grid = true
local function enableGrid()
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = false
editorFrame.Pan.Grid.ImageTransparency = 0
end
local function disableGrid()
editorFrame.ToolsFrame.ShowGrid.Frame.Visible = true
editorFrame.Pan.Grid.ImageTransparency = 1
end
editorFrame.ToolsFrame.ShowGrid.Button.MouseButton1Click:Connect(function()
if not grid then
enableGrid()
grid = true
else
disableGrid()
grid = false
end
end)
--------
--End of Chat Editor
--Open sidebar
local TweenService = game:GetService('TweenService')
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local offPos = UDim2.fromScale(-.177,0)
local onPos = UDim2.fromScale(0,0)
local button = Window:Get('Chatterblox'):FindFirstChild(v.Name).TitleBar.OpenTabs
local fire = true
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end)
button.MouseButton1Click:Connect(function()
button.Visible = false
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
button.Visible = false
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local openInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local openTween = TweenService:Create(button.Parent.Parent.Tabs,openInfo,{Position = onPos})
openTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
script.ChangeOpenButton.Event:Connect(function(button)
fire = false
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end)
button.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local openInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0)
local openTween = TweenService:Create(button.Parent.Parent.Tabs,openInfo,{Position = onPos})
openTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
end)
--Close sidebar
local offPos = UDim2.fromScale(-.177,0)
local onPos = UDim2.fromScale(0,0)
local button = Window:Get('Chatterblox'):FindFirstChild(v.Name).Tabs.Collapse
button.ZIndex = 3
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
if button:GetAttribute('Clicked') == false then
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end
end)
button.MouseButton1Click:Connect(function()
button.Parent.Parent:WaitForChild('TitleBar').OpenTabs.Visible = true
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local closeInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local closeTween = TweenService:Create(button.Parent,closeInfo,{Position = offPos})
closeTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
end
--close sidebar
--local advanced = Tabs:Create('Advanced',Color3.fromRGB(206, 56, 255),false,v.Name)
--advanced.MouseButton1Click:Connect(function()
-- Tabs:Select('Advanced',v.Name)
--end)
--local dialogue = Tabs:Create('Dialogue',Color3.fromRGB(43, 177, 255),false,v.Name)
--dialogue.MouseButton1Click:Connect(function()
-- Tabs:Select('Dialogue',v.Name)
--end)
-- local themes = Tabs:Create('Themes',Color3.fromRGB(255, 53, 191),false,v.Name)
--themes.MouseButton1Click:Connect(function()
-- Tabs:Select('Themes',v.Name)
--end)
--local colour = Tabs:Create('Colour',Color3.fromRGB(255, 24, 24),false,v.Name)
--script.InitWindow:Fire(Window:Get('Chatterblox'):FindFirstChild(v.Name))
--for i,v in pairs(Colour) do
-- if not v:IsA('LocalScript') then
-- Window:InsertTo(v,v.Name,'ColourFrame')
-- else
-- Window:InsertTo(v,propTable,'SatVal')
-- wait(.00001)
-- --v.Disabled = false
-- end
--end
--colour.Visible = false
--[[EO Tab Creation]]--
for index, frame in pairs(Window:Get('Chatterblox'):FindFirstChild(v.Name):GetChildren()) do
if frame.Name:sub(-5,-1) == 'Frame' then
if frame.Name ~= 'DialogueFrame' then
for i,v in pairs(frame:GetDescendants()) do
if v:IsA('Frame') then
if not v:FindFirstChild('Title') then
v.BackgroundTransparency = 1
end
end
if v:IsA('TextLabel') then
v.TextTransparency = 1
end
if v:IsA('TextButton') then
v.TextTransparency,v.BackgroundTransparency = 1,1
end
if v:IsA('TextBox') then
v.TextTransparency,v.BackgroundTransparency = 1,1
end
end
end
end
end
local importTemplate = script.Template:Clone()
importTemplate.Name = v.Name
importTemplate.Title.Text = v.Name
importCount += 1
if importCount % 2 == 0 then
importTemplate.BackgroundColor3 = Theme.Background
importTemplate:SetAttribute('BackgroundColor3','Background')
else
importTemplate.BackgroundColor3 = Theme.Primary
importTemplate:SetAttribute('BackgroundColor3','Primary')
end
importTemplate.Parent = importFrame.Content
importTemplate.Import.MouseButton1Click:Connect(function()
if not importToSelection then
importTemplate.Update.Visible = true
local u = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChildWhichIsA('ScreenGui') or script.DialogueUI
local ui = u:Clone()
ui.Name = v.Name
if not ui then
ui = script.DialogueUI:Clone()
end
for ind,val in pairs(ui:GetDescendants()) do
if val:IsA('Frame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
end
if val:IsA('TextButton') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
if val:IsA('TextBox') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
if val:IsA('ImageLabel') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('ImageButton') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('ScrollingFrame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
end
if val:IsA('ViewportFrame') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('ImageTransparency',val.ImageTransparency)
end
if val:IsA('TextLabel') then
val:SetAttribute('BackgroundTransparency',val.BackgroundTransparency)
val:SetAttribute('TextTransparency',val.TextTransparency)
end
end
ui.DialogueClient.Source = [[local folderName = "]]..v.Name..[["
]]..ui.DialogueClient.Source
ui.DialogueClient.Source = ui.DialogueClient.Source..[[
--To start the dialogue, call the startDialogue() method.
--To detect when the dialogue has finished, use the dialogue.Completed Signal
]]
for i,v in pairs(ui:GetChildren()) do
if v:IsA('LocalScript') then
v.Disabled = false
end
end
ui.Parent = game.StarterGui
Selection:Set({ui})
importTemplate.Update.MouseButton1Click:Connect(function()
local dScript = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChildWhichIsA('ScreenGui').Dialogue:Clone()
ui.Dialogue:Destroy()
dScript.Parent = ui
Selection:Set({ui})
end)
else
importTemplate.Update.Visible = true
local selectionTable = Selection:Get()
local scriptTable = {}
for index,Instance in pairs(selectionTable) do
for i,Script in pairs(script.DialogueUI:GetChildren()) do
local sClone = Script:Clone()
if Script.Name == 'DialogueClient' then
sClone.Source = [[local folderName = "]]..v.Name..[["
]]..sClone.Source
sClone.Source = sClone.Source..[[
--Make sure these scripts are placed in a ScreenGui and have the same parent or a script may error.
--To start the dialogue, call the startDialogue() method.
--To detect when the dialogue has finished, use the dialogue.Completed Signal
]]
end
sClone.Parent = Instance
table.insert(scriptTable,sClone)
end
end
for i,v in pairs(scriptTable) do
if v:IsA('LocalScript') then
v.Disabled = false
end
end
Selection:Set(scriptTable)
importTemplate.Update.MouseButton1Click:Connect(function()
local dScript = game.ReplicatedStorage.DialogueContainer:FindFirstChild(v.Name):FindFirstChildWhichIsA('ScreenGui').Dialogue:Clone()
dScript.Parent = scriptTable[2].Parent
scriptTable[2]:Destroy()
Selection:Set(dScript[2])
end)
end
end)
end
for i,v in pairs(game.ReplicatedStorage.DialogueContainer:GetChildren()) do
if v:IsA('Folder') then
createTab(v)
end
end
end
--Create Button Animations--
local button = main.Create
button.ZIndex = 3
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local sizeInfo = TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 0})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween2:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button.UIStroke,info,{Transparency = 1})
tween:Play()
local tween2 = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween2:Play()
end)
button.MouseButton1Click:Connect(function()
local mouse = Window:Get('Chatterblox'):GetRelativeMousePosition()
local circle = Instance.new('Frame',button)
circle.BackgroundTransparency = 0
circle.BackgroundColor3 = Color3.fromRGB(255,255,255)
local corner = Instance.new('UICorner',circle)
corner.CornerRadius = UDim.new(1,0)
circle.ZIndex = 20
circle.AnchorPoint = Vector2.new(.5,.5)
circle.Size = UDim2.fromOffset(button.Size.X.Offset/2,button.Size.Y.Offset/2)
circle.Position = UDim2.fromOffset((mouse.X-button.AbsolutePosition.X),mouse.Y-button.AbsolutePosition.Y)
local circleInfo = TweenInfo.new(.25,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local circleTween = TweenService:Create(circle,circleInfo,{Size = button.Size, BackgroundTransparency = 1})
circleTween:Play()
circleTween.Completed:Connect(function()
circle:Destroy()
end)
local closeInfo = TweenInfo.new(.6,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0)
local closeTween = TweenService:Create(button.Parent,closeInfo,{Position = offPos})
closeTween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(35,35)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
if button:GetAttribute('Clicked') == true then
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(43,43)})
tween:Play()
else
local tween = TweenService:Create(button,sizeInfo,{Size = UDim2.fromOffset(39,39)})
tween:Play()
end
end)
--Main Children
Window:Insert(main,'Chatterblox')
main.Create.MouseButton1Click:Connect(function()
coroutine.wrap(function()
wait(.001)
main.CreateFrame.Visible = true
end)()
main.CreateFrame.Create.NameBox.Text = ''
main.CreateFrame.Create.Position = UDim2.new(main.CreateFrame.Create.Position.X.Scale,main.CreateFrame.Create.Position.X.Offset,main.CreateFrame.Create.Position.Y.Scale,-40)
main.CreateFrame.Create.BackgroundTransparency = 1
TweenService:Create(main.CreateFrame.Create,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Position = UDim2.new(main.CreateFrame.Create.Position.X.Scale,main.CreateFrame.Create.Position.X.Offset,main.CreateFrame.Create.Position.Y.Scale,0),BackgroundTransparency = 0}):Play()
TweenService:Create(main.CreateFrame,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{BackgroundTransparency = .1}):Play()
local closeEvent = Instance.new('BindableEvent')
for i,v in pairs(main.CreateFrame:GetDescendants()) do
if v:IsA('TextLabel') or v:IsA('TextButton') or v:IsA('TextBox') then
local tTransparency = v.TextTransparency
local bTransparency = v.BackgroundTransparency
v.TextTransparency = 1
v.BackgroundTransparency = 1
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{TextTransparency = tTransparency, BackgroundTransparency = bTransparency}):Play()
local function close()
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{TextTransparency = 1, BackgroundTransparency = 1}):Play()
wait(.51)
v.TextTransparency = tTransparency
v.BackgroundTransparency = bTransparency
end
main.CreateFrame.Close.MouseButton1Click:Connect(close)
closeEvent.Event:Connect(close)
end
if v:IsA('Frame') and v ~= main.CreateFrame.Create then
local bTransparency = v.BackgroundTransparency
v.BackgroundTransparency = 1
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{BackgroundTransparency = bTransparency}):Play()
local function close()
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{ BackgroundTransparency = 1}):Play()
wait(.51)
v.BackgroundTransparency = bTransparency
end
main.CreateFrame.Close.MouseButton1Click:Connect(close)
closeEvent.Event:Connect(close)
end
if v:IsA('UIStroke') then
local transparency = v.Transparency
v.Transparency = 1
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = transparency}):Play()
local function close()
TweenService:Create(v,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 1}):Play()
wait(.51)
v.Transparency = transparency
end
main.CreateFrame.Close.MouseButton1Click:Connect(close)
closeEvent.Event:Connect(close)
end
end
local function close()
TweenService:Create(main.CreateFrame.Create,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Position = UDim2.new(main.CreateFrame.Create.Position.X.Scale,main.CreateFrame.Create.Position.X.Offset,main.CreateFrame.Create.Position.Y.Scale,-40),BackgroundTransparency = 1}):Play()
TweenService:Create(main.CreateFrame,TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{BackgroundTransparency = 1}):Play()
wait(.505)
main.CreateFrame.Visible = false
main.CreateFrame.BackgroundTransparency = 0.1
main.CreateFrame.Create.BackgroundTransparency = 0
end
main.CreateFrame.Close.MouseButton1Click:Connect(close)
closeEvent.Event:Connect(close)
local create = main.CreateFrame.Create
local createNew = true
create.Create.BackgroundColor3 = Theme.Secondary
create.Create.Text = 'Create'
create.NameBox:GetPropertyChangedSignal('Text'):Connect(function()
local text = create.NameBox.Text
if text ~= '' then
create.Create.BackgroundColor3 = Theme.Accent
else
create.Create.BackgroundColor3 = Theme.Secondary
end
end)
create.Items.New.Button.MouseButton1Click:Connect(function()
TweenService:Create(create.Items.FromPreset.UIStroke,TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 1}):Play()
TweenService:Create(create.Items.New.UIStroke,TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 0}):Play()
createNew = true
create.Create.Text = 'Create'
end)
create.Items.FromPreset.Button.MouseButton1Click:Connect(function()
TweenService:Create(create.Items.FromPreset.UIStroke,TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 0}):Play()
TweenService:Create(create.Items.New.UIStroke,TweenInfo.new(.1,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 1}):Play()
createNew = false
create.Create.Text = 'Next'
end)
local namebox = main.CreateFrame.Create.NameBox
namebox.Focused:Connect(function()
TweenService:Create(namebox.UIStroke,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 0}):Play()
end)
namebox.FocusLost:Connect(function()
TweenService:Create(namebox.UIStroke,TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0),{Transparency = 1}):Play()
end)
main.CreateFrame.Create.Create.MouseButton1Click:Connect(function()
if createNew then
local name = create.NameBox.Text
if name ~= '' then
closeEvent:Fire()
createTab(nil,nil,nil,name)
end
else
local name = create.NameBox.Text
if name ~= '' then
closeEvent:Fire()
showMarket()
showPresetsInMarket()
creatingName = name
closeEvent:Fire()
wait(.1)
end
end
end)
end)
--
--Themes
if currentTheme == 'System' then
local studioTheme = settings().Studio.Theme
if studioTheme.Name == 'Dark' then
Theme = Themes.Dark
else
Theme = Themes.Light
end
else
local theme = plugin:GetSetting('Theme')
if theme then
if Themes[theme] then
Theme = Themes[theme]
else
Theme = Themes.Light
end
end
end
local theme = plugin:GetSetting('Theme')
if theme then
if Themes[theme] then
Theme = Themes[theme]
else
Theme = Themes.Light
end
end
showThemeColours()
settings().Studio.ThemeChanged:Connect(function()
if matchStudioTheme then
local studioTheme = settings().Studio.Theme
if studioTheme.Name == 'Dark' then
Theme = Themes.Dark
else
Theme = Themes.Light
end
end
showThemeColours()
end)
]]>
-1
-
Tab
{4C2A42CF-8777-4BEF-A067-A652023978C8}
-1
-
Title
{2B68B0C1-0A09-4783-9A14-24767AA99598}
-1
-
false
Tip
0
{DA7EABF8-E096-42A0-86DC-0A5C77CE4406}
-1
-
Tip
{F8D1EAB2-C856-4CFD-AB68-74D3E9D8E624}
-1
-
Main
{26467554-68BC-4416-9562-8AADE0DD58BB}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Menu
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
TitleBar
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.168639049
0
0
-1
0
true
1
-
0 0 1 1 0 1 0 0.666667 1 0
false
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
OpenTabs
0
{8AD51FB9-C2BB-45DE-8EDA-59847A61005E}
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0826770514
0
0.035502959
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.475177288
0
0.0932687074
0
0
-1
ChatterBlox
1
1
1
false
29
0
0
0
1
0
0
false
0
1
true
2
-
3.82857132
0
0
UIAspectRatioConstraint
-1
-
true
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Create
[null]
[null]
[null]
[null]
0.850000024
0
0.0829999968
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
35
0
35
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://6764432408
1
1
1
100
450
50
50
0
4
ImageLabel
[null]
[null]
[null]
[null]
0.100000001
0
0.100000001
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.800000012
0
0.800000012
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
1
1
1
1
true
0
UIStroke
-1
1.60000002
1
-
false
0
0
AQAAABQAAABTY3JvbGxCYXJJbWFnZUNvbG9yMwIJAAAAU2Vjb25kYXJ5
true
0
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
0
rbxassetid://2070896802
0
0
0
0
2
0
true
false
0
0
0
rbxassetid://2070896802
Scroll
[null]
[null]
[null]
[null]
0
0
0.168639049
0
[null]
0
1
1
1
0
5
4
true
false
0
0
0
0
false
[null]
0
1
0
0
281
0
-1
rbxassetid://2070896802
0
0
true
1
-
1
0
UIListLayout
0
0
2
-1
1
-
false
0
0
true
0
0
0
0
0.100000001
0.105882362
0.164705887
0.207843155
0
1
false
false
0
CreateFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
false
3
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Create
[null]
[null]
[null]
[null]
0.5
0
0.3672629
0
[null]
0
false
0
0
0
0
false
[null]
0
0
209
0
226
0
-1
0
true
4
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Items
[null]
[null]
[null]
[null]
0
103
0
75
[null]
0
false
0
0
0
0
false
[null]
0
0
198
0
90
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
New
[null]
[null]
[null]
[null]
0.0959595963
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.870000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.36648044
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
44
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.74650079
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
28
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.235494643
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
23
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.783848345
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.281799704
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
29
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
FromPreset
[null]
[null]
[null]
[null]
0.227272734
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.870000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.36648044
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
44
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.74650079
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
28
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.235494643
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
23
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.783848345
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Fill
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.699999988
0
1
0
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.281799704
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
29
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882354
0.164705887
0.20784314
0
3
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
0
5
0
5
0
96
0
74
0
0
0
UIGridLayout
2
-1
0
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
5
0
119
false
[null]
0
false
0
0
0
0
false
[null]
0
0
96
0
19
0
-1
New
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
106
0
119
false
[null]
0
false
0
0
0
0
false
[null]
0
0
96
0
19
0
-1
From Preset
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0.5
0.5
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
103
0
20
false
[null]
0
false
0
0
0
0
false
[null]
0
0
120
0
24
0
-1
Create Dialogue
1
1
1
false
17
0
0
0
1
0
0
false
2
1
true
4
-
true
0.5
0.5
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0.5
0
0.5
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
3
-
true
0.5
0.5
false
true
0
0
0.666666687
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Create
[null]
[null]
[null]
[null]
0
103
0
205
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
100
0
24
0
-1
0
Next
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
4
-
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
5
0
150
false
[null]
0
false
0
0
0
0
false
[null]
0
0
60
0
29
0
-1
Name
1
1
1
false
18
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
true
0
0.117647067
0.117647067
0.117647067
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
NameBox
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0
76
0
150
false
[null]
0
false
0
0
0
0
false
[null]
0
true
0
124
0
29
0
-1
1
1
1
true
false
15
0
0
0
1
0
0
false
2
1
true
4
-
0
8
UICorner
-1
-
1
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
true
true
0
1
1
1
0.99000001
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Close
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
Temp
{2E4C19D7-43BD-463C-9F38-A4DCD9986978}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.0588235334
0.0588235334
0.0588235334
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Temp
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
55
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0347448438
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.5214625
0
0.908999979
0
0
-1
Dialogue
1
1
1
true
20
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Delete
[null]
[null]
[null]
[null]
0.769999981
0
0.453999996
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0
37
0
37
0
-1
0
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
1
-
1
0
uICorner2
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
284
4
24
24
0
2
close
[null]
[null]
[null]
[null]
0.158000007
0
0.175999999
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.662058711
0
0.675401866
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 1 0.00392157 0.184314 0 1 1 0 0 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
1
-
0 1 0.00392157 0.184314 0 1 1 0 0 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.899999976
0
0.453999996
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0
37
0
37
0
-1
0
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
uICorner2
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
924
364
36
36
0
4
edit
[null]
[null]
[null]
[null]
0.157543778
0
0.175807089
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.658569694
0
0.675401866
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
1
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Duplicate
[null]
[null]
[null]
[null]
0.920000017
0
0.453999996
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0
37
0
37
0
-1
0
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
uICorner2
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11287174763
1
1
1
0
0
0
0
0
4
edit
[null]
[null]
[null]
[null]
0.157543778
0
0.175807089
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.658569694
0
0.675401866
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 0.0470588 1 0 0 1 0.0117647 1 0.788235 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
1
-
0 0.0470588 1 0 0 1 0.0117647 1 0.788235 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
1
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
MoreFrame
[null]
[null]
[null]
[null]
1
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
0
59
0
43
0
-1
0
false
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Delete
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
Delete
1
1
1
false
10
0
0
0
1
0
0
true
2
1
true
5
-
false
0
0
true
true
0
0.0862745121
0.0862745121
0.0862745121
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Duplicate
[null]
[null]
[null]
[null]
0
0
0.5
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
Duplicate
1
1
1
false
10
0
0
0
1
0
0
true
2
1
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
1
1
1
4
804
36
36
0
0
false
8
[null]
[null]
[null]
[null]
0.944000006
0
-0
0
0
[null]
0
0
false
false
0
0
0
0
false
[null]
0
0
55
0
55
0
0
0
0
0
1
-1
0
1
0
1
0
false
1
-
1
0
uICorner2
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
924
364
36
36
0
4
edit
[null]
[null]
[null]
[null]
0.157543778
0
0.175807089
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.658569694
0
0.675401866
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
1
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
false
true
0
0.639215708
0.635294139
0.647058845
1
0.105882354
0.164705887
0.20784314
0
0
false
false
rbxassetid://3926305904
1
1
1
4
804
36
36
0
10
false
More
[null]
[null]
[null]
[null]
0.870000005
0
0
0
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
0
20
0
20
0
0
0
0
0
1
-1
0
1
0
1
0
true
2
-
1
0
UICorner
-1
-
Colour
{42765EBE-407D-47CA-8D14-97ECFD81A440}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
button.MouseButton1Down:Connect(function()
down = true
end)
button.MouseButton1Up:Connect(function()
down = false
end)
--MOUSE.Button1Up:Connect(function()
-- down = false
--end)
local function GetScaledSizeFromOffset(OffsetX,OffsetY) -- The Function that returns the scale from original size.
local ScreenSize = game.Workspace.CurrentCamera.ViewportSize
local XRatio = OffsetX / ScreenSize.X
local YRatio = OffsetY / ScreenSize.Y
return UDim2.new(XRatio,0,YRatio,0)
end
local function getSatVal()
local ScaleXPos = button.Parent.Marker.Position.X.Offset/button.Parent.Marker.Parent.AbsoluteSize.X + button.Parent.Marker.Position.X.Scale
local ScaleYPos = button.Parent.Marker.Position.Y.Offset/button.Parent.Marker.Parent.AbsoluteSize.Y + button.Parent.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local sat = finalPos.X.Scale
local val = opY
return sat, val
end
local hdown = false
local UIS = game:GetService('UserInputService')
function toInteger(color)
return math.floor(color.r*255)*256^2+math.floor(color.g*255)*256+math.floor(color.b*255)
end
function toHex(color)
local int = toInteger(color)
local current = int
local final = ""
local hexChar = {
"A", "B", "C", "D", "E", "F"
}
repeat local remainder = current % 16
local char = tostring(remainder)
if remainder >= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
textButton.MouseButton1Down:Connect(function()
hdown = true
end)
textButton.MouseButton1Up:Connect(function()
hdown = false
end)
local function getHue()
local ScaleXPos = button.Parent.Marker.Position.X.Offset/button.Parent.Marker.Parent.AbsoluteSize.X + button.Parent.Marker.Position.X.Scale
local ScaleYPos = button.Parent.Marker.Position.Y.Offset/button.Parent.AbsoluteSize.Y + button.Parent.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local hue = finalPos.Y.Scale
return hue
end
coroutine.wrap(function()
while true do
wait()
if down == true then
local mouse = plugin:GetMouse()
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(button.Parent.Parent.Parent:GetAttribute('Hue'),1,1))}
button.Parent.Parent.SatVal.UIGradient.Color = sequence
button.Parent.Marker.Position = UDim2.new(0,math.clamp(mouse.X-button.Parent.AbsolutePosition.X,0,button.Parent.AbsoluteSize.X),0,math.clamp(mouse.Y-button.Parent.AbsolutePosition.Y,0,button.Parent.AbsoluteSize.Y))
local sat, val = getSatVal()
button.Parent.Parent.Parent:SetAttribute('Sat',sat)
button.Parent.Parent.Parent:SetAttribute('Val',val)
button.Parent.Parent.H.Text = math.round(button.Parent.Parent:GetAttribute('Hue')*360)
button.Parent.Parent.R.Text = math.round(button.Parent.Parent.Preview.BackgroundColor3.R*255)
button.Parent.Parent.G.Text = math.round(button.Parent.Parent.Preview.BackgroundColor3.G*255)
button.Parent.Parent.B.Text = math.round(button.Parent.Parent.Preview.BackgroundColor3.B*255)
button.Parent.Parent.HTML.Text = toHex(Color3.fromRGB(button.Parent.Parent.R.Text,button.Parent.Parent.G.Text,button.Parent.Parent.B.Text))
button.Parent.Parent.Preview.BackgroundColor3 = Color3.fromHSV(button.Parent.Parent:GetAttribute('Hue'),button.Parent.Parent:GetAttribute('Sat'),button.Parent.Parent:GetAttribute('Val'))
end
end
end)()
coroutine.wrap(function()
while true do
wait()
if hdown == true then
local mouse = plugin:GetMouse()
local hue = getHue()
textButton.Parent.Marker.Position = UDim2.new(.5,0,0,math.clamp(win:GetRelativeMousePosition().Y-satVal.AbsolutePosition.Y,0,textButton.Parent.AbsoluteSize.Y))
textButton.Parent.Parent:SetAttribute('Hue',hue)
local sequence = ColorSequence.new{
ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),
ColorSequenceKeypoint.new(1,Color3.fromHSV(textButton.Parent.Parent:GetAttribute('Hue'),1,1))
}
textButton.Parent.Parent.SatVal.UIGradient.Color = sequence
textButton.Parent.Parent.Preview.BackgroundColor3 = Color3.fromHSV(textButton.Parent.Parent:GetAttribute('Hue'),textButton.Parent.Parent:GetAttribute('Sat'),textButton.Parent.Parent:GetAttribute('Val'))
textButton.Parent.Parent.H.Text = math.round(textButton.Parent.Parent:GetAttribute('Hue')*360)
textButton.Parent.Parent.S.Text = math.round(textButton.Parent.Parent:GetAttribute('Sat')*100)
textButton.Parent.Parent.V.Text = math.round(textButton.Parent.Parent:GetAttribute('Val')*100)
textButton.Parent.Parent.R.Text = math.round(textButton.Parent.Parent.Preview.BackgroundColor3.R*255)
textButton.Parent.Parent.G.Text = math.round(textButton.Parent.Parent.Preview.BackgroundColor3.G*255)
textButton.Parent.Parent.B.Text = math.round(textButton.Parent.Parent.Preview.BackgroundColor3.B*255)
textButton.Parent.Parent.HTML.Text = toHex(Color3.fromRGB(textButton.Parent.Parent.R.Text,textButton.Parent.Parent.G.Text,textButton.Parent.Parent.B.Text))
end
end
end)()
table.insert(instances,hue)
table.insert(instances,v)
table.insert(instances,s)
table.insert(instances,r)
table.insert(instances,hTML)
table.insert(instances,h)
table.insert(instances,g)
table.insert(instances,b)
table.insert(instances,satVal)
table.insert(instances,preview)
table.insert(instances,colourUpdate)
table.insert(instances,script.SatVal)
return instances
]]>
10308492832
-
true
Colours
0
{A3049E5C-8D0C-414E-95FB-68DE51037961}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
local function fromHex(hex: string): Color3
local r, g, b = string.match(hex, "^#?(%w%w)(%w%w)(%w%w)$")
return Color3.fromRGB(tonumber(r, 16),
tonumber(g, 16), tonumber(b, 16))
end
for i,v in pairs(script.Parent:GetChildren()) do
if v:IsA('TextBox') then
v:SetAttribute('Last','')
v.FocusLost:Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
local h,s,val = Color3.fromRGB(script.Parent.R.Text,script.Parent.G.Text,script.Parent.B.Text):ToHSV()
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent.HTML.Text = toHex(Color3.fromRGB(script.Parent.R.Text,script.Parent.G.Text,script.Parent.B.Text))
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
local s = script.Parent.S.Text/100
local val = script.Parent.V.Text/100
local h = script.Parent.H.Text
h/=360
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent.R.Text = math.round(temp.BackgroundColor3.R*255)
script.Parent.G.Text = math.round(temp.BackgroundColor3.G*255)
script.Parent.B.Text = math.round(temp.BackgroundColor3.B*255)
script.Parent:SetAttribute('Sat',s)
script.Parent:SetAttribute('Val',val)
script.Parent.HTML.Text = toHex(temp.BackgroundColor3)
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
local h = script.Parent.H.Text
local s = script.Parent.S.Text/100
local val = script.Parent.V.Text/100
h/=360
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent:SetAttribute('Hue',h)
script.Parent.R.Text = math.round(temp.BackgroundColor3.R*255)
script.Parent.G.Text = math.round(temp.BackgroundColor3.G*255)
script.Parent.B.Text = math.round(temp.BackgroundColor3.B*255)
script.Parent.HTML.Text = toHex(temp.BackgroundColor3)
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
local RGBColour = fromHex(v.Text)
script.Parent.R.Text = math.round(RGBColour.R*255)
script.Parent.G.Text = math.round(RGBColour.G*255)
script.Parent.B.Text = math.round(RGBColour.B*255)
local h,s,val = RGBColour:ToHSV()
script.Parent.H.Text = math.round(360*h)
script.Parent.S.Text = math.round(s*100)
script.Parent.V.Text = math.round(val*100)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent:SetAttribute('Hue',h)
script.Parent:SetAttribute('Sat',s)
script.Parent:SetAttribute('Val',val)
script.Parent.Preview.BackgroundColor3 = RGBColour
end
end
end)
v:GetPropertyChangedSignal('Text'):Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
v:SetAttribute('Last',v.Text)
end
end
end)
end
end
wait(4)
RunService.Heartbeat:Connect(function()
if script.Parent.Visible == true then
script.Parent.ColourUpdate:FireServer(script.Parent.Preview.BackgroundColor3)
end
end)]]>
-1
-
true
SatVal
0
{93A6B0A5-CC6E-478E-B73B-88FB2710DEDF}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
script.Parent.MouseButton1Down:Connect(function()
down = true
end)
script.Parent.MouseButton1Up:Connect(function()
down = false
end)
UIS.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
local function GetScaledSizeFromOffset(OffsetX,OffsetY) -- The Function that returns the scale from original size.
local ScreenSize = game.Workspace.CurrentCamera.ViewportSize
local XRatio = OffsetX / ScreenSize.X
local YRatio = OffsetY / ScreenSize.Y
return UDim2.new(XRatio,0,YRatio,0)
end
local function getSatVal()
local ScaleXPos = script.Parent.Parent.Marker.Position.X.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.X + script.Parent.Parent.Marker.Position.X.Scale
local ScaleYPos = script.Parent.Parent.Marker.Position.Y.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.Y + script.Parent.Parent.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local sat = finalPos.X.Scale
local val = opY
return sat, val
end
while true do
wait()
if down == true then
local mouse = game.Players.LocalPlayer:GetMouse()
local sat,val = getSatVal()
script.Parent.Parent.Marker.Position = UDim2.new(0,math.clamp(mouse.X-script.Parent.Parent.AbsolutePosition.X,0,231),0,math.clamp(mouse.Y-script.Parent.Parent.AbsolutePosition.Y,0,231))
script.Parent.Parent.Parent:SetAttribute('Sat',sat)
script.Parent.Parent.Parent:SetAttribute('Val',val)
script.Parent.Parent.Parent.Preview.BackgroundColor3 = Color3.fromHSV(script.Parent.Parent.Parent:GetAttribute('Hue'),script.Parent.Parent.Parent:GetAttribute('Sat'),script.Parent.Parent.Parent:GetAttribute('Val'))
script.Parent.Parent.Parent.H.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Hue')*360)
script.Parent.Parent.Parent.S.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Sat')*100)
script.Parent.Parent.Parent.V.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Val')*100)
script.Parent.Parent.Parent.R.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.R*255)
script.Parent.Parent.Parent.G.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.G*255)
script.Parent.Parent.Parent.B.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.B*255)
script.Parent.Parent.Parent.HTML.Text = toHex(Color3.fromRGB(script.Parent.Parent.Parent.R.Text,script.Parent.Parent.Parent.G.Text,script.Parent.Parent.Parent.B.Text))
end
end]]>
-1
-
false
Init
0
{8081A6DA-946F-40AB-B72C-0A59476EC008}
script.Parent.Event:Fire(plugin)
-1
-
Event
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
ThemeUpdate
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
20
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.499000013
0
0.92001909
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.057961762
0
0
-1
Applying Theme
0
0
0
true
14
0
0
0
1
0
0
true
2
1
true
21
-
CustomSetting
{DB761B93-A036-4255-8F0F-FC9B941DCFE3}
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Custom
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.586288333
0
0.121212333
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.37825048
0
0.75757575
0
0
-1
0
(None)
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.18083033
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
true
Script
0
{4E73AE53-3228-47D6-8283-6658CEBC8433}
-1
-
true
MoveToServer
0
{B9B41D0F-FE2B-4DAB-9C05-2D737A70DB98}
-1
-
InitWindow
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
324
124
36
36
0
5
AdImage
[null]
[null]
[null]
[null]
0.100000001
0
0.100000001
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.800000012
0
0.800000012
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
0 0.666667 0 0.498039 0 1 0.666667 0 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
964
324
36
36
0
0
SImage
[null]
[null]
[null]
[null]
0.100000001
0
0.100000001
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.800000012
0
0.800000012
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
0 1 0.666667 0 0 1 1 1 0 0
true
UIGradient
0
0
0
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
964
84
36
36
0
5
DImage
[null]
[null]
[null]
[null]
0.150000006
0
0.150000006
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.699999988
0
0.699999988
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
804
964
36
36
0
2
CImage
[null]
[null]
[null]
[null]
0.100000001
0
0.100000001
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.800000012
0
0.800000012
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
0 1 0 0.498039 0 1 1 0 0 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
804
4
36
36
0
5
ApImage
[null]
[null]
[null]
[null]
0.100000001
0
0.100000001
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.800000012
0
0.800000012
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
0 0.0470588 1 0 0 1 0.0117647 1 0.788235 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
0
true
false
0
Market
[null]
[null]
[null]
[null]
0.119999997
0
0.152654871
0
[null]
0
false
0
0
0
0
false
[null]
0
0
254
0
338
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
0.137254909
0.137254909
0.137254909
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
58
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10682459554
1
1
1
0
0
0
0
0
0
Icon
[null]
[null]
[null]
[null]
0
15
0
7
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
41
0
41
0
0
0
0
0
1
-1
1
0
1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
64
0
12
false
[null]
0
false
0
0
0
0
false
[null]
0
0.672999978
0
0
33
0
-1
Market
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
1
-
true
0.5
0.5
true
0
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
rbxasset://textures/ui/Scroll/scroll-bottom.png
0
0
0
0
2
0
true
false
0
0
0
rbxasset://textures/ui/Scroll/scroll-middle.png
Themes
[null]
[null]
[null]
[null]
0.517716527
0
0.643491149
0
[null]
0
0
0
0
0
1
4
true
true
0
0
0
0
true
[null]
0
0.964566946
0
0.713017762
0
0
-1
rbxasset://textures/ui/Scroll/scroll-top.png
0
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
FeaturedThemes
[null]
[null]
[null]
[null]
0
0
-1.13991702
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
380
0
-1
0
true
1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Light
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
1.00000012
0
0.774999976
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779876696
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779879778
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Light Theme
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A theme that matches with the Roblox Studio Light theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529428
0.223529428
0.223529428
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
Dark
[null]
[null]
[null]
[null]
-6.00739725e-08
0
0.916666687
0
[null]
0
false
0
0
0
0
false
[null]
0
0.949790955
0
0.774999976
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899581492
0
0.537634432
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779887917
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779886973
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Dark Theme
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A theme that matches with the Roblox Studio Dark theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
2
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
0
5
0
5
0
241
0
185
0
0
1
UIGridLayout
2
-1
0
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
-1
1
-1
FeaturedThemesTitle
[null]
[null]
[null]
[null]
-3.00369862e-08
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.885999978
0
0.0299999993
0
0
-1
Featured Themes
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
1
1
UIListLayout
0
5
2
-1
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
2
1
-1
All Themes Title
[null]
[null]
[null]
[null]
-3.00369862e-08
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.885999978
0
0.0299999993
0
0
-1
All Themes
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
-2
MatchStudio
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
245
0
33
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
-1
1
-1
FeaturedThemesTitle
[null]
[null]
[null]
[null]
0
0
0.121212125
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.828571558
0
0.701797962
0
0
-1
Match Studio Theme
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgAAAAA=
false
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Toggle
[null]
[null]
[null]
[null]
0.861016929
0
0.0981286615
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0
25
0
25
0
-1
0
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
5
UICorner
-1
-
false
0
0
true
0
0.223529428
0.223529428
0.223529428
1
0.105882362
0.164705887
0.207843155
0
1
false
false
5
Dark
[null]
[null]
[null]
[null]
-6.00739725e-08
0
0.916666687
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899581492
0
0.537634432
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779887917
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779886973
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Dark Theme
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A theme that matches with the Roblox Studio Dark theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
2
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
4
Light
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779876696
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779879778
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Light Theme
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A theme that matches with the Roblox Studio Light theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
6
Blossom
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.968627453
0.847058833
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800552311
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800553128
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Blossom
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A great theme if you love pink!
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
6
Nightfall
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.968627453
0.847058833
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800729074
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800730446
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Nightfall
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
Not as dark as Dark Theme, but a nice navy blue instead.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
6
GreyAmber
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.968627453
0.847058833
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800991737
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11800992678
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Grey Amber
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A lighter version of Dark Mode with an orange accent colour.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
6
Winter
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.968627453
0.847058833
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11801073226
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11801074210
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Winter
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
Does anyone else feel a bit chilly?
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0.223529413
0.223529413
0.223529413
1
0.105882362
0.164705887
0.207843155
0
1
false
false
6
Aqua
[null]
[null]
[null]
[null]
-0.00836820062
0
0.108333334
0
[null]
0
false
0
0
0
0
false
[null]
0
0
241
0
185
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.968627453
0.847058833
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.537999988
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11801301603
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11801302933
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Aqua
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
A theme with a greeny-blue colour palette.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
2
-
0
8
UICorner
-1
-
false
0
0
true
0
0
0
0
0.300000012
0.105882362
0.164705887
0.207843155
0
1
false
false
0
InfoFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
false
3
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.223529413
0.223529413
0.223529413
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Info
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0.854330719
0
0.775147915
0
0
-1
0
true
3
-
0
3
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0.340000004
0
[null]
0
false
0
0
0
0
false
[null]
0
0
200
0
91
0
-1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779886973
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
4
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779887917
1
1
1
0
0
0
0
1
0
Image2
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
4
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0.0649999827
0
0.534427166
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.327615827
0
0
-1
A theme that matches with the Roblox Studio Dark theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
9
0
7
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Dark Theme
1
1
1
false
27
0
0
0
1
0
0
true
0
1
true
3
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Apply
[null]
[null]
[null]
[null]
0.0460829511
0
0.862042964
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.875576019
0
0.114503816
0
0
-1
0
1
1
1
false
20
0
0
0
1
0
0
false
2
1
true
3
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
Apply
1
1
1
false
23
0
0
0
1
0
0
false
2
1
true
3
-
0
3
UICorner
-1
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIGAAAAQWNjZW50
true
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
0.65882355
0.65882355
0.65882355
284
4
24
24
0
0
false
Close
[null]
[null]
[null]
[null]
0.832142889
0
0
7
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
0
27
0
27
0
0
0
0
0
1
-1
0
1
0
1
0
true
3
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
SectionTabs
[null]
[null]
[null]
[null]
0.00787401572
0
0.168639049
0
[null]
0
false
0
0
0
0
false
[null]
0
0.992125988
0
0.0946745574
0
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Presets
[null]
[null]
[null]
[null]
0.5
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.5
0
1
0
0
-1
0
true
1
-
0
0
UIListLayout
0
0
2
-1
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Presets
[null]
[null]
[null]
[null]
0.163500011
0
0.25
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.5
0
-0.531000018
0
0
-1
0
Presets
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Themes
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.5
0
1
0
0
-1
0
true
1
-
0
0
UIListLayout
0
0
2
-1
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Themes
[null]
[null]
[null]
[null]
0.163500011
0
0.25
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.5
0
-0.531000018
0
0
-1
0
Themes
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Line
[null]
[null]
[null]
[null]
0
0
0.866999984
0
[null]
0
false
0
0
0
0
false
[null]
0
0.5
0
0
2
0
-1
0
true
1
-
1
0
UICorner
-1
-
true
0.5
0.5
true
0
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
rbxasset://textures/ui/Scroll/scroll-bottom.png
0
0
0
0
2
0
true
false
0
0
0
rbxasset://textures/ui/Scroll/scroll-middle.png
Presets
[null]
[null]
[null]
[null]
0.517716527
0
0.643491149
0
[null]
0
0
0
0
0
1
4
true
true
0
0
0
0
true
[null]
0
0.964566946
0
0.713017762
0
0
-1
rbxasset://textures/ui/Scroll/scroll-top.png
0
0
false
1
-
0
5
0
5
0
241
0
185
0
0
1
UIGridLayout
2
-1
0
1
-
false
0
0
true
0
0.223529428
0.223529428
0.223529428
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
QuestStarter
[null]
[null]
[null]
[null]
-6.00739725e-08
0
0.916666687
0
[null]
0
false
0
0
0
0
false
[null]
0
0.949790955
0
0.774999976
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0.5
0.5
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0
60
[null]
0
false
0
0
0
0
false
[null]
0
0.899581492
0
0.537634432
0
0
-1
0
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779886973
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
11
0
117
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Quest Starter
1
1
1
false
20
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0
11
0
145
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.172043011
0
0
-1
Gives the player a quest if they have enough coins.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
2
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
0
8
UICorner
-1
-
true
true
0
true
DialogueUI
true
[null]
1
2
0
0
0
0
false
-1
1
-
DialogueController
{0787DF18-6D04-4DBE-9B19-F200AC76B1B2}
-1
-
Dialogue
{D5556722-90DF-4951-8F20-EEF0E9378864}
([^<>]*)") do
if inString:sub(1,4) == 'game' then
local oString = inString
local instances = {game}
local iIndex = 1
inString = inString:gsub('game.','')
local indexes = inString:split('.')
for i,v in pairs(indexes) do
if v ~= '' then
table.insert(instances,instances[iIndex][v])
iIndex += 1
end
end
Text = Text:gsub(''..oString..'',tostring(instances[#instances]))
end
end
local sWait = true
coroutine.wrap(function()
for i = 1, #Text do
self.UI.MessageText.Text = Text:sub(1,i)
if sWait then
local characters = self.Properties.PauseCharacters
local isChar = false
for I = 1,#characters do
for ind = 1,#Text do
if Text:sub(i,i):lower() == characters:sub(I,I):lower() then
isChar = true
end
end
end
if not isChar then
wait((101-self.Properties.Speed)/200)
else
wait(self.Properties.PauseWait)
end
end
end
self.ShowCompleteEvent:Fire()
end)()
self.UI.Skip.MouseButton1Down:Connect(function()
sWait = false
end)
return self
end
end
function Dialogue:ShowResponse(Text)
if not self.UI.Options:FindFirstChild(Text) then
local option = script.Response:Clone()
option.BackgroundTransparency = option:GetAttribute('BackgroundTransparency') or 0
option.TextTransparency = option:GetAttribute('TextTransparency') or 0
option.OText.Text = Text
option.Size = UDim2.new(0,0,.18,0)
option.Parent = self.UI.Options
option.Name = Text
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
TweenService:Create(option,info,{Size = UDim2.new(0,option.OText.TextBounds.X+30,.18,0)}):Play()
reseponseShownEvent:Fire()
return option
end
end
function Dialogue:CloseResponses()
for i,v in pairs(self.UI.Options:GetChildren()) do
if v:IsA('TextButton') then
local info = TweenInfo.new(.375,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(v,info,{Size = UDim2.new(0,0,v.Size.Y.Scale,0)})
tween:Play()
tween.Completed:Connect(function()
v:Destroy()
end)
end
end
end
return Dialogue
]]>
-1
-
true
0
0.5
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
true
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
false
Response
[null]
[null]
[null]
[null]
0
0
0.0900000483
0
true
[null]
0
true
false
0
0
0
0
false
[null]
0
0.48503831
0
0.180000022
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
true
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
OText
[null]
[null]
[null]
[null]
0.0989998057
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
146
0
32
0
-1
Response
0
0
0
false
14
0
0
0
1
0
0
true
0
1
true
1
-
false
0
0
AQAAABYAAABCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BgAAAAAAAPA/
true
0
0.0784313753
0.0784313753
0.0784313753
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
MessageFrame
[null]
[null]
[null]
[null]
0.28997612
0
0.629807413
0
[null]
0
false
0
0
0
0
false
[null]
0
0.419563502
0
0.368686169
0
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
MessageText
[null]
[null]
[null]
[null]
0.0211946052
0
0.064000003
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.676300585
0
0.824000001
0
0
-1
0
0
0
false
22
0
0
0
1
0
0
true
0
0
true
1
-
false
0.784313738
0.784313738
0.784313738
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
0.227141321
3.19998169
3.44058275
1
0
-5.96046448e-08
-0
1
-0
5.96046448e-08
0
1
1.22173059
false
false
1
1
1
0
0
0.549019635
0.549019635
0.549019635
-1
-1
-1
NPCPic
[null]
[null]
[null]
[null]
0.766859353
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.233140662
0
1
0
0
-1
true
1
-
0 1 1 1 0 1 1 1 1 0
true
UIGradient
0
0
180
-1
0 0 0 0.997704 0.9875 0 1 0 0
-
0
8
UICorner
-1
-
false
0
0
AQAAABYAAABCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BgAAAAAAAPA/
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Options
[null]
[null]
[null]
[null]
1.05234981
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.46121186
0
1
0
0
-1
0
true
1
-
1
1
UIListLayout
0.0399999991
0
2
-1
1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Skip
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
1
0
false
2
1
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
http://www.roblox.com/asset/?id=9723646128
0.192156881
0.192156881
0.192156881
0
0
0
0
0
0
Arrow
[null]
[null]
[null]
[null]
0.90200001
0
0.699999988
0
0
[null]
180
0
false
0
0
0
0
false
[null]
0
0.063905254
0
0.0982334167
0
0
0
0
0
0
1
-1
1
0
1
0
false
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0211945921
0
-0.220357522
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.676300585
0
0.167790279
0
0
-1
0
0
0
false
22
0
0
0
1
0
0
true
0
0
true
1
-
true
DialogueClient
0
{0B10FE33-1F73-4505-9319-F4FA0400291E}
-1
-
Nodes
-1
-
Root1
-1
-
Prompt
-1
-
Split1
-1
-
AQAAAAQAAABOYW1lAgYAAABTcGxpdDE=
true
Condition
0
{BA4A3757-6973-4F88-B7C5-84EF512A78A8}
= requiredCoins then
game.Players.LocalPlayer.leaderstats.Coins -= requiredCoins
game.ReplicatedStorage.DialogueContainer.SplitRecieve:Fire(1,script:GetAttribute('Name'))
else
game.ReplicatedStorage.DialogueContainer.SplitRecieve:Fire(2,script:GetAttribute('Name'))
end
end
check()]]>
-1
-
Display1
-1
-
Prompt
-1
I've given you a quest, go complete it!
-
Display2
-1
-
Prompt
-1
You don't have enough coins. Come back when you have more!
-
Close1
-1
-
Action1
-1
-
AQAAAAQAAABOYW1lAgcAAABBY3Rpb24x
true
Action
0
{2A894BD8-15FD-45F5-8BD4-6F39367EEC2D}
-1
-
AQAAAAcAAABDcmVhdGVkBgAAAAAAACZA
Lines
-1
-
Root1Line0
-1
167.660919189453125
-
Split1Line7
-1
125.18070220947265625
-
Split1Line9
-1
-128.418060302734375
-
Display2Line11
-1
167.242462158203125
-
Display1Line13
-1
180
-
Action1Line15
-1
-116.952178955078125
-
false
0
0
true
0
0
0
0
0.300000012
0.105882362
0.164705887
0.207843155
0
1
false
false
0
PresetInfoFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
false
3
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.223529413
0.223529413
0.223529413
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Info
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0.854330719
0
0.775147915
0
0
-1
0
true
3
-
0
3
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Images
[null]
[null]
[null]
[null]
0.5
0
0.340000004
0
[null]
0
false
0
0
0
0
false
[null]
0
0
200
0
91
0
-1
0
true
3
-
0
4
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://11779886973
1
1
1
0
0
0
0
0
0
Image1
[null]
[null]
[null]
[null]
0
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
4
-
0
4
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
Description
[null]
[null]
[null]
[null]
0.0649999827
0
0.534427166
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.327615827
0
0
-1
A theme that matches with the Roblox Studio Dark theme.
1
1
1
false
13
0
0
0
1
0
0
true
0
0
true
3
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
9
0
7
false
[null]
0
false
0
0
0
0
false
[null]
0
0.882845104
0
0.112903222
0
0
-1
Dark Theme
1
1
1
false
27
0
0
0
1
0
0
true
0
1
true
3
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Create
[null]
[null]
[null]
[null]
0.0460829511
0
0.862042964
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.875576019
0
0.114503816
0
0
-1
0
1
1
1
false
20
0
0
0
1
0
0
false
2
1
true
3
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
Create
1
1
1
false
23
0
0
0
1
0
0
false
2
1
true
3
-
0
3
UICorner
-1
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIGAAAAQWNjZW50
true
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
0.65882355
0.65882355
0.65882355
284
4
24
24
0
0
false
Close
[null]
[null]
[null]
[null]
0.832142889
0
0
7
0
[null]
0
0
true
false
0
0
0
0
false
[null]
0
0
27
0
27
0
0
0
0
0
1
-1
0
1
0
1
0
true
3
-
false
0
0
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
ChatEditor
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
false
0
0
false
true
0
0.141176477
0.141176477
0.141176477
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
CreateNode
[null]
[null]
[null]
[null]
0.764870942
0
0.0275482424
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0
158
0
42
0
-1
0
Create Node
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
10
-
0
2
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.137254909
0.137254909
0.137254909
0
0.105882362
0.164705887
0.207843155
0
0
true
false
0
NodeFrame
[null]
[null]
[null]
[null]
3.23744786e-07
0
0.841646671
0
[null]
0
false
0
0
0
0
false
[null]
0
0.995999992
0
0
0
0
-1
0
true
10
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Root
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Root
0
0.666666687
1
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
0
0
0
0
0
192
0
33
0
0
0
UIGridLayout
2
-1
0
1
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Display
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Display
1
0.109803922
0.109803922
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Response
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Response
1
1
0
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Split
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Split
0
1
0
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Action
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Action
0.666666687
0
1
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.258823544
0.258823544
0.258823544
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Close
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
200
0
50
0
-1
0
Close
0
0.666666687
1
false
14
0
0
0
1
0
0
false
2
1
true
10
-
0
8
UICorner
-1
-
0
2
UICorner
-1
-
true
ShowNodes
0
{F3718B5E-5CC1-4C7E-BA17-87F3120AF31F}
-1
-
false
0
0
true
0
1
1
1
0.5
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://619230843
1
1
1
0
0
0
0
0.5
0
ImageLabel
[null]
[null]
[null]
[null]
0.139066786
0
0.269155204
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
868
0
346
0
0
0
0
0
1
-1
1
0
1
0
false
1
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
true
0
0.0627451017
0.0627451017
0.0627451017
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Show
[null]
[null]
[null]
[null]
0.924977183
0
0.870329678
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
50
0
50
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
5
-
1
0
UICorner
-1
-
1
1
1
1
true
0
UIStroke
-1
3
1
-
0 1 0 0.498039 0 1 1 0.333333 0.498039 0
true
UIGradient
0
0
135
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
964
4
36
36
0
6
Image
[null]
[null]
[null]
[null]
0.150000006
0
0.150000006
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.699999988
0
0.699999988
0
0
0
0
0
0
1
-1
1
0
1
0
true
5
-
0 1 0 0.498039 0 1 1 0.333333 0.498039 0
true
UIGradient
0
0
135
-1
0 0 0 1 0 0
-
true
Hover
0
{5F5AFB00-1CC7-4C23-BD6B-2847B0537060}
-1
-
true
Tools
0
{25123F6E-4EC5-4EDD-859B-F07C368D52B3}
-1
-
false
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Pan
[null]
[null]
[null]
[null]
0
-1064
0
-1064
[null]
0
false
0
0
0
0
false
[null]
0
0
3279
0
3279
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://6152450345
0.152941182
0.152941182
0.152941182
0
0
0
0
0
0
Grid
[null]
[null]
[null]
[null]
0
-3284
0
-1250
0
[null]
0
2
false
0
0
0
0
false
[null]
0
0
9837
0
4095
0
0
0
0
0
1
-1
0
280
0
280
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.0627451017
0.0627451017
0.0627451017
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
ToolsFrame
[null]
[null]
[null]
[null]
0.5
0
1.10000002
0
[null]
0
false
0
0
0
0
false
[null]
0
0
571
0
60
0
-1
0
true
5
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.211764723
0.211764723
0.211764723
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Zoom
[null]
[null]
[null]
[null]
0
92
0
12
[null]
0
false
0
0
0
0
false
[null]
0
0
129
0
46
0
-1
0
true
5
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
964
324
36
36
1
0
Image
[null]
[null]
[null]
[null]
0.100000001
0
0.0834700242
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0
39
0
39
0
0
0
0
0
1
-1
1
0
1
0
true
5
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.39937368
0
0.0834700242
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
63
0
39
0
-1
Ã1.0
1
1
1
false
29
0
0
0
1
1
0
true
2
1
true
5
-
1
0
UICorner
-1
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.0627451017
0.0627451017
0.0627451017
1
0.105882362
0.164705887
0.207843155
0
0
false
false
1
Space
[null]
[null]
[null]
[null]
-0.520778596
0
0.254790604
0
[null]
0
false
0
0
0
0
false
[null]
0
0
42
0
27
0
-1
0
true
5
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.211764723
0.211764723
0.211764723
1
0.105882362
0.164705887
0.207843155
0
1
false
false
-1
SnapToGrid
[null]
[null]
[null]
[null]
0
209
0
6
[null]
0
false
0
0
0
0
false
[null]
0
0
47
0
47
0
-1
0
true
5
-
1
0
UICorner
-1
-
1
0
UICorner
-1
-
false
0.5
0.5
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10565906862
1
1
1
0
0
0
0
1
0
ImageLabel
[null]
[null]
[null]
[null]
0.446808517
0
0.5
0
0
[null]
-45
0
false
0
0
0
0
false
[null]
0
0
29
0
29
0
0
0
0
0
1
-1
1
0
1
0
true
5
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
1
0
false
2
1
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Frame
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
45
false
0
0
0
0
false
[null]
0
0
42
0
5
0
-1
0
true
5
-
0
AQAAAAUAAABDb2xvcgIJAAAAU2Vjb25kYXJ5
1
0.333333343
0.498039246
true
0
UIStroke
-1
3.5
1
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.211764723
0.211764723
0.211764723
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Pos
[null]
[null]
[null]
[null]
0
196
0
6
[null]
0
false
0
0
0
0
false
[null]
0
0
207
0
46
0
-1
0
true
5
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.361873627
0
0.0834702179
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.524999976
0
0.847826064
0
0
-1
0,0
1
1
1
false
29
0
0
0
1
12
0
true
2
1
true
5
-
1
0
UICorner
-1
-
1
0
UICorner
-1
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://6764432408
1
1
1
150
450
50
50
1
4
false
larger
[null]
[null]
[null]
[null]
0.0700000003
0
0.0829999968
0
0
[null]
45
0
true
false
0
0
0
0
false
[null]
0
0
39
0
39
0
0
0
0
0
1
-1
0
1
0
1
0
true
5
-
0
2
UIListLayout
0.0299999993
0
2
-1
0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.211764723
0.211764723
0.211764723
1
0.105882362
0.164705887
0.207843155
0
1
false
false
-1
ShowGrid
[null]
[null]
[null]
[null]
0
209
0
6
[null]
0
false
0
0
0
0
false
[null]
0
0
47
0
47
0
-1
0
true
5
-
1
0
UICorner
-1
-
1
0
UICorner
-1
-
false
0.5
0.5
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10577518441
1
1
1
0
0
0
0
1
0
ImageLabel
[null]
[null]
[null]
[null]
0.5
0
0.5
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
32
0
32
0
0
0
0
0
1
-1
1
0
1
0
true
5
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
1
0
false
2
1
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Frame
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
45
false
0
0
0
0
false
[null]
0
0
42
0
5
0
-1
0
false
5
-
0
AQAAAAUAAABDb2xvcgIJAAAAU2Vjb25kYXJ5
0.211764723
0.211764723
0.211764723
true
0
UIStroke
-1
3.5
1
-
1
0
UICorner
-1
-
false
Script
0
{D5C4900A-911B-45ED-9D43-DC9CD0EBC773}
-1
-
true
Script
0
{563A8969-DF6B-495D-8045-BCDD781F2C66}
-1
-
false
0
0
true
0
1
0.223529428
0.223529428
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
DeleteFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0615690164
0
1
0
0
-1
0
false
10
-
false
0.5
0.5
true
0
1
0.160784319
0.160784319
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Background
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0.90322578
0
0.112676054
0
0
-1
0
true
10
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10673406253
1
1
1
0
0
0
0
1
0
Image
[null]
[null]
[null]
[null]
0.0535713956
0
0
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0.785714269
0
1
0
0
0
0
0
0
1
-1
1
0
1
0
true
10
-
1
0
0
UIAspectRatioConstraint
-1
-
false
0
0
true
0
1
0.223529428
0.223529428
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
DeleteHit
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0615690164
0
1
0
0
-1
0
true
1
-
false
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
LoadingFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
20
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10681280993
1
1
1
0
0
0
0
0
0
Icon
[null]
[null]
[null]
[null]
0.390756309
0
0.326732695
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
213
0
174
0
0
0
0
0
1
-1
1
0
1
0
true
21
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Dot2
[null]
[null]
[null]
[null]
0.490055501
0
0.42768684
0
[null]
0
false
0
0
0
0
false
[null]
0
0
32
0
32
0
-1
0
true
22
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Dot1
[null]
[null]
[null]
[null]
0.439635336
0
0.42768684
0
[null]
0
false
0
0
0
0
false
[null]
0
0
32
0
32
0
-1
0
true
22
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Dot3
[null]
[null]
[null]
[null]
0.540475726
0
0.42768684
0
[null]
0
false
0
0
0
0
false
[null]
0
0
32
0
32
0
-1
0
true
22
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
LoadStatus
[null]
[null]
[null]
[null]
0.402147979
0
0.760396004
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
191
0
23
0
-1
Loading Nodes
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
23
-
false
0
0
true
0
0.0980392247
0.0980392247
0.0980392247
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Bar
[null]
[null]
[null]
[null]
0.403341323
0
0.714851499
0
[null]
0
false
0
0
0
0
false
[null]
0
0
191
0
23
0
-1
0
true
23
-
0
23
UICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
0
1
0
0
-1
0
true
24
-
0
23
UICorner
-1
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Custom
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.586288333
0
0.121212333
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.37825048
0
0.75757575
0
0
-1
0
(None)
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.18083033
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
NodeEditor
{E70E250B-2C09-4FC1-AE20-DA09696DBC1F}
= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
function NodeEditor:Init(Plugin)
plugin = Plugin
end
function NodeEditor:SetFolderName(name)
folderName = name
end
function NodeEditor:InitWindowMod(windowMod)
Window = require(windowMod)
end
function NodeEditor:InitWindow(Window)
editorWindow = Window
editorWindow.WindowFocused:Connect(function()
windowSelected = true
end)
editorWindow.WindowFocusReleased:Connect(function()
windowSelected = false
end)
end
local UserInputService = game:GetService('UserInputService')
function drawPath(Line, P1, P2)
local pan = script.Parent.Pan
local startX, startY = P1.X.Offset, P1.Y.Offset
local endX, endY = P2.X.Offset, P2.Y.Offset
Line.AnchorPoint = Vector2.new(0.5, 0.5)
Line.Size = UDim2.new(0, ((endX - startX) ^ 2 + (endY - startY) ^ 2) ^ 0.5, 0,3*zoom)-- Get the size using the distance formula
Line.Position = UDim2.new(0, (startX + endX) / 2, 0, (startY + endY) / 2) -- Get the position using the midpoint formula
Line.Rotation = math.atan2(endY - startY, endX - startX) * (180 / math.pi) -- Get the rotation using atan2, convert radians to degrees
end
local zoomed = false
script.Parent.Pan.ChildAdded:Connect(function()
zoomed = false
end)
local minZoom = 50
local maxZoom = 250
local deafaultSize = script.Parent.Pan.Size
local deafaultTileSize = script.Parent.Pan.Grid.TileSize
function NodeEditor:Zoom(Percentage:number)
if not Percentage or type(Percentage) ~= 'number' then
Percentage = 100
end
Percentage = math.clamp(Percentage,minZoom,maxZoom)
local multiplier = Percentage/100
script.Parent.Pan.Size = UDim2.fromOffset(deafaultSize.X.Offset*multiplier,deafaultSize.Y.Offset*multiplier)
script.Parent.Pan.Grid.TileSize = UDim2.fromOffset(deafaultTileSize.X.Offset*multiplier,deafaultTileSize.Y.Offset*multiplier)
if tostring(multiplier):len() == 1 then
multiplier = multiplier..'.0'
end
script.Parent.ToolsFrame.Zoom.Text.Text = '×'..multiplier
zoom = tonumber(multiplier)
NodeEditor.Magnification = Percentage
end
function NodeEditor.new(NodeType: number, Name: string, NewConfig)
ChangeHistoryService:SetWaypoint(Name..'New')
if not NodeType then
NodeType = 5
end
math.clamp(NodeType,1,6)
local node = {}
--node.__index = node
setmetatable(node,NodeEditor)
local uiNode = NodeUI[NodeType]:Clone()
uiNode.Parent = script.Parent.Pan
node.Name = Name
node.UI = uiNode
node.UI.Name = Name
node.UI:SetAttribute('Type',NodeType)
node.MovingLine = nil
node.Lines = {}
node.Connect = nil
node.ConnectingButton = nil
node.ConnectedEvent = Instance.new('BindableEvent')
node.Connected = node.ConnectedEvent.Event
node.NodeType = NodeType
dialogueGraph:AddVertex(node.Name)
dialogueGraph[node.Name] = node
if NodeType == NodeEditor.NodeType.Split then
node.UI:SetAttribute('Splits',0)
end
local gradientShowing = false
local function showBackground(connect)
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(connect,info,{BackgroundTransparency = 0})
tween:Play()
end
local function hideBackground(connect)
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(connect,info,{BackgroundTransparency = 1})
tween:Play()
end
local function showGradient(hover)
if hover then
local gradient = Instance.new('UIGradient')
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0,node.ConnectingButton.BackgroundColor3),
ColorSequenceKeypoint.new(1,hover.BackgroundColor3)
}
local gradientFrame = Instance.new('Frame',node.MovingLine)
gradientFrame.BackgroundTransparency = 1
gradientFrame.BackgroundColor3 = Color3.fromRGB(255,255,255)
gradientFrame.Size = UDim2.fromScale(1,1)
gradient.Parent = gradientFrame
gradient.Rotation = 180
gradientFrame.BorderSizePixel = 0
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(gradientFrame,info,{BackgroundTransparency = 0})
node.MovingLine:SetAttribute('Colour',node.MovingLine.BackgroundColor3)
local tween2 = TweenService:Create(node.MovingLine,info,{BackgroundColor3 = Color3.fromRGB(255,255,255)})
tween2:Play()
tween2.Completed:Connect(function()
end)
tween:Play()
gradientShowing = true
local mouse = UserInputService:GetMouseLocation()
end
end
local function hideGradient()
if node.MovingLine then
local frame = node.MovingLine:FindFirstChildWhichIsA('Frame')
gradientShowing = false
if frame then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(frame,info,{BackgroundTransparency = 1})
local tween2 = TweenService:Create(node.MovingLine,info,{BackgroundColor3 = node.MovingLine:GetAttribute('Colour')})
tween:Play()
tween2:Play()
tween.Completed:Wait()
frame:Destroy()
end
end
end
coroutine.wrap(function()
while true do
wait()
if node.MovingLine then
if not node.MovingLine:FindFirstChild('Frame') then
local mouse = editorWindow:GetRelativeMousePosition() --UserInputService:GetMouseLocation()
local function isHoveringOverObj(obj)
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local hovering = false
if gradientShowing == false then
for i,v in pairs(script.Parent.Pan:GetDescendants()) do
if v.Name:match('Connect') then
if isHoveringOverObj(v) then
if v.Parent.Name ~= node.UI.Name then
showGradient(v)
hovering = true
gradientShowing = true
local leave = v.MouseLeave:Connect(function()
hideGradient()
gradientShowing = false
end)
node.Connected:Connect(function()
leave:Disconnect()
end)
end
end
end
end
end
end
end
end
end)()
node.UI.MouseEnter:Connect(function()
if deleting == true then
local stroke = Instance.new('UIStroke')
stroke.Thickness = 2
stroke.Color = Color3.fromRGB(255, 12, 12)
stroke.Transparency = 1
stroke.Parent = node.UI
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(stroke,info,{Transparency = 0})
tween:Play()
end
end)
node.UI.Button.MouseButton1Up:Connect(function()
if isHoveringOverObj(editorWindow.ChatEditor.DeleteHit) then
dialogueGraph:RemoveVertex(node.Name)
for index,value in pairs(node.UI:GetAttributes()) do
if index:match('Connect') and index ~= 'Connected' then
local lineNames = value:split(',')
for ay,va in pairs(lineNames) do
local line = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Lines'):FindFirstChild(va)
if line then
local nodes = line:GetAttribute('Nodes'):split(',')
local removeNextNode = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2])
if removeNextNode then
local next = removeNextNode:GetAttribute('Next') or ''
removeNextNode:SetAttribute('Next',next:gsub(nodes[1],''))
if removeNextNode.Name:match('Split') and node.UI:GetAttribute('Splits') then
node.UI:SetAttribute('Splits',node.UI:GetAttribute('Splits')-1)
end
if nodes[2]:match('Split') then
local id = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[1]):GetAttribute('ID')
for i,v in pairs(editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2]):GetAttribute('Next'):split(',')) do
local findNode = editorWindow.ChatEditor.Pan:FindFirstChild(v)
if findNode then
if findNode:GetAttribute('ID') > id then
findNode:SetAttribute('ID',findNode:GetAttribute('ID')-1)
findNode.ID.Text = findNode:GetAttribute('ID')
end
else
end
end
end
end
end
end
for I,V in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(V) then
script.Parent.Pan:FindFirstChild(V):Destroy()
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V) then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V):Destroy()
end
end
end
end
end
local lines = node.UI:GetAttribute('Lines') or ''
local lineNames = lines:split(',')
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name) then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name):Destroy()
end
for i,v in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(v) then
script.Parent.Parent:FindFirstChild(v):Destroy()
end
end
if node.UI:GetAttribute('Connect') then
if node.UI:GetAttribute('Connect') then
for ind,val in pairs(node.UI:GetAttribute('Connect'):split(',')) do
local Node = editorWindow.ChatEditor.Pan:FindFirstChild(val)
if Node then
Node:SetAttribute('Next',Node:GetAttribute('Next'):gsub(node.UI.Name))
end
end
end
end
if not node.UI:GetAttribute('Selected') then
node.UI:Destroy()
end
end
end)
local enteredTable = {['Connect'] = false,['TrueConnect'] = false,['FalseConnect'] = false}
for i,v in pairs(node.UI:GetChildren()) do
if v.Name:match('Connect') then
v.MouseEnter:Connect(function()
enteredTable[v.Name] = true
v:SetAttribute('Entered',true)
showBackground(v)
end)
v.MouseLeave:Connect(function()
if node.ConnectingButton ~= v and not v:GetAttribute('Connected') and v:GetAttribute('Entered') == false then
hideBackground(v)
end
v:SetAttribute('Entered',false)
enteredTable[v.Name] = false
end)
end
end
coroutine.wrap(function()
while true do
task.wait()
for i,v in pairs(node.UI:GetChildren()) do
if v.Name:match('Connect') then
if v:GetAttribute('Connected') == true or v:GetAttribute('Entered') == true then
v.BackgroundTransparency = 0
else
v.BackgroundTransparency = 1
end
end
end
end
end)()
local guiInset = game:GetService("GuiService"):GetGuiInset()
local function isInScreen()
local pos = node.UI.AbsolutePosition + guiInset
return pos.X + script.Parent.AbsoluteSize.X <= game.Workspace.CurrentCamera.ViewportSize.X and pos.X >= 0
and pos.Y + script.Parent.AbsoluteSize.Y <= game.Workspace.CurrentCamera.ViewportSize.Y and pos.Y >= 0
end
local nodeConfig = Instance.new('Configuration')
nodeConfig.Name = Name
if NewConfig == nil then
--nodeConfig:SetAttribute('Position',UDim2.new())
end
nodeConfig:SetAttribute('Type',NodeType)
local folder = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes
nodeConfig.Parent = folder
if NewConfig == false then
nodeConfig:Destroy()
nodeConfig = folder:FindFirstChild(Name)
else
local Types = {'Action','Close','Display','Response', 'Root', 'Split'}
nodeConfig:SetAttribute('Name',Types[NodeType])
end
node.UI.Tab.Title:GetPropertyChangedSignal('Text'):Connect(function()
nodeConfig:SetAttribute('Name',node.UI.Tab.Title.Text)
end)
if NodeType == 1 then
local actionScript = script.ActionTemp:Clone()
actionScript.Name = 'Action'
actionScript.Parent = nodeConfig
actionScript.Disabled = true
actionScript:SetAttribute('Name',node.Name)
if NewConfig == false then
actionScript:Destroy()
actionScript = folder:FindFirstChild(Name):FindFirstChildWhichIsA('LocalScript') or folder:FindFirstChild(Name):FindFirstChildWhichIsA('Script')
if actionScript:IsA('Script') then
node.UI.Server.BackgroundColor3 = Color3.fromRGB(170, 0, 255)
else
node.UI.Server.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
end
local function openScript()
plugin:OpenScript(actionScript)
end
local function switchSide()
local source = actionScript.Source
local currentOpen = actionScript
if actionScript:IsA('LocalScript') then
actionScript:Destroy()
actionScript = script.ActionServerTemp:Clone()
actionScript.Name = 'Action'
actionScript:SetAttribute('Name',node.Name)
actionScript.Parent = nodeConfig
actionScript.Disabled = true
node.UI.Server.BackgroundColor3 = node.UI.UIStroke.Color
else
actionScript:Destroy()
actionScript = script.ActionTemp:Clone()
actionScript.Name = 'Action'
actionScript.Parent = nodeConfig
actionScript.Disabled = true
actionScript:SetAttribute('Name',node.Name)
node.UI.Server.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
if StudioService.ActiveScript == currentOpen then
plugin:OpenScript(actionScript)
end
end
node.UI.Server.MouseButton1Click:Connect(switchSide)
node.UI.Edit.MouseButton1Click:Connect(openScript)
end
if NodeType == 3 then
local text = Instance.new('StringValue')
text.Name = 'Prompt'
text.Parent = nodeConfig
text.Value = 'Prompt Text'
if NewConfig == false then
text:Destroy()
text = folder:FindFirstChild(Name):FindFirstChildWhichIsA('StringValue')
end
node.UI.Edit.MouseButton1Click:Connect(function()
Window:Create(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Prompt',UDim2.new(0, 195,0, 90),nil)
local editWindow = Window:Get(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Prompt')
editWindow.Enabled = true
local editFrame = script.TextEdit:Clone()
editFrame.Text.Text = text.Value
editFrame.Tab.Title.Text = 'Edit '..node.Name:sub(1,-2)..' Prompt'
editFrame.Parent = editWindow
local function close()
if editFrame:FindFirstChild('Text') then
local Text = editFrame.Text.Text
Text = text.Value
if Text:len() > 20 then
Text = Text:sub(1,17)..'...'
end
node.UI.Text.Text = Text
text.Value = editFrame.Text.Text
editWindow:Destroy()
end
end
--local nodeColour = node.UI.Tab.BackgroundColor3.R..node.UI.Tab.BackgroundColor3.G..node.UI.Tab.BackgroundColor3.B
--local changed = false
--local charSize = Vector2.new(9,28)
--local yPos = 0
--local xPos = 0
--local currentX = 0
--local currentY = 0
--for i = 1, editFrame.Text.Text:len() do
-- xPos += charSize.X
-- if xPos > editWindow.AbsoluteSize.X then
-- xPos = 0
-- yPos += charSize.Y
-- end
--end
--currentX = xPos
--currentY = yPos
--local function getPatternPos(pattern: string)
-- local cursorPos = editFrame.Text.CursorPosition
-- local charPos = 0
-- currentX = charSize.X * charPos
-- currentX = 0
-- for i = 1,editFrame.Text.Text:len() do
-- --if editFrame.Text.Text:sub(i,i) ~= ' ' then
-- local size = TextService:GetTextSize(editFrame.Text.Text:sub(i,i),14,Enum.Font.Arial,editFrame.AbsoluteSize)
-- currentX += size.X
-- --end
-- end
-- local len = editFrame.Text.Text:len()
-- local exceedX = 0
-- local x = editWindow.AbsoluteSize.X
-- local current = 0
-- for i = 1,len do
-- current += charSize.X
-- if current > x then
-- exceedX += charSize.Y
-- current = 0
-- end
-- end
-- if currentX > editWindow.AbsoluteSize.X then
-- currentX = 0
-- currentY += charSize.Y
-- end
--end
--local function updateCursorPos()
-- local cursorPos = editFrame.Text.CursorPosition
-- local charPos = 0
-- currentX = charSize.X * charPos
-- currentX = 0
-- for i = 1,editFrame.Text.Text:len() do
-- --if editFrame.Text.Text:sub(i,i) ~= ' ' then
-- local size = TextService:GetTextSize(editFrame.Text.Text:sub(i,i),14,Enum.Font.Arial,editFrame.AbsoluteSize)
-- currentX += size.X
-- --end
-- end
-- local len = editFrame.Text.Text:len()
-- local exceedX = 0
-- local x = editWindow.AbsoluteSize.X
-- local current = 0
-- for i = 1,len do
-- current += charSize.X
-- if current > x then
-- exceedX += charSize.Y
-- current = 0
-- end
-- end
-- if currentX > editWindow.AbsoluteSize.X then
-- currentX = 0
-- currentY += charSize.Y
-- end
--end
--editFrame.Text:GetPropertyChangedSignal('CursorPosition'):Connect(updateCursorPos)
--local updateTextColour = editFrame.Text:GetPropertyChangedSignal('Text'):Connect(function()
-- if not changed then
-- --changed = true
-- local text = editFrame.Text.Text
-- if text:gmatch('') then
-- for i,v in text:gmatch('') do
-- local clone = Instance.new('TextLabel')
-- clone.ZIndex = 10
-- clone.BackgroundTransparency = 0
-- clone.TextColor3 = Color3.fromRGB(255,255,255)
-- local varTextSize = TextService:GetTextSize('',14,Enum.Font.Arial,editFrame.Text.AbsoluteSize)
-- clone.Size = UDim2.new(0,varTextSize.X,0,varTextSize.Y)
-- clone.AnchorPoint = Vector2.new(0,0)
-- clone.Position = UDim2.new(0,currentX,0,currentY)
-- clone.Parent = editFrame.Text
-- end
-- end
-- end
--end)
editorWindow.ChatEditor.Pan.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.MouseButton2 or object.UserInputType == Enum.UserInputType.MouseButton3 then
close()
--updateTextColour:Disconnect()
end
end)
editWindow:BindToClose(close)
end)
node.UI.ClickAd.MouseButton1Click:Connect(function()
if node.UI:GetAttribute('ClickAd') then
node.UI:SetAttribute('ClickAd',nil)
node.UI.ClickAd.BackgroundColor3 = Color3.fromRGB(45,45,45)
else
node.UI:SetAttribute('ClickAd',true)
node.UI.ClickAd.BackgroundColor3 = node.UI.UIStroke.Color
end
end)
end
if NodeType == 4 then
local text = Instance.new('StringValue')
text.Name = 'Text'
text.Parent = nodeConfig
text.Value = 'Response Text'
if NewConfig == false then
text:Destroy()
text = folder:FindFirstChild(Name):FindFirstChildWhichIsA('StringValue')
end
node.UI.Edit.MouseButton1Click:Connect(function()
Window:Create(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Text',UDim2.new(0, 195,0, 90),nil)
local editWindow = Window:Get(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Text')
editWindow.Enabled = true
local editFrame = script.TextEdit:Clone()
editFrame.Text.Text = text.Value
editFrame.Tab.Title.Text = 'Edit '..node.Name:sub(1,-2)..' Text'
editFrame.Parent = editWindow
local function close()
if editFrame:GetChildren()[1] ~= nil then
local Text = editFrame.Text.Text
if Text:match("^%s*$") then
Text = text.Value
end
if Text:len() > 20 then
Text = Text:sub(1,17)..'...'
end
node.UI.Text.Text = Text
text.Value = editFrame.Text.Text
editWindow:Destroy()
end
end
local nodeColour = node.UI.Tab.BackgroundColor3.R..node.UI.Tab.BackgroundColor3.G..node.UI.Tab.BackgroundColor3.B
local changed = false
local updateTextColour = editFrame.Text:GetPropertyChangedSignal('Text'):Connect(function()
if not changed then
changed = true
local text = editFrame.Text.Text
text = text:gsub('','<var>')
editFrame.Text.Text = text
end
end)
editorWindow.ChatEditor.Pan.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.MouseButton2 or object.UserInputType == Enum.UserInputType.MouseButton3 then
close()
updateTextColour:Disconnect()
end
end)
editWindow:BindToClose(close)
end)
end
if NodeType == 5 then
local text = Instance.new('StringValue')
text.Name = 'Prompt'
text.Parent = nodeConfig
text.Value = 'Prompt Text'
if NewConfig == false then
text:Destroy()
text = folder:FindFirstChild(Name):FindFirstChildWhichIsA('StringValue')
end
node.UI.Edit.MouseButton1Click:Connect(function()
Window:Create(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Prompt',UDim2.new(0, 195,0, 90),nil)
local editWindow = Window:Get(node.Name:sub(1,-2)..' '..node.Name:sub(-1,-1)..' Prompt')
editWindow.Enabled = true
local editFrame = script.TextEdit:Clone()
editFrame.Text.Text = text.Value
editFrame.Tab.Title.Text = 'Edit '..node.Name:sub(1,-2)..' Prompt'
editFrame.Parent = editWindow
local function close()
if editFrame:GetChildren()[1] ~= nil then
local Text = editFrame.Text.Text
if Text:match("^%s*$") then
Text = text.Value
end
if Text:len() > 20 then
Text = Text:sub(1,17)..'...'
end
node.UI.Text.Text = Text
text.Value = editFrame.Text.Text
editWindow:Destroy()
end
end
editorWindow.ChatEditor.Pan.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.MouseButton2 or object.UserInputType == Enum.UserInputType.MouseButton3 then
close()
end
end)
editWindow:BindToClose(close)
end)
node.UI.ClickAd.MouseButton1Click:Connect(function()
if node.UI:GetAttribute('ClickAd') then
node.UI:SetAttribute('ClickAd',nil)
node.UI.ClickAd.BackgroundColor3 = Color3.fromRGB(45,45,45)
else
node.UI:SetAttribute('ClickAd',true)
node.UI.ClickAd.BackgroundColor3 = node.UI.UIStroke.Color
end
end)
end
if NodeType == 6 then
local conditionScript = script.ConditionTemp:Clone()
conditionScript.Name = 'Condition'
conditionScript.Parent = nodeConfig
conditionScript:SetAttribute('Name',node.Name)
if NewConfig == false then
conditionScript:Destroy()
conditionScript = folder:FindFirstChild(Name):FindFirstChildWhichIsA('LocalScript') or folder:FindFirstChild(Name):FindFirstChildWhichIsA('Script')
if conditionScript:IsA('LocalScript') then
node.UI.Server.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
else
node.UI.Server.BackgroundColor3 = node.UI.UIStroke.Color
end
end
local function openScript()
plugin:OpenScript(conditionScript)
end
local function switchSide()
local source = conditionScript.Source
local currentOpen = conditionScript
if conditionScript:IsA('LocalScript') then
conditionScript:Destroy()
conditionScript = script.ConditionServerTemp:Clone()
conditionScript.Name = 'Condition'
conditionScript:SetAttribute('Name',node.Name)
conditionScript.Parent = nodeConfig
node.UI.Server.BackgroundColor3 = node.UI.UIStroke.Color
else
conditionScript:Destroy()
conditionScript = script.ConditionTemp:Clone()
conditionScript.Name = 'Condition'
conditionScript.Parent = nodeConfig
conditionScript.Disabled = true
conditionScript:SetAttribute('Name',node.Name)
node.UI.Server.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
if StudioService.ActiveScript == currentOpen then
plugin:OpenScript(conditionScript)
end
end
node.UI.Server.MouseButton1Click:Connect(switchSide)
node.UI.Edit.MouseButton1Click:Connect(openScript)
end
node.UI.ConnectFrom.MouseEnter:Connect(function()
if node.MovingLine then
showGradient()
end
node.UI.ConnectFrom.MouseLeave:Connect(function()
hideGradient()
end)
end)
coroutine.wrap(function()
while true do
task.wait()
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName) then
local config = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name)
if config then
for ind,val in pairs(node.UI:GetAttributes()) do
if ind ~= 'Position' then
config:SetAttribute(ind,val)
end
end
end
else
break
end
end
end)()
local editorFrame = editorWindow.ChatEditor
local dFrame = editorFrame.DeleteFrame
local dHit = editorFrame.DeleteHit
dHit.MouseEnter:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(dFrame,info,{BackgroundTransparency = .1,Size = UDim2.new(.1,0,1,0)})
local sTween = TweenService:Create(dFrame.Background,info,{Size = UDim2.new(0.894, 0,0.181, 0)})
sTween:Play()
tween:Play()
end)
dHit.MouseLeave:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(dFrame,info,{BackgroundTransparency = .45,Size = UDim2.new(.062,0,1,0)})
local sTween = TweenService:Create(dFrame.Background,info,{Size = UDim2.new(0.903, 0,0.113, 0)})
sTween:Play()
tween:Play()
end)
coroutine.wrap(function()
while true do
wait()
nodeConfig:SetAttribute('Position',node.UI.Position)
end
end)()
node.UI.Button.MouseButton1Click:Connect(function()
local connect = node.UI.Button.MouseButton1Click:Connect(function()
node.UI.Tab.Title.Visible = false
node.UI.Tab.TitleEdit.Text = node.UI.Tab.Title.Text
node.UI.Tab.TitleEdit.Visible = true
node.UI.Tab.TitleEdit:CaptureFocus()
node.UI.Tab.TitleEdit.FocusLost:Connect(function()
node.UI.Tab.Title.Text = node.UI.Tab.TitleEdit.Text
node.UI.Tab.Title.Visible = true
node.UI.Tab.TitleEdit.Visible = false
end)
end)
coroutine.wrap(function()
wait(.3)
connect:Disconnect()
end)()
end)
NodeEditor.Nodes[node.Name] = node
node.UI.Button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton2 then
local clickPos = editorWindow:GetRelativeMousePosition()
local eventName = NodeEditor:OpenContext({'Delete Node','Connect to...',['Connect to...'] = {'New Root','New Display','New Response','New Split','New Action','New Close'}},editorWindow:GetRelativeMousePosition()).Event:Wait()
if eventName == 'Delete Node' then
node:ForceDelete()
end
local enabled = true
local nodeName = eventName
if script:FindFirstChild(eventName) then
local ONode = node
if enabled == true then
local found = 0
for index, value in pairs(editorFrame.Pan:GetChildren()) do
if value.Name:match(nodeName) then
found +=1
end
end
local Name = nodeName..found
local node = NodeEditor.new(NodeEditor.NodeType[nodeName],Name)
local moving = false
node.UI.Name = Name
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
NodeEditor.Snap = false
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset+40,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
NodeEditor.Snap = true
else
node:Move(UDim2.new(0,clickPos.X-node.UI.Size.X.Offset/2-editorFrame.Pan.Position.X.Offset+40,0,clickPos.Y+node.UI.Size.Y.Offset/2-editorFrame.Pan.Position.Y.Offset))
end
node.UI.Button.MouseButton1Down:Connect(function()
moving = true
end)
node.UI.Button.MouseButton1Up:Connect(function()
moving = false
end)
moving = true
coroutine.wrap(function()
while true do
wait()
if moving == true then
local mouse = editorWindow:GetRelativeMousePosition()
--node:Move(UDim2.fromOffset(mouse.X-editorFrame.Pan.Position.X.Offset,mouse.Y-editorFrame.Pan.Position.Y.Offset))
end
end
end)()
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = node.UI.AbsoluteSize
local framePos = node.UI.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = node.UI.Position
mouseDown = true
end)
node.UI.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
node.UI.Button.MouseButton1Down:Connect(function()
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
editorFrame.DeleteFrame.Visible = true
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
mouseDown = true
iTween:Play()
end)
node.UI.Button.MouseButton1Up:Connect(function()
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
node.UI.Connect.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
end)
ONode:Connect(node)
end
end
end
end)
return node
end
function NodeEditor:Move(Position: UDim2)
if not Position then
Position = UDim2.new(0,0,0,0)
end
local mouse = editorWindow:GetRelativeMousePosition()
if NodeEditor.Snap then
local gridSize = 36
Position = UDim2.new(Position.X.Scale,math.floor(Position.X.Offset/gridSize)*gridSize,Position.Y.Scale, math.floor(Position.Y.Offset/gridSize)*gridSize)
end
if Position.X.Offset == 0 and Position.Y.Offset == 0 then
else
Position = UDim2.new((Position.X.Offset/script.Parent.Pan.AbsoluteSize.X)+Position.X.Scale,0,(Position.Y.Offset/script.Parent.Pan.AbsoluteSize.Y)+Position.Y.Scale,0)
end
self.UI.Position = Position
for i,v in pairs(self.UI:GetAttributes()) do
if i:match('Connect') then
if type(v) == 'string' then
local split = v:split(',')
for aName,aValue in pairs(split) do
local line = script.Parent.Pan:FindFirstChild(aValue)
if line then
local other
local otherConnect
for IN,VAL in pairs(script.Parent.Pan:GetChildren()) do
for ind,val in pairs(VAL:GetAttributes()) do
if ind:match('Connect') then
if type(val) == 'string' then
local splitVal = val:split(',')
for INDEX,VALUE in pairs(splitVal) do
if VALUE == line.Name then
if VAL.Name ~= self.UI.Name then
other = VAL
otherConnect = ind
end
end
end
end
end
end
end
if other and otherConnect then
local pan = script.Parent.Pan
local con
for ind,val in pairs(self.UI:GetDescendants()) do
if val.Name == i then
con = val
break
end
end
if con then
local selfConnectPos = UDim2.new(0,con.AbsolutePosition.X+6-pan.Position.X.Offset,0,con.AbsolutePosition.Y+6-pan.Position.Y.Offset)
local otherConnectInstance= other:FindFirstChild(otherConnect)
local otherConnectPos = UDim2.new(0,otherConnectInstance.AbsolutePosition.X+6-pan.Position.X.Offset,0,otherConnectInstance.AbsolutePosition.Y+6-pan.Position.Y.Offset)
if not self.UI:GetAttribute('Original'..line.Name) then
drawPath(line,selfConnectPos,otherConnectPos)
line.Size = UDim2.fromScale(line.Size.X.Offset/script.Parent.Pan.AbsoluteSize.X,line.Size.Y.Offset/script.Parent.Pan.AbsoluteSize.Y)
line.Position = UDim2.fromScale(line.Position.X.Offset/script.Parent.Pan.AbsoluteSize.X,line.Position.Y.Offset/script.Parent.Pan.AbsoluteSize.Y)
else
drawPath(line,otherConnectPos,selfConnectPos)
line.Size = UDim2.fromScale(line.Size.X.Offset/script.Parent.Pan.AbsoluteSize.X,line.Size.Y.Offset/script.Parent.Pan.AbsoluteSize.Y)
line.Position = UDim2.fromScale(line.Position.X.Offset/script.Parent.Pan.AbsoluteSize.X,line.Position.Y.Offset/script.Parent.Pan.AbsoluteSize.Y)
end
end
end
end
end
end
end
end
end
function NodeEditor:Connect(Node)
local setNext = false
local pan = script.Parent.Pan
local hoverOb
local hovering = true
if hovering == false then
local found = 0
for i,v in pairs(script.Parent.Pan:GetDescendants()) do
if v.Name == self.UI.Name..'Line' then
found += 1
end
end
self.Connect.BackgroundTransparency = 1
self.Lines[self.UI.Name..found] = nil
self.UI:SetAttribute('Original',nil)
self.MovingLine:Destroy()
else
local hoverOb = Node.UI.ConnectFrom
local conButton = self.UI.Connect
if hoverOb.Parent.Name ~= self.UI.Name then
self.MovingLine = Instance.new('Frame')
self.MovingLine.BorderSizePixel = 0
self.MovingLine.BackgroundColor3 = Color3.fromRGB(255,255,255)
local lines = self.UI:GetAttribute('Lines') or ''
local lNum = 7--#lines:split(',')
for i,v in pairs(game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:GetChildren()) do
lNum += 1
end
--while true do
-- if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(self.UI.Name..'Line'..lNum) then
-- lNum += 1
-- else
-- break
-- end
-- wait()
--end
self.MovingLine.Name = self.UI.Name..'Line'..lNum
self.MovingLine.Parent = pan
if self.NodeType == 6 then
end
drawPath(self.MovingLine,UDim2.new(0,conButton.AbsolutePosition.X-pan.Position.X.Offset+6,0,conButton.AbsolutePosition.Y-pan.Position.Y.Offset+conButton.AbsoluteSize.Y/2),UDim2.new(0,hoverOb.AbsolutePosition.X+6-pan.Position.X.Offset,0,hoverOb.AbsolutePosition.Y-pan.Position.Y.Offset+hoverOb.AbsoluteSize.Y/2))
self.MovingLine:SetAttribute('Nodes',self.UI.Name..','..Node.UI.Name)
local con = self.UI:GetAttribute('Connect') or ''
self.UI:SetAttribute('Connect',con..','..self.MovingLine.Name)
local function showGradient(hover)
local gradient = Instance.new('UIGradient')
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0,conButton.BackgroundColor3),
ColorSequenceKeypoint.new(1,hover.BackgroundColor3)
}
local gradientFrame = Instance.new('Frame',self.MovingLine)
gradientFrame.BackgroundTransparency = 1
gradientFrame.Size = UDim2.fromScale(1,1)
gradient.Parent = gradientFrame
--gradientFrame:SetAttribute('GradientColour',gradient.Color)
gradientFrame.Name = 'GradientFrame'
gradientFrame.BackgroundColor3 = Color3.fromRGB(255,255,255)
gradientFrame.BorderSizePixel = 0
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(gradientFrame,info,{BackgroundTransparency = 0})
tween:Play()
local mouse = UserInputService:GetMouseLocation()
end
self.MovingLine.BackgroundColor3 = Color3.fromRGB(255,255,255)
showGradient(hoverOb)
self.UI:SetAttribute('Original'..self.MovingLine.Name,true)
if not game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(self.MovingLine.Name) then
local lineVal = Instance.new('NumberValue')
lineVal.Value = self.MovingLine.Rotation
lineVal:SetAttribute('Position',self.MovingLine.Position)
lineVal:SetAttribute('Size',self.MovingLine.Size)
lineVal.Name = self.MovingLine.Name
lineVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines
lineVal:SetAttribute('Nodes',self.MovingLine:GetAttribute('Nodes'))
local line = self.MovingLine
line:GetPropertyChangedSignal('Position'):Connect(function()
lineVal:SetAttribute('Position',line.Position)
end)
line:GetPropertyChangedSignal('Size'):Connect(function()
lineVal:SetAttribute('Size',line.Size)
end)
line:GetPropertyChangedSignal('Rotation'):Connect(function()
lineVal.Value = line.Rotation
end)
end
local line = self.MovingLine
local hoverAt = hoverOb.Parent:GetAttribute(hoverOb.Name)
if not hoverAt then
hoverAt = ''
end
local selfAt = self.UI:GetAttribute(conButton.Name)
if not selfAt then
selfAt = ''
end
dialogueGraph:Connect(self.Name,hoverOb.Parent.Name)
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverAt..self.MovingLine.Name..',')
conButton:SetAttribute('Connected',true)
self.ConnectedEvent:Fire()
hoverOb:SetAttribute('Connected',true)
local hoverAt = hoverOb.Parent:GetAttribute('Lines') or ''
hoverOb.Parent:SetAttribute('Lines',hoverAt..self.MovingLine.Name..',')
self.MovingLine.Size = UDim2.new(self.MovingLine.Size.X.Offset/script.Parent.Pan.AbsoluteSize.X,0,self.MovingLine.Size.Y.Offset/script.Parent.Pan.AbsoluteSize.Y,0)
self.MovingLine.Position = UDim2.new(self.MovingLine.Position.X.Offset/script.Parent.Pan.AbsoluteSize.X,0,self.MovingLine.Position.Y.Offset/script.Parent.Pan.AbsoluteSize.Y,0)
local uiStroke = Instance.new('UIStroke')
uiStroke.Transparency = 1
uiStroke.Thickness = 2
uiStroke.Color = Color3.fromRGB(255, 17, 17)
uiStroke.Parent = self.MovingLine
self.MovingLine.MouseEnter:Connect(function()
if deleting == true then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 0})
tween:Play()
end
end)
self.MovingLine.MouseLeave:Connect(function()
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 1})
tween:Play()
end)
local button = Instance.new('TextButton')
button.BackgroundTransparency = 1
button.Text = ''
button.Parent = self.MovingLine
button.Size = UDim2.new(1,0,1,0)
local line = self.MovingLine
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local editorFrame = editorWindow.ChatEditor
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = line.AbsoluteSize
local framePos = line.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = line.Position
mouseDown = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
if not isHoveringOverObj(editorFrame.DeleteHit) then
line.Position = startFramePos
else
local nodes = line:GetAttribute('Nodes'):split(',')
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
self.UI:SetAttribute('Next',self.UI:GetAttribute('Next'):gsub(hoverOb.Parent.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
editorFrame.Pan:FindFirstChild(nodes[2]):SetAttribute('Next',editorFrame.Pan:FindFirstChild(nodes[2]):GetAttribute('Next'):gsub(nodes[1],''))
local valid = false
for ind,val in pairs(conButton.Parent:GetAttribute(conButton.Name):split(',')) do
if val ~= '' then
valid = true
end
end
if not valid then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
line.Position = finalPos
end
end)
if self.NodeType == 6 then
hoverOb.Parent.ID.Visible = true
local Next = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(self.Name):GetAttribute('Next') or ''
local split = Next:split(',')
local id = 1
if Next ~= '' then
id = 1
end
for SPLIT,a in pairs(split) do
id += 1
end
hoverOb.Parent.ID.Text = id
Node.UI:SetAttribute('ID',id)
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Nodes'):FindFirstChild(self.Name):SetAttribute('CurrentID',id)
end
if setNext == false then
setNext = true
local next = self.UI:GetAttribute('Next') or ''
if next == '' then
self.UI:SetAttribute('Next',hoverOb.Parent.Name)
else
if not next:match(hoverOb.Parent.Name) then
self.UI:SetAttribute('Next',next..','..hoverOb.Parent.Name)
end
end
end
end
end
end
function NodeEditor:StartConnect(Connector: number)
local pan = script.Parent.Pan
local connect
local mouseStart = editorWindow:GetRelativeMousePosition()
local start = UDim2.new((mouseStart.X-script.Parent.Pan.Position.X.Offset)/editorWindow.AbsoluteSize.X,0,(mouseStart.Y-script.Parent.Pan.Position.Y.Offset)/editorWindow.AbsoluteSize.Y,0)
if Connector == 1 then
connect = self.UI.ConnectFrom
end
if Connector == 2 then
connect = self.UI.Connect
end
if Connector == 3 then
connect = self.UI.TrueConnect
end
if Connector == 4 then
connect = self.UI.FalseConnect
end
self.ConnectingButton = connect
local Line = Instance.new('Frame')
local found = 0
for i,v in pairs(script.Parent.Pan:GetDescendants()) do
if v.Name:match('Line') then
found += 1
end
end
local createdLines = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:GetAttribute('Created') or 0
found += createdLines
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:SetAttribute('Created',createdLines+1)
Line.Name = self.Name..'Line'..found
Line.BackgroundColor3 = connect.BackgroundColor3
Line.BorderSizePixel = 0
Line.Parent = script.Parent.Pan
self.Start = mouseStart
Line:SetAttribute('Colour',self.ConnectingButton.BackgroundColor3)
self.MovingLine = Line
self.Connect = connect
self.Lines[Line.Name..found] = Line
self.UI:SetAttribute('Original'..self.MovingLine.Name,true)
local updateLine = RunService.Heartbeat:Connect(function()
local mouse = editorWindow:GetRelativeMousePosition()
local mousePositionScale = UDim2.new((mouse.X)/editorWindow.AbsoluteSize.X,0,(mouse.Y)/editorWindow.AbsoluteSize.Y,0)
local pos = UDim2.new((connect.AbsolutePosition.X-script.Parent.Pan.Position.X.Offset)/editorWindow.AbsoluteSize.X,0,(connect.AbsolutePosition.Y-script.Parent.Pan.Position.Y.Offset)/editorWindow.AbsoluteSize.Y,0)
connect.BackgroundTransparency = 0
--local start = UDim2.new(connect.AbsolutePosition.X/editorWindow.AbsoluteSize.X,0,connect.AbsolutePosition.Y/editorWindow.AbsoluteSize.Y,0)
local start = connect.Parent.Position
drawPath(Line,UDim2.new(0,mouse.X-pan.Position.X.Offset+6,0,mouse.Y-pan.Position.Y.Offset+connect.AbsoluteSize.Y/2),UDim2.new(0,connect.AbsolutePosition.X+6-pan.Position.X.Offset,0,connect.AbsolutePosition.Y-pan.Position.Y.Offset+connect.AbsoluteSize.Y/2))
end)
local connected = false
NodeEditor.ConnectEnded:Connect(function()
if connected == false then
connected = true
updateLine:Disconnect()
Line.Size = UDim2.new(Line.Size.X.Offset/pan.AbsoluteSize.X,0,Line.Size.Y.Offset/script.Parent.Pan.AbsoluteSize.Y,0)
Line.Position = UDim2.new(Line.Position.X.Offset/pan.AbsoluteSize.X,0,Line.Position.Y.Offset/pan.AbsoluteSize.Y,0)
end
end)
return Line
end
function NodeEditor:EndConnect()
local setNext = false
endConnectEvent:Fire()
local pan = script.Parent.Pan
local mouse = editorWindow:GetRelativeMousePosition()
local hoverOb
local function isHoveringOverObj(obj)
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local hovering = false
for i,v in pairs(script.Parent:GetDescendants()) do
if v:IsA('TextButton') then
if v.Name:sub(1,7) == 'Connect' then
if isHoveringOverObj(v) then
if v ~= self.ConnectingButton then
if v.Parent.Name ~= self.UI.Name then
hovering = true
hoverOb = v
v.BackgroundTransparency = 0
v.Parent:SetAttribute('Original'..self.MovingLine.Name,false)
end
--dialogueGraph:Connect(self.Name,v.Parent.Name)
--dialogueGraph:Neighbors('Response0')
--local toPos = UDim2.new((mouse.X-script.Parent.Pan.Position.X.Offset)/editorWindow.AbsoluteSize.X,0,(mouse.Y-script.Parent.Pan.Position.Y.Offset)/editorWindow.AbsoluteSize.Y,0)
--local connect = self.ConnectingButton
--local fromPos = UDim2.new((self.Start.X-script.Parent.Pan.Position.X.Offset)/self.Start.ViewSizeX,0,(self.Start.Y-script.Parent.Pan.Position.Y.Offset)/self.Start.ViewSizeY,0)
--drawPath(self.MovingLine,fromPos,toPos)
end
end
end
end
end
if hovering == false then
local found = 0
for i,v in pairs(script.Parent.Pan:GetDescendants()) do
if v.Name == self.UI.Name..'Line' then
found += 1
end
end
self.Connect.BackgroundTransparency = 1
self.Lines[self.UI.Name..found] = nil
self.UI:SetAttribute('Original',nil)
self.MovingLine:Destroy()
else
if hoverOb.Parent.Name ~= self.UI.Name and not (self.UI.Connect:GetAttribute('Next') or ''):match(hoverOb.Parent.Name) then
local conButton = self.ConnectingButton
drawPath(self.MovingLine,UDim2.new(0,hoverOb.AbsolutePosition.X+6-pan.Position.X.Offset,0,hoverOb.AbsolutePosition.Y-pan.Position.Y.Offset+hoverOb.AbsoluteSize.Y/2),UDim2.new(0,conButton.AbsolutePosition.X-pan.Position.X.Offset+6,0,conButton.AbsolutePosition.Y-pan.Position.Y.Offset+conButton.AbsoluteSize.Y/2))
self.MovingLine:SetAttribute('Nodes',hoverOb.Parent.Name..','..self.UI.Name)
local con = self.UI:GetAttribute('Connect') or ''
self.UI:SetAttribute('Connect',con..','..self.MovingLine.Name)
local function showGradient(hover)
local gradient = Instance.new('UIGradient')
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0,conButton.BackgroundColor3),
ColorSequenceKeypoint.new(1,hover.BackgroundColor3)
}
local gradientFrame = Instance.new('Frame',self.MovingLine)
gradientFrame.BackgroundTransparency = 1
gradientFrame.Size = UDim2.fromScale(1,1)
gradient.Parent = gradientFrame
gradientFrame.Name = 'GradientFrame'
gradient.Rotation = 180
gradientFrame.BackgroundColor3 = Color3.fromRGB(255,255,255)
gradientFrame.BorderSizePixel = 0
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(gradientFrame,info,{BackgroundTransparency = 0})
tween:Play()
local mouse = UserInputService:GetMouseLocation()
end
self.MovingLine.BackgroundColor3 = Color3.fromRGB(255,255,255)
showGradient(hoverOb)
--if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(self.MovingLine.Name) then
-- local num = self.MovingLine.Name:gsub('%a','')
-- self.MovingLine.Name = self.MovingLine.Name:gsub('%d','')
-- num = #game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:GetChildren() + 1
-- self.MovingLine.Name = self.MovingLine.Name .. num
--end
if not game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(self.MovingLine.Name) then
local lineVal = Instance.new('NumberValue')
lineVal.Value = self.MovingLine.Rotation
lineVal:SetAttribute('Position',self.MovingLine.Position)
lineVal:SetAttribute('Size',self.MovingLine.Size)
lineVal.Name = self.MovingLine.Name--..#game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:GetChildren()
lineVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines
lineVal:SetAttribute('Nodes',self.MovingLine:GetAttribute('Nodes'))
local line = self.MovingLine
line:GetPropertyChangedSignal('Position'):Connect(function()
lineVal:SetAttribute('Position',line.Position)
end)
line:GetPropertyChangedSignal('Size'):Connect(function()
lineVal:SetAttribute('Size',line.Size)
end)
line:GetPropertyChangedSignal('Rotation'):Connect(function()
lineVal.Value = line.Rotation
end)
end
local line = self.MovingLine
local hoverAt = hoverOb.Parent:GetAttribute(hoverOb.Name)
if not hoverAt then
hoverAt = ''
end
local selfAt = self.UI:GetAttribute(self.ConnectingButton.Name)
if not selfAt then
selfAt = ''
end
dialogueGraph:Connect(self.Name,hoverOb.Parent.Name)
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverAt..self.MovingLine.Name..',')
self.ConnectingButton:SetAttribute('Connected',true)
self.ConnectedEvent:Fire()
hoverOb:SetAttribute('Connected',true)
local hoverAt = hoverOb.Parent:GetAttribute('Lines') or ''
hoverOb.Parent:SetAttribute('Lines',hoverAt..self.MovingLine.Name..',')
self.MovingLine.Size = UDim2.new(self.MovingLine.Size.X.Offset/script.Parent.Pan.AbsoluteSize.X,0,self.MovingLine.Size.Y.Offset/script.Parent.Pan.AbsoluteSize.Y,0)
self.MovingLine.Position = UDim2.new(self.MovingLine.Position.X.Offset/script.Parent.Pan.AbsoluteSize.X,0,self.MovingLine.Position.Y.Offset/script.Parent.Pan.AbsoluteSize.Y,0)
local uiStroke = Instance.new('UIStroke')
uiStroke.Transparency = 1
uiStroke.Thickness = 2
uiStroke.Color = Color3.fromRGB(255, 17, 17)
uiStroke.Parent = self.MovingLine
self.MovingLine.MouseEnter:Connect(function()
if deleting == true then
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 0})
tween:Play()
end
end)
self.MovingLine.MouseLeave:Connect(function()
local info = TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(uiStroke,info,{Transparency = 1})
tween:Play()
end)
local button = Instance.new('TextButton')
button.BackgroundTransparency = 1
button.Text = ''
button.Parent = self.MovingLine
button.Size = UDim2.new(1,0,1,0)
local line = self.MovingLine
local function isHoveringOverObj(obj)
local mouse = editorWindow:GetRelativeMousePosition()
local tx = obj.AbsolutePosition.X
local ty = obj.AbsolutePosition.Y
local bx = tx + obj.AbsoluteSize.X
local by = ty + obj.AbsoluteSize.Y
if mouse.X >= tx and mouse.Y >= ty and mouse.X <= bx and mouse.Y <= by then
return true
end
end
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos = UDim2.new(0,0,0,0),UDim2.new(0, 1449,0, 590)
local player = game.Players.LocalPlayer
local editorFrame = editorWindow.ChatEditor
local function mouseOnFrame()
local mousePos = editorWindow:GetRelativeMousePosition()
local frameSize = line.AbsoluteSize
local framePos = line.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
button.MouseButton1Down:Connect(function()
mouseStartPos = editorWindow:GetRelativeMousePosition()
startFramePos = line.Position
mouseDown = true
editorFrame.DeleteFrame.Visible = true
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 0.45})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 0.4})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 0})
tween:Play()
bTween:Play()
iTween:Play()
end)
button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
local info = TweenInfo.new(.3,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(editorFrame.DeleteFrame,info,{BackgroundTransparency = 1})
local bTween = TweenService:Create(editorFrame.DeleteFrame.Background,info,{BackgroundTransparency = 1})
local iTween = TweenService:Create(editorFrame.DeleteFrame.Background.Image,info,{ImageTransparency = 1})
tween:Play()
bTween:Play()
iTween:Play()
iTween.Completed:Connect(function()
editorFrame.DeleteFrame.Visible = false
end)
if not isHoveringOverObj(editorFrame.DeleteHit) then
line.Position = startFramePos
else
local nodes = line:GetAttribute('Nodes'):split(',')
line:Destroy()
local hoverOb = editorFrame.Pan:FindFirstChild(nodes[1]).ConnectFrom
local conButton = editorFrame.Pan:FindFirstChild(nodes[2]).Connect
dialogueGraph:Disconnect(nodes[1],nodes[2])
hoverOb.BackgroundTransparency = 1
local conAt = conButton.Parent:GetAttribute(conButton.Name) or ''
conButton.Parent:SetAttribute(conButton.Name,conAt:gsub(line.Name,''))
self.UI:SetAttribute('Next',self.UI:GetAttribute('Next'):gsub(hoverOb.Parent.Name,''))
local lineAt = conButton.Parent:GetAttribute('Lines') or ''
conButton.Parent:SetAttribute('Lines',lineAt:gsub(line.Name,''))
editorFrame.Pan:FindFirstChild(nodes[2]):SetAttribute('Next',editorFrame.Pan:FindFirstChild(nodes[2]):GetAttribute('Next'):gsub(nodes[1],''))
local valid = false
for ind,val in pairs(conButton.Parent:GetAttribute(conButton.Name):split(',')) do
if val ~= '' then
valid = true
end
end
if not valid then
conButton:SetAttribute('Connected',false)
else
end
hoverOb.Parent:SetAttribute(hoverOb.Name,hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(line.Name,''))
hoverOb.Parent:SetAttribute('Lines',hoverOb.Parent:GetAttribute('Lines'):gsub(line.Name,''))
if hoverOb.Parent:GetAttribute(hoverOb.Name) == '' or hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ','') == ',' then
hoverOb:SetAttribute('Connected',false)
else
if hoverOb.Parent:GetAttribute(hoverOb.Name):gsub(' ',''):sub(-1,-1) == ',' then
hoverOb:SetAttribute('Connected',false)
else
end
end
end
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
plugin:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = editorWindow:GetRelativeMousePosition() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
line.Position = finalPos
end
end)
if self.NodeType == 6 then
hoverOb.Parent.ID.Visible = true
local Next = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(self.Name):GetAttribute('Next') or ''
local split = Next:split(',')
self.UI:SetAttribute('Splits',self.UI:GetAttribute('Splits')+1)
local id = 1
for i,v in pairs(split) do
if v ~= '' then
id += 1
end
end
hoverOb.Parent.ID.Text = id
hoverOb.Parent:SetAttribute('ID',id)
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Nodes'):FindFirstChild(self.Name):SetAttribute('CurrentID',id)
end
if setNext == false then
setNext = true
local next = self.UI:GetAttribute('Next') or ''
if next == '' then
self.UI:SetAttribute('Next',hoverOb.Parent.Name)
else
if not next:match(hoverOb.Parent.Name) then
self.UI:SetAttribute('Next',next..','..hoverOb.Parent.Name)
end
end
end
end
end
end
function NodeEditor:Delete()
if editorWindow:FindFirstChild('ChatEditor') then
if isHoveringOverObj(editorWindow.ChatEditor.DeleteHit) then
local node = self
dialogueGraph:RemoveVertex(node.Name)
for index,value in pairs(node.UI:GetAttributes()) do
if index:match('Connect') and index ~= 'Connected' then
local lineNames = value:split(',')
for ay,va in pairs(lineNames) do
local line = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Lines'):FindFirstChild(va)
if line then
local nodes = line:GetAttribute('Nodes'):split(',')
local removeNextNode = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2])
if removeNextNode then
removeNextNode:SetAttribute('Next',removeNextNode:GetAttribute('Next'):gsub(nodes[1],''))
end
end
end
for I,V in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(V) then
script.Parent.Pan:FindFirstChild(V):Destroy()
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V):Destroy()
end
end
end
end
local lines = node.UI:GetAttribute('Lines') or ''
local lineNames = lines:split(',')
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name) then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name):Destroy()
end
for i,v in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(v) then
script.Parent.Parent:FindFirstChild(v):Destroy()
end
end
if node.UI:GetAttribute('Connect') then
if node.UI:GetAttribute('Connect') then
for ind,val in pairs(node.UI:GetAttribute('Connect'):split(',')) do
local Node = editorWindow.ChatEditor.Pan:FindFirstChild(val)
if Node then
Node:SetAttribute('Next',Node:GetAttribute('Next'):gsub(node.UI.Name))
end
end
end
end
--node.UI:Destroy()
-- for i,NODE in pairs(editorWindow.ChatEditor.Pan:GetChildren()) do
-- if NODE:GetAttribute('Selected') == true then
-- local node = NodeEditor.Nodes[NODE.Name]
-- dialogueGraph:RemoveVertex(node.Name)
-- for index,value in pairs(node.UI:GetAttributes()) do
-- if index:match('Connect') and index ~= 'Connected' then
-- local lineNames = value:split(',')
-- for ay,va in pairs(lineNames) do
-- local line = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Lines'):FindFirstChild(va)
-- if line then
-- local nodes = line:GetAttribute('Nodes'):split(',')
-- local removeNextNode = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2])
-- if removeNextNode then
-- removeNextNode:SetAttribute('Next',removeNextNode:GetAttribute('Next'):gsub(nodes[1],''))
-- end
-- end
-- end
-- for I,V in pairs(lineNames) do
-- if script.Parent.Pan:FindFirstChild(V) then
-- script.Parent.Pan:FindFirstChild(V):Destroy()
-- game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V):Destroy()
-- end
-- end
-- end
-- end
-- local lines = node.UI:GetAttribute('Lines') or ''
-- local lineNames = lines:split(',')
-- if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name) then
-- game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name):Destroy()
-- end
-- for i,v in pairs(lineNames) do
-- if script.Parent.Pan:FindFirstChild(v) then
-- script.Parent.Parent:FindFirstChild(v):Destroy()
-- end
-- end
-- if node.UI:GetAttribute('Connect') then
-- if node.UI:GetAttribute('Connect') then
-- for ind,val in pairs(node.UI:GetAttribute('Connect'):split(',')) do
-- local Node = editorWindow.ChatEditor.Pan:FindFirstChild(val)
-- if Node then
-- Node:SetAttribute('Next',Node:GetAttribute('Next'):gsub(node.UI.Name))
-- end
-- end
-- end
-- end
-- end
-- end
end
end
end
function NodeEditor:ForceDelete()
if editorWindow:FindFirstChild('ChatEditor') then
local node = self
dialogueGraph:RemoveVertex(node.Name)
if editorWindow.ChatEditor.Pan:FindFirstChild(node.Name) then
editorWindow.ChatEditor.Pan:FindFirstChild(node.Name):Destroy()
end
for index,value in pairs(node.UI:GetAttributes()) do
if index:match('Connect') and index ~= 'Connected' then
local lineNames = value:split(',')
for ay,va in pairs(lineNames) do
local line = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Lines'):FindFirstChild(va)
if line then
local nodes = line:GetAttribute('Nodes'):split(',')
local removeNextNode = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2])
if removeNextNode then
removeNextNode:SetAttribute('Next',removeNextNode:GetAttribute('Next'):gsub(nodes[1],''))
end
end
end
for I,V in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(V) then
script.Parent.Pan:FindFirstChild(V):Destroy()
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V):Destroy()
end
end
end
end
local lines = node.UI:GetAttribute('Lines') or ''
local lineNames = lines:split(',')
if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name) then
game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name):Destroy()
end
for i,v in pairs(lineNames) do
if script.Parent.Pan:FindFirstChild(v) then
script.Parent.Parent:FindFirstChild(v):Destroy()
end
end
if node.UI:GetAttribute('Connect') then
if node.UI:GetAttribute('Connect') then
for ind,val in pairs(node.UI:GetAttribute('Connect'):split(',')) do
local Node = editorWindow.ChatEditor.Pan:FindFirstChild(val)
if Node then
Node:SetAttribute('Next',Node:GetAttribute('Next'):gsub(node.UI.Name))
end
end
end
end
--node.UI:Destroy()
-- for i,NODE in pairs(editorWindow.ChatEditor.Pan:GetChildren()) do
-- if NODE:GetAttribute('Selected') == true then
-- local node = NodeEditor.Nodes[NODE.Name]
-- dialogueGraph:RemoveVertex(node.Name)
-- for index,value in pairs(node.UI:GetAttributes()) do
-- if index:match('Connect') and index ~= 'Connected' then
-- local lineNames = value:split(',')
-- for ay,va in pairs(lineNames) do
-- local line = game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName):FindFirstChild('Lines'):FindFirstChild(va)
-- if line then
-- local nodes = line:GetAttribute('Nodes'):split(',')
-- local removeNextNode = editorWindow.ChatEditor.Pan:FindFirstChild(nodes[2])
-- if removeNextNode then
-- removeNextNode:SetAttribute('Next',removeNextNode:GetAttribute('Next'):gsub(nodes[1],''))
-- end
-- end
-- end
-- for I,V in pairs(lineNames) do
-- if script.Parent.Pan:FindFirstChild(V) then
-- script.Parent.Pan:FindFirstChild(V):Destroy()
-- game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Lines:FindFirstChild(V):Destroy()
-- end
-- end
-- end
-- end
-- local lines = node.UI:GetAttribute('Lines') or ''
-- local lineNames = lines:split(',')
-- if game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name) then
-- game.ReplicatedStorage.DialogueContainer:FindFirstChild(folderName).Nodes:FindFirstChild(node.Name):Destroy()
-- end
-- for i,v in pairs(lineNames) do
-- if script.Parent.Pan:FindFirstChild(v) then
-- script.Parent.Parent:FindFirstChild(v):Destroy()
-- end
-- end
-- if node.UI:GetAttribute('Connect') then
-- if node.UI:GetAttribute('Connect') then
-- for ind,val in pairs(node.UI:GetAttribute('Connect'):split(',')) do
-- local Node = editorWindow.ChatEditor.Pan:FindFirstChild(val)
-- if Node then
-- Node:SetAttribute('Next',Node:GetAttribute('Next'):gsub(node.UI.Name))
-- end
-- end
-- end
-- end
-- end
-- end
end
end
function NodeEditor:OpenContext(Options,Position)
local offset = 0
local tweening = false
local length = 0
local finishedEvent = Instance.new('BindableEvent')
for option,text in pairs(Options) do
if text ~= '-' and type(text) == 'string' then
length += 1
end
end
local ContextFrame = Instance.new('Frame')
ContextFrame.Parent = editorWindow.ChatEditor
ContextFrame.ZIndex = 5
ContextFrame.Size = UDim2.new(0,130,0,0)
ContextFrame.BorderSizePixel = 0
ContextFrame.ClipsDescendants = true
ContextFrame.Position = UDim2.new(0,Position.X,0,Position.Y)
local stroke = Instance.new('UIStroke')
stroke.Parent = ContextFrame
stroke.Color = Color3.fromRGB(27, 27, 27)
ContextFrame.BackgroundColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').BackgroundColor3
ContextFrame:SetAttribute('BackgroundColor3','Primary')
local list = Instance.new('UIListLayout')
list.Padding = UDim.new(0,2)
list.Parent = ContextFrame
list.HorizontalAlignment = Enum.HorizontalAlignment.Right
local order = 1
for index,text in pairs(Options) do
if text ~= '-' and type(text) == 'string' then
local button = Instance.new('TextButton')
button.BorderSizePixel = 0
button.ZIndex = 6
button.Size = UDim2.new(.8,0,0,20)
button.TextColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').Title.TextColor3
button.BackgroundColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').BackgroundColor3
button.Text = text
button.TextXAlignment = Enum.TextXAlignment.Left
button.Parent = ContextFrame
button.Font = Enum.Font.Arial
button.TextSize = 13
button.AutoButtonColor = false
local closeOnClick = true
button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 and closeOnClick or object.UserInputType == Enum.UserInputType.MouseButton2 and closeOnClick or object.UserInputType == Enum.UserInputType.MouseButton3 and closeOnClick then
if text:sub(1,3) == 'New' then
finishedEvent:Fire(text:sub(5,-1))
else
finishedEvent:Fire(text)
end
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
tweening = true
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 1})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 1,BackgroundTransparency = 1})
tween:Play()
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 1})
tween:Play()
end
end
end
end
local tween = TweenService:Create(ContextFrame,info,{BackgroundTransparency = 1})
tween:Play()
tween.Completed:Wait()
ContextFrame:Destroy()
end
end)
local hit = Instance.new('Frame')
hit.BackgroundColor3 = Color3.fromRGB(255,255,255)
hit.Size = UDim2.new(1.5,0,0,20)
hit.Position = UDim2.new(-.3,0,0,0)
hit.Name = 'Hit'
hit.Visible = false
hit.BorderSizePixel = 0
hit.Parent = button
hit.ZIndex = button.ZIndex+1
hit.BackgroundTransparency = .925
if Options[index+1] == '-' then
local line = Instance.new('Frame')
line.BorderSizePixel = 0
line.Name = 'Line'
line.BackgroundColor3 = Color3.fromRGB(27,27,27) --Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').Edit.BackgroundColor3
line.AnchorPoint = Vector2.new(.5,.5)
line.Size = UDim2.new(1,0,0,1)
line.Parent = ContextFrame
line.ZIndex = ContextFrame.ZIndex+1
line.Parent = ContextFrame
line.Position = UDim2.new(.38,0,1,0)
line.Parent = button
button.Size = UDim2.new(.8,0,0,23)
offset += 3
end
button.MouseEnter:Connect(function()
if not tweening then
hit.Visible = true
hit.BackgroundTransparency = 0.925
end
end)
button.LayoutOrder = order
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
if text:sub(1,3) == 'New' and text:sub(4,6) ~= '...' or colours[text] then
local colour = Instance.new('Frame')
colour.Name = 'Colour'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(1,0)
corner.Parent = colour
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
colour.BackgroundColor3 = colours[text:sub(5,-1)] or colours[text:sub(12,-1)]
colour.AnchorPoint = Vector2.new(.5,.5)
colour.Size = UDim2.new(0,9,0,9)
colour.Position = UDim2.new(0,-15,.5,0)
colour.Parent = button
colour.ZIndex = button.ZIndex
end
if text:sub(-4,-1) == 'Snap' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://10565906862'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,9,0,9)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.Rotation = -45
image.ZIndex = button.ZIndex
end
if text:sub(1,6) == 'Center' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.ImageRectOffset = Vector2.new(150, 450)
image.ImageRectSize = Vector2.new(50, 50)
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://6764432408'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,13,0,13)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.Rotation = 45
image.ZIndex = button.ZIndex
end
if text:sub(-4,-1) == 'Grid' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://10577518441'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,13,0,13)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:match('Delete') then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://3926305904'
image.ImageRectOffset = Vector2.new(644, 724)
image.ImageRectSize = Vector2.new(36, 36)
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,17,0,17)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:match('Connect') then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://3926305904'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,17,0,17)
image.Rotation = -45
image.ImageRectOffset = Vector2.new(164, 404)
image.ImageRectSize = Vector2.new(36, 36)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:match('Zoom') then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://3926305904'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,17,0,17)
image.Rotation = 0
image.ImageRectOffset = Vector2.new(964, 324)
image.ImageRectSize = Vector2.new(36, 36)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:match('New') then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://3926307971'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,17,0,17)
image.ImageRectOffset = Vector2.new(324, 364)
image.ImageRectSize = Vector2.new(36, 36)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if not Options[text] then
button.MouseLeave:Connect(function()
if not tweening then
hit.Visible = false
end
end)
end
if Options[text] then
closeOnClick = false
local inSec = false
button.MouseLeave:Connect(function()
if not inSec then
hit.Visible = false
end
end)
button.MouseEnter:Connect(function()
local left = false
local inSecondary = true
button.MouseLeave:Connect(function()
left = true
end)
coroutine.wrap(function()
wait(.5)
if not left then
local tweening = false
if button:FindFirstChild('Hit') then
button:FindFirstChild('Hit').Visible = true
end
end
if button:FindFirstChild('Hit') then
button.Hit.BackgroundTransparency = .925
end
local SecondaryFrame = Instance.new('Frame')
SecondaryFrame.Parent = editorWindow.ChatEditor
SecondaryFrame.ZIndex = 6
SecondaryFrame.Size = UDim2.new(0,130,0,0)
SecondaryFrame.BorderSizePixel = 0
SecondaryFrame.ClipsDescendants = true
SecondaryFrame.Position = UDim2.new(0,Position.X+130,0,button.AbsolutePosition.Y)
local Text = text
local len = 0
for i,o in pairs(Options[Text]) do
if o ~= '-' and type(o) == 'string' then
len+=1
end
end
if editorWindow.AbsoluteSize.Y-editorWindow:GetRelativeMousePosition().Y <= len*22-2+offset then
SecondaryFrame.AnchorPoint = Vector2.new(0,1)
SecondaryFrame.Position = UDim2.new(0,Position.X+130,0,button.AbsolutePosition.Y+24)
end
if editorWindow.AbsoluteSize.X-editorWindow:GetRelativeMousePosition().X <= 260 then
SecondaryFrame.Position = UDim2.new(0,Position.X-260,0,SecondaryFrame.Position.Y.Offset)
end
local function close()
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
for i,v in pairs(SecondaryFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 1})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 1,BackgroundTransparency = 1})
tween:Play()
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 1})
tween:Play()
end
end
end
end
if button:FindFirstChildWhichIsA('Frame') then
button:FindFirstChildWhichIsA('Frame').Visible = false
end
local tween = TweenService:Create(SecondaryFrame,info,{BackgroundTransparency = 1})
tween:Play()
tween.Completed:Wait()
SecondaryFrame:Destroy()
end
button.MouseLeave:Connect(function()
wait(.002)
if not inSec then
close()
end
end)
local function closeAll()
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
for i,v in pairs(SecondaryFrame:GetDescendants()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 1})
tween:Play()
else
if v:IsA('GuiObject') then
if v:IsA('TextButton') then
local tween = TweenService:Create(v,info,{TextTransparency = 1,BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 1})
tween:Play()
end
end
end
end
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 1})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 1,BackgroundTransparency = 1})
tween:Play()
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 1})
tween:Play()
end
end
end
end
local tween = TweenService:Create(SecondaryFrame,info,{BackgroundTransparency = 1})
tween:Play()
local tween = TweenService:Create(ContextFrame,info,{BackgroundTransparency = 1})
tween:Play()
tween.Completed:Wait()
ContextFrame:Destroy()
end
SecondaryFrame.MouseLeave:Connect(function()
inSec = false
tweening = true
close()
end)
SecondaryFrame.MouseEnter:Connect(function()
inSec = true
end)
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('TextButton') then
if v.Name ~= button.Name then
v.MouseEnter:Connect(close)
end
end
end
ContextFrame.MouseLeave:Connect(function()
if not inSec then
close()
end
end)
local stroke = Instance.new('UIStroke')
stroke.Parent = SecondaryFrame
stroke.Color = Color3.fromRGB(27, 27, 27)
SecondaryFrame.BackgroundColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').BackgroundColor3
SecondaryFrame:SetAttribute('BackgroundColor3','Primary')
local list = Instance.new('UIListLayout')
list.Padding = UDim.new(0,2)
list.Parent = SecondaryFrame
list.HorizontalAlignment = Enum.HorizontalAlignment.Right
local length = 0
for i,text in pairs(Options[Text]) do
if text ~= '-' and type(text) == 'string' then
local button = Instance.new('TextButton')
length += 1
button.BorderSizePixel = 0
button.ZIndex = 6
button.Size = UDim2.new(.8,0,0,20)
button.TextColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').Title.TextColor3
button.BackgroundColor3 = Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').BackgroundColor3
button.Text = text
button.TextXAlignment = Enum.TextXAlignment.Left
button.Parent = SecondaryFrame
button.Font = Enum.Font.Arial
button.TextSize = 13
button.AutoButtonColor = false
button.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.MouseButton2 or object.UserInputType == Enum.UserInputType.MouseButton3 then
if text:sub(1,3) == 'New' then
finishedEvent:Fire(text:sub(5,-1))
else
finishedEvent:Fire(text)
end
tweening = true
closeAll()
end
end)
local hit = Instance.new('Frame')
hit.BackgroundColor3 = Color3.fromRGB(255,255,255)
hit.Size = UDim2.new(1.5,0,0,20)
hit.Position = UDim2.new(-.3,0,0,0)
hit.Name = 'Hit'
hit.Visible = false
hit.BorderSizePixel = 0
hit.Parent = button
hit.ZIndex = button.ZIndex+1
hit.BackgroundTransparency = .925
if Options[Text][i+1] == '-' then
local line = Instance.new('Frame')
line.BorderSizePixel = 0
line.Name = 'Line'
line.BackgroundColor3 = Color3.fromRGB(27,27,27) --Window:Get('Chatterblox').Menu.Scroll:FindFirstChildWhichIsA('Frame').Edit.BackgroundColor3
line.AnchorPoint = Vector2.new(.5,.5)
line.Size = UDim2.new(1,0,0,1)
line.Parent = ContextFrame
line.ZIndex = ContextFrame.ZIndex+1
line.Parent = ContextFrame
line.Position = UDim2.new(.38,0,1,0)
line.Parent = button
button.Size = UDim2.new(.8,0,0,23)
offset += 3
end
button.MouseEnter:Connect(function()
if not tweening then
hit.Visible = true
hit.BackgroundTransparency = 0.925
end
end)
button.MouseLeave:Connect(function()
if not tweening then
hit.Visible = false
end
end)
button.LayoutOrder = order
if text:sub(1,3) == 'New' then
local colour = Instance.new('Frame')
colour.Name = 'Colour'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(1,0)
corner.Parent = colour
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
colour.BackgroundColor3 = colours[text:sub(5,-1)] or colours[text:sub(12,-1)]
colour.AnchorPoint = Vector2.new(.5,.5)
colour.Size = UDim2.new(0,9,0,9)
colour.Position = UDim2.new(0,-15,.5,0)
colour.Parent = button
colour.ZIndex = button.ZIndex
end
if text:sub(-4,-1) == 'Snap' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://10565906862'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,9,0,9)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.Rotation = -45
image.ZIndex = button.ZIndex
end
if text:sub(1,6) == 'Center' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.ImageRectOffset = Vector2.new(150, 450)
image.ImageRectSize = Vector2.new(50, 50)
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://6764432408'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,13,0,13)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.Rotation = 45
image.ZIndex = button.ZIndex
end
if text:sub(-4,-1) == 'Grid' then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://10577518441'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,13,0,13)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:match('Delete') then
local image = Instance.new('ImageLabel')
image.Name = 'Image'
image.BackgroundTransparency = 1
image.Image = 'rbxassetid://10673406253'
image.AnchorPoint = Vector2.new(.5,.5)
image.Size = UDim2.new(0,13,0,13)
image.Position = UDim2.new(0,-15,.5,0)
image.Parent = button
image.ZIndex = button.ZIndex
end
if text:sub(1,3) == 'New' and text:sub(4,6) ~= '...' or colours[text] then
local colour = Instance.new('Frame')
colour.Name = 'Colour'
local corner = Instance.new('UICorner')
corner.CornerRadius = UDim.new(1,0)
corner.Parent = colour
local colours = {['Root'] = Color3.fromRGB(0, 170, 255),['Action'] = Color3.fromRGB(170, 0, 255),['Display'] = Color3.fromRGB(255, 28, 28),['Response'] = Color3.fromRGB(255, 255, 0),['Split'] = Color3.fromRGB(0, 255, 0),['Close'] = Color3.fromRGB(0, 170, 255)}
colour.BackgroundColor3 = colours[text:gsub("%d+",''):gsub('New ','')]
colour.AnchorPoint = Vector2.new(.5,.5)
colour.Size = UDim2.new(0,9,0,9)
colour.Position = UDim2.new(0,-15,.5,0)
colour.Parent = button
colour.ZIndex = button.ZIndex
end
end
end
for i,v in pairs(SecondaryFrame:GetChildren()) do
if v:IsA('UIStroke') then
v.Transparency = 1
else
if v:IsA('GuiObject') then
v.BackgroundTransparency = 1
v.TextTransparency = 1
if v:FindFirstChild('Colour') then
v:FindFirstChild('Colour').BackgroundTransparency = 1
end
if v:FindFirstChildWhichIsA('ImageLabel') then
v:FindFirstChildWhichIsA('ImageLabel').ImageTransparency = 1
end
if v:FindFirstChild('Image') then
v:FindFirstChild('Image').ImageTransparency = 1
end
if v:FindFirstChild('Line') then
v:FindFirstChild('Line').BackgroundTransparency = 1
end
end
end
end
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
for i,v in pairs(SecondaryFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 0})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 0,BackgroundTransparency = 0})
tween:Play()
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 0})
tween:Play()
end
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 0})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 0})
tween:Play()
end
end
end
end
SecondaryFrame.Size = UDim2.new(0,130,0,length*22+offset-2)
SecondaryFrame.BackgroundTransparency = 1
local tween = TweenService:Create(SecondaryFrame,info,{BackgroundTransparency = 0})
tween:Play()
end)()
end)
end
end
order += 1
end
if editorWindow.AbsoluteSize.Y-editorWindow:GetRelativeMousePosition().Y <= length*22-2+offset then
ContextFrame.AnchorPoint = Vector2.new(0,1)
if editorWindow.ChatEditor:FindFirstChild('Secondary') then
editorWindow.ChatEditor:FindFirstChild('Secondary').AnchorPoint = ContextFrame.AnchorPoint
end
end
if editorWindow.AbsoluteSize.X-editorWindow:GetRelativeMousePosition().X <= 130 then
ContextFrame.AnchorPoint = Vector2.new(1,ContextFrame.AnchorPoint.Y)
if editorWindow.ChatEditor:FindFirstChild('Secondary') then
editorWindow.ChatEditor:FindFirstChild('Secondary').AnchorPoint = ContextFrame.AnchorPoint
end
end
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
--local tween = TweenService:Create(ContextFrame,info,{Size = UDim2.new(0,130,0,length*22-2+offset)})
ContextFrame.Size = UDim2.new(0,130,0,length*22+offset-2)
ContextFrame.BackgroundTransparency = 1
local tween = TweenService:Create(ContextFrame,info,{BackgroundTransparency = 0})
tween:Play()
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('UIStroke') then
v.Transparency = 1
else
if v:IsA('GuiObject') then
v.BackgroundTransparency = 1
v.TextTransparency = 1
if v:FindFirstChild('Colour') then
v:FindFirstChild('Colour').BackgroundTransparency = 1
end
if v:FindFirstChildWhichIsA('ImageLabel') then
v:FindFirstChildWhichIsA('ImageLabel').ImageTransparency = 1
end
if v:FindFirstChild('Image') then
v:FindFirstChild('Image').ImageTransparency = 1
end
if v:FindFirstChild('Line') then
v:FindFirstChild('Line').BackgroundTransparency = 1
end
end
end
end
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 0})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 0,BackgroundTransparency = 0})
tween:Play()
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 0})
tween:Play()
end
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 0})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 0})
tween:Play()
end
end
end
editorWindow.ChatEditor.Pan.Grid.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.MouseButton2 or object.UserInputType == Enum.UserInputType.MouseButton3 then
tweening = true
for i,v in pairs(ContextFrame:GetChildren()) do
if v:IsA('UIStroke') then
local tween = TweenService:Create(v,info,{Transparency = 1})
tween:Play()
else
if v:IsA('GuiObject') then
local tween = TweenService:Create(v,info,{TextTransparency = 1,BackgroundTransparency = 1})
tween:Play()
if v:FindFirstChildWhichIsA('ImageLabel') then
local tween = TweenService:Create(v:FindFirstChildWhichIsA('ImageLabel'),info,{ImageTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Colour') then
local tween = TweenService:Create(v:FindFirstChild('Colour'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Hit') then
local tween = TweenService:Create(v:FindFirstChild('Hit'),info,{BackgroundTransparency = 1})
tween:Play()
end
if v:FindFirstChild('Line') then
local tween = TweenService:Create(v:FindFirstChild('Line'),info,{BackgroundTransparency = 1})
tween:Play()
end
end
end
end
local tween = TweenService:Create(ContextFrame,info,{BackgroundTransparency = 1})
tween:Play()
wait(info.Time)
ContextFrame:Destroy()
end
end)
end
return finishedEvent
end
return NodeEditor
]]>
-1
-
Graph
{E6BEA67D-6A95-4D52-BE8A-C5D26F45F07D}
0 then
return neighbors
end
end
return nil
end
function Graph:Clone()
local newGraph = { }
for k, v in pairs(self) do
newGraph[k] = v
if k ~= "Type" then
for k2, v2 in pairs(v) do
newGraph[k][k2] = v2
end
end
end
setmetatable(newGraph, Graph)
return newGraph
end
return Graph]]>
303855726
-
true
Nodes
0
{0EBF2AE5-2B16-48B5-819D-230CBE4352D3}
framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = inputService:GetMouseLocation()
startFramePos = node.UI.Position
mouseDown = true
end)
inputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
game.Players.LocalPlayer:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = inputService:GetMouseLocation() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/script.Parent.Parent.Pan.AbsoluteSize.X,0,mouseDelta.Y/script.Parent.Parent.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
if node.NodeType ~= 6 then
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
end
if node.NodeType == 6 then
node.UI.TrueConnect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector["True Condition"])
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
node.UI.FalseConnect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector["False Condition"])
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
end
end)
end
end
--Pan
local min = UDim2.new(0, -2186,0, -2824)
local max = UDim2.new(0,0,0,0)
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos;
startFramePos = UDim2.new(0, -1064,0, -1064)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = player:GetMouse()
local frameSize = frame.AbsoluteSize
local framePos = frame.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
inputService.InputBegan:Connect(function(input, gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseStartPos = inputService:GetMouseLocation()
startFramePos = frame.Position
mouseDown = true
end
end)
inputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
game.Players.LocalPlayer:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = inputService:GetMouseLocation() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
finalPos = UDim2.new(0,math.clamp(finalPos.X.Offset,min.X.Offset,max.X.Offset),0,math.clamp(finalPos.Y.Offset,min.Y.Offset,max.Y.Offset,0)) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
frame.Position = finalPos
local xOffset = script.Parent.Parent.Pan.Position.X.Offset+1064
local yOffset = script.Parent.Parent.Pan.Position.Y.Offset+1064
script.Parent.Parent.ToolsFrame.Pos.Text.Text = -xOffset..','..yOffset
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
else
plugin:GetMouse().Icon = ''
end
end)
--Zoom
local currentPercentage = 100
UserInputService.InputChanged:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseWheel then
currentPercentage += object.Position.Z*10
currentPercentage = math.clamp(currentPercentage,50,250)
NodeEditor:Zoom(currentPercentage)
end
end)]]>
-1
-
true
Script
0
{2E6F082C-FDB9-4C1C-ABDB-C84221982E7C}
framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
node.UI.Button.MouseButton1Down:Connect(function()
mouseStartPos = inputService:GetMouseLocation()
startFramePos = node.UI.Position
mouseDown = true
end)
inputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
game.Players.LocalPlayer:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = inputService:GetMouseLocation() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
local pos = UDim2.new(mouseDelta.X/editorFrame.Pan.AbsoluteSize.X,0,mouseDelta.Y/editorFrame.Pan.AbsoluteSize.Y,0) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
node:Move(finalPos)
end
end)
if node.NodeType ~= 6 then
node.UI.Connect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector.Connect)
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
end
if node.NodeType == 6 then
node.UI.TrueConnect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector["True Condition"])
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
node.UI.FalseConnect.MouseButton1Down:Connect(function()
node:StartConnect(NodeEditor.Connector["False Condition"])
local End = UserInputService.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
node:EndConnect()
end
end)
NodeEditor.ConnectEnded:Connect(function()
End:Disconnect()
end)
end)
end
end)
end
end
--Pan
local min = UDim2.new(0, -2186,0, -2824)
local max = UDim2.new(0,0,0,0)
local inputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local mouseDown = false
local mouseStartPos, startFramePos;
startFramePos = UDim2.new(0, -1064,0, -1064)
local player = game.Players.LocalPlayer
local function mouseOnFrame()
local mousePos = player:GetMouse()
local frameSize = frame.AbsoluteSize
local framePos = frame.AbsolutePosition
return (mousePos.X > framePos.X and mousePos.X < framePos.X + frameSize.X)
and (mousePos.Y > framePos.Y and mousePos.Y < framePos.Y + frameSize.Y)
end
inputService.InputBegan:Connect(function(input, gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseStartPos = inputService:GetMouseLocation()
startFramePos = frame.Position
mouseDown = true
end
end)
inputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton3 then
mouseDown = false
end
end)
runService.RenderStepped:Connect(function()
if mouseDown then
game.Players.LocalPlayer:GetMouse().Icon = 'rbxassetid://10545660265'
local mouseDelta = inputService:GetMouseLocation() - mouseStartPos
local finalPos = startFramePos + UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
finalPos = UDim2.new(0,math.clamp(finalPos.X.Offset,min.X.Offset,max.X.Offset),0,math.clamp(finalPos.Y.Offset,min.Y.Offset,max.Y.Offset,0)) --math.clamp(finalPos.X.Offset,max.X.Offset,0)
frame.Position = finalPos
local xOffset = editorFrame.Pan.Position.X.Offset+1064
local yOffset = editorFrame.Pan.Position.Y.Offset+1064
editorFrame.ToolsFrame.Pos.Text.Text = -xOffset..','..yOffset
moved = startFramePos-UDim2.new(0,mouseDelta.X,0,mouseDelta.Y)
else
plugin:GetMouse().Icon = ''
end
end)
--Zoom
local currentPercentage = 100
UserInputService.InputChanged:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseWheel then
currentPercentage += object.Position.Z*10
currentPercentage = math.clamp(currentPercentage,50,250)
NodeEditor:Zoom(currentPercentage)
end
end)]]>
-1
-
true
ConditionTemp
0
{926B435D-5EA1-4430-AB59-2D6140BCD1C5}
-1
-
true
ActionTemp
0
{B860DC30-7A94-434B-B96E-96BD7EACAC74}
-1
-
true
ConditionServerTemp
0
{D2E079C5-88CF-44F4-B0E3-701407184B1F}
-1
-
AQAAAAQAAABOYW1lAgcAAABBY3Rpb24w
true
ActionServerTemp
0
{D8AD5FB6-74CE-46D6-AF2A-3368B5215EFA}
-1
-
false
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Close
[null]
[null]
[null]
[null]
0.42784971
0
0.339209169
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0540000014
0
0.0219999999
0
0
-1
0
true
2
-
false
0
0
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000004
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Close
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03750002
0
0.461833864
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0681818202
0
0.173913047
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
0.666666687
1
true
0
UIStroke
-1
2.5
0
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0681818202
0
0.173913047
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
0.666666687
1
true
0
UIStroke
-1
2.5
0
-
false
0
0
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
0
0
0.666666687
1
true
0
UIStroke
-1
2.4000001
0
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
C
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Display
[null]
[null]
[null]
[null]
0.504688323
0
0.420298278
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0540000014
0
0.0280994214
0
0
-1
0
true
2
-
false
0
0
true
0
1
0.109803922
0.109803922
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000004
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Display
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.468751729
0
0.3690117
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.491342187
0
0.162799284
0
0
-1
0
Edit
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
30
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Prompt
[null]
[null]
[null]
[null]
0.0395332798
0
0.401571542
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429218471
0
0.141092703
0
0
-1
Prompt
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
false
true
0
1
0.109803922
0.109803922
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03750002
0
0.461833864
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677713379
0
0.130239427
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
1
0.109803922
0.109803922
true
0
UIStroke
-1
2.5
0
-
true
0
0
false
true
0
1
0.109803922
0.109803922
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677713379
0
0.130239427
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
1
0.109803922
0.109803922
true
0
UIStroke
-1
2.5
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.0225904454
0
0.816224635
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.920560658
0
0.141092703
0
0
-1
Prompt Text
0.427451015
0.427451015
0.427451015
true
17
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ClickAd
[null]
[null]
[null]
[null]
0.655122936
0
0.596930683
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.101657003
0
0.195359141
0
0
-1
0
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
5
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
ClickTitle
[null]
[null]
[null]
[null]
0.033885669
0
0.607783973
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.570408762
0
0.18450585
0
0
-1
Click to Advance
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
0
1
0.109803922
0.109803922
true
0
UIStroke
-1
2.4000001
0
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
D
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Response
[null]
[null]
[null]
[null]
0.503537059
0
0.36574164
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0540000014
0
0.0219999999
0
0
-1
0
true
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.470999986
0
0.48300001
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.493750006
0
0.221532241
0
0
-1
0
Edit
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
30
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0399999991
0
0.518000007
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.430999994
0
0.181999996
0
0
-1
Text
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
false
true
0
1
1
0
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03750002
0
0.461833864
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0681818202
0
0.173913047
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
1
1
0
true
0
UIStroke
-1
2.5
0
-
true
0
0
false
true
0
1
1
0
1
0.105882354
0.164705887
0.20784314
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0681818202
0
0.173913047
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
1
1
0
true
0
UIStroke
-1
2.5
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.0400000066
0
0.759999931
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.924749911
0
0.181818187
0
0
-1
Response Text
0.427451015
0.427451015
0.427451015
true
17
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
0
1
1
0
true
0
UIStroke
-1
2.4000001
0
-
false
0
0
true
0
1
1
0
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000004
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Response
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
r
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
2
-
0
4
UICorner
-1
-
false
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Root
[null]
[null]
[null]
[null]
0.583065927
0
0.396205574
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0540000014
0
0.0280994214
0
0
-1
0
true
2
-
false
0
0
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000022
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Root
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.468751729
0
0.3690117
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.491342187
0
0.162799284
0
0
-1
0
Edit
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
30
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Prompt
[null]
[null]
[null]
[null]
0.0395332798
0
0.401571542
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429218471
0
0.141092703
0
0
-1
Prompt
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03750002
0
0.461833864
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677713379
0
0.130239427
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
0.666666687
1
true
0
UIStroke
-1
2.5
0
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677713379
0
0.130239427
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
0.666666687
1
true
0
UIStroke
-1
2.5
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.0225904454
0
0.816224635
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.920560658
0
0.141092703
0
0
-1
Prompt Text
0.427451015
0.427451015
0.427451015
true
17
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ClickAd
[null]
[null]
[null]
[null]
0.655122936
0
0.596930683
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.101657003
0
0.195359141
0
0
-1
0
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
5
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
ClickTitle
[null]
[null]
[null]
[null]
0.033885669
0
0.607783973
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.570408762
0
0.18450585
0
0
-1
Click to Advance
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
0
0
0.666666687
1
true
0
UIStroke
-1
2.4000001
0
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
R
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
2
-
0
4
UICorner
-1
-
true
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Split
[null]
[null]
[null]
[null]
0.427706659
0
0.417978019
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0539798737
0
0.0240927115
0
0
-1
0
true
2
-
false
0
0
true
0
0
1
0
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000004
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Split
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.468926549
0
0.708860755
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.491525412
0
0.189873412
0
0
-1
0
Edit
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
30
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0395480208
0
0.74683547
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429378539
0
0.164556965
0
0
-1
Condition
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Server
[null]
[null]
[null]
[null]
0.655367255
0
0.430379748
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.101694912
0
0.227848098
0
0
-1
0
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
5
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
ServerTitle
[null]
[null]
[null]
[null]
0.0338983051
0
0.481012672
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429378539
0
0.164556965
0
0
-1
Server
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
false
true
0
0
1
0
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677966103
0
0.151898727
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
1
0
true
0
UIStroke
-1
2.5
0
-
true
0
0
false
true
0
0
1
0
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03799999
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677966103
0
0.151898727
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0
1
0
true
0
UIStroke
-1
2.5
0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
0
0
1
0
true
0
UIStroke
-1
2.4000001
0
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
S
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
2
-
0
4
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.290196091
0.290196091
0.290196091
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
TextEdit
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
24
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
9
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.953846157
0
1
0
0
-1
Edit Close Prompt
1
1
1
false
14
0
0
0
1
0
0
false
0
1
true
1
-
true
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
false
Text
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
Prompt Text
0
8
0
27
true
[null]
0
true
0
0
0
0
false
[null]
0
true
0.907692313
0
0.666666687
0
0
-1
1
1
1
true
false
14
0
0
0
1
0
0
true
0
0
true
1
-
true
0
0
true
0
0.21960786
0.21960786
0.21960786
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Action
[null]
[null]
[null]
[null]
0.584156752
0
0.365522981
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0539798737
0
0.0240927115
0
0
-1
0
true
2
-
false
0
0
true
0
0.666666687
0
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.0250000004
0
1
0
0
-1
0
true
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TitleEdit
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
true
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
true
29
0
0
0
1
0
0
true
0
1
false
2
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
1.12994349
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
33.898304
0
0.443037987
0
0
-1
Action
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
true
true
0
1
0.0941176564
0.0941176564
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Edit
[null]
[null]
[null]
[null]
0.468926549
0
0.708860755
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.491525412
0
0.189873412
0
0
-1
0
Edit
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
30
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0395480208
0
0.74683547
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429378539
0
0.164556965
0
0
-1
Action
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
true
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
0.666666687
0
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
ConnectFrom
[null]
[null]
[null]
[null]
-0.119999997
0
0.462000012
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677966103
0
0.151898727
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0.666666687
0
1
true
0
UIStroke
-1
2.5
0
-
true
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
0.666666687
0
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Connect
[null]
[null]
[null]
[null]
1.03750002
0
0.461833864
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0677966103
0
0.151898727
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
2
-
1
0
UICorner
-1
-
1
0.666666687
0
1
true
0
UIStroke
-1
2.5
0
-
false
0
0
true
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Server
[null]
[null]
[null]
[null]
0.661016941
0
0.430379748
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.101694912
0
0.227848098
0
0
-1
0
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
2
-
0
5
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
ServerTitle
[null]
[null]
[null]
[null]
0.0395480208
0
0.481012672
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.429378539
0
0.164556965
0
0
-1
Server
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
2
-
false
0
0
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
ID
[null]
[null]
[null]
[null]
0.819999993
0
0.108999997
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
1
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
0
0.666666687
0
1
true
0
UIStroke
-1
2.4000001
0
-
false
1
1
false
true
0
0.176470593
0.176470593
0.176470593
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
TypeIndicator
[null]
[null]
[null]
[null]
1
0
1
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.107304618
0
0.263384074
0
0
-1
0
A
1
1
1
false
14
0
0
0
1
0
0
true
2
1
false
2
-
0
4
UICorner
-1
-
ChangeOpenButton
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
CustomBool
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.876340687
0
0.121212341
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.0881981105
0
0.75757575
0
0
-1
0
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
0
10
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.18083033
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Import
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
0.137254909
0.137254909
0.137254909
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
58
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://10682459554
1
1
1
0
0
0
0
0
0
Icon
[null]
[null]
[null]
[null]
0
15
0
7
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
41
0
41
0
0
0
0
0
1
-1
1
0
1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
64
0
12
false
[null]
0
false
0
0
0
0
false
[null]
0
0.672999978
0
0
33
0
-1
Script Importer
1
1
1
true
14
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
0.137254909
0.137254909
0.137254909
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
ISelect
[null]
[null]
[null]
[null]
0
0
0
57
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.099999994
0
0
-1
0
true
1
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
false
true
0
0.137254909
0.137254909
0.137254909
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Toggle
[null]
[null]
[null]
[null]
0
213
0
5
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
22
0
22
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
0.363636374
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
6
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.699999988
0
0
33
0
-1
Import To Selection
1
1
1
false
14
0
0
0
1
0
0
true
0
1
true
1
-
false
0
0
AQAAABQAAABTY3JvbGxCYXJJbWFnZUNvbG9yMwIJAAAAU2Vjb25kYXJ5
true
0
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
0
rbxassetid://2070896802
0
0
0
0
2
0
true
false
0
0
0
rbxassetid://2070896802
Content
[null]
[null]
[null]
[null]
0
0
0
100
[null]
0
1
1
1
0
5
4
true
false
0
0
0
0
false
[null]
0
1
0
0.700999975
0
0
-1
rbxassetid://2070896802
0
0
true
1
-
1
0
UIListLayout
0
0
2
-1
1
-
true
true
0
true
DialogueUI
true
[null]
1
2
0
0
0
0
false
-1
1
-
DialogueController
{3E08DF5A-C1CD-40A8-8297-70E97A1704CB}
-1
-
Dialogue
{16DCDB2D-D195-4F8B-88ED-50D40B4D747E}
([^<>]*)") do
if inString:sub(1,4) == 'game' then
local oString = inString
local instances = {game}
local iIndex = 1
inString = inString:gsub('game.','')
local indexes = inString:split('.')
for i,v in pairs(indexes) do
if v ~= '' then
table.insert(instances,instances[iIndex][v])
iIndex += 1
end
end
Text = Text:gsub(''..oString..'',tostring(instances[#instances]))
end
end
local sWait = true
coroutine.wrap(function()
for i = 1, #Text do
self.UI.MessageText.Text = Text:sub(1,i)
if sWait then
local characters = self.Properties.PauseCharacters
local isChar = false
for I = 1,#characters do
for ind = 1,#Text do
if Text:sub(i,i):lower() == characters:sub(I,I):lower() then
isChar = true
end
end
end
if not isChar then
wait((101-self.Properties.Speed)/200)
else
wait(self.Properties.PauseWait)
end
end
end
self.ShowCompleteEvent:Fire()
end)()
self.UI.Skip.MouseButton1Down:Connect(function()
sWait = false
end)
return self
end
end
function Dialogue:ShowResponse(Text)
if not self.UI.Options:FindFirstChild(Text) then
local option = script.Response:Clone()
option.BackgroundTransparency = option:GetAttribute('BackgroundTransparency') or 0
option.TextTransparency = option:GetAttribute('TextTransparency') or 0
option.OText.Text = Text
option.Size = UDim2.new(0,0,.18,0)
option.Parent = self.UI.Options
option.Name = Text
local info = TweenInfo.new(.5,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
TweenService:Create(option,info,{Size = UDim2.new(0,option.OText.TextBounds.X+30,.18,0)}):Play()
reseponseShownEvent:Fire()
return option
end
end
function Dialogue:CloseResponses()
for i,v in pairs(self.UI.Options:GetChildren()) do
if v:IsA('TextButton') then
local info = TweenInfo.new(.375,Enum.EasingStyle.Sine,Enum.EasingDirection.Out,0,false,0)
local tween = TweenService:Create(v,info,{Size = UDim2.new(0,0,v.Size.Y.Scale,0)})
tween:Play()
tween.Completed:Connect(function()
v:Destroy()
end)
end
end
end
return Dialogue
]]>
-1
-
true
0
0.5
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
true
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
false
Response
[null]
[null]
[null]
[null]
0
0
0.0900000483
0
true
[null]
0
true
false
0
0
0
0
false
[null]
0
0.48503831
0
0.180000022
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
true
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
OText
[null]
[null]
[null]
[null]
0.0989998057
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
146
0
32
0
-1
Response
0
0
0
false
14
0
0
0
1
0
0
true
0
1
true
1
-
false
0
0
AQAAABYAAABCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BgAAAAAAAPA/
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
MessageFrame
[null]
[null]
[null]
[null]
0.28997612
0
0.629807413
0
[null]
0
false
0
0
0
0
false
[null]
0
0.419563502
0
0.368686169
0
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
MessageText
[null]
[null]
[null]
[null]
0.0211946052
0
0.064000003
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.676300585
0
0.824000001
0
0
-1
0
0
0
false
22
0
0
0
1
0
0
true
0
0
true
1
-
false
0.784313738
0.784313738
0.784313738
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
0.227141321
3.19998169
3.44058275
1
0
-5.96046448e-08
-0
1
-0
5.96046448e-08
0
1
1.22173059
false
false
1
1
1
0
0
0.549019635
0.549019635
0.549019635
-1
-1
-1
NPCPic
[null]
[null]
[null]
[null]
0.766859353
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.233140662
0
1
0
0
-1
true
1
-
0 1 1 1 0 1 1 1 1 0
true
UIGradient
0
0
180
-1
0 0 0 0.997704 0.9875 0 1 0 0
-
0
8
UICorner
-1
-
false
0
0
AQAAABYAAABCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BgAAAAAAAPA/
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Options
[null]
[null]
[null]
[null]
1.05234981
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.46121186
0
1
0
0
-1
0
true
1
-
1
1
UIListLayout
0.0399999991
0
2
-1
1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Skip
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
1
0
false
2
1
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
http://www.roblox.com/asset/?id=9723646128
0.192156881
0.192156881
0.192156881
0
0
0
0
0
0
Arrow
[null]
[null]
[null]
[null]
0.90200001
0
0.699999988
0
0
[null]
180
0
false
0
0
0
0
false
[null]
0
0.063905254
0
0.0982334167
0
0
0
0
0
0
1
-1
1
0
1
0
false
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
17
rbxasset://fonts/families/GothamSSm.json
400
rbxasset://fonts/GothamSSm-Book.otf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0211945921
0
-0.220357522
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.676300585
0
0.167790279
0
0
-1
0
0
0
false
22
0
0
0
1
0
0
true
0
0
true
1
-
true
DialogueClient
0
{4FAA906F-4FD2-4C9D-9FAD-5C725513ECDD}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgAAAAA=
true
0
0.188235313
0.188235313
0.188235313
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Template
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
25
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0590551198
0
-0.000204242155
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.664566934
0
1
0
0
-1
Dialogue
1
1
1
false
14
0
0
0
1
0
0
true
0
1
true
1
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0
1
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Import
[null]
[null]
[null]
[null]
0.810000002
0
0.108999997
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
43
0.800000012
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
true
0.5
0.5
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
844
444
36
36
0
5
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.5
0
0.5
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 0.0470588 1 0 0 1 0.0117647 1 0.788235 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
0
-
0 0.0470588 1 0 0 1 0.0117647 1 0.788235 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
false
true
0
0
0.666666687
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Update
[null]
[null]
[null]
[null]
0.620000005
0
0.108999997
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
43
0.800000012
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
false
1
-
1
0
UICorner
-1
-
true
0.5
0.5
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
404
84
36
36
0
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.5
0
0.5
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
1
1
1
1
true
0
UIStroke
-1
2
0
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
true
0
true
AdvancedUI
true
[null]
1
2
0
0
0
0
false
-1
1
-
true
0
0
true
true
0
0.152941182
0.152941182
0.152941182
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Close
[null]
[null]
[null]
[null]
0.0208574738
0
0.0221774187
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
112
0
28
0
-1
0
Close
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
0
8
UICorner
-1
-
true
0
0
true
true
0
0.152941182
0.152941182
0.152941182
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Help
[null]
[null]
[null]
[null]
0.164542288
0
0.0221774187
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
112
0
28
0
-1
0
Help
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
0.152941182
0.152941182
0.152941182
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
HelpFrame
[null]
[null]
[null]
[null]
0.270358294
0
0.120967738
0
[null]
0
false
0
0
0
0
false
[null]
0
0
422
0
352
0
-1
0
false
1
-
0
8
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
TextLabel
[null]
[null]
[null]
[null]
0.187203795
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
263
0
50
0
-1
Dialogue UI Help
1
1
1
true
29
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Line
[null]
[null]
[null]
[null]
0.02843602
0
0.133333325
0
[null]
0
false
0
0
0
0
false
[null]
0
0
399
0
3
0
-1
0
true
1
-
0
8
UICorner
-1
-
true
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
true
false
0
Content
[null]
[null]
[null]
[null]
0
0
0.157333329
0
[null]
0
true
0
0
0
0
true
[null]
0
0
422
0
300
0
-1
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
DTextTitle
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
248
0
27
0
-1
Dialogue Text
1
1
1
false
20
0
0
0
1
0
0
true
2
1
true
1
-
1
0
UIListLayout
0
0
2
-1
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
1
1
-1
DText
[null]
[null]
[null]
[null]
0.0228080563
0
0.0900000036
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.95438391
0
0.099166669
27
0
-1
If you want a GuiObject to show Dialogue Text, name it "<b>Message Text</b>" and put it inside a frame named <b>Message Frame</b> Make sure the GuiObject has a <b>Text</b> property.
1
1
1
false
14
0
0
0
1
0
0
true
0
0
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
2
1
-1
RTextTitle
[null]
[null]
[null]
[null]
0.206161141
0
0.222916663
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
248
0
42
0
-1
Responses
1
1
1
false
20
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
1
Line
[null]
[null]
[null]
[null]
0.02843602
0
0.133333325
0
[null]
0
false
0
0
0
0
false
[null]
0
0
325
0
1
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
3
1
-1
RText
[null]
[null]
[null]
[null]
0.0228080563
0
0.392500013
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.95438391
0
0.186250001
27
0
-1
You can customise how the responses look by adding a TextButton names"<b>Response</b>" to a frame called "<b>Options</b>". The response buttons will be scaled depending on the length of the text. Make sure the Options frame has a UIListLayout inside it or only one response will be shown.
1
1
1
false
14
0
0
0
1
0
0
true
0
0
true
1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
4
Line
[null]
[null]
[null]
[null]
0.02843602
0
0.133333325
0
[null]
0
false
0
0
0
0
false
[null]
0
0
325
0
1
0
-1
0
true
1
-
0
8
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
4
1
-1
NPCTextTitle
[null]
[null]
[null]
[null]
0.206161141
0
0.222916663
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
248
0
42
0
-1
NPC Headshots
1
1
1
false
20
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
4
1
-1
NPCText
[null]
[null]
[null]
[null]
0.0228080563
0
0.30354166
0
true
[null]
0
false
0
0
0
0
false
[null]
0
0.95438391
0
0.0206250008
27
0
-1
If you want a ViewportFrame to show a headshot of an NPC, name it <b>NPCPic</b> and put it in the MessageFrame
1
1
1
false
14
0
0
0
1
0
0
true
0
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882362
0.164705887
0.207843155
0
0
true
false
0
DialogueEdit
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
false
2
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
TitleBar
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.168639049
0
0
-1
0
true
2
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0.5
0.5
false
true
0
0.203921586
0.203921586
0.203921586
0
0.105882354
0.164705887
0.20784314
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
OpenTabs
[null]
[null]
[null]
[null]
0.0842992067
0
0.496052623
0
false
[null]
0
true
true
0
0
0
0
false
[null]
0
0
39
0
39
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
4
-
1
0
UICorner
-1
-
1
1
1
1
true
0
UIStroke
-1
1.60000002
1
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926307971
1
1
1
724
244
36
36
0
4
Image
[null]
[null]
[null]
[null]
0.125
0
0.125
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.75
0
0.75
0
0
0
0
0
0
1
-1
1
0
1
0
true
5
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tabs
[null]
[null]
[null]
[null]
-0.174999997
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
44
0
338
0
-1
0
true
12
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Side
[null]
[null]
[null]
[null]
-0.12117058
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.706756115
0
1
0
0
-1
0
true
12
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Buttons
[null]
[null]
[null]
[null]
0
0
0.171597585
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.82840246
0
0
-1
0
true
12
-
1
0
UIListLayout
0.0500000007
0
2
-1
1
-
false
Hover
0
{21305E59-43D1-43D7-82F9-381DFB1F75C1}
-1
-
true
0.5
0.5
AQAAAAsAAABEZXNjcmlwdGlvbgIQAAAAQ29sbGFwc2UgU2lkZWJhcg==
false
true
0
0.203921586
0.203921586
0.203921586
0.899999976
0.105882354
0.164705887
0.20784314
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Collapse
[null]
[null]
[null]
[null]
0.477999985
0
0.075000003
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.878378272
0
0.115384616
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
100
-
1
0
UICorner
-1
-
1
1
1
1
true
0
UIStroke
-1
1.60000002
3
-
true
0
0
AQAAAAsAAABJbWFnZUNvbG9yMwIEAAAAVGV4dA==
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://6764432408
1
1
1
150
300
50
50
0
0
Image
[null]
[null]
[null]
[null]
0.125
0
0.125
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.75
0
0.75
0
0
0
0
0
0
1
-1
1
0
1
0
true
12
-
false
CloseScript
0
{8DCDC05B-A681-41D5-95C3-2D8E449F6A02}
-1
-
false
Tip
0
{6DDA9D5C-C5F7-4A1A-B885-BC53C81052AA}
-1
-
false
0
0
true
0
0.0666666701
0.0666666701
0.0666666701
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Tip
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0
149
0
16
0
-1
1
1
1
false
14
0
0
0
1
1
0
true
2
1
true
3
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.212598309
0
0.035502959
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.475177288
0
0.0932687074
0
0
-1
Dialogue
1
1
1
false
29
0
0
0
1
0
0
false
0
1
true
4
-
3.82857132
0
0
UIAspectRatioConstraint
-1
-
false
0
0
true
0
0.0823529437
0.0823529437
0.0823529437
0
0.105882354
0.164705887
0.20784314
0
0
false
false
0
InstanceFrame
[null]
[null]
[null]
[null]
-0.00354609918
0
0.21657756
0
[null]
0
false
0
0
0
0
false
[null]
0
1.00354612
0
0.78342253
0
0
-1
0
false
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Search
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
Name
0.0318021215
0
0.0136518767
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.939929307
0
0.112627983
0
0
-1
0.176470593
0.176470593
0.176470593
true
false
14
0
0
0
1
0
0
false
2
1
true
3
-
1
0
UICorner
-1
-
true
0
0
AQAAABQAAABTY3JvbGxCYXJJbWFnZUNvbG9yMwIIAAAAVGVydGlhcnk=
true
0
0
1
1
1
1
0.176470593
0.176470593
0.176470593
0
0
rbxasset://textures/ui/Scroll/scroll-bottom.png
0
0
0
0
2
0
true
false
0
0
0
rbxasset://textures/ui/Scroll/scroll-middle.png
Results
[null]
[null]
[null]
[null]
0.00353356893
0
0.156996593
0
[null]
0
1
1
1
0
1
4
true
true
0
0
0
0
true
[null]
0
0.992932856
0
0.83959043
0
0
-1
rbxasset://textures/ui/Scroll/scroll-top.png
0
0
true
3
-
1
0
UIListLayout
0
0
2
-1
1
-
false
0
0
AwAAAAMAAABIdWUFAAAAAAMAAABTYXQGAAAAAAAAAAADAAAAVmFsBgAAAAAAAPA/
true
0
0.0823529437
0.0823529437
0.0823529437
1
0.105882354
0.164705887
0.20784314
0
0
false
false
0
CFrame
[null]
[null]
[null]
[null]
-0.00354609918
0
0.21657756
0
[null]
0
false
0
0
0
0
false
[null]
0
1.00354612
0
0.78342253
0
0
-1
0
false
3
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Preview
[null]
[null]
[null]
[null]
0.127000004
0
0.670000017
0
[null]
0
false
0
0
0
0
false
[null]
0
0.737356126
0
0.078441985
0
0
-1
0
true
4
-
0
8
UICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
SatVal
[null]
[null]
[null]
[null]
0.128325999
0
0.0517363288
0
[null]
0
false
0
0
0
0
false
[null]
0
0
151
0
151
0
-1
0
true
4
-
0 1 1 1 0 1 1 0 0 0
true
UIGradient
0
0
0
-1
0 0 0 1 0 0
-
false
0
0
true
0
0
0
0
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Value
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
4
-
0 1 1 1 0 1 1 1 1 0
true
UIGradient
0
0
270
-1
0 0 0 1 1 0
-
0
8
UICorner
-1
-
0
8
UICorner
-1
-
true
0
0
AQAAAAgAAABOb1RyYW5zcAMB
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
3
-
false
Colour
0
{7D113BDB-04AC-45DD-9D89-7E76E1B33A84}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
script.Parent.MouseButton1Down:Connect(function()
down = true
end)
script.Parent.MouseButton1Up:Connect(function()
down = false
end)
UIS.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
local function GetScaledSizeFromOffset(OffsetX,OffsetY) -- The Function that returns the scale from original size.
local ScreenSize = game.Workspace.CurrentCamera.ViewportSize
local XRatio = OffsetX / ScreenSize.X
local YRatio = OffsetY / ScreenSize.Y
return UDim2.new(XRatio,0,YRatio,0)
end
local function getSatVal()
local ScaleXPos = script.Parent.Parent.Marker.Position.X.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.X + script.Parent.Parent.Marker.Position.X.Scale
local ScaleYPos = script.Parent.Parent.Marker.Position.Y.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.Y + script.Parent.Parent.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local sat = finalPos.X.Scale
local val = opY
return sat, val
end
while true do
wait()
if down == true then
local mouse = game.Players.LocalPlayer:GetMouse()
local sat,val = getSatVal()
script.Parent.Parent.Marker.Position = UDim2.new(0,math.clamp(mouse.X-script.Parent.Parent.AbsolutePosition.X,0,231),0,math.clamp(mouse.Y-script.Parent.Parent.AbsolutePosition.Y,0,231))
script.Parent.Parent.Parent:SetAttribute('Sat',sat)
script.Parent.Parent.Parent:SetAttribute('Val',val)
script.Parent.Parent.Parent.Preview.BackgroundColor3 = Color3.fromHSV(script.Parent.Parent.Parent:GetAttribute('Hue'),script.Parent.Parent.Parent:GetAttribute('Sat'),script.Parent.Parent.Parent:GetAttribute('Val'))
script.Parent.Parent.Parent.H.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Hue')*360)
script.Parent.Parent.Parent.S.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Sat')*100)
script.Parent.Parent.Parent.V.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Val')*100)
script.Parent.Parent.Parent.R.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.R*255)
script.Parent.Parent.Parent.G.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.G*255)
script.Parent.Parent.Parent.B.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.B*255)
script.Parent.Parent.Parent.HTML.Text = toHex(Color3.fromRGB(script.Parent.Parent.Parent.R.Text,script.Parent.Parent.Parent.G.Text,script.Parent.Parent.Parent.B.Text))
end
end]]>
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Marker
[null]
[null]
[null]
[null]
0
236
0
236
[null]
0
false
0
0
0
0
false
[null]
0
0.0211864412
0
0.0211864412
0
0
-1
0
true
7
-
1
0
UICorner
-1
-
0
0
0
0
true
0
UIStroke
-1
2
0
-
false
0.5
0.5
true
0
1
1
1
0
0.156862751
0.156862751
0.156862751
0
0
false
false
rbxassetid://10244558558
1
1
1
0
0
0
0
0
-1
Hue
[null]
[null]
[null]
[null]
0.808718204
0
0.336860597
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0.111068025
0
0.570248723
0
0
10
10
90
90
1
-1
1
0
1
0
true
4
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
TextButton
[null]
[null]
[null]
[null]
0
0
-0.000413424161
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
false
5
-
false
Hue
0
{47A2EA09-8B39-40E6-964D-ECCD4F8B5B8E}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
script.Parent.MouseButton1Down:Connect(function()
down = true
end)
--script.Parent.MouseButton1Up:Connect(function()
-- down = false
--end)
UIS.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
local function GetScaledSizeFromOffset(OffsetX,OffsetY) -- The Function that returns the scale from original size.
local ScreenSize = game.Workspace.CurrentCamera.ViewportSize
local XRatio = OffsetX / ScreenSize.X
local YRatio = OffsetY / ScreenSize.Y
return UDim2.new(XRatio,0,YRatio,0)
end
local function getHue()
local ScaleXPos = script.Parent.Parent.Marker.Position.X.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.X + script.Parent.Parent.Marker.Position.X.Scale
local ScaleYPos = script.Parent.Parent.Marker.Position.Y.Offset/script.Parent.Parent.Marker.Parent.AbsoluteSize.Y + script.Parent.Parent.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local hue = finalPos.Y.Scale
return hue
end
while true do
wait()
if down == true then
local mouse = game.Players.LocalPlayer:GetMouse()
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(script.Parent.Parent.Parent:GetAttribute('Hue'),1,1))}
script.Parent.Parent.Parent.SatVal.UIGradient.Color = sequence
script.Parent.Parent.Marker.Position = UDim2.new(0.5,0,0,math.clamp(mouse.Y-script.Parent.Parent.AbsolutePosition.Y,0,236))
script.Parent.Parent.Parent:SetAttribute('Hue',math.clamp(getHue(),0,1))
script.Parent.Parent.Parent.H.Text = math.round(script.Parent.Parent.Parent:GetAttribute('Hue')*360)
script.Parent.Parent.Parent.R.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.R*255)
script.Parent.Parent.Parent.G.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.G*255)
script.Parent.Parent.Parent.B.Text = math.round(script.Parent.Parent.Parent.Preview.BackgroundColor3.B*255)
script.Parent.Parent.Parent.HTML.Text = toHex(Color3.fromRGB(script.Parent.Parent.Parent.R.Text,script.Parent.Parent.Parent.G.Text,script.Parent.Parent.Parent.B.Text))
script.Parent.Parent.Parent.Preview.BackgroundColor3 = Color3.fromHSV(script.Parent.Parent.Parent:GetAttribute('Hue'),script.Parent.Parent.Parent:GetAttribute('Sat'),script.Parent.Parent.Parent:GetAttribute('Val'))
end
end]]>
-1
-
false
0.5
0.5
true
0
1
1
1
0
0
0
0
0
0
false
false
0
Marker
[null]
[null]
[null]
[null]
0.495163709
0
0.999999881
0
[null]
0
false
0
0
0
0
false
[null]
0
1.005
0
0.00499999989
0
0
-1
0
true
7
-
0
8
UICorner
-1
-
0
0
0
0
true
0
UIStroke
-1
2
0
-
0
8
UICorner
-1
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
R
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.0126700867
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
255
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0067263823
0
-0.971889734
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
R
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
G
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.125348121
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
255
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0105617726
0
-1.00000048
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
G
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
B
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.238025561
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
255
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0143922446
0
-1.00000048
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
B
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
H
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.375742882
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
0
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0190810375
0
-0.971889734
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
H
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
S
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.488420784
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
0
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0229176581
0
-1.00000048
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
S
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
V
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.601098716
0
0.877368927
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.0973609462
0
0.102249473
0
0
-1
1
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.026755508
0
-1.00000048
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686757
0
1
0
0
-1
V
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
true
0
0
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
HTML
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.74000001
0
0.876999974
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.249561995
0
0.102249473
0
0
-1
#FFFFFF
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
4
-
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Label
[null]
[null]
[null]
[null]
-0.0267518945
0
-1.00000048
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.996686637
0
1
0
0
-1
HTML
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
3
-
ColourUpdate
-1
-
false
Colours
0
{DE001DC7-7FBE-4F7C-8BCE-60D2A5A9EDD4}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
local function fromHex(hex: string): Color3
local r, g, b = string.match(hex, "^#?(%w%w)(%w%w)(%w%w)$")
return Color3.fromRGB(tonumber(r, 16),
tonumber(g, 16), tonumber(b, 16))
end
for i,v in pairs(script.Parent:GetChildren()) do
if v:IsA('TextBox') then
v:SetAttribute('Last','')
v.FocusLost:Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
local h,s,val = Color3.fromRGB(script.Parent.R.Text,script.Parent.G.Text,script.Parent.B.Text):ToHSV()
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent.HTML.Text = toHex(Color3.fromRGB(script.Parent.R.Text,script.Parent.G.Text,script.Parent.B.Text))
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
local s = script.Parent.S.Text/100
local val = script.Parent.V.Text/100
local h = script.Parent.H.Text
h/=360
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent.R.Text = math.round(temp.BackgroundColor3.R*255)
script.Parent.G.Text = math.round(temp.BackgroundColor3.G*255)
script.Parent.B.Text = math.round(temp.BackgroundColor3.B*255)
script.Parent:SetAttribute('Sat',s)
script.Parent:SetAttribute('Val',val)
script.Parent.HTML.Text = toHex(temp.BackgroundColor3)
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
local h = script.Parent.H.Text
local s = script.Parent.S.Text/100
local val = script.Parent.V.Text/100
h/=360
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
script.Parent:SetAttribute('Hue',h)
script.Parent.R.Text = math.round(temp.BackgroundColor3.R*255)
script.Parent.G.Text = math.round(temp.BackgroundColor3.G*255)
script.Parent.B.Text = math.round(temp.BackgroundColor3.B*255)
script.Parent.HTML.Text = toHex(temp.BackgroundColor3)
script.Parent.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
local RGBColour = fromHex(v.Text)
script.Parent.R.Text = math.round(RGBColour.R*255)
script.Parent.G.Text = math.round(RGBColour.G*255)
script.Parent.B.Text = math.round(RGBColour.B*255)
local h,s,val = RGBColour:ToHSV()
script.Parent.H.Text = math.round(360*h)
script.Parent.S.Text = math.round(s*100)
script.Parent.V.Text = math.round(val*100)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
script.Parent.SatVal.UIGradient.Color = sequence
script.Parent.Hue.Marker.Position = UDim2.new(.5,0,h,0)
script.Parent.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
script.Parent:SetAttribute('Hue',h)
script.Parent:SetAttribute('Sat',s)
script.Parent:SetAttribute('Val',val)
script.Parent.Preview.BackgroundColor3 = RGBColour
end
end
end)
v:GetPropertyChangedSignal('Text'):Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
v:SetAttribute('Last',v.Text)
end
end
end)
end
end
wait(4)
RunService.Heartbeat:Connect(function()
if script.Parent.Visible == true then
script.Parent.ColourUpdate:FireServer(script.Parent.Preview.BackgroundColor3)
end
end)]]>
-1
-
false
0
0
true
0
0
0
0
0.200000003
0.105882362
0.164705887
0.207843155
0
1
false
false
0
SwipingFrame
[null]
[null]
[null]
[null]
0.349999994
0
0.405369341
0
[null]
0
false
0
0
0
0
false
[null]
0
0
124
0
78
0
-1
0
true
19
-
0
8
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
1
rbxasset://fonts/families/Arial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
TextLabel
[null]
[null]
[null]
[null]
0
0
0.0148392897
0
true
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.977241635
0
0
-1
Navigate through the plugin by <b>swiping</b> or scrolling on the top bar
1
1
1
false
14
0
0
0
1
0
0
true
2
1
true
19
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Mouse
[null]
[null]
[null]
[null]
0.418181807
0
1.13725495
0
[null]
0
false
0
0
0
0
false
[null]
0
0
14
0
14
0
-1
0
true
19
-
1
0
UICorner
-1
-
0
0.427451015
0.427451015
0.427451015
true
0
UIStroke
-1
1.10000002
0
-
true
LocalScript
0
{E609353C-5FA1-48D9-A756-8ADD83F27A8A}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Settings
[null]
[null]
[null]
[null]
0.289571702
0
0.156108603
0
[null]
0
false
0
0
0
0
false
[null]
0
0
254
0
338
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.248031378
0
0.035502959
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.475177288
0
0.0932687074
0
0
-1
Settings
1
1
1
false
29
0
0
0
1
0
0
false
0
1
true
2
-
3.82857132
0
0
UIAspectRatioConstraint
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
0.0862745121
0.0862745121
0.0862745121
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
TitleBar
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.168639049
0
0
-1
0
true
1
-
0 0 1 1 0 1 0 0.666667 1 0
false
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
SettingTitles
[null]
[null]
[null]
[null]
0
0
0.168639049
0
[null]
0
false
0
0
0
0
false
[null]
0
0
63
0
280
0
-1
0
true
1
-
1
0
UIListLayout
0
5
2
-1
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Interface
[null]
[null]
[null]
[null]
0
0
-2.72478378e-08
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.0740045086
0
0
-1
0
Interface
1
1
1
false
15
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Line
[null]
[null]
[null]
[null]
0.5
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
0.870000005
0
0
2
0
-1
0
true
1
-
1
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Editor
[null]
[null]
[null]
[null]
0
0
0.109718814
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.119124644
0
0
-1
0
Editor
1
1
1
false
15
0
0
0
1
0
0
true
2
1
true
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
-1
Space
[null]
[null]
[null]
[null]
-0.293650806
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
0
0
-1
0
true
1
-
false
0
0
AQAAABQAAABTY3JvbGxCYXJJbWFnZUNvbG9yMwIJAAAAU2Vjb25kYXJ5
true
0
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
0
rbxassetid://2070896802
0
0
0
0
2
0
true
false
0
0
0
rbxassetid://2070896802
Items
[null]
[null]
[null]
[null]
0.250185758
0
0.168639049
0
[null]
0
0.117647059
0.117647059
0.117647059
0
5
4
true
false
0
0
0
0
false
[null]
0
0.749814272
0
0
281
0
-1
rbxassetid://2070896802
0
0
true
1
-
1
0
UIListLayout
0
0
2
-1
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
Line
[null]
[null]
[null]
[null]
0.5
0
0.75
0
[null]
0
false
0
0
0
0
false
[null]
0
0.870000005
0
0
2
0
-1
0
true
1
-
1
0
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
ItemSize
[null]
[null]
[null]
[null]
0.0143154087
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
184
0
130
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Presets
[null]
[null]
[null]
[null]
0
0
5.29819069e-08
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.232232094
0
0
-1
0
Menu Item Sizes
1
1
1
false
18
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Items
[null]
[null]
[null]
[null]
0
91
0
69
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
79
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Detailed
[null]
[null]
[null]
[null]
0.0959595963
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882354
0.164705887
0.20784314
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
true
5
-
0
6
UICorner
-1
-
false
0
1
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Bottom
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
6
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.720000029
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.720000029
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Compact
[null]
[null]
[null]
[null]
0.227272734
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
0
8
UICorner
-1
-
false
0
1
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Bottom
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
0
8
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Top
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882354
0.164705887
0.20784314
0
3
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
0
5
0
5
0
86
0
66
0
0
0
UIGridLayout
2
-1
0
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
2
0
102
false
[null]
0
false
0
0
0
0
false
[null]
0
0
86
0
19
0
-1
Large
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
93
0
102
false
[null]
0
false
0
0
0
0
false
[null]
0
0
85
0
19
0
-1
Compact
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
NodeColours
[null]
[null]
[null]
[null]
0.0169407297
0
-0.0640569404
0
[null]
0
false
0
0
0
0
false
[null]
0
0
184
0
148
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Presets
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.319230616
0
0
-1
0
Dialogue Editor Colours
1
1
1
false
18
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Items
[null]
[null]
[null]
[null]
0
91
0
80
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
79
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Colourful
[null]
[null]
[null]
[null]
0.0959595963
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
55
0
-1
0
true
5
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0.0714285746
0
0.541666687
0
[null]
0
false
0
0
0
0
false
[null]
0
0
33
0
18
0
-1
0
true
5
-
0
0
0.666666687
1
true
0
UIStroke
-1
2
0
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.277999997
0
[null]
0
false
0
0
0
0
false
[null]
0
0
25
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
3
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
0
0.666666687
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.860000014
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
0
0.666666687
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
1.20000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Line
[null]
[null]
[null]
[null]
0.529999971
0
0.481999993
0
[null]
337
false
0
0
0
0
false
[null]
0
0
2
0
30
0
-1
0
true
6
-
0 0.666667 0 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
90
-1
0 0 0 1 0 0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0.551948071
0
0.0833333284
0
[null]
0
false
0
0
0
0
false
[null]
0
0
33
0
18
0
-1
0
true
5
-
0
0.666666687
0
1
true
0
UIStroke
-1
2
0
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.277999997
0
[null]
0
false
0
0
0
0
false
[null]
0
0
25
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
3
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
0.666666687
0
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.860000014
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
0.666666687
0
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
-0.200000003
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Monotonous
[null]
[null]
[null]
[null]
0.227272734
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882354
0.164705887
0.20784314
0
3
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
55
0
-1
0
true
5
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0.0714285746
0
0.541666687
0
[null]
0
false
0
0
0
0
false
[null]
0
0
33
0
18
0
-1
0
true
5
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.277999997
0
[null]
0
false
0
0
0
0
false
[null]
0
0
25
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
3
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.860000014
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
1.20000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Line
[null]
[null]
[null]
[null]
0.529999971
0
0.481999993
0
[null]
-23
false
0
0
0
0
false
[null]
0
0
2
0
30
0
-1
0
true
6
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0.551948071
0
0.0833333284
0
[null]
0
false
0
0
0
0
false
[null]
0
0
33
0
18
0
-1
0
true
5
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.277999997
0
[null]
0
false
0
0
0
0
false
[null]
0
0
25
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.100000001
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
3
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.860000014
0
0.680000007
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
-0.200000003
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
6
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
0
5
0
5
0
86
0
66
0
0
0
UIGridLayout
2
-1
0
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
2
0
113
false
[null]
0
false
0
0
0
0
false
[null]
0
0
86
0
19
0
-1
Colourful
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
93
0
113
false
[null]
0
false
0
0
0
0
false
[null]
0
0
85
0
19
0
-1
Monotonous
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
2
DeafaultSettings
[null]
[null]
[null]
[null]
0.0143154087
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0
184
0
130
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Presets
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.319230616
0
0
-1
0
Deafault Dialogue Settings
1
1
1
false
18
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Items
[null]
[null]
[null]
[null]
0
91
0
80
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
79
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Recommended
[null]
[null]
[null]
[null]
0.0959595963
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.870000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.36648044
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
44
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.74650079
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
28
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.235494643
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
23
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.783848345
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Fill
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.699999988
0
1
0
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.281799704
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
29
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Empty
[null]
[null]
[null]
[null]
0.227272734
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882354
0.164705887
0.20784314
0
3
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
1
0
UIListLayout
0
0
2
-1
0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.870000005
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.36648044
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
44
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.74650079
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
28
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.235494643
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
23
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.283333361
0
0
-1
0
true
1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.783848345
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
20
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.281799704
0
0.500000179
0
[null]
0
false
0
0
0
0
false
[null]
0
0
29
0
6
0
-1
0
true
6
-
0
6
UICorner
-1
-
0
5
0
5
0
86
0
66
0
0
0
UIGridLayout
2
-1
0
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
2
0
113
false
[null]
0
false
0
0
0
0
false
[null]
0
0
86
0
19
0
-1
Recommended
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
93
0
113
false
[null]
0
false
0
0
0
0
false
[null]
0
0
85
0
19
0
-1
Empty
1
1
1
false
15
0
0
0
1
0
0
false
2
1
true
4
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Navigation
[null]
[null]
[null]
[null]
0.0169407297
0
-0.0711743757
0
[null]
0
false
0
0
0
0
false
[null]
0
0
184
0
150
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
false
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Presets
[null]
[null]
[null]
[null]
0
0
5.29819069e-08
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
1
0
0.232232094
0
0
-1
0
Navigation
1
1
1
false
18
0
0
0
1
0
0
true
2
1
true
1
-
false
0.5
0.5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Items
[null]
[null]
[null]
[null]
0
91
0
69
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
79
0
-1
0
true
1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
SwipeAndScroll
[null]
[null]
[null]
[null]
0.0959595963
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
0
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
true
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882354
0.164705887
0.20784314
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
-0.5
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.720000029
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
true
0
1
1
1
1
0.105882354
0.164705887
0.20784314
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
-0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.720000029
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
9
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0.5
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0.5
0
0.25
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0.5
0
0.75
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0
1
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Bottom
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
true
0
1
1
1
0.349999994
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Mouse
[null]
[null]
[null]
[null]
0.5
0
0.75
0
[null]
0
false
0
0
0
0
false
[null]
0
0
10
0
10
0
-1
0
true
19
-
1
0
UICorner
-1
-
0
0.427451015
0.427451015
0.427451015
true
0
UIStroke
-1
1.10000002
0.349999994
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
OnlyScroll
[null]
[null]
[null]
[null]
0.227272734
0
0.211111113
0
[null]
0
false
0
0
0
0
false
[null]
0
0
100
0
74
0
-1
0
true
4
-
0
11
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.180392161
0.180392161
0.180392161
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Image
[null]
[null]
[null]
[null]
0.5
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
77
0
48
0
-1
0
true
5
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgkAAABTZWNvbmRhcnk=
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Setting
[null]
[null]
[null]
[null]
0
0
0.75
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.25
0
0
-1
0
true
5
-
0
8
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.145098045
0.145098045
0.145098045
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Top
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
5
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.340506405
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
40
0
4
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgYAAABBY2NlbnQ=
true
0
0.0431372561
0.352941185
0.686274529
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Box
[null]
[null]
[null]
[null]
0.889999986
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
8
0
8
0
-1
0
true
6
-
0
6
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
0.117647059
0.117647059
0.117647059
0
0.105882354
0.164705887
0.20784314
0
0
false
false
-1
Setting
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.5
0
0
-1
0
true
5
-
false
0
1
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
0
0.117647059
0.117647059
0.117647059
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Bottom
[null]
[null]
[null]
[null]
0
0
1
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.200000003
0
0
-1
0
true
6
-
false
0.5
0.5
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgQAAABUZXh0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Text
[null]
[null]
[null]
[null]
0.446162224
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
0
56
0
9
0
-1
0
true
6
-
0
6
UICorner
-1
-
0
6
UICorner
-1
-
0
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.0431372561
0.352941185
0.686274529
true
0
UIStroke
-1
2
1
-
true
0
0
false
true
0
0
0.666666687
1
1
0.105882354
0.164705887
0.20784314
0
3
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
1
1
1
false
16
0
0
0
1
0
0
false
2
1
true
7
-
false
0.5
0.5
true
0
1
1
1
0.349999994
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Mouse
[null]
[null]
[null]
[null]
0.5
0
0.25
0
[null]
0
false
0
0
0
0
false
[null]
0
0
10
0
10
0
-1
0
true
19
-
1
0
UICorner
-1
-
0
0.427451015
0.427451015
0.427451015
true
0
UIStroke
-1
1.10000002
0.349999994
-
0
5
0
5
0
86
0
66
0
0
0
UIGridLayout
2
-1
0
0
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
2
0
102
false
[null]
0
false
0
0
0
0
false
[null]
0
0
86
0
37
0
-1
Swiping And Scrolling
1
1
1
false
15
0
0
0
1
0
0
true
2
1
true
4
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
93
0
102
false
[null]
0
false
0
0
0
0
false
[null]
0
0
85
0
37
0
-1
Scrolling Only
1
1
1
false
15
0
0
0
1
0
0
true
2
1
true
4
-
Window
{B38C8FCF-0F5A-44EB-AAE0-41D74B736AA2}
-1
-
UITab
{EFB1C05F-2120-4E67-899C-3D170E0C86D3}
-1
-
Property
{497C2750-003F-454B-A897-751FF6593F81}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Property
[null]
[null]
[null]
[null]
0.181999996
0
2.58999989e-07
0
[null]
0
false
0
0
0
0
false
[null]
0
0.388000011
0
0.907999992
0
0
-1
0
true
10
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0
0
-0.170000002
0
false
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0
18
0
-1
Name
1
1
1
true
9
0
0
0
1
0
0
true
2
1
true
10
-
true
0.5
0.5
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.49203375
0
0.597663522
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
1
0
0
32
0
-1
Name
1
1
1
true
false
16
0
0
0
1
0
0
true
2
1
true
10
-
0
8
uICorner
-1
-
1
AQAAAAUAAABDb2xvcgIGAAAAQWNjZW50
0.168627456
0.694117665
1
true
0
UIStroke
-1
1.75
0
-
Tab
{5146EDE4-0EA7-4B18-8CD3-75EFFC8E0E87}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.278431386
0.278431386
0.278431386
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
UITab
[null]
[null]
[null]
[null]
0.0686274543
0
0.100000001
0
[null]
0
false
0
0
0
0
false
[null]
0
0
220
0
100
0
-1
0
true
9
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.284000009
0
0
-1
0
true
10
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
0
8
uICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0.411000013
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.57099998
0
0
-1
0
true
10
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0313999988
0
0.141000003
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.497999996
0
0.717999995
0
0
-1
New
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
10
-
0
8
uICorner1
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Properties
[null]
[null]
[null]
[null]
0
0
0.404000014
0
[null]
0
false
0
0
0
0
false
[null]
0
0
220
0
59
0
-1
0
true
10
-
0
0
uIListLayout
0
10
2
-1
1
-
TabBool
{F10C3F06-5CAC-4B2D-AEB5-6E7583BE2805}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
0.278431386
0.278431386
0.278431386
0
0.105882362
0.164705887
0.207843155
0
1
false
false
0
UITab
[null]
[null]
[null]
[null]
0.068599999
0
0.100000001
0
[null]
0
false
0
0
0
0
false
[null]
0
0
220
0
122
0
-1
0
true
3
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Tab
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.230000004
0
0
-1
0
true
10
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
0
8
uICorner
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Frame
[null]
[null]
[null]
[null]
0
0
0.411000013
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.57099998
0
0
-1
0
true
10
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0313999988
0
0.141000003
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.899999976
0
0.717999995
0
0
-1
New
1
1
1
true
29
0
0
0
1
0
0
true
0
1
true
10
-
0
8
uICorner1
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Properties
[null]
[null]
[null]
[null]
0
0
0.404000014
0
[null]
0
false
0
0
0
0
false
[null]
0
0
220
0
59
0
-1
0
true
10
-
0
0
uIListLayout
0
10
2
-1
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.0318000019
0
0.296999991
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.934000015
0
0.398000002
0
0
-1
Are you sure you would like to delete this dialogue?
1
1
1
false
17
0
0
0
1
0
0
true
2
1
true
10
-
true
0
0
false
true
0
0
0.772549033
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
True
[null]
[null]
[null]
[null]
0.52700001
0
0.68900001
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
92
0
26
0
-1
0
Yes
1
1
1
false
17
0
0
0
1
0
0
false
2
1
true
10
-
0
8
uICorner
-1
-
true
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAggAAABUZXJ0aWFyeQ==
true
true
0
0.196078435
0.196078435
0.196078435
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
False
[null]
[null]
[null]
[null]
0.0500000007
0
0.68900001
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
92
0
26
0
-1
0
Cancel
1
1
1
false
17
0
0
0
1
0
0
false
2
1
true
10
-
0
8
uICorner
-1
-
Tabs
{FEF35513-BF60-45C2-8972-DF72FF71F877}
-1
-
true
0.5
0.5
AQAAAAsAAABEZXNjcmlwdGlvbgIVAAAAT3BlbiBEaWFsb2d1ZSBPcHRpb25z
false
true
0
0.203921586
0.203921586
0.203921586
0.899999976
0.105882354
0.164705887
0.20784314
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0.072072342
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
39
0
39
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
10
-
1
0
UICorner
-1
-
1
1
1
1
true
0
UIStroke
-1
1.60000002
1
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
false
0
0
true
0
0.137254909
0.137254909
0.137254909
0.300000012
0.105882362
0.164705887
0.207843155
0
1
false
false
0
DisabledFrame
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
true
11
-
1
0
UICorner
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgoAAABCYWNrZ3JvdW5k
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
0
Frame
[null]
[null]
[null]
[null]
0.00393700786
0
0.186390534
0
[null]
0
false
0
0
0
0
false
[null]
0
0.992125988
0
0.813609481
0
0
-1
0
true
1
-
1
1
UIListLayout
0
0
2
-1
1
-
Settings
{B1D72287-BF06-433F-998B-7E8AC78BF3F3}
= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
local function fromHex(hex: string): Color3
local r, g, b = string.match(hex, "^#?(%w%w)(%w%w)(%w%w)$")
return Color3.fromRGB(tonumber(r, 16),
tonumber(g, 16), tonumber(b, 16))
end
local base = Bases.Colour:Clone()
base.Title.Text = Title
base.Parent = LFrame
base.Name = RealName or Title
if Properties['Deafault'] then
base.Colour.BackgroundColor3 = Properties['Deafault']
base.Value.Text = math.round(Properties.Deafault.R*255)..', '..math.round(Properties.Deafault.G*255)..', '..math.round(Properties.Deafault.B*255)
end
base.Colour.MouseButton1Click:Connect(function()
local ColFrame = MainParent.ColourFrame
local name = base.Name
local colour: Color3 = base.Colour.BackgroundColor3
MainParent.ColourFrame.Preview.BackgroundColor3 = colour
local hue,sat,val = colour:ToHSV()
MainParent.ColourFrame.SatVal.Marker.Position = UDim2.new(sat,0,1-val,0)
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(.5,0,hue,0)
local sequence = ColorSequence.new{
ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),
ColorSequenceKeypoint.new(1,Color3.fromHSV(hue,1,1))
}
MainParent.ColourFrame.SatVal.UIGradient.Color = sequence
ColFrame.H.Text = math.round(hue*360)
ColFrame.S.Text = math.round(sat*100)
ColFrame.V.Text = math.round(val*100)
ColFrame.R.Text = math.round(colour.R*255)
ColFrame.G.Text = math.round(colour.G*255)
ColFrame.B.Text = math.round(colour.B*255)
ColFrame:SetAttribute('Hue',hue)
ColFrame.HTML.Text = toHex(colour)
for i,v in pairs(ColFrame:GetChildren()) do
if v:IsA('TextBox') then
v:SetAttribute('Last','')
v.FocusLost:Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
local h,s,val = Color3.fromRGB(ColFrame.R.Text,ColFrame.G.Text,ColFrame.B.Text):ToHSV()
ColFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
ColFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
ColFrame.SatVal.UIGradient.Color = sequence
ColFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
ColFrame.HTML.Text = toHex(Color3.fromRGB(ColFrame.R.Text,ColFrame.G.Text,ColFrame.B.Text))
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
local s = ColFrame.S.Text/100
local val = ColFrame.V.Text/100
local h = ColFrame.H.Text
h/=360
ColFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
ColFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
ColFrame.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
ColFrame.R.Text = math.round(temp.BackgroundColor3.R*255)
ColFrame.G.Text = math.round(temp.BackgroundColor3.G*255)
ColFrame.B.Text = math.round(temp.BackgroundColor3.B*255)
ColFrame:SetAttribute('Sat',s)
ColFrame:SetAttribute('Val',val)
ColFrame.HTML.Text = toHex(temp.BackgroundColor3)
ColFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
local h = ColFrame.H.Text
local s = ColFrame.S.Text/100
local val = ColFrame.V.Text/100
h/=360
ColFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
ColFrame.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
ColFrame:SetAttribute('Hue',h)
ColFrame.R.Text = math.round(temp.BackgroundColor3.R*255)
ColFrame.G.Text = math.round(temp.BackgroundColor3.G*255)
ColFrame.B.Text = math.round(temp.BackgroundColor3.B*255)
ColFrame.HTML.Text = toHex(temp.BackgroundColor3)
ColFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
local RGBColour = fromHex(v.Text)
ColFrame.R.Text = math.round(RGBColour.R*255)
ColFrame.G.Text = math.round(RGBColour.G*255)
ColFrame.B.Text = math.round(RGBColour.B*255)
local h,s,val = RGBColour:ToHSV()
ColFrame.H.Text = math.round(360*h)
ColFrame.S.Text = math.round(s*100)
ColFrame.V.Text = math.round(val*100)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
ColFrame.SatVal.UIGradient.Color = sequence
ColFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
ColFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
ColFrame:SetAttribute('Hue',h)
ColFrame:SetAttribute('Sat',s)
ColFrame:SetAttribute('Val',val)
ColFrame.Preview.BackgroundColor3 = RGBColour
end
end
end)
v:GetPropertyChangedSignal('Text'):Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
v:SetAttribute('Last',v.Text)
end
end
end)
end
end
Tabs:Select('Colour',Window)
MainParent.ColourFrame.ColourUpdate.OnServerEvent:Connect(function(p,c:Color3)
colour = c
end)
local backTab = MainParent.Tabs.Buttons:FindFirstChild(LFrame.Name:sub(1,-6))
if backTab then
local back = Tabs.Moved:Connect(function()
local colour = MainParent.ColourFrame.Preview.BackgroundColor3
base.Colour.BackgroundColor3 = Color3.new(colour.R,colour.G,colour.B)
local name = RealName or Title
local val = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(name)
val.Value = colour
base.Value.Text = math.round(colour.R*255)..', '..math.round(colour.G*255)..', '..math.round(colour.B*255)
end)
Tabs.Moved:Connect(function()
wait(.05)
back:Disconnect()
end)
end
end)
base.Value.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
local Done = UITab:Create(Title,{{'R',math.round(base.Colour.BackgroundColor3.R*255)},{'G',math.round(base.Colour.BackgroundColor3.G*255)},{'B',math.round(base.Colour.BackgroundColor3.B*255)}},'Chatterblox')
Done:Connect(function(colours)
base.Colour.BackgroundColor3 = Color3.fromRGB(colours.R,colours.G,colours.B)
base.Value.Text = colours.R..', '..colours.G..', '..colours.B
wait(.05)
end)
end
end)
local RunService = game:GetService('RunService')
function toInteger(color)
return math.floor(color.r*255)*256^2+math.floor(color.g*255)*256+math.floor(color.b*255)
end
function toHex(color)
local int = toInteger(color)
local current = int
local final = ""
local hexChar = {
"A", "B", "C", "D", "E", "F"
}
repeat local remainder = current % 16
local char = tostring(remainder)
if remainder >= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
local function fromHex(hex: string): Color3
local r, g, b = string.match(hex, "^#?(%w%w)(%w%w)(%w%w)$")
return Color3.fromRGB(tonumber(r, 16),
tonumber(g, 16), tonumber(b, 16))
end
for i,v in pairs(MainParent.ColourFrame:GetChildren()) do
if v:IsA('TextBox') then
v:SetAttribute('Last','')
v.FocusLost:Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
local h,s,val = Color3.fromRGB(MainParent.ColourFrame.R.Text,MainParent.ColourFrame.G.Text,MainParent.ColourFrame.B.Text):ToHSV()
MainParent.ColourFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
MainParent.ColourFrame.SatVal.UIGradient.Color = sequence
MainParent.ColourFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
MainParent.ColourFrame.HTML.Text = toHex(Color3.fromRGB(MainParent.ColourFrame.R.Text,MainParent.ColourFrame.G.Text,MainParent.ColourFrame.B.Text))
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
local s = MainParent.ColourFrame.S.Text/100
local val = MainParent.ColourFrame.V.Text/100
local h = MainParent.ColourFrame.H.Text
h/=360
MainParent.ColourFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
MainParent.ColourFrame.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
MainParent.ColourFrame.R.Text = math.round(temp.BackgroundColor3.R*255)
MainParent.ColourFrame.G.Text = math.round(temp.BackgroundColor3.G*255)
MainParent.ColourFrame.B.Text = math.round(temp.BackgroundColor3.B*255)
MainParent.ColourFrame:SetAttribute('Sat',s)
MainParent.ColourFrame:SetAttribute('Val',val)
MainParent.ColourFrame.HTML.Text = toHex(temp.BackgroundColor3)
MainParent.ColourFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
local h = MainParent.ColourFrame.H.Text
local s = MainParent.ColourFrame.S.Text/100
local val = MainParent.ColourFrame.V.Text/100
h/=360
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
MainParent.ColourFrame.SatVal.UIGradient.Color = sequence
local temp = Instance.new('Frame')
temp.BackgroundColor3 = Color3.fromHSV(h,s,val)
MainParent.ColourFrame:SetAttribute('Hue',h)
MainParent.ColourFrame.R.Text = math.round(temp.BackgroundColor3.R*255)
MainParent.ColourFrame.G.Text = math.round(temp.BackgroundColor3.G*255)
MainParent.ColourFrame.B.Text = math.round(temp.BackgroundColor3.B*255)
MainParent.ColourFrame.HTML.Text = toHex(temp.BackgroundColor3)
MainParent.ColourFrame.Preview.BackgroundColor3 = Color3.fromHSV(h,s,val)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
local RGBColour = fromHex(v.Text)
MainParent.ColourFrame.R.Text = math.round(RGBColour.R*255)
MainParent.ColourFrame.G.Text = math.round(RGBColour.G*255)
MainParent.ColourFrame.B.Text = math.round(RGBColour.B*255)
local h,s,val = RGBColour:ToHSV()
MainParent.ColourFrame.H.Text = math.round(360*h)
MainParent.ColourFrame.S.Text = math.round(s*100)
MainParent.ColourFrame.V.Text = math.round(val*100)
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(h,1,1))}
MainParent.ColourFrame.SatVal.UIGradient.Color = sequence
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(.5,0,h,0)
MainParent.ColourFrame.SatVal.Marker.Position = UDim2.new(s,0,1-val,0)
MainParent.ColourFrame:SetAttribute('Hue',h)
MainParent.ColourFrame:SetAttribute('Sat',s)
MainParent.ColourFrame:SetAttribute('Val',val)
MainParent.ColourFrame.Preview.BackgroundColor3 = RGBColour
end
end
end)
v:GetPropertyChangedSignal('Text'):Connect(function()
if v.Name == 'R' or v.Name == 'G' or v.Name == 'B' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,255)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'S' or v.Name == 'V' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,100)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'H' then
if tonumber(v.Text) then
v.Text = math.clamp(tonumber(v.Text),0,360)
v:SetAttribute('Last',v.Text)
else
v.Text = v:GetAttribute('Last')
end
end
if v.Name == 'HTML' then
local success,result = pcall(function()
return Color3.fromHex(v.Text)
end)
if not success then
v.Text = v:GetAttribute('Last')
else
v:SetAttribute('Last',v.Text)
end
end
end)
end
end
local UIS = game:GetService('UserInputService')
function toInteger(color)
return math.floor(color.r*255)*256^2+math.floor(color.g*255)*256+math.floor(color.b*255)
end
function toHex(color)
local int = toInteger(color)
local current = int
local final = ""
local hexChar = {
"A", "B", "C", "D", "E", "F"
}
repeat local remainder = current % 16
local char = tostring(remainder)
if remainder >= 10 then
char = hexChar[1 + remainder - 10]
end
current = math.floor(current/16)
final = final..char
until current <= 0
return "#"..string.reverse(final)
end
MainParent.ColourFrame.SatVal.Button.MouseButton1Down:Connect(function()
down = true
end)
MainParent.ColourFrame.SatVal.Button.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
UIS.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
local function GetScaledSizeFromOffset(OffsetX,OffsetY) -- The Function that returns the scale from original size.
local ScreenSize = game.Workspace.CurrentCamera.ViewportSize
local XRatio = OffsetX / ScreenSize.X
local YRatio = OffsetY / ScreenSize.Y
return UDim2.new(XRatio,0,YRatio,0)
end
local function getSatVal()
local ScaleXPos = MainParent.ColourFrame.SatVal.Marker.Position.X.Offset/MainParent.ColourFrame.SatVal.Marker.Parent.AbsoluteSize.X + MainParent.ColourFrame.SatVal.Marker.Position.X.Scale
local ScaleYPos = MainParent.ColourFrame.SatVal.Marker.Position.Y.Offset/MainParent.ColourFrame.SatVal.Marker.Parent.AbsoluteSize.Y + MainParent.ColourFrame.SatVal.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local sat = finalPos.X.Scale
local val = opY
return sat, val
end
coroutine.wrap(function()
while true do
wait()
if down == true then
local mouse = WindowM:Get('Chatterblox'):GetRelativeMousePosition()
local sat,val = getSatVal()
MainParent.ColourFrame.SatVal.Marker.Position = UDim2.new(0,math.clamp(mouse.x-MainParent.ColourFrame.SatVal.AbsolutePosition.X,0,MainParent.ColourFrame.SatVal.AbsoluteSize.X),0,math.clamp(mouse.y-MainParent.ColourFrame.SatVal.AbsolutePosition.Y,0,MainParent.ColourFrame.SatVal.AbsoluteSize.Y))
MainParent.ColourFrame.SatVal.Parent:SetAttribute('Sat',sat)
MainParent.ColourFrame.SatVal.Parent:SetAttribute('Val',val)
MainParent.ColourFrame.SatVal.Parent.Preview.BackgroundColor3 = Color3.fromHSV(MainParent.ColourFrame.SatVal.Parent:GetAttribute('Hue'),MainParent.ColourFrame.SatVal.Parent:GetAttribute('Sat'),MainParent.ColourFrame.SatVal.Parent:GetAttribute('Val'))
MainParent.ColourFrame.SatVal.Parent.H.Text = math.round(MainParent.ColourFrame.SatVal.Parent:GetAttribute('Hue')*360)
MainParent.ColourFrame.SatVal.Parent.S.Text = math.round(MainParent.ColourFrame.SatVal.Parent:GetAttribute('Sat')*100)
MainParent.ColourFrame.SatVal.Parent.V.Text = math.round(MainParent.ColourFrame.SatVal.Parent:GetAttribute('Val')*100)
MainParent.ColourFrame.SatVal.Parent.R.Text = math.round(MainParent.ColourFrame.SatVal.Parent.Preview.BackgroundColor3.R*255)
MainParent.ColourFrame.SatVal.Parent.G.Text = math.round(MainParent.ColourFrame.SatVal.Parent.Preview.BackgroundColor3.G*255)
MainParent.ColourFrame.SatVal.Parent.B.Text = math.round(MainParent.ColourFrame.SatVal.Parent.Preview.BackgroundColor3.B*255)
MainParent.ColourFrame.SatVal.Parent.HTML.Text = toHex(Color3.fromRGB(MainParent.ColourFrame.SatVal.Parent.R.Text,MainParent.ColourFrame.SatVal.Parent.G.Text,MainParent.ColourFrame.SatVal.Parent.B.Text))
end
end
end)()
local function getHue()
local ScaleXPos = MainParent.ColourFrame.Hue.Marker.Position.X.Offset/MainParent.ColourFrame.Hue.Marker.Parent.AbsoluteSize.X + MainParent.ColourFrame.Hue.Marker.Position.X.Scale
local ScaleYPos = MainParent.ColourFrame.Hue.Marker.Position.Y.Offset/MainParent.ColourFrame.Hue.Marker.Parent.AbsoluteSize.Y + MainParent.ColourFrame.Hue.Marker.Position.Y.Scale
local finalPos = UDim2.new(ScaleXPos, 0, ScaleYPos, 0)
local opX = 1-finalPos.X.Scale
local opY = 1-finalPos.Y.Scale
local hue = finalPos.Y.Scale
return hue
end
local down = false
MainParent.ColourFrame.Hue.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = true
end
end)
MainParent.ColourFrame.Hue.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
down = false
end
end)
MainParent.ColourFrame.Hue.TextButton.MouseButton1Up:Connect(function()
down = false
end)
coroutine.wrap(function()
while true do
wait()
if down == true then
local mouse = WindowM:Get('Chatterblox'):GetRelativeMousePosition()
local sequence = ColorSequence.new{ColorSequenceKeypoint.new(0,Color3.fromRGB(255,255,255)),ColorSequenceKeypoint.new(1,Color3.fromHSV(MainParent.ColourFrame.Hue.Parent:GetAttribute('Hue'),1,1))}
MainParent.ColourFrame.Hue.Parent.SatVal.UIGradient.Color = sequence
MainParent.ColourFrame.Hue.Marker.Position = UDim2.new(0.5,0,0,math.clamp(mouse.Y-MainParent.ColourFrame.Hue.AbsolutePosition.Y,0,MainParent.ColourFrame.Hue.AbsoluteSize.Y))
MainParent.ColourFrame.Hue.Parent:SetAttribute('Hue',math.clamp(getHue(),0,1))
MainParent.ColourFrame.Hue.Parent.H.Text = math.round(MainParent.ColourFrame.Hue.Parent:GetAttribute('Hue')*360)
MainParent.ColourFrame.Hue.Parent.R.Text = math.round(MainParent.ColourFrame.Hue.Parent.Preview.BackgroundColor3.R*255)
MainParent.ColourFrame.Hue.Parent.G.Text = math.round(MainParent.ColourFrame.Hue.Parent.Preview.BackgroundColor3.G*255)
MainParent.ColourFrame.Hue.Parent.B.Text = math.round(MainParent.ColourFrame.Hue.Parent.Preview.BackgroundColor3.B*255)
MainParent.ColourFrame.Hue.Parent.HTML.Text = toHex(Color3.fromRGB(MainParent.ColourFrame.Hue.Parent.R.Text,MainParent.ColourFrame.Hue.Parent.G.Text,MainParent.ColourFrame.Hue.Parent.B.Text))
MainParent.ColourFrame.Hue.Parent.Preview.BackgroundColor3 = Color3.fromHSV(MainParent.ColourFrame.Hue.Parent:GetAttribute('Hue'),MainParent.ColourFrame.Hue.Parent:GetAttribute('Sat'),MainParent.ColourFrame.Hue.Parent:GetAttribute('Val'))
end
end
end)()
Base = base
end
if Type == 'Instance' then
if not CreateVal then
local obVal = Instance.new('ObjectValue',game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location))
obVal.Name = RealName or Title
obVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location)
local Instances = ''
for i,v in pairs(Properties) do
for index,val in pairs(v) do
Instances = Instances..val..','
end
end
end
local base = Bases.Instance:Clone()
base.Title.Text = Title
base.Parent = LFrame
base.Name = RealName or Title
base.Parent = LFrame
if Properties['Deafault'] then
if Properties['Deafault'].Name:len() > 10 then
base.Instance.Text = Properties['Deafault'].Name:sub(1,7)..'...'
else
base.Instance.Text = Properties['Deafault'].Name
end
Properties['Deafault']:Clone().Parent = base.Instance
end
base.Instance.MouseButton1Click:Connect(function()
local filter = Properties['Filter']
local IFrame = MainParent.SearchFrame
local results = 0
for i,v in pairs(IFrame.Results:GetChildren()) do
if v:IsA('Frame') then
v:Destroy()
end
end
for i,v in pairs(game:GetDescendants()) do
if v.Name:lower():match('') then
if filter then
local valid = false
for index,TYPE in pairs(filter) do
if v:IsA(TYPE) then
if not v:GetAttribute('Invalid') then
valid = true
end
end
end
if valid == true then
local result = Bases.Result:Clone()
result.Title.Text = v.Name
local Theme = script.Parent.ThemeColour
local importCount = #IFrame.Results:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
result.BackgroundColor3 = Theme.Background.Value
result:SetAttribute('BackgroundColor3','Background')
else
result.BackgroundColor3 = Theme.Primary.Value
result:SetAttribute('BackgroundColor3','Primary')
end
local imageInfo = StudioService:GetClassIcon(v.ClassName)
result.Parent = IFrame.Results
result.Image.ImageRectSize = imageInfo.ImageRectSize
result.Image.ImageRectOffset = imageInfo.ImageRectOffset
result.Image.Image = imageInfo.Image
results += 1
MainParent.Tabs.Buttons.Search.DisabledFrame.Visible = true
local leave = result.Button.MouseButton1Click:Connect(function()
Tabs:Select(LFrame.Name:gsub('Frame',''),Window)
local success,err = pcall(function()
for i,v in pairs(base.Instance:GetChildren()) do
if not v:IsA('UICorner') then
v:Destroy()
end
end
end)
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = v
local vClone = v:Clone()
vClone:SetAttribute('Invalid',true)
vClone.Parent = base.Instance
if result.Title.Text:len() > 10 then
base.Instance.Text = result.Title.Text:sub(1,7)..'...'
else
base.Instance.Text = result.Title.Text
end
end)
IFrame:GetPropertyChangedSignal('Visible'):Connect(function()
if IFrame.Visible == false then
leave:Disconnect()
end
end)
end
else
local result = Bases.Result:Clone()
result.Title.Text = v.Name
local Theme = script.Parent.ThemeColour
local importCount = #IFrame.Results:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
result.BackgroundColor3 = Theme.Background.Value
result:SetAttribute('BackgroundColor3','Background')
else
result.BackgroundColor3 = Theme.Primary.Value
result:SetAttribute('BackgroundColor3','Primary')
end
local imageInfo
local success,err = pcall(function()
imageInfo = StudioService:GetClassIcon(v.ClassName)
end)
if success then
result.Image.ImageRectSize = imageInfo.ImageRectSize
result.Image.ImageRectOffset = imageInfo.ImageRectOffset
result.Image.Image = imageInfo.Image
end
results += 1
result.Parent = IFrame.Results
local leave = result.Button.MouseButton1Click:Connect(function()
Tabs:Select(LFrame.Name:gsub('Frame',''),Window)
local vClone = v:Clone()
vClone:SetAttribute('Invalid',true)
vClone.Parent = base.Instance
base.Instance.Text = result.Title.Text
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = v
if result.Title.Text:len() > 10 then
base.Instance.Text = result.Title.Text:sub(1,7)..'...'
else
base.Instance.Text = result.Title.Text
end
end)
IFrame:GetPropertyChangedSignal('Visible'):Connect(function()
if IFrame.Visible == false then
leave:Disconnect()
end
end)
end
end
end
IFrame.Results.CanvasSize = UDim2.new(0,0,0,results*38)
IFrame.Search:GetPropertyChangedSignal('Text'):Connect(function()
local text = IFrame.Search.Text
local filter = Properties['Filter']
local IFrame = MainParent.SearchFrame
local results = 0
for i,v in pairs(IFrame.Results:GetChildren()) do
if v:IsA('Frame') then
v:Destroy()
end
end
for i,v in pairs(game:GetDescendants()) do
if v.Name:lower():match(text:lower()) then
if filter then
local valid = false
for index,TYPE in pairs(filter) do
if v:IsA(TYPE) then
if not v:GetAttribute('Invalid') then
valid = true
end
end
end
if valid == true then
local result = Bases.Result:Clone()
result.Title.Text = v.Name
local Theme = script.Parent.ThemeColour
local importCount = #IFrame.Results:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
result.BackgroundColor3 = Theme.Background.Value
result:SetAttribute('BackgroundColor3','Background')
else
result.BackgroundColor3 = Theme.Primary.Value
result:SetAttribute('BackgroundColor3','Primary')
end
local imageInfo = StudioService:GetClassIcon(v.ClassName)
result.Parent = IFrame.Results
result.Image.ImageRectSize = imageInfo.ImageRectSize
result.Image.ImageRectOffset = imageInfo.ImageRectOffset
result.Image.Image = imageInfo.Image
result.Visible = true
result.Image.ImageTransparency = 0
result.Title.TextTransparency = 0
result.BackgroundTransparency = 0
results += 1
MainParent.Tabs.Buttons.Search.DisabledFrame.Visible = true
local leave = result.Button.MouseButton1Click:Connect(function()
Tabs:Select(LFrame.Name:gsub('Frame',''),Window)
local vClone = v:Clone()
vClone:SetAttribute('Invalid',true)
vClone.Parent = base.Instance
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = v
if result.Title.Text:len() > 10 then
base.Instance.Text = result.Title.Text:sub(1,7)..'...'
else
base.Instance.Text = result.Title.Text
end
end)
IFrame:GetPropertyChangedSignal('Visible'):Connect(function()
leave:Disconnect()
end)
end
else
local result = Bases.Result:Clone()
result.Title.Text = v.Name
local Theme = script.Parent.ThemeColour
local importCount = #IFrame.Results:GetChildren()-1
importCount += 1
if importCount % 2 == 0 then
result.BackgroundColor3 = Theme.Background.Value
result:SetAttribute('BackgroundColor3','Background')
else
result.BackgroundColor3 = Theme.Primary.Value
result:SetAttribute('BackgroundColor3','Primary')
end
local imageInfo = StudioService:GetClassIcon(v.ClassName)
result.Parent = IFrame.Results
result.Image.ImageRectSize = imageInfo.ImageRectSize
result.Image.ImageRectOffset = imageInfo.ImageRectOffset
result.Image.Image = imageInfo.Image
result.Visible = true
result.Image.ImageTransparency = 0
result.Title.TextTransparency = 0
result.BackgroundTransparency = 0
results += 1
MainParent.Tabs.Buttons.Search.DisabledFrame.Visible = true
local leave = result.Button.MouseButton1Click:Connect(function()
Tabs:Select(LFrame.Name:gsub('Frame',''),Window)
base.Instance.Text = result.Title.Text
local vClone = v:Clone()
vClone:SetAttribute('Invalid',true)
vClone.Parent = base.Instance
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = v
if result.Title.Text:len() > 10 then
base.Instance.Text = result.Title.Text:sub(1,7)..'...'
else
base.Instance.Text = result.Title.Text
end
end)
IFrame:GetPropertyChangedSignal('Visible'):Connect(function()
leave:Disconnect()
end)
end
end
end
IFrame.Results.CanvasSize = UDim2.new(0,0,0,results*44)
end)
wait(.1)
Tabs:Select('Search',Window)
end)
base.Delete.MouseButton1Click:Connect(function()
base.Instance.Text = '(None)'
local window = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window)
local location = window:FindFirstChild(Location)
local val = location:FindFirstChild(Title)
val.Value = nil
end)
Base = base
end
if Type == 'Number' then
if not CreateVal then
local numVal = Instance.new('NumberValue',game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location))
numVal.Name = RealName or Title
numVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location)
for i,v in pairs(Properties) do
numVal:SetAttribute(i,v)
end
end
local base = Bases.Number:Clone()
base.Title.Text = Title
base.Parent = LFrame
if not Properties['Deafault'] then
base.Value.Text = math.round(Properties['Max']/2)
else
base.Value.Text = Properties['Deafault']
local x = Properties['Deafault']/Properties['Max']
base.Bar.Frame.Size = UDim2.new(x,0,1,0)
end
base.Bar.Frame.UIGradient.Color = MainParent.Tabs.Buttons:FindFirstChild(LFrame.Name:gsub('Frame','')):FindFirstChildWhichIsA('ImageLabel').UIGradient.Color
local down = false
local function setDown()
down = true
selected = base
end
local function setUp()
down = false
end
base.Bar.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
setDown()
local change = RunService.Heartbeat:Connect(function()
local x = WindowM:Get('Chatterblox'):GetRelativeMousePosition().x
x = x - selected.Bar.AbsolutePosition.X
local max = selected.Bar.AbsoluteSize.X
x = math.clamp(x,0,max)
selected.Bar.Frame.Size = UDim2.new(0,x,1,0)
if not selected:GetAttribute('Round') then
selected:SetAttribute('Value',selected:GetAttribute('Max')*(x/max))
else
local multiplier = '1'
for i = 1, selected:GetAttribute('Round') do
multiplier = multiplier..'0'
end
selected:SetAttribute('Value',math.round((selected:GetAttribute('Max')*x/max)*multiplier)/multiplier)
selected:SetAttribute('Percentage',x/max)
end
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = selected:GetAttribute('Value')
selected.Value.Text = selected:GetAttribute('Value')
end)
base.Bar.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
setUp()
change:Disconnect()
end
end)
end
end)
base.Bar.Frame.InputBegan:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
setDown()
local change = RunService.Heartbeat:Connect(function()
local x = WindowM:Get('Chatterblox'):GetRelativeMousePosition().x
x = x - selected.Bar.AbsolutePosition.X
local max = selected.Bar.AbsoluteSize.X
x = math.clamp(x,0,max)
selected.Bar.Frame.Size = UDim2.new(0,x,1,0)
if not selected:GetAttribute('Round') then
selected:SetAttribute('Value',selected:GetAttribute('Max')*(x/max))
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = selected:GetAttribute('Value')
else
local multiplier = '1'
for i = 1, selected:GetAttribute('Round') do
multiplier = multiplier..'0'
end
selected:SetAttribute('Value',math.round((selected:GetAttribute('Max')*x/max)*multiplier)/multiplier)
selected:SetAttribute('Percentage',x/max)
game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(base.Title.Text).Value = selected:GetAttribute('Value')
end
selected.Value.Text = selected:GetAttribute('Value')
end)
base.Bar.Frame.InputEnded:Connect(function(object)
if object.UserInputType == Enum.UserInputType.MouseButton1 then
setUp()
change:Disconnect()
end
end)
end
end)
base.Bar.MouseButton1Up:Connect(setUp)
base:SetAttribute('Max',Properties['Max'])
base:SetAttribute('Round',Properties['Round'])
script.MouseUpEvent.OnServerEvent:Connect(setUp)
base:SetAttribute('Value',0)
base:SetAttribute('Percentage',0)
base.Name = RealName or Title
base.Value:GetPropertyChangedSignal('Text'):Connect(function()
local compare = 0
local success,e = pcall(function()
tonumber(base.Value.Text)
end)
if success then
if compare then
compare = tonumber(base.Value.Text)
else
compare = 0
end
end
math.clamp(compare,0,Properties['Max'])
base.Bar.Frame.Size = UDim2.new(compare/base:GetAttribute('Max'),0,1,0)
end)
base.Value.FocusLost:Connect(function()
local success,e = pcall(function()
tonumber(base.Value.Text)
end)
if success then
base.Value.Text = math.clamp(base.Value.Text,0,Properties['Max'])
else
base.Value.Text = '0'
end
end)
Base = base
end
if Type == 'String' then
local base = Bases.String:Clone()
local sVal
if not CreateVal then
local strVal = Instance.new('StringValue',game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location))
strVal.Name = RealName or Title
strVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location)
for i,v in pairs(Properties) do
strVal:SetAttribute(i,v)
end
coroutine.wrap(function()
while true do
wait()
if strVal:FindFirstChild('Value') then
strVal.Value = base.Value.Text
end
end
end)()
sVal = strVal
else
sVal = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(Title)
end
base.Title.Text = Title
base.Parent = LFrame
base.Name = RealName or Title
base.Value.Text = Properties['Deafault']
base.Parent = LFrame
if Properties then
if Properties['Deafault'] then
base.Value.Text = Properties['Deafault']
end
end
base.Value:GetPropertyChangedSignal('Text'):Connect(function()
sVal.Value = base.Value.Text
end)
Base = base
end
if Type == 'Bool' then
local base = script.Parent.Main.CustomBool:Clone()
local boolVal
if not CreateVal then
local bVal = Instance.new('BoolValue',game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location))
bVal.Name = RealName or Title
bVal.Parent = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location)
for i,v in pairs(Properties) do
bVal:SetAttribute(i,v)
end
coroutine.wrap(function()
while true do
wait()
if bVal:FindFirstChild('Value') then
bVal.Value = base.Value.Text
end
end
end)()
boolVal = bVal
else
boolVal = game.ReplicatedStorage.DialogueContainer:FindFirstChild(Window):FindFirstChild(Location):FindFirstChild(Title)
end
base.Title.Text = Title
base.Parent = LFrame
base.Name = RealName or Title
base.Parent = LFrame
if Properties then
if Properties['Deafault'] == false then
base.Value.BackgroundColor3 = Color3.fromRGB(9, 9, 9)
boolVal.Value = false
else
base.Value.BackgroundColor3 = Properties['Colour']
boolVal.Value = true
end
end
base.Value.MouseButton1Click:Connect(function()
if boolVal.Value == true then
boolVal.Value = false
base.Value.BackgroundColor3 = Color3.fromRGB(9, 9, 9)
else
boolVal.Value = true
base.Value.BackgroundColor3 = Properties['Colour']
end
end)
Base = base
end
if Base then
local tempCount = #LFrame:GetChildren()-1
tempCount += 1
local Theme = script.Parent.ThemeColour
if tempCount % 2 == 0 then
Base.BackgroundColor3 = Theme.Background.Value
Base:SetAttribute('BackgroundColor3','Background')
else
Base.BackgroundColor3 = Theme.Primary.Value
Base:SetAttribute('BackgroundColor3','Primary')
if Base:FindFirstChild('Value') then
Base:FindFirstChild('Value'):SetAttribute('BackgroundColor3','Tertiary')
Base:FindFirstChild('Value').BackgroundColor3 = Theme.Tertiary.Value
end
if Base:FindFirstChild('Bar') then
Base:FindFirstChild('Bar').BackgroundColor3 = Theme.Tertiary.Value
Base:FindFirstChild('Bar'):SetAttribute('BackgroundColor3','Tertiary')
end
end
end
end
end
end
return Settings
]]>
-1
-
Instance
{EBE5E6FD-9B59-44BB-BA09-9D3B90746595}
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Instance
[null]
[null]
[null]
[null]
0
0
0.200000003
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Instance
[null]
[null]
[null]
[null]
0.586288333
0
0.121212333
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.37825048
0
0.75757575
0
0
-1
0
(None)
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.180830732
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Delete
[null]
[null]
[null]
[null]
0.493219018
0
0.121212371
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
24
0
24
0
-1
0
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
true
0
0
true
0
0.639215708
0.635294139
0.647058845
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxassetid://3926305904
1
1
1
284
4
24
24
0
2
close
[null]
[null]
[null]
[null]
0.158000007
0
0.175999999
0
0
[null]
0
0
true
0
0
0
0
false
[null]
0
0.662058711
0
0.675401866
0
0
0
0
0
0
1
-1
1
0
1
0
true
2
-
0 1 0.00392157 0.184314 0 1 1 0 0 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
Number
{8DFDC49E-59DF-4835-B590-B217D253F974}
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Number
[null]
[null]
[null]
[null]
0
0
0.5
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
false
0
0.5
false
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
20
rbxasset://fonts/families/GothamSSm.json
900
rbxasset://fonts/GothamSSm-Black.otf
0
1
-1
false
Bar
[null]
[null]
[null]
[null]
0.586000025
0
0.5
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.377999872
0
0.758000016
0
0
-1
0
1
1
1
false
38
0
0
0
1
0
0
true
2
1
true
1
-
1
0
UICorner
-1
-
0
0
0
0
true
0
UIStroke
-1
2.5999999
0
-
false
0
0
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
rbxasset://fonts/families/LegacyArial.json
400
rbxasset://fonts/arial.ttf
0
1
-1
false
Frame
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
false
false
0
0
0
0
false
[null]
0
0.5
0
1
0
0
-1
0
0.105882362
0.164705887
0.207843155
false
8
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
0 0 1 1 0 1 0 0.666667 1 0
true
UIGradient
0
0
180
-1
0 0 0 1 0 0
-
true
0
0
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.460333347
0
0.0861404911
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0
24
0
24
0
-1
50
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
1
-
0
8
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.18083033
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
String
{8880A6F6-0CCB-41BD-A9E0-A0AD6FDE5F28}
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
0
false
false
0
String
[null]
[null]
[null]
[null]
0
0
0.600000024
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.112627983
0
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.180830866
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
true
0
0
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.699999988
0.699999988
0.699999988
0.586288333
0
0.121212333
0
false
[null]
0
true
0
0
0
0
false
[null]
0
true
0.378250599
0
0.75757575
0
0
-1
1
1
1
true
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
Colour
{9EE744FC-C41B-440B-B0E7-7754696B55BA}
-1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
-1
Colour
[null]
[null]
[null]
[null]
0
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
1
0
0.11767409
0
0
-1
0
true
1
-
true
0
0
false
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Colour
[null]
[null]
[null]
[null]
0.456793636
0
0.120999999
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0
24
0
24
0
-1
0
0
0
0
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
AQAAAAUAAABDb2xvcgIEAAAAVGV4dA==
0
0
0
true
0
UIStroke
-1
1
0
-
1
0
UICorner
-1
-
true
0
0
true
true
0
0.0352941193
0.0352941193
0.0352941193
0
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
false
Value
[null]
[null]
[null]
[null]
0.586288333
0
0.121212132
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
0.377999991
0
0.758000016
0
0
-1
0
255, 255, 255
1
1
1
false
14
0
0
0
1
0
0
false
2
1
true
1
-
1
0
UICorner
-1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0253748558
0
0.180830717
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.39362517
0
0.62025547
0
0
-1
String
1
1
1
true
17
0
0
0
1
0
0
true
0
1
true
1
-
MousePosEvent
-1
-
MouseUpEvent
-1
-
false
MouseUp
0
{F0A90813-5186-4250-9DC8-463A90FFF448}
-1
-
Result
{E7DE9453-C43B-46EA-93B4-F44066BE1A5F}
-1
-
false
0
0
AQAAABAAAABCYWNrZ3JvdW5kQ29sb3IzAgcAAABQcmltYXJ5
true
0
0.176470593
0.176470593
0.176470593
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Result
[null]
[null]
[null]
[null]
0.00635593198
0
0.592920363
0
[null]
0
false
0
0
0
0
false
[null]
0
0
253
0
35
0
-1
0
true
1
-
false
0
0
AQAAAAoAAABUZXh0Q29sb3IzAgQAAABUZXh0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.292525709
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.682749629
0
1
0
0
-1
Chatterbox
1
1
1
false
19
0
0
0
1
1
0
false
0
1
true
2
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
rbxasset://textures/ui/GuiImagePlaceholder.png
1
1
1
0
0
0
0
1
0
Image
[null]
[null]
[null]
[null]
0.0934782624
0
0.114285715
0
0
[null]
0
0
false
0
0
0
0
false
[null]
0
0
27
0
27
0
0
0
0
0
1
-1
1
0
1
0
true
1
-
true
0
0
true
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
3
rbxasset://fonts/families/SourceSansPro.json
400
rbxasset://fonts/SourceSansPro-Regular.ttf
0
1
-1
false
Button
[null]
[null]
[null]
[null]
0
0
0
0
false
[null]
0
true
false
0
0
0
0
false
[null]
0
1
0
1
0
0
-1
0
0
0
0
false
14
0
0
0
1
1
0
false
2
1
true
1
-
false
0
0
true
0
1
1
1
0
0.105882362
0.164705887
0.207843155
0
0
false
false
0
Preview
[null]
[null]
[null]
[null]
0.00354609638
0
0.563139975
0
[null]
0
false
0
0
0
0
false
[null]
0
0.998725355
0
0.429610431
0
0
-1
0
false
1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Title
[null]
[null]
[null]
[null]
0.0270270277
0
0
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.529774547
0
0.206666663
0
0
-1
Model
0.0862745121
0.0862745121
0.0862745121
false
30
0
0
0
1
0
0
true
0
1
true
1
-
false
0.784313738
0.784313738
0.784313738
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1.22173059
false
false
1
1
1
0
0
0.549019635
0.549019635
0.549019635
-1
-1
-1
ModelImage
[null]
[null]
[null]
[null]
0.705877125
0
0
0
[null]
0
false
0
0
0
0
false
[null]
0
0.295741767
0
1.00355041
0
0
-1
true
1
-
3.39333344
0
0
UIAspectRatioConstraint
-1
-
false
0
0
true
0
1
1
1
1
0.105882362
0.164705887
0.207843155
0
1
false
false
2
rbxasset://fonts/families/Arial.json
700
rbxasset://fonts/arialbd.ttf
0
1
-1
Text
[null]
[null]
[null]
[null]
0.0270270314
0
0.25999999
0
false
[null]
0
false
0
0
0
0
false
[null]
0
0.678850055
0
0.74000001
0
0
-1
0.0862745121
0.0862745121
0.0862745121
false
20
0
0
0
1
0
0
true
0
0
true
1
-
0 1 1 1 0 1 1 1 1 0
true
UIGradient
0
0
0
-1
0 0 0 1 0 0
-
ThemeColour
-1
-
Background
-1
0
0
0
-
Primary
-1
0
0
0
-
Secondary
-1
0
0
0
-
Tertiary
-1
0
0
0
-
Text
-1
0
0
0
-
Accent
-1
0
0
0
-
Hint
-1
0
0
0
-
false
LocalScript
0
{C726FAFB-F7F0-4659-A0DE-189BD354E04B}
-1