Plugins
The official vMenu Enhanced plugins, and the example plugin to copy when you write your own.
A plugin is a separate FiveM resource that adds its own menus inside vMenu. vMenu never has to know a plugin exists beforehand: the two introduce themselves to each other while the server runs, in whatever order they happen to start.
Official plugins
Made and kept up to date alongside vMenu itself. Each one is ready to install, and each is also worth reading as an example of how a plugin is put together.
| Plugin | What it does |
|---|---|
| Theme Picker | Lets every player pick the theme they see, instead of the one the server picked. |
| Routing Buckets | Manage routing buckets, the separate worlds FiveM can split a server into. |
| Example Plugin | A working plugin written once per language. Use it as a template. |
There is also a Custom Themes plugin for adding themes beyond the four vMenu ships with.
Writing your own
Two NuGet packages are all you need for a C# plugin:
| Package | Used by |
|---|---|
vMenu.Enhanced.ClientAPI | Your plugin's client script, to declare its menus. |
vMenu.Enhanced.ServerAPI | Your plugin's server script, to declare its permissions and settings. |
Both bring vMenu.Enhanced.PluginContracts
along with them. That one is the shared protocol between vMenu and a plugin, and is not something you
reference yourself. Every package is published alongside the vMenu Enhanced release it belongs to
and carries that release's version number, so pin them to the vMenu version your server actually runs.
There are equivalent APIs for Lua, JavaScript and TypeScript. See the plugin docs for the full picture, and the example plugin for a complete working implementation in each language.
License
A plugin built on these packages is a work based on vMenu, so it has to be licensed GPL-3.0 or AGPL-3.0, just like vMenu is GPL. That means open sourcing it if you hand it to anybody else, free or paid.