LemonUI: Open Source UI Library 2.1.2


610 048

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.


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.


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.


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


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



- 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


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)


- 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)


* 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)


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


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)


Invalid release, please check 1.9.3 instead.


* 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)


* 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)


* 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


* 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


**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


* 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

Először Feltöltve: 2020. augusztus 4.
Utoljára Feltöltve: 2024. július 11.
Utoljára Letöltött: 1 perce

All Versions

 2.1.2 (current)

11 379 letöltés , 1 MB
2024. július 11.


35 169 letöltés , 1 MB
2024. május 25.


97 860 letöltés , 1 MB
2023. december 22.


49 603 letöltés , 800 KB
2023. szeptember 19.


89 951 letöltés , 600 KB
2023. március 27.


16 299 letöltés , 600 KB
2023. február 21.


46 043 letöltés , 600 KB
2022. október 31.


3 993 letöltés , 600 KB
2022. október 25.


49 806 letöltés , 600 KB
2022. június 25.


29 918 letöltés , 400 KB
2022. március 25.


33 235 letöltés , 300 KB
2021. december 25.

 1.5.2 (Last SHVDN2 version)

70 800 letöltés , 300 KB
2021. december 4.


35 367 letöltés , 300 KB
2021. szeptember 5.


4 901 letöltés , 300 KB
2021. augusztus 29.


17 207 letöltés , 300 KB
2021. április 23.


3 702 letöltés , 200 KB
2021. március 26.


7 931 letöltés , 200 KB
2020. november 14.


781 letöltés , 200 KB
2020. november 10.


2 666 letöltés , 200 KB
2020. október 4.


3 484 letöltés , 200 KB
2020. augusztus 4.

372 Hozzászólás