You can write your topic however you want, but you need to answer these questions:
-
What do you want to achieve? Keep it simple and clear!
So i wanna make it so that a frame for example thats somewhere on the screen to get positioned to the center of the screen i’ve been searching everywhere got some formulas to get the center position none of them worked but the plugin i found “Ripepperoni’s Gui Tools” works soo now i got the source code from the plugin and i want to get the code only for positioning the gui to the center of the screen but i dont understand it exactly and idk how to do it this is the code: -
What is the issue? Include screenshots / videos if possible!
– -
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
–
After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!
local save = {obj = nil,position = nil}
if game.CoreGui:FindFirstChild"guiTools" then
game.CoreGui['guiTools']:Destroy()
end
local off = 'rbxassetid://203550334'
local on = 'rbxassetid://203550339'
local gui = script.guiTools
local toolbar = plugin:CreateToolbar("Ripepperoni's Gui Tools")
local data = {
['TL'] = {
"Top Left",
"rbxassetid://338839412"
},
['TC'] = {
'Top Center',
"rbxassetid://338839545"
},
['TR'] = {
'Top Right',
"rbxassetid://338840545"
},
['ML'] = {
"Middle Left",
"rbxassetid://338840636"
},
['MC'] = {
"Center",
"rbxassetid://338840695"
},
['MR'] = {
"Middle Right",
"rbxassetid://338841755"
},
['BL'] = {
"Botton Left",
"rbxassetid://338838938"
},
['BC'] = {
"Bottom Center",
"rbxassetid://338838871"
},
['BR'] = {
"Bottom Right",
"rbxassetid://338838760"
},
}
--[[local revert = toolbar:CreateButton(
"Revert",
"Revert back one step. The history only saves last position.",
""--"rbxassetid://2606310"
)]]
local togglebutt = toolbar:CreateButton(
"Toggle Interface",
"This button opens up the UI which you do stuff with.",
"rbxassetid://190014863"
)
-- SET UP GUI
local buttons = {}
local xbuff,ybuff
for i,v in next, gui.Frame:GetChildren() do
if v:IsA'ImageButton' then
buttons[#buttons+1] = v
v.Icon.Image = data[v.Name][2]
elseif v:IsA'ImageLabel' then
v.Button.MouseButton1Down:connect(function()
if v.Image == on then
v.Image = off
else
v.Image = on
end
end)
elseif v:IsA'TextBox' then
if v.Name == "xBuffer" then
xbuff = v
elseif v.Name == 'yBuffer' then
ybuff = v
end
end
end
local lastState = plugin:GetSetting("interfaceVisible")
gui.Parent = game.CoreGui
if lastState ~= nil then
gui.Frame.Visible = lastState
else
gui.Frame.Visible = true
end
-- TOGGLE GUI
local function toggle()
gui.Frame.Visible = not gui.Frame.Visible
plugin:SetSetting("interfaceVisible",gui.Frame.Visible)
end
togglebutt.Click:connect(toggle)
gui.Frame.Head.Exit.MouseButton1Down:connect(toggle)
-- FUNCTIONS
local function getScale(px)
return
end
local function getPx(scale)
return
end
local funcs = {
["TL"] = function(size,x,y,scale,offset)
return UDim2.new(0,x,0,y)
end,
["TC"] = function(size,x,y,scale,offset)
return UDim2.new(scale and .5 - (size.X.Scale/2) or .5,offset and -(size.X.Offset/2) or 0,0,y)
end,
["TR"] = function(size,x,y,scale,offset)
return UDim2.new(scale and 1 - size.X.Scale or 1,offset and -size.X.Offset-x or -x,0,y)
end,
["ML"] = function(size,x,y,scale,offset)
return UDim2.new(0,x,scale and .5 - (size.Y.Scale/2) or .5,offset and -(size.Y.Offset/2) or 0)
end,
["MC"] = function(size,x,y,scale,offset)
return UDim2.new(scale and .5 - (size.X.Scale/2) or .5,offset and -(size.X.Offset/2) or 0,scale and .5 - (size.Y.Scale/2) or .5, offset and -(size.Y.Offset/2) or 0)
end,
["MR"] = function(size,x,y,scale,offset)
return UDim2.new(scale and 1 - size.X.Scale or 1,offset and -size.X.Offset-x or -x,scale and .5 - (size.Y.Scale/2) or .5, offset and -(size.Y.Offset/2) or 0)
end ,
["BL"] = function(size,x,y,scale,offset)
return UDim2.new(0,x,scale and 1 - size.Y.Scale or 1,offset and -size.Y.Offset-y or -y)
end ,
["BC"] = function(size,x,y,scale,offset)
return UDim2.new(scale and .5 - (size.X.Scale/2) or .5,offset and -(size.X.Offset/2) or 0,scale and 1 - size.Y.Scale or 1,offset and -size.Y.Offset-y or -y)
end ,
["BR"] = function(size,x,y,scale,offset)
return UDim2.new(scale and 1 - size.X.Scale or 1,offset and -size.X.Offset-x or -x,scale and 1 - size.Y.Scale or 1,offset and -size.Y.Offset-y or -y)
end
}
-- CONNECT FUNCTIONS
for i,button in next, buttons do
button.MouseButton1Down:connect(function()
local items = game.Selection:Get()
if #items > 0 then
for _,selection in next, items do
if selection and selection:IsA'GuiObject' and tonumber(ybuff.Text) and tonumber(xbuff.Text) then
local pos = funcs[button.Name](selection.Size,math.floor(tonumber(xbuff.Text)),math.floor(tonumber(ybuff.Text)),gui.Frame.Scale.Image == on, gui.Frame.Offset.Image == on)
save.obj = selection
save.position = selection.Position
selection.Position = pos
elseif not (tonumber(ybuff.Text) and tonumber(xbuff.Text)) then
gui.Fail:Play()
game:GetService"TestService":Error("[GUI TOOLS]: X buffer and Y buffer need to be numbers!")
else
gui.Fail:Play()
game:GetService"TestService":Error('[GUI TOOLS]: "'..selection.Name..'" is not a GuiObject!')
end
end
else
gui.Fail:Play()
game:GetService"TestService":Error("[GUI TOOLS]: You need to select a GuObject!")
end
end)
end
--[[revert.Click:connect(function()
if save.obj and save.position then
save.obj.Position = save.position
end
end)]]
I’ve figured this is what i need to get from the code
["MC"] = function(size,x,y,scale,offset)
return UDim2.new(scale and .5 - (size.X.Scale/2) or .5,offset and -(size.X.Offset/2) or 0,scale and .5 - (size.Y.Scale/2) or .5, offset and -(size.Y.Offset/2) or 0)
end,
---
for i,button in next, buttons do
button.MouseButton1Down:connect(function()
local items = game.Selection:Get()
if #items > 0 then
for _,selection in next, items do
if selection and selection:IsA'GuiObject' and tonumber(ybuff.Text) and tonumber(xbuff.Text) then
local pos = funcs[button.Name](selection.Size,math.floor(tonumber(xbuff.Text)),math.floor(tonumber(ybuff.Text)),gui.Frame.Scale.Image == on, gui.Frame.Offset.Image == on)
save.obj = selection
save.position = selection.Position
selection.Position = pos
elseif not (tonumber(ybuff.Text) and tonumber(xbuff.Text)) then
gui.Fail:Play()
game:GetService"TestService":Error("[GUI TOOLS]: X buffer and Y buffer need to be numbers!")
else
gui.Fail:Play()
game:GetService"TestService":Error('[GUI TOOLS]: "'..selection.Name..'" is not a GuiObject!')
end
end
else
gui.Fail:Play()
game:GetService"TestService":Error("[GUI TOOLS]: You need to select a GuObject!")
end
end)
end
Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.