Is there any way to scale UI across all devices using offset?

actually one thing, instead of using clipsdescendants to change the apparant size of the imagelabel, have you tried putting a copy of the background image on top of the second image label and resizing that instead, this way you can keep it as a direct child of the first image label while still being able to change how much is hidden (given that the background imagelabel isnt transparent)

Depending on the image scaling type, the image would either shrink or get squashed if I tried that. Both image labels need the same size for the image to actually be the same.

oh i see

alright then well i think you should make a script that sets the second imagelabel’s offset size to the first imagelabel’s AbsoluteSize (which is in pixels) permanently until loading is complete

sorry for the late reply but heres a script i made for a localscript thats parented to the first imagelabel that should hopefully accomplish what you want

runService = game:GetService("RunService")

imagelabel1 = script.Parent -- first imagelabel
imagelabel2 = imagelabel1.Frame.ImageLabel --second imagelabel

updateSize = function()
	imagelabel2.Size = UDim2.new(0,imagelabel1.AbsoluteSize.X,0,imagelabel1.AbsoluteSize.Y)
end -- function to continually update the size of the second image label

runService:BindToRenderStep("updatebar",10,updateSize) 
--bind to render step on camera priority (some random arbitrary number i picked)



local function unbindBarRenderStep()
	runService:UnbindFromRenderStep("updatebar")
end       --unbind this when needed

please tell me if theres something wrong with the code btw

when you need to remove the loading screen, run unbindBarRenderStep()

this should allow the second imagelabel to stay the same size as the first imagelabel while also still being able to resize the frame separately AND keeping clips descendants on without changing the hierarchy