[FREE] Vein: an easy-to-use GUI library for FiveM

Update

  • Introduced textArea widget for multiline text
  • Introduced SetNext* class API for simpler next drawing widget parametrization
  • Various bug fixes
  • Various widget style and color theme improvements
  • Improved documentation
3 Likes

Great release, so many uses and documentation is easy enough to follow

Sprung some new ideas in the mind

2 Likes

Works nice!! Just what I needed!! Tired of dealing with those pesky UIs :joy:

2 Likes

Amazing work ! Will use for sure

2 Likes

I have created a couple of menus with this now and I noticed resmon going crazy when they are opened, spiking to 1.5 and more. Am I doing something wrong or this is normal?

It is the reality because of exports low performance.
But Cfx team is already working on it, also performance should be enough if you are not trying to recreate Photoshop.

Actively replacing warmenu and NativeUI menus in my server with vein. Great work can’t wait to see more widgets and multi-window support.
BEFORE


AFTER

3 Likes

Can you share the weather implementation as an example? I can then use this to work from?
This is great btw! Will be very handy as I’m learning all this.

Vehicle customization

2 Likes

Nice one, maybe you have some feature requests or general feedback?

1 Like

Thank you, currently VeinUI is very complete I find for what I do.
I would like to know something, is it possible or conceivable to open two menus at the same time?
I modified the code to potentially allow this without risk of bug but I did not succeed personally.

Thanks again for the work done and for the development at VeinUI.

2 Likes

Character Creations

2 Likes

Amazing! Thank you.

1 Like

A vertical scroll for the pane would be amazing. I would like to use this to display tables of data, like a player list in an admin menu, where the number of records can vary widely. Looking at @Arthuro’s example now, it might be interesting to paginate that information, but vertical scroll would still be handy. Keep up the great work.

2 Likes

You can use page navigation based on switching page buttons for now.

2 Likes

Hello, vertical scrolling is a very good idea but since the script uses natives I don’t think it will be possible to implement it.

If he finds a way to do this it will be with buttons to go from bottom to top. Might as well use a page system.

Hello, I will try to implement my page system in vein. Can I send it to you when finished so you can update Vein with the pages?

Hey guuysssss,

Is there a way to make widgets right-aligned?

Although the current system creates the window based on row length and column height (unless I’ve missed something), so I’m not sure how feasible, widget alignment is atm.

Update

  • Project was rewritten to TypeScript
  • Updated version to 1.0.0
  • BREAKING CHANGE: endWindow() now returns position object ({ x: number, y: number })
  • BREAKING CHANGE: slider() now returns result object ({ isValueChanged: boolean, value: number })
  • BREAKING CHANGE: textEdit() now returns result object ({ isTextChanged: boolean, text: string })
  • Introduced setNextWindowNoBackground API
  • Introduced setWindowSkipNextDrawing API (eliminates visual redrawing artifacts in case of widgets layout was drastically changed)
  • Introduced isWidgetHovered API
  • Introduced isWidgetClicked API
  • Introduced a set of preparational changes for future multiple window support
  • Fixed window first draw flickering
  • Minor style improvements
  • Minor performance fixes
  • Minor stability and bug fixes

Lua version is available in branch and no longer maintainable.

Update

Download (ver. 2.0.0)

CSS support

Use setStyleSheet API to customize your windows like never before!
Check README.md for the list of supported selector names and properties.
I also updated the demo project with CSS usage example.

Improved design

Some items were redesigned for better look and feel.