Loading...

LemonUI: Open Source UI Library 2.1.2

Download

688,096

LemonUI is a framework for creating UI systems in Grand Theft Auto V that is compatible with FiveM, RageMP, RagePluginHook ScriptHookVDotNet 2 and ScriptHookVDotNet 3. It allows you to create UI Elements with a NativeUI-like style, or you can also create your own UI System from scratch via the resolution-independant classes for Text, Rectangles and Textures.

It was created as a replacement for NativeUI due to being too convoluted to develop and maintain. LemonUI retains most (if not all) of the UI Elements available in NativeUI.

Special thanks to:

  • Guad for the original work in NativeUI
  • alloc8or for the help with the GTA Online Loading Screen Scaleform
  • ikt for helping me to use SET_SCRIPT_GFX_ALIGN and SET_SCRIPT_GFX_ALIGN_PARAMS
  • Dot. for the snippet of code used for the item scrolling
  • deterministic_bubble for answering some questions about some missing C# classes in FiveM
  • PNWParksFan for helping me with some RPH question when I was doing the port


Installation Instructions

Warning: You don't need to install all of the files. You only need to install the ones for the framework you plan to use. For example, if you want to install SHVDN mods, you don't need to install the RPH version.

FiveM

You don't need to install any files when using FiveM. When you connect to a server, the resources that need it will automatically provide a copy of LemonUI.

RageMP

You don't need to install any files when using RageMP. When you connect to a server, the resources that need it will automatically provide a copy of LemonUI when compiling the code.

RagePluginHook

Copy all of the files from the RPH folder inside of the compressed file to the root of your GTA V installation directory.

ScriptHookVDotNet 2 and ScriptHookVDotNet 3

PLEASE NOTE THAT THE LAST VERSION THAT SUPPORTED SHVDN2 WAS 1.5.2. You can download it here.

Copy all of the files from the SHVDN2 and/or SHVDN3 folder(s) inside of the compressed file to your scripts directory.

Join the Conversation: https://discord.gg/Cf6sspj
Support my Mods: https://www.patreon.com/lemonchan / https://paypal.me/justalemon
Source Code: https://github.com/LemonUIbyLemon/LemonUI (under MIT License)
Feature Requests & Bug Reports: https://github.com/LemonUIbyLemon/LemonUI/issues
Full Changelog: https://github.com/LemonUIbyLemon/LemonUI/releases

Changelog

2.1.2

- FIX: Clicking an empty area in an empty menu will no longer crash
- FIX: Bruteforce minigame now properly resets the lives when when CanRetry is set to true
- FIX: Made BaseScaleform.Visible overridable, so it's consistant with the rest of the properties with the same name

2.1.1

This release has the same content as 2.1, except that #169 was reverted due to a comment pointed out by @kagikn in #174.

* FIX: NuGet Packages now explicity include the documentation (#173)
* FIX: Menus will no longer hang and crash the game when navigating with only separators (#158)
* FIX: Objective Timer Bars can now properly be set to zero (#168)
* FIX: Changed a typo in the constructor of NativeMenu (#166 #171)
* FIX: Fixed typos in the readme (#172)
* FIX: ScaledAnim properly overides DrawSpecific(PointF, PointF) (#170)
* FIX: FixIndexIfRequired in NativeListItem no longer causes a NativeListItem (#165)
* FIX: NativeCheckboxItem, NativeSeparatorItem, NativeSlidableItem and NativeSubmenuItem now properly handle custom backgrounds (#163)

2.0

- NEW: Added extra package for the Async version of Alt:v (#118)
- NEW: Added Celebration scaleform (#120)
- NEW: Added Countdown scaleform (#121)
- NEW: Checkbox textures can now be customized (#125)
- NEW: NativeListItem and NativeDynamicItem can now be set to null (#131 #137)
- NEW: Added support for ScriptHookVDotNetCore (#101)
- NEW: Moved tools to it's own namespace (#140 #141 #142 #145)
- NEW: Added static property to get the current resolution (#143)
- NEW: Added static property to get the current safe zone size set in the configuration (#146)
- NEW: Separators can now have text and are skipped automatically (#139 #134)
- NEW: Added support for Bink Video (#133 #149)
- NEW: Added animations via Texture Dictionaries (#153 #102)
- NEW: LemonUI.RageMP.cs is now included directly in the NuGet Package (#154)
- FIX: SHVDN3 now uses full debug symbols, restoring the line numbers in stack traces (#132)
- FIX: The hover check now correctly uses the IsHovered property (#147)
- FIX: You can no longer set string properties to null, as this would crash the game when calling natives (#123)
- FIX: You can no longer pass null arguments to BaseScaleform.CallFunction to prevent crashes (#124)
- FIX: Unsafe blocks are now used for the natives that require pointers (#119)
- FIX: Alt:v now uses GetGameTimer instead of MsPerGameMinute, fixing all of the time checks (#151)
- FIX: Time now uses long values to prevent overflows (#152)
- FIX: Added back missing SubtitleFont property in NativeMenu (#155)
- CHORE: Renamed references from absolute to scaled, as they are 1080p scaled resolutions (#144)

1.10

* NEW: Added alt:V support (thanks @itzshahay !)
* NEW: Added function to manually reset the cursor
* FIX: Improved low performance when processing controls (thanks @kagikn !)
* FIX: Disposing the scaleform in RagePluginHook and RageMP now properly uses the pointer value (thanks @kagikn !)
* FIX: Name/Title related properties are no longer ambiguous (Title is now BannerText, Subtitle is now Name, SubtitleBehavior is now HeaderBehavior)

1.9.4

* FIX: Exceptions of the BruteForce scaleform now show the correct information
* FIX: NativeDynamicItem's now correctly update the name of the item

1.9.3

This is the same as 1.9.2, but the artifacts actually work.

* FIX: Added missing README as part of the NuGet packages (#104)
* FIX: Changed FiveM DLL name from LemonUI.FiveM.net.dll to LemonUI.FiveM.dll to fix an issue that causes exports to stop working (#85 #99)
* FIX: Changed the URL of the Repo in the NuGet package (outdated since it was moved to the organization) (#104)
* FIX: You can now hold left or right to continuously navigate NativeSlidableItem's (#76)
* FIX: Closing down the menus will no longer trigger other options like aiming and the cinematic camera (#72)

1.9.2

Invalid release, please check 1.9.3 instead.

1.9.1

* FIX: Fixed CS1032 when trying to use LemonUI.RageMP.cs
* FIX: Fixed regression that made non visible menu items to be drawn on screen (caused by 5ee84937b963746c9c4572f132d6be1569d7c7cb)

1.9

* NEW: Added function to wait until the result of a Scaleform is ready and fetch it (#82)
* NEW: Added alternative PlayFrontend(bool) function to control if the Audio ID should be automatically released (#81)
* NEW: Added function to Stop() a Sound at any time (#81)
* NEW: Added Offset property for the TimerBarCollection
* NEW: Implemented IEnumerable for NativeColorPanel, NativeListItem, NativeMenu, NativeStatsPanel and ObjectPool
* FIX: Rewritten recalculation code for NativeStatsPanel, so it doesn't slides around on aspect ratios other than 16:9
* FIX: The badges will not be recalculated if they are set to the same exact badge
* FIX: Badges are now removed when a BadgeSet is removed
* FIX: RageMP now uses the custom CancelEventHandler and CancelEventArgs due to System.ComponentModel not being available ()
* FIX: Iterators for NativeColorPanel, NativeMenu, ObjectPool and TimerBarCollection now use indexes instead of foreach (#87)
* FIX: Added missing Handle parameter when drawing Scaleforms on RageMP (#91)
* FIX: ScaledText now calls the correct native when drawing the text (#95)
* FIX: The Sound class now properly keeps track of the Audio ID (#81)

1.8

* NEW: The `Process()` and `Recalculate()` functions of `NativeMenu` are now virtual, making them overridable
* NEW: Added `BackgroundColor` and `ForegroundColor` properties to change the colors of the bars used in the `NativeStatsPanel`
* NEW: Added `MenuModified` event to `NativeMenu`s that is triggered when an item is added or removed from a menu
* NEW: Added `SubtitleBehavior` property to `NativeMenu`s to customize the behavior of the subtitle and it's background
* FIX: Fixed "System.InvalidOperationException: Collection was modified; enumeration operation may not execute." when changing the different items of an ObjectPool
* FIX: Hovered items are no longer shown as such if the player has mouse controls disabled
* FIX: The `SelectedItem` property of `NativeListItem` now correctly sets the item index

1.7

* NEW: Added LemonUI.RageMP.cs file for RageMP Developers
* NEW: Added SliderColor property to set the color of a slider item
* NEW: You can now override the Add function in a NativeMenu (useful to perform Item checks before adding them)
* NEW: Added Fade Out for Big Messages via the FadeOut method
* NEW: Added Pop-up Scaleform (used for Warnings)
* NEW: Added IsHovered property to Items to check when the mouse cursor is over them
* FIX: Added missing background when hovering the menu items
* FIX: Setting the Y value in a grid now works correctly
* FIX: Fixed exception when setting a weapon in a Big Message

1.6

**WARNING: This update removes support for ScriptHookVDotNet 2. If you want to keep using LemonUI, please update to ScriptHookVDotNet 3 or continue using version 1.5.2 or older.**

* NEW: Added support for RageMP (requires using the classes manually)
* NEW: Added custom color backgrounds for `NativeItem`s
* NEW: The `DrawFullScreen`, `Draw` and `Process` functions in scaleforms are now virtual
* NEW: You can now get and set the Weapon Hash in a `BigMessage` as a `uint`
* FIX: Slidable Arrows now show the correct color from the `ColorSet` associated to it
* FIX: Added missing native calls for RPH in `NativeMenu`, `BaseScaleform`, `InstructionalButtons` and `TimerBarCollection`
* DEP: Removed support for ScriptHookVDotNet 2

1.5.2

* FIX: The documentation of the Alignment enum is now grammatically correct
* FIX: Descriptions are now correctly updated when the item is hovered
* FIX: `NativeSubmenuItem.Description` now gets correctly updated when the `NativeMenu.Description` is changed
* OBS: The `BaseScaleform.scaleform` field is now obsolete and it will throw an error when trying to use it
Show Full Description

First Uploaded: August 04, 2020
Last Updated: July 11, 2024
Last Downloaded: 1 minute ago

All Versions

 2.1.2 (current)

82,339 downloads , 1.3 MB
July 11, 2024

 2.1.1

35,618 downloads , 1.3 MB
May 25, 2024

 2.0

98,375 downloads , 1.3 MB
December 22, 2023

 1.10

49,767 downloads , 800 KB
September 19, 2023

 1.9.4

90,145 downloads , 612 KB
March 27, 2023

 1.9.3

16,383 downloads , 609 KB
February 21, 2023

 1.9.1

46,318 downloads , 601 KB
October 31, 2022

 1.9

4,050 downloads , 601 KB
October 25, 2022

 1.8

49,985 downloads , 597 KB
June 25, 2022

 1.7

29,968 downloads , 384 KB
March 25, 2022

 1.6

33,312 downloads , 341 KB
December 25, 2021

 1.5.2 (Last SHVDN2 version)

75,237 downloads , 324 KB
December 04, 2021

 1.5.1

35,529 downloads , 317 KB
September 05, 2021

 1.5

5,050 downloads , 317 KB
August 29, 2021

 1.4

17,244 downloads , 283 KB
April 23, 2021

 1.3

3,730 downloads , 208 KB
March 26, 2021

 1.2

7,960 downloads , 207 KB
November 14, 2020

 1.1.1

797 downloads , 193 KB
November 10, 2020

 1.1

2,695 downloads , 193 KB
October 04, 2020

 1.0

3,641 downloads , 166 KB
August 04, 2020

391 Comments