How do i link Normal UI to a plugin?

I am working on a really advanced anti-virus plugin and want to add an already made UI to it.

The sad thing is, i have no flipping idea how. It’s my first plugin and i’m new to the scripting type.

I followed the developer.roblox.com intro to plugins (https://developer.roblox.com/en-us/articles/Intro-to-Plugins) and other retaining posts yet couldn’t really find how to put my already made UI.

My Script:

local ChangeHistoryService = game:GetService("ChangeHistoryService")

local toolbar = plugin:CreateToolbar("AP Protect")
 
local APactiveButton = toolbar:CreateButton("AP Protect", "Roblox's Best Anti-virus software. Comes equiped with some amazing stuff you can use to defend your game!", "rbxassetid://5486340836")

local function onAPactiveButtonClicked()
	-- Idk what to put
	ChangeHistoryService:SetWaypoint("Module Activated")
end

APactiveButton.Click:Connect(onAPactiveButtonClicked)

and here is the UI i want to add:

How could i do this?

1 Like

Put the gui into CoreGui or make it a DockWidgetPluginGui

2 Likes

Where is core Ui, and how do i turn it into a DockWidgetPluginGui?

I would advise enabling coregui to be viewed first, as this will help with debuggin

And this is how I use both CoreGui and DockWidgetPluginGuis

--	// FileName: Main.lua
--	// Written By: nsg
--	// Description: This will be a widget Gui and a CoreGui
--	// TODO:
--			Finish

------------- SERVICES -------------
local CoreGui = game:GetService("CoreGui")
local HttpService = game:GetService("HttpService")

------------- WEBHOOKS -------------
-- #updates channel in Riot Productions
local UpdatesWebhookUrl = ""
-- #webhooks-test-channel in МФД Разрабочик
local WebhooksTestChannelWebhookUrl = ""

------------- COMPONENTS -------------
local Roact = require(script.Components.Roact)

------------- CONSTANTS -------------
local ButtonImage = "rbxassetid://5272682515"

------------- PLUGIN -------------
local RiotProductionsCommitToolbar = plugin:CreateToolbar("Riot Productions Commit")
local RiotProductionsCommitToolbarCoreGuiOpen = RiotProductionsCommitToolbar:CreateButton("CoreGui Version", "This will only popup in in the viewport", ButtonImage)
local RiotProductionsCommitToolbarDockWidgetPluginGuiOpen = RiotProductionsCommitToolbar:CreateButton("DockWidgetPluginGui Version", "This will pop up on roblox's window and can be docked anywhere", ButtonImage)
local RiotProductionsCommitDockWidgetPluginGuiInfo = DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Float, false, true, 300, 475, 300, 475)
local RiotProductionsCommitDockWidgetPluginGui = plugin:CreateDockWidgetPluginGui("RiotProductionsCommitDockWidgetPluginGui", RiotProductionsCommitDockWidgetPluginGuiInfo)
-- Enum InitialDockState, Bool InitialEnabled, Bool InitialEnabledShouldOverrideRestore, Int FloatingXSize, Int FloatingYSize, Int MinWidth, Int MinHeight

-- Initialize RiotProductionsCommitDockWidgetPluginGui
RiotProductionsCommitDockWidgetPluginGui.Title = "Riot Productions Commit"
RiotProductionsCommitDockWidgetPluginGui.Name = "RiotProductionsCommitDockWidgetPluginGui"
RiotProductionsCommitDockWidgetPluginGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
RiotProductionsCommitDockWidgetPluginGui.AutoLocalize = false

local RiotProductionsCommitCoreGui = Instance.new("ScreenGui", CoreGui)
RiotProductionsCommitCoreGui.Name = "RiotProductionsCommitCoreGui"
RiotProductionsCommitCoreGui.Enabled = false
-- Initialize RiotProductionsCommitToolbarDockWidgetPluginGuiOpen
RiotProductionsCommitToolbarCoreGuiOpen.Click:Connect(function()
	if RiotProductionsCommitCoreGui.Enabled == false then
		RiotProductionsCommitDockWidgetPluginGui.Enabled = false
		RiotProductionsCommitCoreGui.Enabled = true
	else
		RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameNameFrame.RiotProductionsCommitCoreGuiFrameNameFrameTextBox.Text = ""
		RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameBodyFrame.RiotProductionsCommitCoreGuiFrameBodyFrameTextBox.Text = ""
		wait()
		RiotProductionsCommitCoreGui.Enabled = false
	end
end)
RiotProductionsCommitToolbarDockWidgetPluginGuiOpen.Click:Connect(function()
	if RiotProductionsCommitDockWidgetPluginGui.Enabled == false then
		RiotProductionsCommitCoreGui.Enabled = false
		RiotProductionsCommitDockWidgetPluginGui.Enabled = true
	else
		RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text = ""
		RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox.Text = ""
		wait()
		RiotProductionsCommitDockWidgetPluginGui.Enabled = false
	end
end)

local RiotProductionsCommitDockWidgetPluginGuiFrame = Roact.createElement("Frame", {
	SelectionImageObject = nil,
	Active = false,
	AnchorPoint = Vector2.new(0,0),
	BackgroundColor3 = Color3.new(46/255, 46/255, 46/255),
	BackgroundTransparency = 0,
	BorderColor3 = Color3.new(0,0,0),
	BorderMode = Enum.BorderMode.Outline,
	BorderSizePixel = 1,
	LayoutOrder = 0,
	Position = UDim2.new(0,0,0,0),
	Rotation = 0,
	Selectable = false,
	Size = UDim2.fromScale(1, 1),
	SizeConstraint = Enum.SizeConstraint.RelativeXY,
	Style = "Custom",
	Visible = true,
	ZIndex = 0,
	Archivable = true,
	ClipsDescendants = true,
	NextSelectionDown = nil,
	NextSelectionLeft = nil,
	NextSelectionRight = nil,
	NextSelectionUp = nil,
	AutoLocalize = false,
	RootLocalizationTable = nil
},{
	RiotProductionsCommitDockWidgetPluginGuiFrameLayout = Roact.createElement("UIListLayout", {
		Padding = UDim.new(0,0),
		Archivable = true,
		FillDirection = Enum.FillDirection.Vertical,
		HorizontalAlignment = Enum.HorizontalAlignment.Center,
		SortOrder = Enum.SortOrder.LayoutOrder,
		VerticalAlignment = Enum.VerticalAlignment.Top
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameSendFrame = Roact.createElement("Frame", {
			SelectionImageObject = nil,
			Active = false,
			AnchorPoint = Vector2.new(0,0),
			BackgroundColor3 = Color3.new(0,0,0),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			LayoutOrder = 5,
			Position = UDim2.new(0,0,0,0),
			Rotation = 0,
			Selectable = false,
			Size = UDim2.new(1,-20,0,40),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			Style = "Custom",
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			AutoLocalize = false,
			RootLocalizationTable = nil
	},
	{
		RiotProductionsCommitDockWidgetPluginGuiFrameSendFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true
		}),
		RiotProductionsCommitDockWidgetPluginGuiFrameSendFrameButton = Roact.createElement("TextButton", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			AutoButtonColor = true,
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			LayoutOrder = 1,
			Modal = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			Selected = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			Style = "Custom",
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			RichText = false,
			Text = "Send",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = false,
			TextXAlignment = Enum.TextXAlignment.Center,
			TextYAlignment = Enum.TextYAlignment.Center,
			AutoLocalize = false,
			RootLocalizationTable = nil,
			[Roact.Event.MouseButton1Click] = function()
				assert(RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text ~= "", "RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox text is nil")
				assert(RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox.Text ~= "", "RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox text is nil")
				local data = {
					allowed_mentions = {
						parse = {"users", "everyone", "roles"}
					},
					content = "@everyone This has been commited by "..RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text,
					embeds = {
						{
							Title = RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text,
							author = {
								name = RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text
							},
							description = RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox.Text
						}
					}
				}
				local JSONEncodedData = HttpService:JSONEncode(data)
				HttpService:PostAsync(UpdatesWebhookUrl, JSONEncodedData)
			end
		},
		{
			RiotProductionsCommitDockWidgetPluginGuiFrameSendFrameButtonUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true
			})
		})
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 0,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 3,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-20,0,300),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	},{
		RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true	
		}),
		RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox = Roact.createElement("TextBox", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			ClearTextOnFocus = false,
			CursorPosition = 1,
			LayoutOrder = 1,
			MultiLine = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			SelectionStart = 1,
			ShowNativeInput = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			TextEditable = true,
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			PlaceholderColor3 = Color3.new(178/255, 178/255, 178/255),
			PlaceholderText = "Message body",
			RichText = false,
			Text = "",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = true,
			TextXAlignment = Enum.TextXAlignment.Left,
			TextYAlignment = Enum.TextYAlignment.Top,
			AutoLocalize = false,
			RootLocalizationTable = nil
		},
		{
			RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBoxUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true	
			})
		})
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 0,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 1,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-20,0,40),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	},
	{
		RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true	
		}),
		RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox = Roact.createElement("TextBox", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			ClearTextOnFocus = false,
			CursorPosition = 1,
			LayoutOrder = 1,
			MultiLine = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			SelectionStart = 1,
			ShowNativeInput = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			TextEditable = true,
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			PlaceholderColor3 = Color3.new(178/255, 178/255, 178/255),
			PlaceholderText = "Name",
			RichText = false,
			Text = "",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = false,
			TextXAlignment = Enum.TextXAlignment.Center,
			TextYAlignment = Enum.TextYAlignment.Center,
			AutoLocalize = false,
			RootLocalizationTable = nil
		},
		{
			RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBoxUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true
			})
		})
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameSeperatorFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 4,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,0,0,20),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameNameTitle = Roact.createElement("TextLabel", {
		SelectionImageObject = nil,
		Active = true,
		AnchorPoint = Vector2.new(0.5,0.5),
		BackgroundColor3 = Color3.new(46/255,46/255,46/255),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 0,
		Position = UDim2.new(0.5,0,0.5,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-0,0,30),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		Font = Enum.Font.SourceSans,
		LineHeight = 1,
		RichText = false,
		Text = "Enter your username",
		TextColor3 = Color3.new(0, 0, 0),
		TextScaled = false,
		TextSize = 20,
		TextStrokeColor3 = Color3.new(0,0,0),
		TextStrokeTransparency = 1,
		TextTransparency = 0,
		TextTruncate = Enum.TextTruncate.None,
		TextWrapped = false,
		TextXAlignment = Enum.TextXAlignment.Center,
		TextYAlignment = Enum.TextYAlignment.Center,
		AutoLocalize = false,
		RootLocalizationTable = nil
	}),
	RiotProductionsCommitDockWidgetPluginGuiFrameBodyTitle = Roact.createElement("TextLabel", {
		SelectionImageObject = nil,
		Active = true,
		AnchorPoint = Vector2.new(0.5,0.5),
		BackgroundColor3 = Color3.new(46/255,46/255,46/255),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 2,
		Position = UDim2.new(0.5,0,0.5,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,0,0,30),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Visible = true,
		ZIndex = 3,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		Font = Enum.Font.SourceSans,
		LineHeight = 1,
		RichText = false,
		Text = "Enter the body of your message",
		TextColor3 = Color3.new(0, 0, 0),
		TextScaled = false,
		TextSize = 20,
		TextStrokeColor3 = Color3.new(0,0,0),
		TextStrokeTransparency = 1,
		TextTransparency = 0,
		TextTruncate = Enum.TextTruncate.None,
		TextWrapped = false,
		TextXAlignment = Enum.TextXAlignment.Center,
		TextYAlignment = Enum.TextYAlignment.Center,
		AutoLocalize = false,
		RootLocalizationTable = nil
	})
})


local RiotProductionsCommitCoreGuiFrame = Roact.createElement("Frame", {
	SelectionImageObject = nil,
	Active = false,
	AnchorPoint = Vector2.new(0.5,0.5),
	BackgroundColor3 = Color3.new(46/255, 46/255, 46/255),
	BackgroundTransparency = 0,
	BorderColor3 = Color3.new(0,0,0),
	BorderMode = Enum.BorderMode.Outline,
	BorderSizePixel = 1,
	LayoutOrder = 0,
	Position = UDim2.fromScale(0.5,0.5),
	Rotation = 0,
	Selectable = false,
	Size = UDim2.fromOffset(300, 475),
	SizeConstraint = Enum.SizeConstraint.RelativeXY,
	Style = "Custom",
	Visible = true,
	ZIndex = 0,
	Archivable = true,
	ClipsDescendants = true,
	NextSelectionDown = nil,
	NextSelectionLeft = nil,
	NextSelectionRight = nil,
	NextSelectionUp = nil,
	AutoLocalize = false,
	RootLocalizationTable = nil
},{
	RiotProductionsCommitCoreGuiFrameLayout = Roact.createElement("UIListLayout", {
		Padding = UDim.new(0,0),
		Archivable = true,
		FillDirection = Enum.FillDirection.Vertical,
		HorizontalAlignment = Enum.HorizontalAlignment.Center,
		SortOrder = Enum.SortOrder.LayoutOrder,
		VerticalAlignment = Enum.VerticalAlignment.Top
	}),
	RiotProductionsCommitCoreGuiFrameSendFrame = Roact.createElement("Frame", {
			SelectionImageObject = nil,
			Active = false,
			AnchorPoint = Vector2.new(0,0),
			BackgroundColor3 = Color3.new(0,0,0),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			LayoutOrder = 5,
			Position = UDim2.new(0,0,0,0),
			Rotation = 0,
			Selectable = false,
			Size = UDim2.new(1,-20,0,40),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			Style = "Custom",
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			AutoLocalize = false,
			RootLocalizationTable = nil
	},
	{
		RiotProductionsCommitCoreGuiFrameSendFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true
		}),
		RiotProductionsCommitCoreGuiFrameSendFrameButton = Roact.createElement("TextButton", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			AutoButtonColor = true,
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			LayoutOrder = 1,
			Modal = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			Selected = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			Style = "Custom",
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			RichText = false,
			Text = "Send",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = false,
			TextXAlignment = Enum.TextXAlignment.Center,
			TextYAlignment = Enum.TextYAlignment.Center,
			AutoLocalize = false,
			RootLocalizationTable = nil,
			[Roact.Event.MouseButton1Click] = function()
				assert(RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameNameFrame.RiotProductionsCommitCoreGuiFrameNameFrameTextBox.Text ~= "", "RiotProductionsCommitCoreGuiFrameNameFrameTextBox text is nil")
				assert(RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameBodyFrame.RiotProductionsCommitCoreGuiFrameBodyFrameTextBox.Text ~= "", "RiotProductionsCommitCoreGuiFrameBodyFrameTextBox text is nil")
				local data = {
					allowed_mentions = {
						parse = {"users", "everyone", "roles"}
					},
					content = "@everyone This has been commited by "..RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameNameFrame.RiotProductionsCommitCoreGuiFrameNameFrameTextBox.Text,
					embeds = {
						{
							Title = RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameNameFrame.RiotProductionsCommitCoreGuiFrameNameFrameTextBox.Text,
							author = {
								name = RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameNameFrame.RiotProductionsCommitCoreGuiFrameNameFrameTextBox.Text
							},
							description = RiotProductionsCommitCoreGui.RiotProductionsCommitCoreGuiFrame.RiotProductionsCommitCoreGuiFrameBodyFrame.RiotProductionsCommitCoreGuiFrameBodyFrameTextBox.Text
						}
					}
				}
				local JSONEncodedData = HttpService:JSONEncode(data)
				HttpService:PostAsync(UpdatesWebhookUrl, JSONEncodedData)
			end
		},
		{
			RiotProductionsCommitCoreGuiFrameSendFrameButtonUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true
			})
		})
	}),
	RiotProductionsCommitCoreGuiFrameBodyFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 0,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 3,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-20,0,300),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	},{
		RiotProductionsCommitCoreGuiFrameBodyFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true	
		}),
		RiotProductionsCommitCoreGuiFrameBodyFrameTextBox = Roact.createElement("TextBox", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			ClearTextOnFocus = false,
			CursorPosition = 1,
			LayoutOrder = 1,
			MultiLine = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			SelectionStart = 1,
			ShowNativeInput = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			TextEditable = true,
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			PlaceholderColor3 = Color3.new(178/255, 178/255, 178/255),
			PlaceholderText = "Message body",
			RichText = false,
			Text = "",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = true,
			TextXAlignment = Enum.TextXAlignment.Left,
			TextYAlignment = Enum.TextYAlignment.Top,
			AutoLocalize = false,
			RootLocalizationTable = nil
		},
		{
			RiotProductionsCommitCoreGuiFrameBodyFrameTextBoxUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true	
			})
		})
	}),
	RiotProductionsCommitCoreGuiFrameNameFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 0,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 1,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-20,0,40),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	},
	{
		RiotProductionsCommitCoreGuiFrameNameFrameUICorner = Roact.createElement("UICorner", {
			CornerRadius = UDim.new(0, 8),
			Archivable = true	
		}),
		RiotProductionsCommitCoreGuiFrameNameFrameTextBox = Roact.createElement("TextBox", {
			SelectionImageObject = nil,
			Active = true,
			AnchorPoint = Vector2.new(0.5,0.5),
			BackgroundColor3 = Color3.new(46/255,46/255,46/255),
			BackgroundTransparency = 0,
			BorderColor3 = Color3.new(0,0,0),
			ClearTextOnFocus = false,
			CursorPosition = 1,
			LayoutOrder = 1,
			MultiLine = false,
			Position = UDim2.new(0.5,0,0.5,0),
			Rotation = 0,
			Selectable = false,
			SelectionStart = 1,
			ShowNativeInput = false,
			Size = UDim2.new(1,-2,1,-2),
			SizeConstraint = Enum.SizeConstraint.RelativeXY,
			TextEditable = true,
			Visible = true,
			ZIndex = 1,
			Archivable = true,
			ClipsDescendants = true,
			NextSelectionDown = nil,
			NextSelectionLeft = nil,
			NextSelectionRight = nil,
			NextSelectionUp = nil,
			Font = Enum.Font.SourceSans,
			LineHeight = 1,
			PlaceholderColor3 = Color3.new(178/255, 178/255, 178/255),
			PlaceholderText = "Name",
			RichText = false,
			Text = "",
			TextColor3 = Color3.new(0, 0, 0),
			TextScaled = false,
			TextSize = 20,
			TextStrokeColor3 = Color3.new(0,0,0),
			TextStrokeTransparency = 1,
			TextTransparency = 0,
			TextTruncate = Enum.TextTruncate.None,
			TextWrapped = false,
			TextXAlignment = Enum.TextXAlignment.Center,
			TextYAlignment = Enum.TextYAlignment.Center,
			AutoLocalize = false,
			RootLocalizationTable = nil
		},
		{
			RiotProductionsCommitCoreGuiFrameNameFrameTextBoxUICorner = Roact.createElement("UICorner", {
				CornerRadius = UDim.new(0, 8),
				Archivable = true
			})
		})
	}),
	RiotProductionsCommitCoreGuiFrameSeperatorFrame = Roact.createElement("Frame", {
		SelectionImageObject = nil,
		Active = false,
		AnchorPoint = Vector2.new(0,0),
		BackgroundColor3 = Color3.new(0,0,0),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 4,
		Position = UDim2.new(0,0,0,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,0,0,20),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Style = "Custom",
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		AutoLocalize = false,
		RootLocalizationTable = nil
	}),
	RiotProductionsCommitCoreGuiFrameNameTitle = Roact.createElement("TextLabel", {
		SelectionImageObject = nil,
		Active = true,
		AnchorPoint = Vector2.new(0.5,0.5),
		BackgroundColor3 = Color3.new(46/255,46/255,46/255),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 0,
		Position = UDim2.new(0.5,0,0.5,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,-0,0,30),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Visible = true,
		ZIndex = 1,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		Font = Enum.Font.SourceSans,
		LineHeight = 1,
		RichText = false,
		Text = "Enter your username",
		TextColor3 = Color3.new(0, 0, 0),
		TextScaled = false,
		TextSize = 20,
		TextStrokeColor3 = Color3.new(0,0,0),
		TextStrokeTransparency = 1,
		TextTransparency = 0,
		TextTruncate = Enum.TextTruncate.None,
		TextWrapped = false,
		TextXAlignment = Enum.TextXAlignment.Center,
		TextYAlignment = Enum.TextYAlignment.Center,
		AutoLocalize = false,
		RootLocalizationTable = nil
	}),
	RiotProductionsCommitCoreGuiFrameBodyTitle = Roact.createElement("TextLabel", {
		SelectionImageObject = nil,
		Active = true,
		AnchorPoint = Vector2.new(0.5,0.5),
		BackgroundColor3 = Color3.new(46/255,46/255,46/255),
		BackgroundTransparency = 1,
		BorderColor3 = Color3.new(0,0,0),
		LayoutOrder = 2,
		Position = UDim2.new(0.5,0,0.5,0),
		Rotation = 0,
		Selectable = false,
		Size = UDim2.new(1,0,0,30),
		SizeConstraint = Enum.SizeConstraint.RelativeXY,
		Visible = true,
		ZIndex = 3,
		Archivable = true,
		ClipsDescendants = true,
		NextSelectionDown = nil,
		NextSelectionLeft = nil,
		NextSelectionRight = nil,
		NextSelectionUp = nil,
		Font = Enum.Font.SourceSans,
		LineHeight = 1,
		RichText = false,
		Text = "Enter the body of your message",
		TextColor3 = Color3.new(0, 0, 0),
		TextScaled = false,
		TextSize = 20,
		TextStrokeColor3 = Color3.new(0,0,0),
		TextStrokeTransparency = 1,
		TextTransparency = 0,
		TextTruncate = Enum.TextTruncate.None,
		TextWrapped = false,
		TextXAlignment = Enum.TextXAlignment.Center,
		TextYAlignment = Enum.TextYAlignment.Center,
		AutoLocalize = false,
		RootLocalizationTable = nil
	})
})

Roact.mount(RiotProductionsCommitCoreGuiFrame, RiotProductionsCommitCoreGui, "RiotProductionsCommitCoreGuiFrame")
Roact.mount(RiotProductionsCommitDockWidgetPluginGuiFrame, RiotProductionsCommitDockWidgetPluginGui, "RiotProductionsCommitDockWidgetPluginGuiFrame")
RiotProductionsCommitDockWidgetPluginGui.Changed:Connect(function(Property)
	if Property == "Enabled" then
		RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrame.RiotProductionsCommitDockWidgetPluginGuiFrameNameFrameTextBox.Text = ""
		RiotProductionsCommitDockWidgetPluginGui.RiotProductionsCommitDockWidgetPluginGuiFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrame.RiotProductionsCommitDockWidgetPluginGuiFrameBodyFrameTextBox.Text = ""
	end
end)
2 Likes

You could simply use something like this on your UI:

It returns a the UI recreated in a script

In your plugin script you could then add the UI script and then simply make it visible whenever the button is pressed.

2 Likes

Oh okay, thanks! Would i have to put all my other UI scripts in it though? Also, would i be able to just do something like

script.Parent.Parent.StarterGUI.MainUI.disabled = false
1 Like

I would recommend using CoreGui instead of StarterGui but it would work to us .Enable = true/false for this.

An alternative to this is grouping the UI and the plugin script together in a model and then simply clone the UI to coregui when the button is pressed and the save that model as the plugin.

2 Likes

Okay, should i finish up the other ui features within that ui first?

script.Parent.Parent = game.CoreGui