❤️ Become a Sponsor of my Open Source Work
⌨️ Learn how to script for alt:V
💡 Need a Roleplay Script? Try Athena!
⭐ This repository if you found it useful!
This allows you to create a simple context menu for players to utilize. Which means they can hold left alt
and right-click
on objects to select different objects based on their models. Which is great for creating in-depth options for players to utilize.
I cannot stress this enough. Ensure you have NodeJS 13+ or you will have problems.
- NodeJS 13+
- An Existing or New Gamemode
- General Scripting Knowledge
After simply add the name of this resource to your server.cfg
resource section.
altv-os-context-menu
Then simply clone this repository into your main server resources folder.
cd resources
git clone https://github.com/Stuyk/altv-os-context-menu
Ensure your package.json
includes this property:
"type": "module"
All menus must be created on client-side. They only need to be initialized once. They are attached to an identifier and an entity id.
Go in-game. Hold alt
and right-click
on any object.
Open your console with F8
then look at the model number for the object.
alt.emit('context:CreateMenu')
Argument | Description |
---|---|
model |
The model of the model you wish to append options to. |
title |
The name of the menu. |
alt.on('context:Ready', () => {
alt.emit('context:CreateMenu', 1329570871, 'Trash Can');
});
All menus have an identifier. Use the identifier to apply options to a menu.
alt.emit('context:CreateMenu')
Argument | Description |
---|---|
model |
The model of the model you wish to append options to. |
contextOptionName |
The name of the option you are appending. |
eventCallbackName |
The event to call when the option is selected. Comes through alt.emit or alt.onClient |
isServer |
If true. Then the callbackName event will come through alt.onClient . Otherwise alt.emit |
alt.on('context:Ready', () => {
alt.emit('context:CreateMenu', 1329570871, 'Trash Can');
alt.emit('context:AppendToMenu', 1329570871, 'Look in Trash', 'trashcan:Look', false);
alt.emit('context:AppendToMenu', 1329570871, 'Dig in Trash', 'trashcan:Dig', true);
});
alt.on('trashcan:Look', data => {
alt.log(JSON.stringify(data));
});
alt.onClient('trashcan:Dig', (player, data) => {
console.log(data);
alt.log(`${player.name} has dug in the trash. What an animal!`);
});