How to assign UI to absolute position

Hello! I am making a UI asset to sell. The UI uses UIList. However, once I parent it to the ReplicatedStorage, the UI of course would be messed so I tried to assign the UI position to its Absolute Position but the property is read only. Is there another way to do this?

local ts = game:GetService("TweenService")
local info = TweenInfo.new(4, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut) -- Changeble (Time, EasingStyle, EasingDirection)

local Gui = script.Parent

local MainFrame = Gui.MainFrame
local UILISTLAYOUT = MainFrame.UIListLayout
local PlayButton = MainFrame.PlayButton
local SettingButton = MainFrame.SettingButton

local Settings = {
	["Gui Position Tweens"] = true; -- Animate gui once it's clicked, set true if yes, set false if no
	["Settings Button"] = true -- Allows the settings button to be visible, set true if yes, set false if no
}

PlayButton.MouseButton1Down:Connect(function()
	if Settings["Gui Position Tweens"] then
		for i, Buttons in pairs(MainFrame:GetChildren()) do
			
			if Buttons:IsA("TextButton") or Buttons:IsA("ImageButton") then
				local ButtonPosX =  Buttons.Position.X
				local ButtonPosY = Buttons.Position.Y
				
				local Absolute = Buttons.AbsolutePosition
				
				UILISTLAYOUT.Parent = game.ReplicatedStorage
			
				
				Buttons.AbsolutePosition = Vector2.new(Absolute.X, Absolute.Y)
				
				local Animate = 200 --Don't change
				
				task.wait(3)
				
				ts:Create(Buttons, info, {Position = UDim2.new(Buttons.Position.X.Scale, ButtonPosX.Offset - Animate, Buttons.Position.Y.Scale, ButtonPosY.Offset)}):Play()
			
			end
			
		
			--Gui.Enabled = not Gui.Enabled
		end
		
	else
		
		Gui.Enabled = not Gui.Enabled
		
	end
	
end)

To modify the pixel positioning, you would just modify the Position property
The property takes a UDim2, and can be created like this: UDim2.new(XScale, XOffset, YScale, YOffset).
To adjust it by the pixel, you would adjust the XOffset and the YOffset parts of the UDim2

I know that already. However, there’s a UIListLayout, and I am going to sell this main menu asset. If the buyer wants to change the LayoutOrder then it shouldn’t affect the UI tween animation. So I want a variable to contain the either the position it’s currently which would be the absolute value. I want then to use UDIM2 like you said to set the buttons to their own original position because I’ll be parenting the UIListLayout to replicated storage.

AbsolutePosition is the Vector2 position relative to the absolute screen size. Your UDim2’s offset is the position relative to its parent so those two values will not match up unless your ui object is parented under the screen gui or surface gui itself.

Absolute position is it’s position in pixels on your screen. You can only change it by modifying the position with udim2 values