EzUISprings - Simple UI Movement Module

Huh weird, my gut is telling me that the renderpriority for the effect needs to be set after camera, but im not entirely sure.

I don’t currently have my computer atm but I’ll make a new option in the SpringParams that lets you edit that. — Probably in a day or two

This is probably one of, if not the best UI utilities out there. I have been looking for a module capable of organizing a 3d HUD aspect to UI. Definite vouch from me!

1 Like

i was going to use the 2d thing for a sway but its gone now :disappointed_relieved:

I’ll work on readding it when I get back home after school assuming I don’t collapse onto my bed.
The reason I removed it in the first place was because it’s kinda common and easy to do in the first place so I just assumed nobody needed it. I should probably stop doing that…

Change Log V 1.2:

→ Functionality Changes

  • Added a new, separate type for 2D spring effects.
    It’s the same as the normal 3D variant… except 2D!!! wow.
    This type is made with EzUISprings.new2D() and takes (GuiObject: GuiObject, SpringParams2D: SpringParams2D?) as constructors.
  • You can now set the camera you wish to use as reference in the SpringParams, although it will default to the CurrentCamera if one is not set.
  • Got rid of some random prints that I forgot about. (Sorry!)

New version, as always, is on the toolbox and also downloadable as a .rbxm file here.

1 Like

Hey, I believe the modules rotation is broken? I’m not sure if I’m using it incorrectly but the following happens when I try to change the rotation by even a bit. I have tried TextLabels, Frames, using decimal points for the rotation but it all ends up the same.

local uiSprings = require(game.ReplicatedStorage.Modules.Utils.EzUISpring)
local textLabel = script.Parent.Frame

local springParams = uiSprings.newSpringParams()
springParams.SpringIntensity = 15
springParams.BaseRotationOffset = Vector3.new(1, 0, 0)

local uiSpringObject = uiSprings.new(textLabel, springParams)
uiSpringObject:Apply3DSpringEffect()

textLabel.TextLabel1.MouseButton1Click:Connect(function()
	print("hi")
end)

(file was too large so I uploaded to google drive)

Hey yeah, so I made an oopsie and accidentally slotted in BaseRotationOffset for BasePositionOffset.

As you can tell, I didn’t test it at all lol :sweat_smile:
I’ve updated the toolbox and .rbxm file and it should be fixed now, just re-insert the module.

Hey! Late reply and I don’t mean to bring this up 6 months later but anyway,

Everything works perfectly but I have one issue that i can’t seem to figure out. When the FOV is changed the GUI scales up and cuts off. Any way to fix this? Idk if it has to do with this module or not but I’m just gonna make sure. Thanks!

adding onto this, i have tried UIAspectRatioConstraint and as that sorta fixed it, it still cuts off, just not as much as before I tried UIAspectRatioConstraint.

and also to give more clarification, im using that rotate thing u added

local springParams = uiSprings.newSpringParams()
springParams.SpringIntensity = 3
springParams.BaseRotationOffset = Vector3.new(3, 0, 0)

local uiSpringObject = uiSprings.new(textLabel, springParams)
uiSpringObject:Apply3DSpringEffect()

last time adding onto this but after a bit of playing around w it, I noticed that when the fov is changed the surface gui ultimately streaches out. idk if theres a simple way to fix this and im just having a brain freeze rn but yea.

There’s a bug where if you reset character or the character dies, the ui disappears
I have ResetOnSpawn set to false on the ScreenGui and the :Apply3DSpringEffect({ResetOnSpawn = false}) but the problem is that the ui keeps on disappearing when you reset

(i deleted the other post because of how messy the clip is)

Also ignore the background audio in the clip!! I forgot i had my mic muted :sweat_smile:

is line 376 misspelled?
self.MouiseSpring:shove(Vector)

instead of

self.MouseSpring:shove(Vector)

@BOSSBABY618
Sorry for the supppper late response lol
Everything in startergui, gets cleared unless it’s an object ResetOnSpawn set to false. I was using a folder to store all of the surface gui’s (which would get destroyed even with children that had ResetOnSpawn disabled, pretty simple, but this should be fixed now.

By default they will still reset on spawn, but I added this as an option to SpringParams so that you can change it, and it checks this parameter when you create the object.

:sweat_smile: woooops no idea how that slipped through

The module has been updated to address this, i’m such a bad maintainer lol.
As usual, here’s the new .rbxm file, or you can just grab the new version from the toolbox.

1 Like

Oh my. This is one of te best resources ever dude! Thank you so much!!! It goes a little but cuckoo when you zoom out but it’s nothing massive. Thank you so much!