[PREVIEW]
Okok Talk to NPC
[How it works]
Informations:
The camera is automatically positioned and rotated according to the NPC’s position and rotation (basically you just need to set the NPC’s coordinate and heading);You can set up to 6 options/actions (it is possible and easy to add more if you want, just send me a message);The okokTextUI script can be disabled by simply setting Config.OkokTextUI = false on the config file;The animation time can be easily changed on the config file;The minimap is hidden by default when interacting with an NPC (possible to disable it on the config file).
In the config file you are able to set:
The NPC you want to spawn;The NPC name (that appears on the top of the interface);The NPC’s dialog message;The NPC coordinates and rotation;The interaction range (how close you have to be to interact with them);The options displayed on the interface and which event they trigger;The jobs allowed to interact with the NPC (possible to have no jobs, just leave it empty).
[Optimization]
This script is fully optimized.
Tested with 350 NPC’s:
Idle: 0.03-0.04ms;Near an NPC: 0.07 - 0.12ms.
Obviously you won’t have 350 NPC’s in your server, so the values will be lower.
[Config]
Okok Talk to NPC
[How it works]
Informations:
The camera is automatically positioned and rotated according to the NPC’s position and rotation (basically you just need to set the NPC’s coordinate and heading);You can set up to 6 options/actions (it is possible and easy to add more if you want, just send me a message);The okokTextUI script can be disabled by simply setting Config.OkokTextUI = false on the config file;The animation time can be easily changed on the config file;The minimap is hidden by default when interacting with an NPC (possible to disable it on the config file).
In the config file you are able to set:
The NPC you want to spawn;The NPC name (that appears on the top of the interface);The NPC’s dialog message;The NPC coordinates and rotation;The interaction range (how close you have to be to interact with them);The options displayed on the interface and which event they trigger;The jobs allowed to interact with the NPC (possible to have no jobs, just leave it empty).
[Optimization]
This script is fully optimized.
Tested with 350 NPC’s:
Idle: 0.03-0.04ms;Near an NPC: 0.07 - 0.12ms.
Obviously you won’t have 350 NPC’s in your server, so the values will be lower.
[Config]
XML:
Config.Key = 38 -- [E] Key to open the interaction, check here the keys ID: https://docs.fivem.net/docs/game-references/controls/#controls Config.AutoCamPosition = true -- If true it'll set the camera position automatically Config.AutoCamRotation = true -- If true it'll set the camera rotation automatically Config.HideMinimap = true -- If true it'll hide the minimap when interacting with an NPC Config.UseOkokTextUI = true -- If true it'll use okokTextUI Config.CameraAnimationTime = 1000 -- Camera animation time: 1000 = 1 second Config.TalkToNPC = { { npc = 'u_m_y_abner', -- Website too see peds name: header = 'Employee of the', -- Text over the name name = 'Pacific Bank', -- Text under the header uiText = "Pacific Bank's Employee", -- Name shown on the notification when near the NPC dialog = 'Hey, how can I help you?', -- Text showm on the message bubble coordinates = vector3(254.17, 222.8, 105.3), -- coordinates of NPC heading = 160.0, -- Heading of NPC (needs decimals, 0.0 for example) camOffset = vector3(0.0, 0.0, 0.0), -- Camera position relative to NPC | (only works if Config.AutoCamPosition = false) camRotation = vector3(0.0, 0.0, 0.0), -- Camera rotation | (only works if Config.AutoCamRotation = false) interactionRange = 2.5, -- From how far the player can interact with the NPC options = { -- Options shown when interacting (Maximum 6 options per NPC) {'Where is the toilet?', 'okokTalk:toilet', 'c'}, -- 'c' for client {'How can I rob the bank?', 'okokTalk:rob', 'c'}, -- 's' for server (if you write something else it'll be server by default) {"I want to access my safe.", 'okokTalk:safe', 'c'}, {"I want to make a new credit card.", 'okokTalk:card', 'c'}, {"I lost my credit card.", 'okokTalk:lost', 'c'}, {"Is Jennifer working?", 'okokTalk:jennifer', 'c'}, }, jobs = { -- Jobs that can interact with the NPC }, }, --[[ -- This is the template to create new NPCs { npc = "", header = "", name = "", uiText = "", dialog = "", coordinates = vector3(0.0, 0.0, 0.0), heading = 0.0, camOffset = vector3(0.0, 0.0, 0.0), camRotation = vector3(0.0, 0.0, 0.0), interactionRange = 0, options = { {"", 'client:event', 'c'}, {"", 'client:event', 'c'}, {"", 'client:event', 'c'}, {"", 'server:event', 's'}, {"", 'server:event', 's'}, {"", 'server:event', 's'}, }, jobs = { -- Example jobs 'police', 'ambulance', }, }, ]]-- }
Attachments
Last edited: