Skip to content
oyuhPublic
forked from TomGrobbe/vMenu

About

A ground-up rewrite of TomGrobbe's vMenu in pure CfxLua (Lua 5.4), built as a drop-in replacement for the original C# resource. Same resource name, same config, same permissions, same player saves. No .NET runtime needed.

Resources

Stars

2 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

lua-vMenu (stable)

This branch is a Lua port of vMenu Enhanced, Tom Grobbe's rewrite of vMenu. It aims to be a drop-in for the C# build, with the same folder name, permissions, settings, player saves and plugins. Unlike upstream, it runs on both FiveM Legacy and FiveM Enhanced.

The port is in progress and not ready for a live server yet. For the classic vMenu in Lua, use the original branch, which is finished and tracks upstream's legacy branch.

Credits

License

vMenu Enhanced is GPL-3.0-or-later, so this port is too. If you hand a modified copy to anyone, you have to give them the source. Files copied from MenuAPI keep their LGPL-3.0-or-later license. LICENSE.md has the full text.

Progress

The port follows the phases in docs/BRANCH-PLAN.md:

  1. Branch setup: done
  2. Foundation (platform layer, settings, permissions, example files, storage): done
  3. Menu engine (MenuAPI 4 on its NUI page, the menu framework, themes, languages, notifications): done
  4. Plugins (both halves of upstream's plugin protocol, standalone menus, menu priority and locks, plugin themes): done in code, waiting for in-game testing. The Plugin Actions menu comes with Online Players in phase 4.
  5. Menus, wave 1
  6. Menus, wave 2
  7. Server extras (webhooks, update checker, integrations)
  8. Parity and stable-v1.0.0

Install

Builds aren't published yet. Once they are, each stable-v* release ships a zip that extracts as one vMenu.Enhanced folder. Keep that name, because the resource refuses to start under any other. Then add these lines to your server.cfg, in this order:

add_filesystem_permission vMenu.Enhanced write vMenu.Enhanced
ensure vMenu.Enhanced

FiveM Enhanced needs the first line before vMenu can write its example config files. FiveM Legacy already lets a resource write to its own folder, so the line is harmless there.

Development

The code is Lua 5.4. Tests run on busted with the FiveM natives mocked, so you don't need a game server. Lint with luacheck and format with StyLua:

busted
luacheck .
stylua --check .

To test plugins by hand, link tools/test-plugin into a test server's resources as vMenu.TestPlugin and ensure it after vMenu.Enhanced. It uses every part of upstream's Lua plugin API, one submenu per area. The release zip doesn't include it.

docs/UPSTREAM.md explains how this branch follows upstream's enhanced releases.

About

A ground-up rewrite of TomGrobbe's vMenu in pure CfxLua (Lua 5.4), built as a drop-in replacement for the original C# resource. Same resource name, same config, same permissions, same player saves. No .NET runtime needed.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages