0R NPC Dialog
The Modern NPC Dialog Script allows players to interact dynamically with NPCs in your FiveM server, offering immersive and engaging experiences.
Video Preview
Click to load video from YouTube. By watching, you agree to their privacy policy.
Readme file
---
description: To hide menu use this export: exports[0r-npcdialog]:closeMenu()
---
## Here is a empty npc dialog to help you creating new ones.
```lua
{ -- 1
Ped = {
Enable = true,
coords = Vector4 Coords,
hash = Ped Hash -- Check here https://docs.fivem.net/docs/game-references/ped-models/
},
Blip = { -- https://docs.fivem.net/docs/game-references/blips/
Enable = false, -- to enable make it true
coords = Vector3 Coords,
sprite = Blip Sprite,
color = Blip Color,
scale = Blip Scale,
text = Blip Text
},
Menu = {
Label = Menu Label,
Description = Menu Description,
Icon = fas fa-hands-usd, -- Fınd an icon for your menu from this website https://fontawesome.com/v5/search | You can use Pro Icons too
},
AutoMessage = { -- This is an automatic message system that sends automatic message when you open dialog menu.
Enable = false, -- to enable make it true
AutoMessages = {
{type = question, text = Write your text here.}, -- message type question means it adds a question icon to message
{type = message, text = Write your text here.} -- this is a default message
}
},
Buttons = {
[1] = { -- Button 1 and answers
label = Button Label,
systemAnswer = {enable = true, type = question, text = You accepted heist you want to coordinate plan?},
playerAnswer = {enable = true, text = Yes let's do it!},
maxClick = 2, -- Max click amount after the amount maximize it disables button
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[2] = { -- Button 2 and answers
label = Button Label,
systemAnswer = {enable = true, type = message, text = We need to synchronize our watches and stick to the plan.},
playerAnswer = {enable = true, text = Agreed. Everyone, make sure you know your roles and follow the timeline.},
maxClick = 1, -- Max click amount after the amount maximize it disables button
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[3] = { -- Button 3 and answers
label = Button Label,
systemAnswer = {enable = true, type = message, text = It's time. Let's move in and secure the objective.},
playerAnswer = {enable = true, text = Roger that. Stay focused and don't engage unless absolutely necessary.},
maxClick = 1, -- Max click amount after the amount maximize it disables button
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[4] = { -- Button 4 and answers
label = Button Label,
systemAnswer = {enable = true, type = message, text = The authorities are closing in. We need a clear path for extraction.},
playerAnswer = {enable = false, text = Understood. Head to the rendezvous point, and be ready to move fast.},
maxClick = 1, -- Max click amount after the amount maximize it disables button
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
-- Don't write more than 5 buttons
},
Interaction = {
Target = {
Enable = false, -- to enable make it true
Distance = 2.0,
Label = Target Label,
Icon = fa-solid fa-address-book
},
Text = {
Enable = true, -- to enable make it true
Distance = 3.0,
Label = Text Label
},
DrawText = {
Enable = false, -- to enable make it true
Distance = 3.0,
Show = function()
exports[qb-core]:DrawText([Key Name] Text Label, Menu Position - left, right)
end,
Hide = function()
exports[qb-core]:HideText()
end
}
}
},
```
Config
Config = {
MenuAlign = right, -- left or right
Dialogs = {
{ -- 1
Ped = {
Enable = true,
coords = vector4(-1465.16, -34.56, 55.05, 310.67),
hash = a_m_y_hasjew_01, -- Check here https://docs.fivem.net/docs/game-references/ped-models/
animDict = amb@world_human_hang_out_street@female_arms_crossed@idle_a,
animName = idle_a
},
Blip = { -- https://docs.fivem.net/docs/game-references/blips/
Enable = false,
coords = vector3(-1465.16, -34.56, 55.05),
sprite = 59,
color = 2,
scale = 0.5,
text = Blip Text
},
Menu = {
Label = HEIST MISSION,
Description = SYSTEM,
Icon = fas fa-hands-usd, -- https://fontawesome.com/v5/search | You can use Pro Icons too
},
AutoMessage = { -- This is an automatic message system that sends automatic message when you open dialog menu.
Enable = true,
AutoMessages = {
{type = question, text = Welcome, choose a mission.},
--{type = message, text = This is an automatic message.}
}
},
Buttons = {
[1] = { -- Button 1 and answers
label = Accept Heist,
systemAnswer = {enable = true, type = question, text = You accepted heist you want to coordinate plan?},
playerAnswer = {enable = true, text = Yes let's do it!},
maxClick = 2,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[2] = { -- Button 2 and answers
label = Coordinate Plan,
systemAnswer = {enable = true, type = message, text = We need to synchronize our watches and stick to the plan.},
playerAnswer = {enable = true, text = Agreed. Everyone, make sure you know your roles and follow the timeline.},
maxClick = 1,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[3] = { -- Button 3 and answers
label = Execute Mission,
systemAnswer = {enable = true, type = message, text = It's time. Let's move in and secure the objective.},
playerAnswer = {enable = true, text = Roger that. Stay focused and don't engage unless absolutely necessary.},
maxClick = 1,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[4] = { -- Button 4 and answers
label = Escape Route,
systemAnswer = {enable = true, type = message, text = The authorities are closing in. We need a clear path for extraction.},
playerAnswer = {enable = false, text = Understood. Head to the rendezvous point, and be ready to move fast.},
maxClick = 1,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
-- Don't write more than 5 buttons
},
Interaction = {
Target = {
Enable = false,
Distance = 2.0,
Label = Contact,
Icon = fa-solid fa-address-book
},
Text = {
Enable = false,
Distance = 3.0,
Label = [E] Contact
},
DrawText = {
Enable = true,
Distance = 3.0,
Show = function()
exports[qb-core]:DrawText(Contact, left)
end,
Hide = function()
exports[qb-core]:HideText()
end
}
}
},
{ -- 2
Ped = {
Enable = true,
coords = vector4(-266.53, -972.09, 31.22, 221.37),
hash = a_m_m_soucent_02, -- Check here https://docs.fivem.net/docs/game-references/ped-models/
animDict = amb@world_human_hang_out_street@female_arms_crossed@idle_a,
animName = idle_a
},
Blip = { -- https://docs.fivem.net/docs/game-references/blips/
Enable = false,
coords = vector3(-266.53, -972.09, 31.22),
sprite = 59,
color = 2,
scale = 0.5,
text = Blip Text
},
Menu = {
Label = GOVERNMENT,
Description = MENU,
Icon = fas fa-id-card-alt, -- https://fontawesome.com/v5/search | You can use Pro Icons too
},
AutoMessage = { -- This is an automatic message system that sends automatic message when you open dialog menu.
Enable = true,
AutoMessages = {
{type = question, text = Welcome, choose what you want to do.},
--{type = message, text = This is an automatic message.}
}
},
Buttons = {
[1] = { -- Button 1 and answers
label = Renew ID Card,
systemAnswer = {enable = true, type = question, text = You want to renew your identity card?},
playerAnswer = {enable = true, text = Yes I lost it, I need new one!},
maxClick = 2,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[2] = { -- Button 2 and answers
label = Renew Driver License,
systemAnswer = {enable = true, type = message, text = You want to renew your driver license?},
playerAnswer = {enable = true, text =Yes I lost it, I need new one!},
maxClick = 1,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[3] = { -- Button 3 and answers
label = Buy License,
systemAnswer = {enable = true, type = message, text = You want to buy a weapon license.},
playerAnswer = {enable = true, text = Yes I need to protect myself.},
maxClick = 1,
onClick = function()
-- Write your export or events here
-- exports[GetCurrentResourceName()]:closeMenu()
end
},
[4] = { -- Button 4 and answers
label = Leave Conversation,
systemAnswer = {enable = false, type = message, text = The authorities are closing in. We need a clear path for extraction.},
playerAnswer = {enable = false, text = Understood. Head to the rendezvous point, and be ready to move fast.},
maxClick = 1,
onClick = function()
-- Write your export or events here
exports[GetCurrentResourceName()]:closeMenu()
end
},
-- Don't write more than 5 buttons
},
Interaction = {
Target = {
Enable = false,
Distance = 2.0,
Label = Contact,
Icon = fa-solid fa-address-book
},
Text = {
Enable = false,
Distance = 3.0,
Label = [E] Contact
},
DrawText = {
Enable = true,
Distance = 3.0,
Show = function()
exports[qb-core]:DrawText(Contact, left)
end,
Hide = function()
exports[qb-core]:HideText()
end
}
}
},
}
}





