Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
Messages
172
Reactions
3
Credits
49,546
Joined
Dec 2022
Messages
15
Reactions
0
Credits
12
Joined
May 2024
Drag and Drop QBCOre , SQL Inside File . Also can set keybinds by commands .
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
Striker9090,
wrote:
hi, number of resources ?
i have put most of np base resources but you can use with only 3 to 4 , I think
Messages
148
Reactions
0
Credits
1,375
Joined
Feb 2021
Messages
108
Reactions
0
Credits
19,394
Joined
Apr 2023
Asnt73,
wrote:
[MEDIA=imgur]3JrtgHT[/MEDIA]
[MEDIA=imgur]p8xI5oO[/MEDIA]
https://streamable.com/dod7nd
-=Stripped Content=-
Drag and Drop QBCOre , SQ...
[MEDIA=imgur]p8xI5oO[/MEDIA]
https://streamable.com/dod7nd
-=Stripped Content=-
Drag and Drop QBCOre , SQ...
quick emotes is not working
Messages
108
Reactions
0
Credits
19,394
Joined
Apr 2023
if you stuck with placed emotes use this code
RegisterCommand("emotemenu", function(source)
TriggerEvent("emotes:OpenMenu")
end)
RegisterCommand("emtc", function(source)
ExecuteCommand("e c")
end)
Citizen.CreateThread(function()
TriggerEvent('chat:addSuggestion', '/emtt', 'Open emote menu', {})
TriggerEvent('chat:addSuggestion', '/emtc', 'Cancel current emote', {})
end)
RegisterKeyMapping("emotemenu", "Open emote menu", "keyboard", 'f5')
RegisterKeyMapping("emtc", "Cancel current emote", "keyboard", 'x')
RegisterCommand("emotemenu", function(source)
TriggerEvent("emotes:OpenMenu")
end)
RegisterCommand("emtc", function(source)
ExecuteCommand("e c")
end)
Citizen.CreateThread(function()
TriggerEvent('chat:addSuggestion', '/emtt', 'Open emote menu', {})
TriggerEvent('chat:addSuggestion', '/emtc', 'Cancel current emote', {})
end)
RegisterKeyMapping("emotemenu", "Open emote menu", "keyboard", 'f5')
RegisterKeyMapping("emtc", "Cancel current emote", "keyboard", 'x')
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
i am using "
QBCore:Server:OnPlayerLoaded" to check if emotes available withing citizenid of QBCore , so make sure you have this trigger in qb-spawn or multicharacter
see in qb-spawn
RegisterNUICallback('chooseAppa', function(data, cb)
TriggerServerEvent('QBCore:Server:OnPlayerLoaded') --- This one
end)
in multicharacter
RegisterNetEvent('qb-multicharacter:client:closeNUIdefault', function() -- This event is only for no starting apartments
TriggerServerEvent('QBCore:Server:OnPlayerLoaded') ---- Like this
end)
Just Example you can use this trigger in client side of you spawn and multicharacter script or anyother as you like
so it will create the quick emotes for you if not You can set manually
Usage: /setQuickEmote [keybinds] [category] [index] [value] , you need to set correct index EG: /setQuickEmote 0 emotes 1 kneel . like this[/value][/index][/category][/keybinds]
QBCore:Server:OnPlayerLoaded" to check if emotes available withing citizenid of QBCore , so make sure you have this trigger in qb-spawn or multicharacter
see in qb-spawn
RegisterNUICallback('chooseAppa', function(data, cb)
TriggerServerEvent('QBCore:Server:OnPlayerLoaded') --- This one
end)
in multicharacter
RegisterNetEvent('qb-multicharacter:client:closeNUIdefault', function() -- This event is only for no starting apartments
TriggerServerEvent('QBCore:Server:OnPlayerLoaded') ---- Like this
end)
Just Example you can use this trigger in client side of you spawn and multicharacter script or anyother as you like
so it will create the quick emotes for you if not You can set manually
Usage: /setQuickEmote [keybinds] [category] [index] [value] , you need to set correct index EG: /setQuickEmote 0 emotes 1 kneel . like this[/value][/index][/category][/keybinds]
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
bboy41,
wrote:
if you stuck with placed emotes use this code
RegisterCommand("emotemenu", function(source)
TriggerEvent("emotes:OpenMenu")
end)
...
RegisterCommand("emotemenu", function(source)
TriggerEvent("emotes:OpenMenu")
end)
...
there is already delete key mapped to stop emotes in client side you can do through that too
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
dafkeduck,
wrote:
what radialmenu do you use?
qb-radialmenu , I am not sure from where but i did edit Css and some exports myself to make it work
Messages
108
Reactions
0
Credits
19,394
Joined
Apr 2023
Asnt73,
wrote:
Quick Update As emotes were not quick sync
change Previous
NPX.Procedures.register("emotes:setQuickEmote", function (pSrc, { _0x3b923e: key...
change Previous
NPX.Procedures.register("emotes:setQuickEmote", function (pSrc, { _0x3b923e: key...
can you help me about it i dont understand how i do[/characterid][/value][/characterid]
Messages
108
Reactions
0
Credits
19,394
Joined
Apr 2023
Asnt73,
wrote:
i am using "
QBCore:Server:OnPlayerLoaded" to check if emotes available withing citizenid of QBCore , so make sure you have this trigger in ...
QBCore:Server:OnPlayerLoaded" to check if emotes available withing citizenid of QBCore , so make sure you have this trigger in ...
im not using qb-spawn and multi char im using izzy spawn and multichar maybe you can help me about it[/value][/index][/category][/keybinds]
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
another update for quickemote to work for all section replace
cl_main.Js
// Mock function to simulate loading the clip set
function loadClipSet(clipSet) {
return new Promise(resolve => {
// console.log(`Loading clip set: ${clipSet}`);
setTimeout(resolve, 1000); // Simulate async loading
});
}
// Function to set pedestrian walking style
function setPedWalkingStyle(playerPed, walkingStyle) {
loadClipSet(walkingStyle).then(() => {
SetPedMovementClipset(playerPed, walkingStyle, 0.2);
});
}
function playEmote(emote, category, index) {
// console.log('Playing emote:', emote);
if (category === 'emotes') {
const command = `e ${emote}`;
ExecuteCommand(command);
} else if (category === 'expressions') {
const playerPedId = PlayerPedId();
SetFacialIdleAnimOverride(playerPedId, emote);
} else if (category === 'walks') {
const playerPedId = PlayerPedId();
setPedWalkingStyle(playerPedId, emote);
} else if (category === 'placed') {
_0x137c20(0, [emote]);
} else if (category === 'dances') {
_0x36d7c7(index);
} else if (category === 'synced') {
_0x658340(0, [emote]);
} else {
console.log('Unknown category:', category);
}
}
// Register key mappings for quick emotes (using Numpad 0 to 6)
for (let i = 0; i {
// Check if SHIFT key is pressed
if (IsControlPressed(0, 21)) { // 21 is the control ID for SHIFT
NPX.Procedures.execute('emotes:triggerQuickEmote', i.toString());
}
}, false);
}
// Event handler to play the emote
onNet('emotes:playEmote', (emote, category , index) => {
console.log(`Playing emote: ${emote} from category: ${category}, index: ${index}`);
playEmote(emote , category , index);
});
// Register key mapping for 'Delete' key
RegisterKeyMapping('quickEmoteDelete', 'Trigger Quick Emote Delete', 'keyboard', 'DELETE');
// Command to trigger the quick emote for 'Delete' key
RegisterCommand('quickEmoteDelete', () => {
ExecuteCommand('e c');
}, false);
// Register command to get quick emotes
RegisterCommand('getQuickEmotes', () => {
NPX.Procedures.execute('emotes:getQuickEmotes');
}, false);
// Event handler for receiving quick emotes from the server
onNet('emotes:sendQuickEmotes', (quickEmotes) => {
console.log('Quick Emotes:', quickEmotes);
});
// Register command to set a quick emote with keybinds, category, index, and value
RegisterCommand('setQuickEmote', (source, args) => {
if (args.length 0) {
exports["oxmysql"].execute("UPDATE player_quick_emotes SET pQuickEmote = ?, emote_index = ?, category = ? WHERE id = ?", [value, index, category, result[0].id], function () {
// console.log(`Updated quick emote entry: Keybinds - ${keybinds}, Category - ${category}, Index - ${index}, Value - ${value}`);
});
} else {
exports["oxmysql"].execute("INSERT INTO player_quick_emotes (player_id, keybinds, category, emote_index, pQuickEmote) VALUES (?, ?, ?, ?, ?)", [characterId, keybinds, category, index, value], function () {
// console.log(`Inserted new quick emote entry: Keybinds - ${keybinds}, Category - ${category}, Index - ${index}, Value - ${value}`);
});
}
});
return true;
});
NPX.Procedures.register("emotes:getQuickEmotes", function (pSrc) {
let user = QBCore.Functions.GetPlayer(pSrc);
let characterId = user.PlayerData.citizenid;
if (!characterId) return null;
return new Promise((resolve, reject) => {
exports["oxmysql"].execute("SELECT * FROM player_quick_emotes WHERE player_id = ?", [characterId], function (result) {
if (result && result.length > 0) {
let quickEmotesData = result.map(row => ({
keybinds:row.keybinds,
category: row.category,
index: row.emote_index,
value: row.pQuickEmote
}));
TriggerClientEvent('emotes:sendQuickEmotes', pSrc, quickEmotesData);
resolve(quickEmotesData);
} else {
TriggerClientEvent('emotes:sendQuickEmotes', pSrc, []);
resolve([]);
}
});
});
});
NPX.Procedures.register("emotes:triggerQuickEmote", function (pSrc, index) {
let user = QBCore.Functions.GetPlayer(pSrc);
let characterId = user.PlayerData.citizenid;
if (!characterId) return null;
exports["oxmysql"].execute("SELECT pQuickEmote, category, emote_index FROM player_quick_emotes WHERE player_id = ? AND keybinds = ?", [characterId, index], function (result) {
if (result && result.length > 0) {
TriggerClientEvent('emotes:playEmote', pSrc, result[0].pQuickEmote, result[0].category, result[0].emote_index);
}
});
});[/characterid][/characterid][/characterid][/value][/characterid][/value][/index][/category][/keybinds][/emote][/emote]
cl_main.Js
add or replace
// Mock function to simulate loading the clip set
function loadClipSet(clipSet) {
return new Promise(resolve => {
// console.log(`Loading clip set: ${clipSet}`);
setTimeout(resolve, 1000); // Simulate async loading
});
}
// Function to set pedestrian walking style
function setPedWalkingStyle(playerPed, walkingStyle) {
loadClipSet(walkingStyle).then(() => {
SetPedMovementClipset(playerPed, walkingStyle, 0.2);
});
}
function playEmote(emote, category, index) {
// console.log('Playing emote:', emote);
if (category === 'emotes') {
const command = `e ${emote}`;
ExecuteCommand(command);
} else if (category === 'expressions') {
const playerPedId = PlayerPedId();
SetFacialIdleAnimOverride(playerPedId, emote);
} else if (category === 'walks') {
const playerPedId = PlayerPedId();
setPedWalkingStyle(playerPedId, emote);
} else if (category === 'placed') {
_0x137c20(0, [emote]);
} else if (category === 'dances') {
_0x36d7c7(index);
} else if (category === 'synced') {
_0x658340(0, [emote]);
} else {
console.log('Unknown category:', category);
}
}
// Register key mappings for quick emotes (using Numpad 0 to 6)
for (let i = 0; i {
// Check if SHIFT key is pressed
if (IsControlPressed(0, 21)) { // 21 is the control ID for SHIFT
NPX.Procedures.execute('emotes:triggerQuickEmote', i.toString());
}
}, false);
}
// Event handler to play the emote
onNet('emotes:playEmote', (emote, category , index) => {
console.log(`Playing emote: ${emote} from category: ${category}, index: ${index}`);
playEmote(emote , category , index);
});
// Register key mapping for 'Delete' key
RegisterKeyMapping('quickEmoteDelete', 'Trigger Quick Emote Delete', 'keyboard', 'DELETE');
// Command to trigger the quick emote for 'Delete' key
RegisterCommand('quickEmoteDelete', () => {
ExecuteCommand('e c');
}, false);
// Register command to get quick emotes
RegisterCommand('getQuickEmotes', () => {
NPX.Procedures.execute('emotes:getQuickEmotes');
}, false);
// Event handler for receiving quick emotes from the server
onNet('emotes:sendQuickEmotes', (quickEmotes) => {
console.log('Quick Emotes:', quickEmotes);
});
// Register command to set a quick emote with keybinds, category, index, and value
RegisterCommand('setQuickEmote', (source, args) => {
if (args.length 0) {
exports["oxmysql"].execute("UPDATE player_quick_emotes SET pQuickEmote = ?, emote_index = ?, category = ? WHERE id = ?", [value, index, category, result[0].id], function () {
// console.log(`Updated quick emote entry: Keybinds - ${keybinds}, Category - ${category}, Index - ${index}, Value - ${value}`);
});
} else {
exports["oxmysql"].execute("INSERT INTO player_quick_emotes (player_id, keybinds, category, emote_index, pQuickEmote) VALUES (?, ?, ?, ?, ?)", [characterId, keybinds, category, index, value], function () {
// console.log(`Inserted new quick emote entry: Keybinds - ${keybinds}, Category - ${category}, Index - ${index}, Value - ${value}`);
});
}
});
return true;
});
NPX.Procedures.register("emotes:getQuickEmotes", function (pSrc) {
let user = QBCore.Functions.GetPlayer(pSrc);
let characterId = user.PlayerData.citizenid;
if (!characterId) return null;
return new Promise((resolve, reject) => {
exports["oxmysql"].execute("SELECT * FROM player_quick_emotes WHERE player_id = ?", [characterId], function (result) {
if (result && result.length > 0) {
let quickEmotesData = result.map(row => ({
keybinds:row.keybinds,
category: row.category,
index: row.emote_index,
value: row.pQuickEmote
}));
TriggerClientEvent('emotes:sendQuickEmotes', pSrc, quickEmotesData);
resolve(quickEmotesData);
} else {
TriggerClientEvent('emotes:sendQuickEmotes', pSrc, []);
resolve([]);
}
});
});
});
NPX.Procedures.register("emotes:triggerQuickEmote", function (pSrc, index) {
let user = QBCore.Functions.GetPlayer(pSrc);
let characterId = user.PlayerData.citizenid;
if (!characterId) return null;
exports["oxmysql"].execute("SELECT pQuickEmote, category, emote_index FROM player_quick_emotes WHERE player_id = ? AND keybinds = ?", [characterId, index], function (result) {
if (result && result.length > 0) {
TriggerClientEvent('emotes:playEmote', pSrc, result[0].pQuickEmote, result[0].category, result[0].emote_index);
}
});
});[/characterid][/characterid][/characterid][/value][/characterid][/value][/index][/category][/keybinds][/emote][/emote]
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
bboy41,
wrote:
im not using qb-spawn and multi char im using izzy spawn and multichar maybe you can help me about it
-- Register event to ensure default emotes when a player is loaded using QBCore
RegisterNetEvent('QBCore:Server:OnPlayerLoaded')
AddEventHandler('QBCore:Server:OnPlayerLoaded', function()
local player = QBCore.Functions.GetPlayer(source)
local characterId = player.PlayerData.citizenid
ensureDefaultEmotes(characterId)
end)
Here you can use your on script server event to check player load with citizenid then it will work fine or , i will look into it after add config so it will be easier
Messages
15
Reactions
0
Credits
721
Joined
Apr 2024
Asnt73,
wrote:
there is already delete key mapped to stop emotes in client side you can do through that too
how to fix stuck with placed emotes
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
hunny0260,
wrote:
how to fix stuck with placed emotes
press delete key or /e c in command or in console
or goto fivem key binding and change key as per you need
Messages
29
Reactions
0
Credits
694
Joined
Jul 2022
Asnt73,
wrote:
press delete key or /e c in command or in console
or goto fivem key binding and change key as per you need
or goto fivem key binding and change key as per you need
it was working at start but once i did the things u asked me to do it stopped working can u just update the link with the fixed version u made?
Messages
29
Reactions
0
Credits
694
Joined
Jul 2022
Messages
29
Reactions
0
Credits
694
Joined
Jul 2022
Messages
88
Reactions
1
Credits
450
Joined
Aug 2022
sanmeetsingh,
wrote:
can u also send me your ensure list aswell?
ensure np-db
ensure npx
ensure np-lib
ensure np-locales
ensure np-ui
ensure np-polyzone
ensure np-polytarget
ensure np-keybinds
ensure interactions
ensure isPed
ensure [np-emote][/np]
Messages
102
Reactions
2
Credits
183
Joined
May 2021