124 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # MenuV | Standalone Menu for FiveM | NUI Menu
 | |
| [](https://github.com/ThymonA/menuv)
 | |
| 
 | |
| [](https://github.com/ThymonA/menuv/issues)
 | |
| [](https://github.com/ThymonA/menuv/blob/master/LICENSE)
 | |
| [](https://github.com/ThymonA/menuv)
 | |
| [](https://github.com/ThymonA/menuv)
 | |
| [](https://discordapp.com/users/733686533873467463)
 | |
| 
 | |
| ---
 | |
| 
 | |
| **[MenuV](https://github.com/ThymonA/menuv)** is a library written for **[FiveM](https://fivem.net/)** and only uses NUI functionalities. This library allows you to create menus in **[FiveM](https://fivem.net/)**. This project is open-source and you must respect the [license](https://github.com/ThymonA/menuv/blob/master/LICENSE) and the hard work.
 | |
| 
 | |
| ## Features
 | |
| - Support for simple buttons, sliders, checkboxes, lists and confirms
 | |
| - Support for emojis on items
 | |
| - Support for custom colors (RGB)
 | |
| - Support for all screen resolutions.
 | |
| - Item descriptions
 | |
| - Rebindable keys
 | |
| - Event-based callbacks
 | |
| - Uses `2 msec` while menu open and idle.
 | |
| - Documentation on [menuv.fivem.io/api/](https://menuv.fivem.io/api/)
 | |
| - Themes: **[default](https://i.imgur.com/KSkeiQm.png)** or **[native](https://i.imgur.com/KSkeiQm.png)**
 | |
| 
 | |
| ## Compile files
 | |
| **[MenuV](https://github.com/ThymonA/menuv)** uses **[VueJS](https://vuejs.org/v2/guide/installation.html#NPM)** and **[TypeScript](https://www.npmjs.com/package/typescript)** with **[NodeJS](https://nodejs.org/en/)**. If you want to use the **`master`** files, you need to build the hole project by doing:
 | |
| 
 | |
| ```sh
 | |
| npm install
 | |
| ```
 | |
| After you have downloaded/loaded all dependencies, you can build **[MenuV](https://github.com/ThymonA/menuv)** files by executing the following command:
 | |
| ```sh
 | |
| npm run build
 | |
| ```
 | |
| 
 | |
| After the command is executed you will see a `build` folder containing all the resource files.
 | |
| Copy those files to a resource folder called `menuv` or create a symbolic link like that:
 | |
| 
 | |
| ### Windows
 | |
| 
 | |
| ```batch
 | |
| mklink /J "repositoryPath\build" "fxResourcesPath\menuv"
 | |
| ```
 | |
| 
 | |
| ### Linux
 | |
| 
 | |
| ```sh
 | |
| ln -s "repositoryPath\build" "fxResourcesPath\menuv"
 | |
| ```
 | |
| 
 | |
| You can also check this tutorial on how to make a link:
 | |
| [https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/](https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/)
 | |
| 
 | |
| **When your downloading a [release](https://github.com/ThymonA/menuv/releases), you don't have to follow this step, because all [release](https://github.com/ThymonA/menuv/releases) version are build version.**
 | |
| 
 | |
| ## How to use?
 | |
| > ⚠️ **example.lua** can't be added in the **menuv** fxmanifest, you must make an seperate resource like: **[menuv_example](https://github.com/ThymonA/menuv/tree/master/example)**
 | |
| 1. Add `start menuv` to your **server.cfg** before the resources that's uses **menuv**
 | |
| 2. To use **[MenuV](https://github.com/ThymonA/menuv)** you must add **@menuv/menuv.lua** in your **fxmanifest.lua** file.
 | |
| 
 | |
| ```lua
 | |
| client_scripts {
 | |
|     '@menuv/menuv.lua',
 | |
|     'example.lua'
 | |
| }
 | |
| ```
 | |
| 
 | |
| ### Create a menu
 | |
| Create a menu by calling the **MenuV:CreateMenu** function.
 | |
| ```ts
 | |
| MenuV:CreateMenu(title: string, subtitle: string, position: string, red: number, green: number, blue: number, texture: string, disctionary: string, namespace: string, theme: string)
 | |
| ```
 | |
| **Example:**
 | |
| ```lua
 | |
| local menu = MenuV:CreateMenu('MenuV', 'Welcome to MenuV', 'topleft', 255, 0, 0, 'size-125', 'default', 'menuv', 'example_namespace', 'native')
 | |
| ```
 | |
| 
 | |
| ### Create menu items
 | |
| Create a item by calling **AddButton**, **AddConfirm**, **AddRange**, **AddCheckbox** or **AddSlider** in the created menu
 | |
| ```ts
 | |
| /** CREATE A BUTTON */
 | |
| menu:AddButton({ icon: string, label: string, description: string, value: any, disabled: boolean });
 | |
| 
 | |
| /** CREATE A CONFIRM */
 | |
| menu:AddConfirm({ icon: string, label: string, description: string, value: boolean, disabled: boolean });
 | |
| 
 | |
| /** CREATE A RANGE */
 | |
| menu:AddRange({ icon: string, label: string, description: string, value: number, min: number, max: number, disabled: boolean });
 | |
| 
 | |
| /** CREATE A CHECKBOX */
 | |
| menu:AddCheckbox({ icon: string, label: string, description: string, value: boolean, disabled: boolean });
 | |
| 
 | |
| /** CREATE A SLIDER */
 | |
| menu:AddSlider({ icon: string, label: string, description: string, value: number, values: [] { label: string, value: any, description: string }, disabled: boolean });
 | |
| ```
 | |
| To see example in practice, see [example.lua](https://github.com/ThymonA/menuv/blob/master/example/example.lua)
 | |
| 
 | |
| ### Events
 | |
| In **[MenuV](https://github.com/ThymonA/menuv)** you can register event-based callbacks on menu and/or items.
 | |
| ```ts
 | |
| /** REGISTER A EVENT ON MENU */
 | |
| menu:On(event: string, callback: function);
 | |
| 
 | |
| /** REGISTER A EVENT ON ANY ITEM */
 | |
| item:On(event: string, callback: function);
 | |
| ```
 | |
| 
 | |
| ## Documentation
 | |
| Read **[MenuV documentation](https://menuv.fivem.io/api/)**
 | |
| 
 | |
| ## License
 | |
| Project is written by **[ThymonA](https://github.com/ThymonA/)** and published under
 | |
| **GNU General Public License v3.0**
 | |
| [Read License](https://github.com/ThymonA/menuv/blob/master/LICENSE)
 | |
| 
 | |
| ## Screenshot
 | |
| **How is this menu made?** see **[example.lua](https://github.com/ThymonA/menuv/blob/master/example/example.lua)**
 | |
| 
 | |
| 
 | |
| Default | Native
 | |
| :-------|:--------
 | |
|  | 
 | |
| [Default Theme](https://i.imgur.com/xGagIBm.png) | [Native Theme](https://i.imgur.com/KSkeiQm.png)
 | 
