[FREE] Lucy: lightweight UI & Input framework

Project isn’t publicly available anymore.

Goal of this framework is to focus on creating actual content, avoid writing scripts that everybody writes while starting work with UE4.
I think that many different games could use the same script base and… I decided to share current progress :slight_smile:


It’s free to use, even commercially.

  • Based on UMG, written mostly in blueprints.
  • It allows for compositing UI from fully reusable widgets (I call it composites). Define widget style and logic once, use it hundred times! Or define logic once and set different appearance for every widget instance.
  • In clean UMG (without any own scripts) you have to script every element (like button, text or slider) individually. It means lots of copy-pasting scripts responsible for input, localization, styling, setting and restoring state. Everything. Of course many developers close part of those scripts in reusable functions and apply them at every element. My approach is to close entire functionality of element or element group in separate widget file, then simply put this widget in UI panel and fill up parameters. Element added in UMG’s Designer tab works out of the box. There’s no need to script anything except your custom game logic.
  • Appearances of widgets placed in panels refresh automatically after change - which isn’t possible in pure UMG.
  • And I’m adding a lot of common functions for managing UI panels and input (not only UI related).

Take a look!
This is entire script for Pause Menu, as simple as it always should be.


You don’t need to produce spaghetti blueprint for every UI element. Prepare it quickly by setting params.


What’s inside?

  • Typical UI composites like Text Button, Interaction Hint, Labeled Slider, etc. Every composite automatically updates its default state based on instance values.
  • Scripts called UI Manager and Panel take care of creating and switching panels, opening panels in hierarchy, handling input, basic navigation, activating chosen widget in panel, receiving input from active widget. So you don’t have to script basic widget actions in your panels. Focus on designing it and scripting custom and advanced functions.
  • Samples of Main/Options menus simplifies creating your own menus, i.e. Video Menu allows you to set common graphics options. Just customize it to your needs. Or just download it, don’t change a thing and enjoy basic menus working in your cooked build.
  • Input Manager provides basic functionalities: setting various inputs for single action, activating interactions, detecting input device and automatically updating displayed icon and key of interaction.
  • You don’t have to reinvent the wheel when you’re starting work on UI. I already did it. Partially :wink:

Further development
I’d love to hear you feedback! :slight_smile:
I’ll continue to work on it, make it as universal as UI script can be. Although keep it mind that won’t ever “completed” or “finished”. It’s just impossible if we’re talking about user interfaces.

You can use all this work free of charge.
If you decided to use it in your project, please consider a PayPal donation :slight_smile:
If you’d like to get some features soon than other features… donation would encourage me do it quicker. If nobody will donate, I’ll just implement features that I need the most :wink:

https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif

Pictures of example UI’s would be awesome!

You’re perfectly right! I’ll prepare few screenshots and gifs :slight_smile:

This sounds pretty sweet! I’d also like some screenshots!

Added short video and screenshot of Video settings to the first post :slight_smile:
You can see there setting standard video options, volume of sound classes. I’ll add much more options over time.

Used keyboard to navigate through menus, but it works the same with gamepad.

This looks great, thanks for sharing!

very cool ! thx for sharing !
please keep it evolvong :wink:
stucki

Very nice, thank you for sharing

Commited small change which could help a little with working on game in editor.

UI Manager can automatically open one of UI panels while game is starting. Check events after BeginPlay in the event graph.
All these variables are config variables, so every developer can set different panel for his convenience.

Do the current settings all work right out the gate?

I’m sorry, I don’t understand this question. Could you precise? :slight_smile:

Yes they do, I have used it an it works great. gamepad and keyboard support and the video settings are done nicely. Has a little learning curve, but thats fine.

Just updated project to 4.13 and compiled code plugin against this version. Also removed many redundant functions from code plugin, some of them replaced by engine functions introduced UE 4.11-4.13.

I’m getting an error trying to launch the ue project:
it asks me to rebuid UE4Editor-Lucy.dll on 4.13

But I get “Lucy could not be compiled. Try rebuilding from source manually.”

To be sure: are we’re talking about your own project or just trying launch my project from GitHub?
And are you using vanilla engine or custom one?
So far I only used plug-in in projects using vanilla UE4 and blueprint projects. Maybe ot works differently with customized engine or code projects?

If error occurs in your project, please check what you have in your .uproject file.
Good version is

But if you have also module added there, engine could try to recompile plug-in

thx for this cool piece of work !!

i have the same problem as Lynkk.

I only downloaded your files and unzipped them to the desktop.
by starting your Lucy.uproject i get the same error message

"Missing Lucy Modules

The following modulese are missing or built with a different version
UE4Editor-Lucy.dll
Would you like to rebuild them now"

If i choose to, i get the error message

“Lucy could not be compiled. Try rebuilding from source manually.”

As i dont have any experience with this, i am not sure what to do, or if i can do it at all :wink:

I am using the normal UE4.13 Version installed by the Epic Launcher. No Modifications.

hope you can help with this, cause i really wanna try this UI for my game project !!

kind regards
stucki

Oh :slight_smile:
Simply remove Modules section from .uproject and it gonna work :slight_smile:
Or redownload zip from github and launch project - just removed this section from Lucy.uproject and saved my “dev” version as another .uproject file.

Enjoy UI :wink:

thx very much for helping with it !!
now i can get it to work and it looks really cool.

two problems:

applyin / resetting settings:

i cant get the “apply” and the “reset to defaults” buttons working.
they just seem to be inactive. they dont get black when hovering with the mouse …
i tried it running inside the editor and running seperate in a new window, both times i cant apply or reset the settings on the game.
( i havent changed anything yet :wink: , its just the newly downloaded version from githhub.

framerate:
when i start the option menu framerate is set to 0
when i manually callibrate the settings with mouse i can only get to a framerate down to 30
i am creating a point & click adventure and 20 frames is enough for my purpose.
How can i change the minimum framerate ?

question:

is there a way to have a preview of the gamma while changing the slider ?

thx again for your cool work ! hope to get it working soon :slight_smile:

kind regards
stucki

any news on the two problems ?
i would really love to get it working in my prototype !

kind regards
stucki

Sorry, I spent few days in Budapest and wasn’t lucky enough to get fast WiFi :wink:

About framerate… just go to properties of “Limit Frames” widget. There’s “Min Value” property in Slider section. Set value that suits you :slight_smile:
Generally it’s helpful to check properties of panels and widgets, there’s lots of params.

There’s no functionality for gamma slider. I don’t need it personally yet, if it’s important for somebody, please use PayPal tip and I’ll make it ASAP :slight_smile: